Mercurial > pidgin
comparison libpurple/media.c @ 26338:754be87047dc
Have purple_media_set_output_volume handle all sinks.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Sun, 22 Mar 2009 21:43:58 +0000 |
parents | 775920086761 |
children | b2e290e76998 |
comparison
equal
deleted
inserted
replaced
26337:dd45432d6b69 | 26338:754be87047dc |
---|---|
2320 | 2320 |
2321 for (; streams; streams = g_list_delete_link(streams, streams)) { | 2321 for (; streams; streams = g_list_delete_link(streams, streams)) { |
2322 PurpleMediaStream *stream = streams->data; | 2322 PurpleMediaStream *stream = streams->data; |
2323 | 2323 |
2324 if (stream->session->type & PURPLE_MEDIA_RECV_AUDIO) { | 2324 if (stream->session->type & PURPLE_MEDIA_RECV_AUDIO) { |
2325 GstElement *volume = gst_bin_get_by_name( | 2325 GstElement *tee = stream->tee; |
2326 GST_BIN(stream->sink), | 2326 GstIterator *iter = gst_element_iterate_src_pads(tee); |
2327 "purpleaudiooutputvolume"); | 2327 GstPad *sinkpad; |
2328 g_object_set(volume, "volume", level, NULL); | 2328 while (gst_iterator_next(iter, (gpointer)&sinkpad) |
2329 == GST_ITERATOR_OK) { | |
2330 GstPad *peer = gst_pad_get_peer(sinkpad); | |
2331 GstElement *volume; | |
2332 | |
2333 if (peer == NULL) { | |
2334 gst_object_unref(sinkpad); | |
2335 continue; | |
2336 } | |
2337 | |
2338 volume = gst_bin_get_by_name(GST_BIN( | |
2339 GST_OBJECT_PARENT(peer)), | |
2340 "purpleaudiooutputvolume"); | |
2341 g_object_set(volume, "volume", level, NULL); | |
2342 gst_object_unref(peer); | |
2343 gst_object_unref(sinkpad); | |
2344 } | |
2345 gst_iterator_free(iter); | |
2329 } | 2346 } |
2330 } | 2347 } |
2331 } | 2348 } |
2332 | 2349 |
2333 gulong | 2350 gulong |