summaryrefslogtreecommitdiff
path: root/libmatemixer
diff options
context:
space:
mode:
authorMichal Ratajsky <[email protected]>2014-08-29 00:01:41 +0200
committerMichal Ratajsky <[email protected]>2014-08-29 00:01:41 +0200
commit652eb260c2574312664c35acd10893d7a6460426 (patch)
treee396e048aabc82c589c020f8f2099c27d38ec93d /libmatemixer
parente67e02993cb8c1827659e1b3ddd693d347b8cf96 (diff)
downloadlibmatemixer-652eb260c2574312664c35acd10893d7a6460426.tar.bz2
libmatemixer-652eb260c2574312664c35acd10893d7a6460426.tar.xz
Include backend flags in backend info and add a flag indicating stored controls support
Diffstat (limited to 'libmatemixer')
-rw-r--r--libmatemixer/matemixer-backend-module.h1
-rw-r--r--libmatemixer/matemixer-backend.c16
-rw-r--r--libmatemixer/matemixer-backend.h3
-rw-r--r--libmatemixer/matemixer-context.c5
-rw-r--r--libmatemixer/matemixer-enums.h23
5 files changed, 19 insertions, 29 deletions
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)
{
@@ -612,14 +604,6 @@ _mate_mixer_backend_set_state (MateMixerBackend *backend, MateMixerState 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;
/**