summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2009-09-14 12:18:33 +0200
committerEdward Hervey <bilboed@bilboed.com>2009-09-14 12:26:05 +0200
commitb565a3088c9e51346a05b2dd69e68483fe2f2bda (patch)
tree565d86c23d7f3adc7153115f22deb8f5972b8da8
parent377e781ad57e1edbd575227671dfbb808d4b7114 (diff)
playsink: Expose mute,volume,vis-plugin and font-desc properties
https://bugzilla.gnome.org/show_bug.cgi?id=594623
-rw-r--r--gst/playback/gstplaysink.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 1acc8c63d..388a99ff5 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -213,6 +213,10 @@ enum
{
PROP_0,
PROP_FLAGS,
+ PROP_MUTE,
+ PROP_VOLUME,
+ PROP_FONT_DESC,
+ PROP_VIS_PLUGIN,
PROP_LAST
};
@@ -279,6 +283,32 @@ gst_play_sink_class_init (GstPlaySinkClass * klass)
GST_TYPE_PLAY_FLAGS, DEFAULT_FLAGS,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstPlaySink:volume:
+ *
+ * Get or set the current audio stream volume. 1.0 means 100%,
+ * 0.0 means mute. This uses a linear volume scale.
+ *
+ */
+ g_object_class_install_property (gobject_klass, PROP_VOLUME,
+ g_param_spec_double ("volume", "Volume", "The audio volume, 1.0=100%",
+ 0.0, VOLUME_MAX_DOUBLE, 1.0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_klass, PROP_MUTE,
+ g_param_spec_boolean ("mute", "Mute",
+ "Mute the audio channel without changing the volume", FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_klass, PROP_FONT_DESC,
+ g_param_spec_string ("subtitle-font-desc",
+ "Subtitle font description",
+ "Pango font description of font "
+ "to be used for subtitle rendering", NULL,
+ G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_klass, PROP_VIS_PLUGIN,
+ g_param_spec_object ("vis-plugin", "Vis plugin",
+ "the visualization element to use (NULL = default)",
+ GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
g_signal_new ("reconfigure", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstPlaySinkClass,
reconfigure), NULL, NULL, gst_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN,
@@ -2723,6 +2753,18 @@ gst_play_sink_set_property (GObject * object, guint prop_id,
case PROP_FLAGS:
gst_play_sink_set_flags (playsink, g_value_get_flags (value));
break;
+ case PROP_VOLUME:
+ gst_play_sink_set_volume (playsink, g_value_get_double (value));
+ break;
+ case PROP_MUTE:
+ gst_play_sink_set_mute (playsink, g_value_get_boolean (value));
+ break;
+ case PROP_FONT_DESC:
+ gst_play_sink_set_font_desc (playsink, g_value_get_string (value));
+ break;
+ case PROP_VIS_PLUGIN:
+ gst_play_sink_set_vis_plugin (playsink, g_value_get_object (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, spec);
break;
@@ -2739,6 +2781,18 @@ gst_play_sink_get_property (GObject * object, guint prop_id,
case PROP_FLAGS:
g_value_set_flags (value, gst_play_sink_get_flags (playsink));
break;
+ case PROP_VOLUME:
+ g_value_set_double (value, gst_play_sink_get_volume (playsink));
+ break;
+ case PROP_MUTE:
+ g_value_set_boolean (value, gst_play_sink_get_mute (playsink));
+ break;
+ case PROP_FONT_DESC:
+ g_value_take_string (value, gst_play_sink_get_font_desc (playsink));
+ break;
+ case PROP_VIS_PLUGIN:
+ gst_play_sink_set_vis_plugin (playsink, g_value_get_object (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, spec);
break;