diff options
author | Michal Ratajsky <[email protected]> | 2014-06-07 01:07:02 +0200 |
---|---|---|
committer | Michal Ratajsky <[email protected]> | 2014-06-07 01:07:02 +0200 |
commit | d2c3a4be634018a2b63f4c80a26f9024a0d3de47 (patch) | |
tree | f0f8128aa2e914de6c1449bf5ef999dfebbc9767 /libmatemixer/matemixer-device.c | |
parent | 9b4cafb0b47c6ec453d301bd812ae7001955dc2a (diff) | |
download | libmatemixer-d2c3a4be634018a2b63f4c80a26f9024a0d3de47.tar.bz2 libmatemixer-d2c3a4be634018a2b63f4c80a26f9024a0d3de47.tar.xz |
Weekly update
Diffstat (limited to 'libmatemixer/matemixer-device.c')
-rw-r--r-- | libmatemixer/matemixer-device.c | 147 |
1 files changed, 100 insertions, 47 deletions
diff --git a/libmatemixer/matemixer-device.c b/libmatemixer/matemixer-device.c index 8e6a465..d4a7c39 100644 --- a/libmatemixer/matemixer-device.c +++ b/libmatemixer/matemixer-device.c @@ -19,89 +19,141 @@ #include <glib-object.h> #include "matemixer-device.h" -#include "matemixer-device-profile.h" +#include "matemixer-enum-types.h" +#include "matemixer-profile.h" G_DEFINE_INTERFACE (MateMixerDevice, mate_mixer_device, G_TYPE_OBJECT) static void mate_mixer_device_default_init (MateMixerDeviceInterface *iface) { - g_object_interface_install_property ( - iface, - g_param_spec_string ("identifier", - "Identifier", - "Identifier of the sound device", - NULL, - G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); - - g_object_interface_install_property ( - iface, - g_param_spec_string ("name", - "Name", - "Name of the sound device", - NULL, - G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); - - g_object_interface_install_property ( - iface, - g_param_spec_string ("icon", - "Icon", - "Name of the sound device icon", - NULL, - G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); - - g_object_interface_install_property ( - iface, - g_param_spec_object ("active-profile", - "Active profile", - "Identifier of the currently active profile", - MATE_MIXER_TYPE_DEVICE_PROFILE, - G_PARAM_CONSTRUCT | G_PARAM_READWRITE)); + g_object_interface_install_property (iface, + g_param_spec_string ("name", + "Name", + "Name of the sound device", + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_interface_install_property (iface, + g_param_spec_string ("description", + "Description", + "Description of the sound device", + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_interface_install_property (iface, + g_param_spec_string ("icon", + "Icon", + "Name of the sound device icon", + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_interface_install_property (iface, + g_param_spec_object ("active-profile", + "Active profile", + "Name of the active profile", + MATE_MIXER_TYPE_PROFILE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); +} + +const gchar * +mate_mixer_device_get_name (MateMixerDevice *device) +{ + MateMixerDeviceInterface *iface; + + g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); + + iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); + + if (iface->get_name) + return iface->get_name (device); + + return NULL; +} + +const gchar * +mate_mixer_device_get_description (MateMixerDevice *device) +{ + MateMixerDeviceInterface *iface; + + g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); + + iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); + + if (iface->get_description) + return iface->get_description (device); + + return NULL; +} + +const gchar * +mate_mixer_device_get_icon (MateMixerDevice *device) +{ + MateMixerDeviceInterface *iface; + + g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); + + iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); + + if (iface->get_icon) + return iface->get_icon (device); + + return NULL; } const GList * -mate_mixer_device_list_tracks (MateMixerDevice *device) +mate_mixer_device_list_streams (MateMixerDevice *device) { MateMixerDeviceInterface *iface; g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); - if (iface->list_tracks) - return iface->list_tracks (device); + + if (iface->list_streams) + return iface->list_streams (device); return NULL; } const GList * -mate_mixer_device_get_ports (MateMixerDevice *device) +mate_mixer_device_list_ports (MateMixerDevice *device) { MateMixerDeviceInterface *iface; g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); - if (iface->get_ports) - return iface->get_ports (device); + + if (iface->list_ports) + return iface->list_ports (device); return NULL; } const GList * -mate_mixer_device_get_profiles (MateMixerDevice *device) +mate_mixer_device_list_profiles (MateMixerDevice *device) { MateMixerDeviceInterface *iface; g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); - if (iface->get_profiles) - return iface->get_profiles (device); + + if (iface->list_profiles) + return iface->list_profiles (device); return NULL; } -MateMixerDeviceProfile * +MateMixerProfile * mate_mixer_device_get_active_profile (MateMixerDevice *device) { MateMixerDeviceInterface *iface; @@ -109,6 +161,7 @@ mate_mixer_device_get_active_profile (MateMixerDevice *device) g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); + if (iface->get_active_profile) return iface->get_active_profile (device); @@ -116,17 +169,17 @@ mate_mixer_device_get_active_profile (MateMixerDevice *device) } gboolean -mate_mixer_device_set_active_profile (MateMixerDevice *device, - MateMixerDeviceProfile *profile) +mate_mixer_device_set_active_profile (MateMixerDevice *device, const gchar *name) { MateMixerDeviceInterface *iface; - g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), NULL); - g_return_val_if_fail (MATE_MIXER_IS_DEVICE_PROFILE (profile), NULL); + g_return_val_if_fail (MATE_MIXER_IS_DEVICE (device), FALSE); + g_return_val_if_fail (name != NULL, FALSE); iface = MATE_MIXER_DEVICE_GET_INTERFACE (device); + if (iface->set_active_profile) - return iface->set_active_profile (device, profile); + return iface->set_active_profile (device, name); return FALSE; } |