diff options
Diffstat (limited to 'libmatemixer/matemixer-backend.c')
-rw-r--r-- | libmatemixer/matemixer-backend.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/libmatemixer/matemixer-backend.c b/libmatemixer/matemixer-backend.c index 4201e4a..56efd94 100644 --- a/libmatemixer/matemixer-backend.c +++ b/libmatemixer/matemixer-backend.c @@ -425,7 +425,7 @@ mate_mixer_backend_list_devices (MateMixerBackend *backend) klass = MATE_MIXER_BACKEND_GET_CLASS (backend); - if G_LIKELY (klass->list_devices != NULL) + if (klass->list_devices != NULL) return klass->list_devices (backend); return NULL; @@ -440,7 +440,7 @@ mate_mixer_backend_list_streams (MateMixerBackend *backend) klass = MATE_MIXER_BACKEND_GET_CLASS (backend); - if G_LIKELY (klass->list_streams != NULL) + if (klass->list_streams != NULL) return klass->list_streams (backend); return NULL; @@ -473,21 +473,26 @@ gboolean mate_mixer_backend_set_default_input_stream (MateMixerBackend *backend, MateMixerStream *stream) { + MateMixerBackendClass *klass; + g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), FALSE); g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), FALSE); - if (backend->priv->default_input != stream) { - MateMixerBackendClass *klass; + klass = MATE_MIXER_BACKEND_GET_CLASS (backend); + if (klass->set_default_input_stream == NULL) + return FALSE; - klass = MATE_MIXER_BACKEND_GET_CLASS (backend); + if (backend->priv->default_input != stream) { + if (mate_mixer_stream_get_direction (stream) != MATE_MIXER_DIRECTION_INPUT) { + g_warning ("Unable to set non-input stream as the default input stream"); + return FALSE; + } - if (klass->set_default_input_stream == NULL || - klass->set_default_input_stream (backend, stream) == FALSE) + if (klass->set_default_input_stream (backend, stream) == FALSE) return FALSE; _mate_mixer_backend_set_default_input_stream (backend, stream); } - return TRUE; } @@ -503,21 +508,26 @@ gboolean mate_mixer_backend_set_default_output_stream (MateMixerBackend *backend, MateMixerStream *stream) { + MateMixerBackendClass *klass; + g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), FALSE); g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), FALSE); - if (backend->priv->default_input != stream) { - MateMixerBackendClass *klass; + klass = MATE_MIXER_BACKEND_GET_CLASS (backend); + if (klass->set_default_output_stream == NULL) + return FALSE; - klass = MATE_MIXER_BACKEND_GET_CLASS (backend); + if (backend->priv->default_input != stream) { + if (mate_mixer_stream_get_direction (stream) != MATE_MIXER_DIRECTION_OUTPUT) { + g_warning ("Unable to set non-output stream as the default output stream"); + return FALSE; + } - if (klass->set_default_output_stream == NULL || - klass->set_default_output_stream (backend, stream) == FALSE) + if (klass->set_default_output_stream (backend, stream) == FALSE) return FALSE; _mate_mixer_backend_set_default_output_stream (backend, stream); } - return TRUE; } |