summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-10-29 14:19:09 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-10-29 14:19:09 +0100
commitde1db5ccbdc10a835a2dfdd5984892f3b0c9bcf4 (patch)
tree7ef78bbe11589b0f0120478c908f194b7bf287d6
parent4fbfbef84b944abdbb30cd0b1f4825a4263ebffe (diff)
playbin2: Proxy notify::volume and notify::mute from the playsink to playbin2
-rw-r--r--gst/playback/gstplaybin2.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 1387a8020..643c7639d 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -1091,6 +1091,18 @@ free_group (GstPlayBin * playbin, GstSourceGroup * group)
}
static void
+notify_volume_cb (GObject * selector, GParamSpec * pspec, GstPlayBin * playbin)
+{
+ g_object_notify (G_OBJECT (playbin), "volume");
+}
+
+static void
+notify_mute_cb (GObject * selector, GParamSpec * pspec, GstPlayBin * playbin)
+{
+ g_object_notify (G_OBJECT (playbin), "mute");
+}
+
+static void
gst_play_bin_init (GstPlayBin * playbin)
{
GstFactoryListType type;
@@ -1116,6 +1128,11 @@ gst_play_bin_init (GstPlayBin * playbin)
playbin->playsink = g_object_new (GST_TYPE_PLAY_SINK, NULL);
gst_bin_add (GST_BIN_CAST (playbin), GST_ELEMENT_CAST (playbin->playsink));
gst_play_sink_set_flags (playbin->playsink, DEFAULT_FLAGS);
+ /* Connect to notify::volume and notify::mute signals for proxying */
+ g_signal_connect (playbin->playsink, "notify::volume",
+ G_CALLBACK (notify_volume_cb), playbin);
+ g_signal_connect (playbin->playsink, "notify::mute",
+ G_CALLBACK (notify_mute_cb), playbin);
playbin->encoding = g_strdup (DEFAULT_SUBTITLE_ENCODING);