]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/play-memchunk.c
fix a bad type cast
[pulseaudio] / src / pulsecore / play-memchunk.c
index 7ac579e9de8a277ed2caa197c2ee5481d4098b5d..cde6a9ee44cb669aa827d9b6882774e9c1a6bea0 100644 (file)
@@ -82,24 +82,33 @@ static void sink_input_drop(pa_sink_input *i, const pa_memchunk*chunk, size_t le
 }
 
 int pa_play_memchunk(
-    pa_sink *sink,
-    const char *name,
-    const pa_sample_spec *ss,
-    const pa_channel_map *map,
-    const pa_memchunk *chunk,
-    pa_cvolume *cvolume) {
+        pa_sink *sink,
+        const char *name,
+        const pa_sample_spec *ss,
+        const pa_channel_map *map,
+        const pa_memchunk *chunk,
+        pa_cvolume *volume) {
     
     pa_sink_input *si;
     pa_memchunk *nchunk;
+    pa_sink_input_new_data data;
 
     assert(sink);
     assert(ss);
     assert(chunk);
 
-    if (cvolume && pa_cvolume_is_muted(cvolume))
+    if (volume && pa_cvolume_is_muted(volume))
         return 0;
 
-    if (!(si = pa_sink_input_new(sink, name, __FILE__, ss, map, cvolume, 0, PA_RESAMPLER_INVALID)))
+    pa_sink_input_new_data_init(&data);
+    data.sink = sink;
+    data.name = name;
+    data.driver = __FILE__;
+    pa_sink_input_new_data_set_sample_spec(&data, ss);
+    pa_sink_input_new_data_set_channel_map(&data, map);
+    pa_sink_input_new_data_set_volume(&data, volume);
+        
+    if (!(si = pa_sink_input_new(sink->core, &data, 0)))
         return -1;
 
     si->peek = sink_input_peek;
@@ -111,7 +120,7 @@ int pa_play_memchunk(
     
     pa_memblock_ref(chunk->memblock);
 
-    pa_sink_notify(sink);
+    pa_sink_notify(si->sink);
     
     return 0;
 }