X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/370ff1d7cd2468c0d776bd43aa81d2d3c3a63e4a..fa499dad06ba6558111cdef64c18f2401e803cff:/polyp/scache.c diff --git a/polyp/scache.c b/polyp/scache.c index b17f3242..32a36289 100644 --- a/polyp/scache.c +++ b/polyp/scache.c @@ -4,7 +4,7 @@ This file is part of polypaudio. polypaudio is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published + it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. @@ -13,7 +13,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with polypaudio; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. @@ -37,6 +37,7 @@ #include "subscribe.h" #include "namereg.h" #include "sound-file.h" +#include "util.h" #define UNLOAD_POLL_TIME 2 @@ -199,6 +200,7 @@ void pa_scache_free(struct pa_core *c) { int pa_scache_play_item(struct pa_core *c, const char *name, struct pa_sink *sink, uint32_t volume) { struct pa_scache_entry *e; + char *t; assert(c && name && sink); if (!(e = pa_namereg_get(c, name, PA_NAMEREG_SAMPLE, 1))) @@ -214,8 +216,13 @@ int pa_scache_play_item(struct pa_core *c, const char *name, struct pa_sink *sin if (!e->memchunk.memblock) return -1; - if (pa_play_memchunk(sink, name, &e->sample_spec, &e->memchunk, pa_volume_multiply(volume, e->volume)) < 0) + t = pa_sprintf_malloc("sample:%s", name); + if (pa_play_memchunk(sink, t, &e->sample_spec, &e->memchunk, pa_volume_multiply(volume, e->volume)) < 0) { + free(t); return -1; + } + + free(t); if (e->lazy) time(&e->last_used_time);