[libgnome-volume-control] Emit a signal for stream-changed
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgnome-volume-control] Emit a signal for stream-changed
- Date: Mon, 5 Oct 2015 13:37:00 +0000 (UTC)
commit 7e5504db3d85b7a4b5dc0207c47af09b426ad75a
Author: Alexander Hofbauer <alex derhofbauer at>
Date: Sat Feb 7 19:22:56 2015 +0100
Emit a signal for stream-changed
https://bugzilla.gnome.org/show_bug.cgi?id=744140
gvc-mixer-control.c | 29 +++++++++++++++++++++++++++++
gvc-mixer-control.h | 2 ++
2 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/gvc-mixer-control.c b/gvc-mixer-control.c
index 29ece3d..e62edf4 100644
--- a/gvc-mixer-control.c
+++ b/gvc-mixer-control.c
@@ -104,6 +104,7 @@ enum {
STATE_CHANGED,
STREAM_ADDED,
STREAM_REMOVED,
+ STREAM_CHANGED,
CARD_ADDED,
CARD_REMOVED,
DEFAULT_SINK_CHANGED,
@@ -1526,6 +1527,11 @@ update_sink (GvcMixerControl *control,
/* Always sink on a new stream to able to assign the right stream id
* to the appropriate outputs (multiple potential outputs per stream). */
sync_devices (control, stream);
+ } else {
+ g_signal_emit (G_OBJECT (control),
+ signals[STREAM_CHANGED],
+ 0,
+ gvc_mixer_stream_get_id (stream));
}
/*
@@ -1646,6 +1652,11 @@ update_source (GvcMixerControl *control,
g_object_ref (stream));
add_stream (control, stream);
sync_devices (control, stream);
+ } else {
+ g_signal_emit (G_OBJECT (control),
+ signals[STREAM_CHANGED],
+ 0,
+ gvc_mixer_stream_get_id (stream));
}
if (control->priv->profile_swapping_device_id != GVC_MIXER_UI_DEVICE_INVALID) {
@@ -1751,6 +1762,11 @@ update_sink_input (GvcMixerControl *control,
GUINT_TO_POINTER (info->index),
g_object_ref (stream));
add_stream (control, stream);
+ } else {
+ g_signal_emit (G_OBJECT (control),
+ signals[STREAM_CHANGED],
+ 0,
+ gvc_mixer_stream_get_id (stream));
}
}
@@ -1797,6 +1813,11 @@ update_source_output (GvcMixerControl *control,
GUINT_TO_POINTER (info->index),
g_object_ref (stream));
add_stream (control, stream);
+ } else {
+ g_signal_emit (G_OBJECT (control),
+ signals[STREAM_CHANGED],
+ 0,
+ gvc_mixer_stream_get_id (stream));
}
}
@@ -3208,6 +3229,14 @@ gvc_mixer_control_class_init (GvcMixerControlClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT);
+ signals [STREAM_CHANGED] =
+ g_signal_new ("stream-changed",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GvcMixerControlClass, stream_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__UINT,
+ G_TYPE_NONE, 1, G_TYPE_UINT);
signals [CARD_ADDED] =
g_signal_new ("card-added",
G_TYPE_FROM_CLASS (klass),
diff --git a/gvc-mixer-control.h b/gvc-mixer-control.h
index 3f0ea2e..4ba1d3b 100644
--- a/gvc-mixer-control.h
+++ b/gvc-mixer-control.h
@@ -59,6 +59,8 @@ typedef struct
GvcMixerControlState new_state);
void (*stream_added) (GvcMixerControl *control,
guint id);
+ void (*stream_changed) (GvcMixerControl *control,
+ guint id);
void (*stream_removed) (GvcMixerControl *control,
guint id);
void (*card_added) (GvcMixerControl *control,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]