From 652eb260c2574312664c35acd10893d7a6460426 Mon Sep 17 00:00:00 2001 From: Michal Ratajsky Date: Fri, 29 Aug 2014 00:01:41 +0200 Subject: Include backend flags in backend info and add a flag indicating stored controls support --- libmatemixer/matemixer-backend-module.h | 1 + libmatemixer/matemixer-backend.c | 16 ---------------- libmatemixer/matemixer-backend.h | 3 --- libmatemixer/matemixer-context.c | 5 ++++- libmatemixer/matemixer-enums.h | 23 ++++++++++++++--------- 5 files changed, 19 insertions(+), 29 deletions(-) (limited to 'libmatemixer') diff --git a/libmatemixer/matemixer-backend-module.h b/libmatemixer/matemixer-backend-module.h index dc95633..be2f7d1 100644 --- a/libmatemixer/matemixer-backend-module.h +++ b/libmatemixer/matemixer-backend-module.h @@ -61,6 +61,7 @@ struct _MateMixerBackendInfo gchar *name; guint priority; GType g_type; + MateMixerBackendFlags backend_flags; MateMixerBackendType backend_type; }; diff --git a/libmatemixer/matemixer-backend.c b/libmatemixer/matemixer-backend.c index b8177e3..4201e4a 100644 --- a/libmatemixer/matemixer-backend.c +++ b/libmatemixer/matemixer-backend.c @@ -356,14 +356,6 @@ mate_mixer_backend_get_state (MateMixerBackend *backend) return backend->priv->state; } -MateMixerBackendFlags -mate_mixer_backend_get_flags (MateMixerBackend *backend) -{ - g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), MATE_MIXER_BACKEND_NO_FLAGS); - - return backend->priv->flags; -} - MateMixerDevice * mate_mixer_backend_get_device (MateMixerBackend *backend, const gchar *name) { @@ -611,14 +603,6 @@ _mate_mixer_backend_set_state (MateMixerBackend *backend, MateMixerState state) g_object_notify_by_pspec (G_OBJECT (backend), properties[PROP_STATE]); } -void -_mate_mixer_backend_set_flags (MateMixerBackend *backend, MateMixerBackendFlags flags) -{ - g_return_if_fail (MATE_MIXER_IS_BACKEND (backend)); - - backend->priv->flags = flags; -} - void _mate_mixer_backend_set_default_input_stream (MateMixerBackend *backend, MateMixerStream *stream) diff --git a/libmatemixer/matemixer-backend.h b/libmatemixer/matemixer-backend.h index 41ffb40..06082f9 100644 --- a/libmatemixer/matemixer-backend.h +++ b/libmatemixer/matemixer-backend.h @@ -99,7 +99,6 @@ gboolean mate_mixer_backend_open (MateMixerB void mate_mixer_backend_close (MateMixerBackend *backend); MateMixerState mate_mixer_backend_get_state (MateMixerBackend *backend); -MateMixerBackendFlags mate_mixer_backend_get_flags (MateMixerBackend *backend); MateMixerDevice * mate_mixer_backend_get_device (MateMixerBackend *backend, const gchar *name); @@ -123,8 +122,6 @@ gboolean mate_mixer_backend_set_default_output_stream (MateMixerB /* Protected functions */ void _mate_mixer_backend_set_state (MateMixerBackend *backend, MateMixerState state); -void _mate_mixer_backend_set_flags (MateMixerBackend *backend, - MateMixerBackendFlags flags); void _mate_mixer_backend_set_default_input_stream (MateMixerBackend *backend, MateMixerStream *stream); diff --git a/libmatemixer/matemixer-context.c b/libmatemixer/matemixer-context.c index bf31eb3..bb24416 100644 --- a/libmatemixer/matemixer-context.c +++ b/libmatemixer/matemixer-context.c @@ -1180,7 +1180,10 @@ mate_mixer_context_get_backend_flags (MateMixerContext *context) { g_return_val_if_fail (MATE_MIXER_IS_CONTEXT (context), MATE_MIXER_BACKEND_NO_FLAGS); - return mate_mixer_backend_get_flags (context->priv->backend); + if (context->priv->backend_chosen == FALSE) + return MATE_MIXER_BACKEND_NO_FLAGS; + + return mate_mixer_backend_module_get_info (context->priv->module)->backend_flags; } static void diff --git a/libmatemixer/matemixer-enums.h b/libmatemixer/matemixer-enums.h index 3f2fa44..601dc86 100644 --- a/libmatemixer/matemixer-enums.h +++ b/libmatemixer/matemixer-enums.h @@ -79,21 +79,26 @@ typedef enum { * @MATE_MIXER_BACKEND_NO_FLAGS: * No flags. * @MATE_MIXER_BACKEND_HAS_APPLICATION_CONTROLS: - * The backend includes support for application stream controls. + * The sound system backend includes support for application stream controls. + * @MATE_MIXER_BACKEND_HAS_STORED_CONTROLS: + * The sound system backend includes support for stored controls. The presence + * of this flag does not guarantee that this feature is enabled in the sound + * system's configuration. * @MATE_MIXER_BACKEND_CAN_SET_DEFAULT_INPUT_STREAM: - * The backend is able to change the current default input stream using - * the mate_mixer_context_set_default_input_stream() function. + * The sound system backend is able to change the current default input stream + * using the mate_mixer_context_set_default_input_stream() function. * @MATE_MIXER_BACKEND_CAN_SET_DEFAULT_OUTPUT_STREAM: - * The backend is able to change the current default output stream using - * the mate_mixer_context_set_default_output_stream() function. + * The sound system backend is able to change the current default output stream + * using the mate_mixer_context_set_default_output_stream() function. * * Flags describing capabilities of a sound system. */ typedef enum { /*< flags >*/ - MATE_MIXER_BACKEND_NO_FLAGS = 0, - MATE_MIXER_BACKEND_HAS_APPLICATION_CONTROLS = 1 << 0, - MATE_MIXER_BACKEND_CAN_SET_DEFAULT_INPUT_STREAM = 1 << 1, - MATE_MIXER_BACKEND_CAN_SET_DEFAULT_OUTPUT_STREAM = 1 << 2 + MATE_MIXER_BACKEND_NO_FLAGS = 0, + MATE_MIXER_BACKEND_HAS_APPLICATION_CONTROLS = 1 << 0, + MATE_MIXER_BACKEND_HAS_STORED_CONTROLS = 1 << 1, + MATE_MIXER_BACKEND_CAN_SET_DEFAULT_INPUT_STREAM = 1 << 2, + MATE_MIXER_BACKEND_CAN_SET_DEFAULT_OUTPUT_STREAM = 1 << 3 } MateMixerBackendFlags; /** -- cgit v1.2.1