gnome-media r4150 - in trunk/gnome-volume-control: . src
- From: hadess svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-media r4150 - in trunk/gnome-volume-control: . src
- Date: Tue, 20 Jan 2009 16:19:00 +0000 (UTC)
Author: hadess
Date: Tue Jan 20 16:19:00 2009
New Revision: 4150
URL: http://svn.gnome.org/viewvc/gnome-media?rev=4150&view=rev
Log:
2009-01-20 Bastien Nocera <hadess hadess net>
* src/gvc-mixer-control.c (set_is_event_stream_from_proplist),
(update_sink_input):
* src/gvc-mixer-stream.c (gvc_mixer_stream_is_event_stream),
(gvc_mixer_stream_set_is_event_stream),
(gvc_mixer_stream_set_property), (gvc_mixer_stream_get_property),
(gvc_mixer_stream_class_init):
* src/gvc-mixer-stream.h: Add the "is-event-stream" property,
to check whether the role of a stream is to play an event
* src/gvc-mixer-dialog.c (add_stream): Don't show event streams
in the applications tab (Closes: #565145)
Modified:
trunk/gnome-volume-control/ChangeLog
trunk/gnome-volume-control/src/gvc-mixer-control.c
trunk/gnome-volume-control/src/gvc-mixer-dialog.c
trunk/gnome-volume-control/src/gvc-mixer-stream.c
trunk/gnome-volume-control/src/gvc-mixer-stream.h
Modified: trunk/gnome-volume-control/src/gvc-mixer-control.c
==============================================================================
--- trunk/gnome-volume-control/src/gvc-mixer-control.c (original)
+++ trunk/gnome-volume-control/src/gvc-mixer-control.c Tue Jan 20 16:19:00 2009
@@ -662,6 +662,23 @@
}
static void
+set_is_event_stream_from_proplist (GvcMixerStream *stream,
+ pa_proplist *l)
+{
+ const char *t;
+ gboolean is_event_stream;
+
+ is_event_stream = FALSE;
+
+ if ((t = pa_proplist_gets (l, PA_PROP_MEDIA_ROLE))) {
+ if (g_str_equal (t, "event"))
+ is_event_stream = TRUE;
+ }
+
+ gvc_mixer_stream_set_is_event_stream (stream, is_event_stream);
+}
+
+static void
update_sink_input (GvcMixerControl *control,
const pa_sink_input_info *info)
{
@@ -699,6 +716,7 @@
gvc_mixer_stream_set_name (stream, name);
gvc_mixer_stream_set_description (stream, info->name);
+ set_is_event_stream_from_proplist (stream, info->proplist);
set_icon_name_from_proplist (stream, info->proplist, "applications-multimedia");
gvc_mixer_stream_set_volume (stream, (guint)max_volume);
gvc_mixer_stream_set_is_muted (stream, info->mute);
Modified: trunk/gnome-volume-control/src/gvc-mixer-dialog.c
==============================================================================
--- trunk/gnome-volume-control/src/gvc-mixer-dialog.c (original)
+++ trunk/gnome-volume-control/src/gvc-mixer-dialog.c Tue Jan 20 16:19:00 2009
@@ -663,7 +663,8 @@
g_debug ("Adding effects stream");
} else if (! GVC_IS_MIXER_SOURCE (stream)
&& !GVC_IS_MIXER_SINK (stream)
- && !GVC_IS_MIXER_SOURCE_OUTPUT (stream)) {
+ && !GVC_IS_MIXER_SOURCE_OUTPUT (stream)
+ && !gvc_mixer_stream_is_event_stream (stream)) {
bar = create_bar (dialog, dialog->priv->apps_size_group, FALSE);
gvc_channel_bar_set_name (GVC_CHANNEL_BAR (bar),
gvc_mixer_stream_get_name (stream));
Modified: trunk/gnome-volume-control/src/gvc-mixer-stream.c
==============================================================================
--- trunk/gnome-volume-control/src/gvc-mixer-stream.c (original)
+++ trunk/gnome-volume-control/src/gvc-mixer-stream.c Tue Jan 20 16:19:00 2009
@@ -48,6 +48,7 @@
char *icon_name;
gboolean is_muted;
gboolean can_decibel;
+ gboolean is_event_stream;
};
enum
@@ -63,7 +64,8 @@
PROP_VOLUME,
PROP_DECIBEL,
PROP_IS_MUTED,
- PROP_CAN_DECIBEL
+ PROP_CAN_DECIBEL,
+ PROP_IS_EVENT_STREAM,
};
static void gvc_mixer_stream_class_init (GvcMixerStreamClass *klass);
@@ -238,6 +240,26 @@
return TRUE;
}
+gboolean
+gvc_mixer_stream_is_event_stream (GvcMixerStream *stream)
+{
+ g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), FALSE);
+
+ return stream->priv->is_event_stream;
+}
+
+gboolean
+gvc_mixer_stream_set_is_event_stream (GvcMixerStream *stream,
+ gboolean is_event_stream)
+{
+ g_return_val_if_fail (GVC_IS_MIXER_STREAM (stream), FALSE);
+
+ stream->priv->is_event_stream = is_event_stream;
+ g_object_notify (G_OBJECT (stream), "is-event-stream");
+
+ return TRUE;
+}
+
static void
on_channel_map_gains_changed (GvcChannelMap *channel_map,
GvcMixerStream *stream)
@@ -336,6 +358,9 @@
case PROP_IS_MUTED:
gvc_mixer_stream_set_is_muted (self, g_value_get_boolean (value));
break;
+ case PROP_IS_EVENT_STREAM:
+ gvc_mixer_stream_set_is_event_stream (self, g_value_get_boolean (value));
+ break;
case PROP_CAN_DECIBEL:
gvc_mixer_stream_set_can_decibel (self, g_value_get_boolean (value));
break;
@@ -384,6 +409,9 @@
case PROP_IS_MUTED:
g_value_set_boolean (value, self->priv->is_muted);
break;
+ case PROP_IS_EVENT_STREAM:
+ g_value_set_boolean (value, self->priv->is_event_stream);
+ break;
case PROP_CAN_DECIBEL:
g_value_set_boolean (value, self->priv->can_decibel);
break;
@@ -534,7 +562,13 @@
"Whether stream volume can be converted to decibel units",
FALSE,
G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
-
+ g_object_class_install_property (gobject_class,
+ PROP_IS_EVENT_STREAM,
+ g_param_spec_boolean ("is-event-stream",
+ "is event stream",
+ "Whether stream's role is to play an event",
+ FALSE,
+ G_PARAM_READWRITE|G_PARAM_CONSTRUCT));
g_type_class_add_private (klass, sizeof (GvcMixerStreamPrivate));
}
Modified: trunk/gnome-volume-control/src/gvc-mixer-stream.h
==============================================================================
--- trunk/gnome-volume-control/src/gvc-mixer-stream.h (original)
+++ trunk/gnome-volume-control/src/gvc-mixer-stream.h Tue Jan 20 16:19:00 2009
@@ -73,6 +73,7 @@
const char * gvc_mixer_stream_get_name (GvcMixerStream *stream);
const char * gvc_mixer_stream_get_icon_name (GvcMixerStream *stream);
const char * gvc_mixer_stream_get_description (GvcMixerStream *stream);
+gboolean gvc_mixer_stream_is_event_stream (GvcMixerStream *stream);
/* private */
gboolean gvc_mixer_stream_set_volume (GvcMixerStream *stream,
@@ -89,6 +90,8 @@
const char *description);
gboolean gvc_mixer_stream_set_icon_name (GvcMixerStream *stream,
const char *name);
+gboolean gvc_mixer_stream_set_is_event_stream (GvcMixerStream *stream,
+ gboolean is_event_stream);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]