diff options
Diffstat (limited to 'libmatemixer/matemixer-backend.c')
-rw-r--r-- | libmatemixer/matemixer-backend.c | 45 |
1 files changed, 40 insertions, 5 deletions
diff --git a/libmatemixer/matemixer-backend.c b/libmatemixer/matemixer-backend.c index 18e622f..890c34b 100644 --- a/libmatemixer/matemixer-backend.c +++ b/libmatemixer/matemixer-backend.c @@ -19,6 +19,7 @@ #include <glib-object.h> #include "matemixer-backend.h" +#include "matemixer-stream.h" G_DEFINE_INTERFACE (MateMixerBackend, mate_mixer_backend, G_TYPE_OBJECT) @@ -32,9 +33,10 @@ mate_mixer_backend_open (MateMixerBackend *backend) { MateMixerBackendInterface *iface; - g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), NULL); + g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), FALSE); iface = MATE_MIXER_BACKEND_GET_INTERFACE (backend); + if (iface->open) return iface->open (backend); @@ -46,9 +48,10 @@ mate_mixer_backend_close (MateMixerBackend *backend) { MateMixerBackendInterface *iface; - g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), NULL); + g_return_if_fail (MATE_MIXER_IS_BACKEND (backend)); iface = MATE_MIXER_BACKEND_GET_INTERFACE (backend); + if (iface->close) iface->close (backend); } @@ -61,6 +64,7 @@ mate_mixer_backend_list_devices (MateMixerBackend *backend) g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), NULL); iface = MATE_MIXER_BACKEND_GET_INTERFACE (backend); + if (iface->list_devices) return iface->list_devices (backend); @@ -68,15 +72,46 @@ mate_mixer_backend_list_devices (MateMixerBackend *backend) } GList * -mate_mixer_backend_list_tracks (MateMixerBackend *backend) +mate_mixer_backend_list_streams (MateMixerBackend *backend) +{ + MateMixerBackendInterface *iface; + + g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), NULL); + + iface = MATE_MIXER_BACKEND_GET_INTERFACE (backend); + + if (iface->list_streams) + return iface->list_streams (backend); + + return NULL; +} + +MateMixerStream * +mate_mixer_backend_get_default_input_stream (MateMixerBackend *backend) +{ + MateMixerBackendInterface *iface; + + g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), NULL); + + iface = MATE_MIXER_BACKEND_GET_INTERFACE (backend); + + if (iface->get_default_input_stream) + return iface->get_default_input_stream (backend); + + return NULL; +} + +MateMixerStream * +mate_mixer_backend_get_default_output_stream (MateMixerBackend *backend) { MateMixerBackendInterface *iface; g_return_val_if_fail (MATE_MIXER_IS_BACKEND (backend), NULL); iface = MATE_MIXER_BACKEND_GET_INTERFACE (backend); - if (iface->list_tracks) - return iface->list_tracks (backend); + + if (iface->get_default_output_stream) + return iface->get_default_output_stream (backend); return NULL; } |