diff options
Diffstat (limited to 'backends/alsa')
-rw-r--r-- | backends/alsa/alsa-backend.c | 23 | ||||
-rw-r--r-- | backends/alsa/alsa-device.c | 25 | ||||
-rw-r--r-- | backends/alsa/alsa-stream.c | 30 |
3 files changed, 23 insertions, 55 deletions
diff --git a/backends/alsa/alsa-backend.c b/backends/alsa/alsa-backend.c index 45bee15..6445057 100644 --- a/backends/alsa/alsa-backend.c +++ b/backends/alsa/alsa-backend.c @@ -79,7 +79,7 @@ static void remove_device_by_list_item (AlsaBackend *alsa, GList *item); static void remove_stream (AlsaBackend *alsa, - const gchar *name); + MateMixerStream *stream); static void select_default_input_stream (AlsaBackend *alsa); static void select_default_output_stream (AlsaBackend *alsa); @@ -401,7 +401,7 @@ add_device (AlsaBackend *alsa, AlsaDevice *device) g_signal_emit_by_name (G_OBJECT (alsa), "device-added", - mate_mixer_device_get_name (MATE_MIXER_DEVICE (device))); + MATE_MIXER_DEVICE (device)); /* Load the device elements after emitting device-added, because the load * function will most likely emit stream-added on the device and backend */ @@ -451,29 +451,24 @@ remove_device_by_list_item (AlsaBackend *alsa, GList *item) g_hash_table_remove (alsa->priv->devices_ids, ALSA_DEVICE_GET_ID (device)); - /* The list may have been invalidated by device signals */ - free_stream_list (alsa); - g_signal_emit_by_name (G_OBJECT (alsa), "device-removed", - mate_mixer_device_get_name (MATE_MIXER_DEVICE (device))); + MATE_MIXER_DEVICE (device)); g_object_unref (device); } static void -remove_stream (AlsaBackend *alsa, const gchar *name) +remove_stream (AlsaBackend *alsa, MateMixerStream *stream) { - MateMixerStream *stream; + MateMixerStream *def; - stream = mate_mixer_backend_get_default_input_stream (MATE_MIXER_BACKEND (alsa)); - - if (stream != NULL && strcmp (mate_mixer_stream_get_name (stream), name) == 0) + def = mate_mixer_backend_get_default_input_stream (MATE_MIXER_BACKEND (alsa)); + if (def == stream) select_default_input_stream (alsa); - stream = mate_mixer_backend_get_default_output_stream (MATE_MIXER_BACKEND (alsa)); - - if (stream != NULL && strcmp (mate_mixer_stream_get_name (stream), name) == 0) + def = mate_mixer_backend_get_default_output_stream (MATE_MIXER_BACKEND (alsa)); + if (def == stream) select_default_output_stream (alsa); } diff --git a/backends/alsa/alsa-device.c b/backends/alsa/alsa-device.c index fb12447..2064f79 100644 --- a/backends/alsa/alsa-device.c +++ b/backends/alsa/alsa-device.c @@ -338,27 +338,21 @@ alsa_device_close (AlsaDevice *device) /* Make each stream remove its controls and switches */ if (alsa_stream_has_controls_or_switches (device->priv->input) == TRUE) { - const gchar *name = - mate_mixer_stream_get_name (MATE_MIXER_STREAM (device->priv->input)); - alsa_stream_remove_all (device->priv->input); free_stream_list (device); g_signal_emit_by_name (G_OBJECT (device), "stream-removed", - name); + MATE_MIXER_STREAM (device->priv->input)); } if (alsa_stream_has_controls_or_switches (device->priv->output) == TRUE) { - const gchar *name = - mate_mixer_stream_get_name (MATE_MIXER_STREAM (device->priv->output)); - alsa_stream_remove_all (device->priv->output); free_stream_list (device); g_signal_emit_by_name (G_OBJECT (device), "stream-removed", - name); + MATE_MIXER_STREAM (device->priv->output)); } close_mixer (device); @@ -481,16 +475,13 @@ add_element (AlsaDevice *device, AlsaStream *stream, AlsaElement *element) } if (add_stream == TRUE) { - const gchar *name = - mate_mixer_stream_get_name (MATE_MIXER_STREAM (stream)); - free_stream_list (device); /* Pretend the stream has just been created now that we have added * the first control */ g_signal_emit_by_name (G_OBJECT (device), "stream-added", - name); + MATE_MIXER_STREAM (stream)); } el = alsa_element_get_snd_element (element); @@ -764,26 +755,20 @@ remove_elements_by_name (AlsaDevice *device, const gchar *name) if (alsa_stream_remove_elements (device->priv->input, name) == TRUE) { /* Removing last stream element "removes" the stream */ if (alsa_stream_has_controls_or_switches (device->priv->input) == FALSE) { - const gchar *stream_name = - mate_mixer_stream_get_name (MATE_MIXER_STREAM (device->priv->input)); - free_stream_list (device); g_signal_emit_by_name (G_OBJECT (device), "stream-removed", - stream_name); + MATE_MIXER_STREAM (device->priv->input)); } } if (alsa_stream_remove_elements (device->priv->output, name) == TRUE) { /* Removing last stream element "removes" the stream */ if (alsa_stream_has_controls_or_switches (device->priv->output) == FALSE) { - const gchar *stream_name = - mate_mixer_stream_get_name (MATE_MIXER_STREAM (device->priv->output)); - free_stream_list (device); g_signal_emit_by_name (G_OBJECT (device), "stream-removed", - stream_name); + MATE_MIXER_STREAM (device->priv->output)); } } } diff --git a/backends/alsa/alsa-stream.c b/backends/alsa/alsa-stream.c index fc72f65..7e9c89f 100644 --- a/backends/alsa/alsa-stream.c +++ b/backends/alsa/alsa-stream.c @@ -113,19 +113,15 @@ alsa_stream_new (const gchar *name, void alsa_stream_add_control (AlsaStream *stream, AlsaStreamControl *control) { - const gchar *name; - g_return_if_fail (ALSA_IS_STREAM (stream)); g_return_if_fail (ALSA_IS_STREAM_CONTROL (control)); - name = mate_mixer_stream_control_get_name (MATE_MIXER_STREAM_CONTROL (control)); - stream->priv->controls = g_list_append (stream->priv->controls, g_object_ref (control)); g_signal_emit_by_name (G_OBJECT (stream), "control-added", - name); + MATE_MIXER_STREAM_CONTROL (control)); if (alsa_stream_has_default_control (stream) == FALSE) alsa_stream_set_default_control (stream, control); @@ -134,38 +130,30 @@ alsa_stream_add_control (AlsaStream *stream, AlsaStreamControl *control) void alsa_stream_add_switch (AlsaStream *stream, AlsaSwitch *swtch) { - const gchar *name; - g_return_if_fail (ALSA_IS_STREAM (stream)); g_return_if_fail (ALSA_IS_SWITCH (swtch)); - name = mate_mixer_switch_get_name (MATE_MIXER_SWITCH (swtch)); - stream->priv->switches = g_list_append (stream->priv->switches, g_object_ref (swtch)); g_signal_emit_by_name (G_OBJECT (stream), "switch-added", - name); + MATE_MIXER_STREAM_SWITCH (swtch)); } void alsa_stream_add_toggle (AlsaStream *stream, AlsaToggle *toggle) { - const gchar *name; - g_return_if_fail (ALSA_IS_STREAM (stream)); g_return_if_fail (ALSA_IS_TOGGLE (toggle)); - name = mate_mixer_switch_get_name (MATE_MIXER_SWITCH (toggle)); - /* Toggle is MateMixerSwitch, but not AlsaSwitch */ stream->priv->switches = g_list_append (stream->priv->switches, g_object_ref (toggle)); g_signal_emit_by_name (G_OBJECT (stream), "switch-added", - name); + MATE_MIXER_STREAM_SWITCH (toggle)); } gboolean @@ -285,7 +273,7 @@ alsa_stream_remove_elements (AlsaStream *stream, const gchar *name) g_signal_emit_by_name (G_OBJECT (stream), "control-removed", - mate_mixer_stream_control_get_name (control)); + control); g_object_unref (control); removed = TRUE; @@ -293,14 +281,14 @@ alsa_stream_remove_elements (AlsaStream *stream, const gchar *name) item = g_list_find_custom (stream->priv->switches, name, compare_switch_name); if (item != NULL) { - MateMixerSwitch *swtch = MATE_MIXER_SWITCH (item->data); + MateMixerStreamSwitch *swtch = MATE_MIXER_STREAM_SWITCH (item->data); alsa_element_close (ALSA_ELEMENT (swtch)); stream->priv->switches = g_list_delete_link (stream->priv->switches, item); g_signal_emit_by_name (G_OBJECT (stream), "switch-removed", - mate_mixer_switch_get_name (swtch)); + swtch); g_object_unref (swtch); removed = TRUE; @@ -327,7 +315,7 @@ alsa_stream_remove_all (AlsaStream *stream) stream->priv->controls = g_list_delete_link (stream->priv->controls, list); g_signal_emit_by_name (G_OBJECT (stream), "control-removed", - mate_mixer_stream_control_get_name (control)); + control); g_object_unref (control); list = next; @@ -339,7 +327,7 @@ alsa_stream_remove_all (AlsaStream *stream) /* Remove all stream switches */ list = stream->priv->switches; while (list != NULL) { - MateMixerSwitch *swtch = MATE_MIXER_SWITCH (list->data); + MateMixerStreamSwitch *swtch = MATE_MIXER_STREAM_SWITCH (list->data); GList *next = list->next; alsa_element_close (ALSA_ELEMENT (swtch)); @@ -347,7 +335,7 @@ alsa_stream_remove_all (AlsaStream *stream) stream->priv->switches = g_list_delete_link (stream->priv->switches, list); g_signal_emit_by_name (G_OBJECT (stream), "switch-removed", - mate_mixer_switch_get_name (swtch)); + swtch); g_object_unref (swtch); list = next; |