diff options
Diffstat (limited to 'libmatemixer/matemixer-backend.h')
-rw-r--r-- | libmatemixer/matemixer-backend.h | 70 |
1 files changed, 57 insertions, 13 deletions
diff --git a/libmatemixer/matemixer-backend.h b/libmatemixer/matemixer-backend.h index 897641f..1a5418f 100644 --- a/libmatemixer/matemixer-backend.h +++ b/libmatemixer/matemixer-backend.h @@ -25,6 +25,15 @@ G_BEGIN_DECLS +typedef struct +{ + gchar *app_name; + gchar *app_id; + gchar *app_version; + gchar *app_icon; + gchar *server_address; +} MateMixerBackendData; + #define MATE_MIXER_TYPE_BACKEND \ (mate_mixer_backend_get_type ()) #define MATE_MIXER_BACKEND(o) \ @@ -42,23 +51,58 @@ struct _MateMixerBackendInterface GTypeInterface parent; /* Required */ - gboolean (*open) (MateMixerBackend *backend); + gboolean (*open) (MateMixerBackend *backend); + MateMixerState (*get_state) (MateMixerBackend *backend); + + /* Optional */ + void (*set_data) (MateMixerBackend *backend, + const MateMixerBackendData *data); - void (*close) (MateMixerBackend *backend); - GList *(*list_devices) (MateMixerBackend *backend); - GList *(*list_streams) (MateMixerBackend *backend); - MateMixerStream *(*get_default_input_stream) (MateMixerBackend *backend); - MateMixerStream *(*get_default_output_stream) (MateMixerBackend *backend); + void (*close) (MateMixerBackend *backend); + GList *(*list_devices) (MateMixerBackend *backend); + GList *(*list_streams) (MateMixerBackend *backend); + MateMixerStream *(*get_default_input_stream) (MateMixerBackend *backend); + gboolean (*set_default_input_stream) (MateMixerBackend *backend, + MateMixerStream *stream); + MateMixerStream *(*get_default_output_stream) (MateMixerBackend *backend); + gboolean (*set_default_output_stream) (MateMixerBackend *backend, + MateMixerStream *stream); + + /* Signals */ + void (*device_added) (MateMixerBackend *backend, + const gchar *name); + void (*device_changed) (MateMixerBackend *backend, + const gchar *name); + void (*device_removed) (MateMixerBackend *backend, + const gchar *name); + void (*stream_added) (MateMixerBackend *backend, + const gchar *name); + void (*stream_changed) (MateMixerBackend *backend, + const gchar *name); + void (*stream_removed) (MateMixerBackend *backend, + const gchar *name); }; -GType mate_mixer_backend_get_type (void) G_GNUC_CONST; +GType mate_mixer_backend_get_type (void) G_GNUC_CONST; + +void mate_mixer_backend_set_data (MateMixerBackend *backend, + const MateMixerBackendData *data); + +gboolean mate_mixer_backend_open (MateMixerBackend *backend); +void mate_mixer_backend_close (MateMixerBackend *backend); + +MateMixerState mate_mixer_backend_get_state (MateMixerBackend *backend); + +GList * mate_mixer_backend_list_devices (MateMixerBackend *backend); +GList * mate_mixer_backend_list_streams (MateMixerBackend *backend); + +MateMixerStream *mate_mixer_backend_get_default_input_stream (MateMixerBackend *backend); +gboolean mate_mixer_backend_set_default_input_stream (MateMixerBackend *backend, + MateMixerStream *stream); -gboolean mate_mixer_backend_open (MateMixerBackend *backend); -void mate_mixer_backend_close (MateMixerBackend *backend); -GList *mate_mixer_backend_list_devices (MateMixerBackend *backend); -GList *mate_mixer_backend_list_streams (MateMixerBackend *backend); -MateMixerStream *mate_mixer_backend_get_default_input_stream (MateMixerBackend *backend); -MateMixerStream *mate_mixer_backend_get_default_output_stream (MateMixerBackend *backend); +MateMixerStream *mate_mixer_backend_get_default_output_stream (MateMixerBackend *backend); +gboolean mate_mixer_backend_set_default_output_stream (MateMixerBackend *backend, + MateMixerStream *stream); G_END_DECLS |