diff options
Diffstat (limited to 'gvc-mixer-control.c')
-rw-r--r-- | gvc-mixer-control.c | 29 |
1 files changed, 29 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), |