From 5669ffe9cf86a1d9915f66eeea75c32b6f479b9b Mon Sep 17 00:00:00 2001 From: Sangchul Lee Date: Thu, 14 Feb 2019 17:25:14 +0900 Subject: [PATCH] Add support for mute API set [Version] 0.12.39 [Issue Type] New feature Change-Id: I53276fe8e860eb97ba1b6aa4864ac10552ebf494 Signed-off-by: Sangchul Lee --- common/mm_sound_dbus.c | 3 + common/mm_sound_utils.c | 54 -------------- include/mm_sound.h | 5 +- include/mm_sound_client.h | 5 +- include/mm_sound_intf.h | 1 + include/mm_sound_proxy.h | 1 + include/mm_sound_utils.h | 2 - mm_sound.c | 92 +++++++++++------------ mm_sound_client.c | 179 ++++++++++++++++++++++++++++++++++++++++++++- mm_sound_proxy.c | 34 +++++++++ packaging/libmm-sound.spec | 2 +- 11 files changed, 265 insertions(+), 113 deletions(-) diff --git a/common/mm_sound_dbus.c b/common/mm_sound_dbus.c index 6707dc9..e026a27 100644 --- a/common/mm_sound_dbus.c +++ b/common/mm_sound_dbus.c @@ -64,6 +64,9 @@ const mm_sound_dbus_method_info_t g_methods[AUDIO_METHOD_MAX] = { [AUDIO_METHOD_SET_VOLUME_LEVEL] = { .name = "SetVolumeLevel", }, + [AUDIO_METHOD_SET_MUTE] = { + .name = "SetVolumeMute", + }, [AUDIO_METHOD_GET_CONNECTED_DEVICE_LIST] = { .name = "GetConnectedDeviceList", }, diff --git a/common/mm_sound_utils.c b/common/mm_sound_utils.c index aa189a4..d33125e 100644 --- a/common/mm_sound_utils.c +++ b/common/mm_sound_utils.c @@ -26,66 +26,12 @@ #include #include -#include #include #include #include #include "../include/mm_sound_private.h" #include "../include/mm_sound_utils.h" -#define VCONF_KEY_VOLUME_PREFIX "file/private/sound/volume" -#define VCONF_KEY_VOLUME_TYPE_SYSTEM VCONF_KEY_VOLUME_PREFIX"/system" -#define VCONF_KEY_VOLUME_TYPE_NOTIFICATION VCONF_KEY_VOLUME_PREFIX"/notification" -#define VCONF_KEY_VOLUME_TYPE_ALARM VCONF_KEY_VOLUME_PREFIX"/alarm" -#define VCONF_KEY_VOLUME_TYPE_RINGTONE VCONF_KEY_VOLUME_PREFIX"/ringtone" -#define VCONF_KEY_VOLUME_TYPE_MEDIA VCONF_KEY_VOLUME_PREFIX"/media" -#define VCONF_KEY_VOLUME_TYPE_CALL VCONF_KEY_VOLUME_PREFIX"/call" -#define VCONF_KEY_VOLUME_TYPE_VOIP VCONF_KEY_VOLUME_PREFIX"/voip" -#define VCONF_KEY_VOLUME_TYPE_VOICE VCONF_KEY_VOLUME_PREFIX"/voice" -#define VCONF_KEY_VOLUME_TYPE_ANDROID VCONF_KEY_VOLUME_PREFIX"/fixed" - -static char *g_volume_vconf[VOLUME_TYPE_MAX] = { - VCONF_KEY_VOLUME_TYPE_SYSTEM, /* VOLUME_TYPE_SYSTEM */ - VCONF_KEY_VOLUME_TYPE_NOTIFICATION, /* VOLUME_TYPE_NOTIFICATION */ - VCONF_KEY_VOLUME_TYPE_ALARM, /* VOLUME_TYPE_ALARM */ - VCONF_KEY_VOLUME_TYPE_RINGTONE, /* VOLUME_TYPE_RINGTONE */ - VCONF_KEY_VOLUME_TYPE_MEDIA, /* VOLUME_TYPE_MEDIA */ - VCONF_KEY_VOLUME_TYPE_CALL, /* VOLUME_TYPE_CALL */ - VCONF_KEY_VOLUME_TYPE_VOIP, /* VOLUME_TYPE_VOIP */ - VCONF_KEY_VOLUME_TYPE_VOICE, /* VOLUME_TYPE_VOICE */ - VCONF_KEY_VOLUME_TYPE_ANDROID /* VOLUME_TYPE_FIXED */ -}; -static char *g_volume_str[VOLUME_TYPE_MAX] = { - "SYSTEM", - "NOTIFICATION", - "ALARM", - "RINGTONE", - "MEDIA", - "CALL", - "VOIP", - "VOICE", - "FIXED", -}; - -EXPORT_API -int mm_sound_util_volume_get_value_by_type(volume_type_t type, unsigned int *value) -{ - int ret = MM_ERROR_NONE; - int vconf_value = 0; - - /* Get volume value from VCONF */ - if (vconf_get_int(g_volume_vconf[type], &vconf_value)) { - debug_error("vconf_get_int(%s) failed..\n", g_volume_vconf[type]); - return MM_ERROR_SOUND_INTERNAL; - } - - *value = vconf_value; - if (ret == MM_ERROR_NONE) - debug_log("volume_get_value %s %d", g_volume_str[type], *value); - - return ret; -} - EXPORT_API bool mm_sound_util_is_process_alive(pid_t pid) { diff --git a/include/mm_sound.h b/include/mm_sound.h index 99c2bfa..99adec6 100644 --- a/include/mm_sound.h +++ b/include/mm_sound.h @@ -408,7 +408,7 @@ int mm_sound_remove_volume_changed_callback(unsigned int id); * @post Volume value will be changed to given value for given volume type. * @par Example */ -int mm_sound_volume_set_value(volume_type_t type, const unsigned int volume_level); +int mm_sound_volume_set_value(volume_type_t type, const unsigned int value); /** @@ -442,6 +442,9 @@ else */ int mm_sound_volume_get_value(volume_type_t type, unsigned int *value); +int mm_sound_set_mute(volume_type_t type, bool mute); +int mm_sound_get_mute(volume_type_t type, bool *muted); + /** * This function is to set sound filter and apply to selected stream type. * diff --git a/include/mm_sound_client.h b/include/mm_sound_client.h index 7632220..ce62bb9 100644 --- a/include/mm_sound_client.h +++ b/include/mm_sound_client.h @@ -39,9 +39,12 @@ int mm_sound_client_finalize(void); int mm_sound_client_play_tone_with_stream_info(int tone, char *stream_type, int stream_id, double volume, int duration, int *handle); int mm_sound_client_play_sound_with_stream_info(MMSoundPlayParam *param, int *handle, char* stream_type, int stream_id); int mm_sound_client_stop_sound(int handle); -int mm_sound_client_set_volume_by_type(const int volume_type, const unsigned int volume_level); +int mm_sound_client_set_volume_by_type(volume_type_t type, const unsigned int level); +int mm_sound_client_get_volume_by_type(volume_type_t type, unsigned int *level); int mm_sound_client_add_volume_changed_callback(mm_sound_volume_changed_cb func, void* user_data, unsigned int *subs_id); int mm_sound_client_remove_volume_changed_callback(unsigned int subs_id); +int mm_sound_client_set_mute_by_type(volume_type_t type, bool mute); +int mm_sound_client_get_mute_by_type(volume_type_t type, bool *muted); int mm_sound_client_set_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_parameters, const char *filter_group); int mm_sound_client_unset_filter_by_type(const char *stream_type); int mm_sound_client_control_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_controls); diff --git a/include/mm_sound_intf.h b/include/mm_sound_intf.h index ab4a200..fa023e0 100644 --- a/include/mm_sound_intf.h +++ b/include/mm_sound_intf.h @@ -55,6 +55,7 @@ typedef enum audio_method { AUDIO_METHOD_IS_STREAM_ON_DEVICE, AUDIO_METHOD_GET_AUDIO_PATH, AUDIO_METHOD_SET_VOLUME_LEVEL, + AUDIO_METHOD_SET_MUTE, AUDIO_METHOD_ACQUIRE_FOCUS, AUDIO_METHOD_RELEASE_FOCUS, diff --git a/include/mm_sound_proxy.h b/include/mm_sound_proxy.h index f2352e6..4f6d282 100644 --- a/include/mm_sound_proxy.h +++ b/include/mm_sound_proxy.h @@ -58,6 +58,7 @@ int mm_sound_proxy_is_stream_on_device(int stream_id, int device_id, bool *is_on int mm_sound_proxy_set_volume_by_type(const char *volume_type, const unsigned volume_level); int mm_sound_proxy_add_volume_changed_callback(mm_sound_volume_changed_wrapper_cb func, void* userdata, mm_sound_proxy_userdata_free freefunc, unsigned *subs_id); int mm_sound_proxy_remove_volume_changed_callback(unsigned subs_id); +int mm_sound_proxy_set_mute_by_type(const char *volume_type, bool mute); int mm_sound_proxy_emergent_exit(int exit_pid); int mm_sound_proxy_set_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_parameters, const char *filter_group); int mm_sound_proxy_unset_filter_by_type(const char *stream_type); diff --git a/include/mm_sound_utils.h b/include/mm_sound_utils.h index c29a4d2..64c8dc0 100644 --- a/include/mm_sound_utils.h +++ b/include/mm_sound_utils.h @@ -35,8 +35,6 @@ extern "C" { #endif -int mm_sound_util_volume_get_value_by_type(volume_type_t type, unsigned int *value); - bool mm_sound_util_is_process_alive(pid_t pid); #ifdef __cplusplus diff --git a/mm_sound.c b/mm_sound.c index 0fc8598..a689cbe 100644 --- a/mm_sound.c +++ b/mm_sound.c @@ -36,12 +36,6 @@ #include "include/mm_sound_pa_client.h" #include "include/mm_sound_common.h" - -#define VOLUME_MAX_MULTIMEDIA 16 -#define VOLUME_MAX_BASIC 8 -#define VOLUME_MAX_SINGLE 1 - - #define MASTER_VOLUME_MAX 100 #define MASTER_VOLUME_MIN 0 @@ -60,35 +54,6 @@ static const char* _get_volume_str(volume_type_t type) return (type < VOLUME_TYPE_MAX) ? volume_type_str[type] : "Unknown"; } -static int _validate_volume(volume_type_t type, int value) -{ - if (value < 0) - return -1; - - switch (type) { - case VOLUME_TYPE_CALL: - case VOLUME_TYPE_VOIP: - if (value >= VOLUME_MAX_BASIC) { - return -1; - } - break; - case VOLUME_TYPE_SYSTEM: - case VOLUME_TYPE_MEDIA: - case VOLUME_TYPE_ALARM: - case VOLUME_TYPE_NOTIFICATION: - case VOLUME_TYPE_RINGTONE: - case VOLUME_TYPE_VOICE: - if (value >= VOLUME_MAX_MULTIMEDIA) { - return -1; - } - break; - default: - return -1; - break; - } - return 0; -} - EXPORT_API int mm_sound_volume_remove_callback(volume_type_t type) { @@ -128,22 +93,16 @@ int mm_sound_remove_volume_changed_callback(unsigned int subs_id) } EXPORT_API -int mm_sound_volume_set_value(volume_type_t volume_type, const unsigned int volume_level) +int mm_sound_volume_set_value(volume_type_t type, const unsigned int value) { int ret = MM_ERROR_NONE; - debug_msg("type = (%d)%s, value = %d", volume_type, _get_volume_str(volume_type), volume_level); - - /* Check input param */ - if (0 > _validate_volume(volume_type, (int)volume_level)) { - debug_error("invalid volume type %d, value %u", volume_type, volume_level); - return MM_ERROR_INVALID_ARGUMENT; - } - /* request daemon to set volume */ - ret = mm_sound_client_set_volume_by_type(volume_type, volume_level); - if (MM_ERROR_NONE != ret) - debug_error("Can not set volume, ret=0x%x", ret); + ret = mm_sound_client_set_volume_by_type(type, value); + if (ret) + debug_error("can not set volume, type(%s), value(%d), ret=0x%x", _get_volume_str(type), value, ret); + else + debug_msg("set (%s) volume to (%d)", _get_volume_str(type), value); return ret; } @@ -153,19 +112,50 @@ int mm_sound_volume_get_value(volume_type_t type, unsigned int *value) { int ret = MM_ERROR_NONE; + ret = mm_sound_client_get_volume_by_type(type, value); + if (ret) + debug_error("can not get volume, type(%s), ret=0x%x", _get_volume_str(type), ret); + else + debug_msg("(%s) volume : %d", _get_volume_str(type), *value); + + return ret; +} + +EXPORT_API +int mm_sound_set_mute(volume_type_t type, bool mute) +{ + int ret = MM_ERROR_NONE; + + ret = mm_sound_client_set_mute_by_type(type, mute); + if (ret) + debug_error("can not set mute, type(%s), mute(%d), ret=0x%x", _get_volume_str(type), mute, ret); + else + debug_msg("set (%s) mute to (%d)", _get_volume_str(type), mute); + + return ret; +} + +EXPORT_API +int mm_sound_get_mute(volume_type_t type, bool *muted) +{ + int ret = MM_ERROR_NONE; + /* Check input param */ - if (value == NULL) { + if (!muted) { debug_error("invalid argument"); return MM_ERROR_INVALID_ARGUMENT; } - if (type >= VOLUME_TYPE_MAX) { + if (type > VOLUME_TYPE_VOICE) { debug_error("invalid volume type value %d", type); return MM_ERROR_INVALID_ARGUMENT; } - ret = mm_sound_util_volume_get_value_by_type(type, value); + ret = mm_sound_client_get_mute_by_type(type, muted); + if (ret) + debug_error("can not get mute, type(%s), ret=0x%x", _get_volume_str(type), ret); + else + debug_msg("(%s) mute state : %d", _get_volume_str(type), *muted); - debug_msg("returned %s = %d", _get_volume_str(type), *value); return ret; } diff --git a/mm_sound_client.c b/mm_sound_client.c index 3cbdf91..95e5a25 100644 --- a/mm_sound_client.c +++ b/mm_sound_client.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "include/mm_sound.h" #include "include/mm_sound_client.h" @@ -37,6 +38,64 @@ #define CLIENT_HANDLE_MAX 256 #define VOLUME_TYPE_LEN 64 +#define VOLUME_MAX_MULTIMEDIA 16 +#define VOLUME_MAX_BASIC 8 + +#define VCONF_KEY_VOLUME_PREFIX "file/private/sound/volume" +#define VCONF_KEY_VOLUME_TYPE_SYSTEM VCONF_KEY_VOLUME_PREFIX"/system" +#define VCONF_KEY_VOLUME_TYPE_NOTIFICATION VCONF_KEY_VOLUME_PREFIX"/notification" +#define VCONF_KEY_VOLUME_TYPE_ALARM VCONF_KEY_VOLUME_PREFIX"/alarm" +#define VCONF_KEY_VOLUME_TYPE_RINGTONE VCONF_KEY_VOLUME_PREFIX"/ringtone" +#define VCONF_KEY_VOLUME_TYPE_MEDIA VCONF_KEY_VOLUME_PREFIX"/media" +#define VCONF_KEY_VOLUME_TYPE_CALL VCONF_KEY_VOLUME_PREFIX"/call" +#define VCONF_KEY_VOLUME_TYPE_VOIP VCONF_KEY_VOLUME_PREFIX"/voip" +#define VCONF_KEY_VOLUME_TYPE_VOICE VCONF_KEY_VOLUME_PREFIX"/voice" +#define VCONF_KEY_VOLUME_TYPE_ANDROID VCONF_KEY_VOLUME_PREFIX"/fixed" + +#define VCONF_KEY_MUTE_PREFIX "file/private/sound/mute" +#define VCONF_KEY_MUTE_TYPE_SYSTEM VCONF_KEY_MUTE_PREFIX"/system" +#define VCONF_KEY_MUTE_TYPE_NOTIFICATION VCONF_KEY_MUTE_PREFIX"/notification" +#define VCONF_KEY_MUTE_TYPE_ALARM VCONF_KEY_MUTE_PREFIX"/alarm" +#define VCONF_KEY_MUTE_TYPE_RINGTONE VCONF_KEY_MUTE_PREFIX"/ringtone" +#define VCONF_KEY_MUTE_TYPE_MEDIA VCONF_KEY_MUTE_PREFIX"/media" +#define VCONF_KEY_MUTE_TYPE_CALL VCONF_KEY_MUTE_PREFIX"/call" +#define VCONF_KEY_MUTE_TYPE_VOIP VCONF_KEY_MUTE_PREFIX"/voip" +#define VCONF_KEY_MUTE_TYPE_VOICE VCONF_KEY_MUTE_PREFIX"/voice" + +static char *g_volume_vconf[VOLUME_TYPE_MAX] = { + VCONF_KEY_VOLUME_TYPE_SYSTEM, /* VOLUME_TYPE_SYSTEM */ + VCONF_KEY_VOLUME_TYPE_NOTIFICATION, /* VOLUME_TYPE_NOTIFICATION */ + VCONF_KEY_VOLUME_TYPE_ALARM, /* VOLUME_TYPE_ALARM */ + VCONF_KEY_VOLUME_TYPE_RINGTONE, /* VOLUME_TYPE_RINGTONE */ + VCONF_KEY_VOLUME_TYPE_MEDIA, /* VOLUME_TYPE_MEDIA */ + VCONF_KEY_VOLUME_TYPE_CALL, /* VOLUME_TYPE_CALL */ + VCONF_KEY_VOLUME_TYPE_VOIP, /* VOLUME_TYPE_VOIP */ + VCONF_KEY_VOLUME_TYPE_VOICE, /* VOLUME_TYPE_VOICE */ + VCONF_KEY_VOLUME_TYPE_ANDROID /* VOLUME_TYPE_FIXED */ +}; + +static char *g_mute_vconf[] = { + VCONF_KEY_MUTE_TYPE_SYSTEM, /* MUTE_TYPE_SYSTEM */ + VCONF_KEY_MUTE_TYPE_NOTIFICATION, /* MUTE_TYPE_NOTIFICATION */ + VCONF_KEY_MUTE_TYPE_ALARM, /* MUTE_TYPE_ALARM */ + VCONF_KEY_MUTE_TYPE_RINGTONE, /* MUTE_TYPE_RINGTONE */ + VCONF_KEY_MUTE_TYPE_MEDIA, /* MUTE_TYPE_MEDIA */ + VCONF_KEY_MUTE_TYPE_CALL, /* MUTE_TYPE_CALL */ + VCONF_KEY_MUTE_TYPE_VOIP, /* MUTE_TYPE_VOIP */ + VCONF_KEY_MUTE_TYPE_VOICE, /* MUTE_TYPE_VOICE */ +}; + +static char *g_volume_str[VOLUME_TYPE_MAX] = { + "SYSTEM", + "NOTIFICATION", + "ALARM", + "RINGTONE", + "MEDIA", + "CALL", + "VOIP", + "VOICE", + "FIXED", +}; struct callback_data { void *user_cb; @@ -69,6 +128,35 @@ typedef struct _focus_idle_event { int data; } focus_idle_event_t; +static int _validate_volume(volume_type_t type, int level) +{ + if (level < 0) + return -1; + + switch (type) { + case VOLUME_TYPE_CALL: + case VOLUME_TYPE_VOIP: + if (level >= VOLUME_MAX_BASIC) { + return -1; + } + break; + case VOLUME_TYPE_SYSTEM: + case VOLUME_TYPE_MEDIA: + case VOLUME_TYPE_ALARM: + case VOLUME_TYPE_NOTIFICATION: + case VOLUME_TYPE_RINGTONE: + case VOLUME_TYPE_VOICE: + if (level >= VOLUME_MAX_MULTIMEDIA) { + return -1; + } + break; + default: + return -1; + break; + } + return 0; +} + int mm_sound_client_initialize(void) { int ret = MM_ERROR_NONE; @@ -724,24 +812,61 @@ static int __convert_volume_type_to_int(const char *volume_type_str, volume_type return ret; } -int mm_sound_client_set_volume_by_type(const int volume_type, const unsigned int volume_level) +int mm_sound_client_set_volume_by_type(volume_type_t type, const unsigned int level) { int ret = MM_ERROR_NONE; char *type_str = NULL; debug_fenter(); - if ((ret = __convert_volume_type_to_str(volume_type, &type_str)) != MM_ERROR_NONE) { + if (type >= VOLUME_TYPE_MAX) { + debug_error("invalid volume type %d", type); + return MM_ERROR_INVALID_ARGUMENT; + } + + /* Check input param */ + if (0 > _validate_volume(type, (int)level)) { + debug_error("invalid level %u of %s", level, g_volume_str[type]); + return MM_ERROR_INVALID_ARGUMENT; + } + + if ((ret = __convert_volume_type_to_str(type, &type_str)) != MM_ERROR_NONE) { debug_error("volume type convert failed"); goto failed; } - ret = mm_sound_proxy_set_volume_by_type(type_str, volume_level); + ret = mm_sound_proxy_set_volume_by_type(type_str, level); failed: debug_fleave(); return ret; } +int mm_sound_client_get_volume_by_type(volume_type_t type, unsigned int *level) +{ + int ret = MM_ERROR_NONE; + int vconf_value = 0; + + if (level == NULL) { + debug_error("invalid argument, level is null"); + return MM_ERROR_INVALID_ARGUMENT; + } + + if (type >= VOLUME_TYPE_MAX) { + debug_error("invalid volume type %d", type); + return MM_ERROR_INVALID_ARGUMENT; + } + + /* Get volume value from VCONF */ + if (vconf_get_int(g_volume_vconf[type], &vconf_value)) { + debug_error("vconf_get_int(%s) failed..\n", g_volume_vconf[type]); + return MM_ERROR_SOUND_INTERNAL; + } + + *level = vconf_value; + + return ret; +} + static void _mm_sound_volume_changed_callback_wrapper_func(const char *direction, const char *volume_type_str, int volume_level, void *userdata) { @@ -792,6 +917,54 @@ int mm_sound_client_remove_volume_changed_callback(unsigned int subs_id) return ret; } +int mm_sound_client_set_mute_by_type(volume_type_t type, bool mute) +{ + int ret = MM_ERROR_NONE; + char *type_str = NULL; + + debug_fenter(); + + if (type > VOLUME_TYPE_VOICE) { + debug_error("invalid volume type %d", type); + return MM_ERROR_INVALID_ARGUMENT; + } + + if ((ret = __convert_volume_type_to_str(type, &type_str)) != MM_ERROR_NONE) { + debug_error("volume type convert failed"); + goto failed; + } + + ret = mm_sound_proxy_set_mute_by_type(type_str, mute); + +failed: + debug_fleave(); + return ret; +} + +int mm_sound_client_get_mute_by_type(volume_type_t type, bool *muted) +{ + int ret = MM_ERROR_NONE; + int vconf_value = 0; + + debug_fenter(); + + if (type > VOLUME_TYPE_VOICE) { + debug_error("invalid volume type %d", type); + return MM_ERROR_INVALID_ARGUMENT; + } + + /* Get mute state from VCONF */ + if (vconf_get_bool(g_mute_vconf[type], &vconf_value)) { + debug_error("vconf_get_int(%s) failed..\n", g_mute_vconf[type]); + return MM_ERROR_SOUND_INTERNAL; + } + + *muted = (bool)vconf_value; + + debug_fleave(); + return ret; +} + int mm_sound_client_set_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_parameters, const char *filter_group) { int ret = MM_ERROR_NONE; diff --git a/mm_sound_proxy.c b/mm_sound_proxy.c index 0351640..31cfafe 100644 --- a/mm_sound_proxy.c +++ b/mm_sound_proxy.c @@ -711,6 +711,40 @@ int mm_sound_proxy_remove_volume_changed_callback(unsigned subs_id) return ret; } +int mm_sound_proxy_set_mute_by_type(const char *volume_type, bool mute) +{ + int ret = MM_ERROR_NONE; + char *reply = NULL, *direction = "out"; + GVariant *params = NULL, *result = NULL; + + debug_fenter(); + + if ((params = g_variant_new("(ssu)", direction, volume_type, (unsigned int)mute)) == NULL) { + debug_error("Construct Param for method call failed"); + return MM_ERROR_SOUND_INTERNAL; + } + + if ((ret = mm_sound_dbus_method_call_to(AUDIO_PROVIDER_STREAM_MANAGER, AUDIO_METHOD_SET_MUTE, params, &result)) != MM_ERROR_NONE) { + debug_error("dbus set mute by type failed"); + g_variant_unref(result); + return ret; + } + + if (result) { + g_variant_get(result, "(&s)", &reply); + debug_log("reply : %s", reply); + if (strcmp(reply, "STREAM_MANAGER_RETURN_OK")) + ret = MM_ERROR_SOUND_INTERNAL; + g_variant_unref(result); + } else { + debug_error("reply null"); + ret = MM_ERROR_SOUND_INTERNAL; + } + + debug_fleave(); + return ret; +} + int mm_sound_proxy_set_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_parameters, const char *filter_group) { int ret = MM_ERROR_NONE; diff --git a/packaging/libmm-sound.spec b/packaging/libmm-sound.spec index 00944f4..38ead95 100644 --- a/packaging/libmm-sound.spec +++ b/packaging/libmm-sound.spec @@ -1,6 +1,6 @@ Name: libmm-sound Summary: MMSound Package contains client lib and sound_server binary -Version: 0.12.38 +Version: 0.12.39 Release: 0 Group: System/Libraries License: Apache-2.0 -- 2.7.4