Set vconf key when the dbus API for set volume succeed 60/51360/2 accepted/tizen/mobile/20151110.070552 accepted/tizen/tv/20151110.070623 accepted/tizen/wearable/20151110.070642 submit/tizen/20151110.050237
authorSangchul Lee <sc11.lee@samsung.com>
Mon, 9 Nov 2015 06:15:17 +0000 (15:15 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Tue, 10 Nov 2015 01:54:31 +0000 (10:54 +0900)
[Version] Release 0.3.26
[profile] Common
[Issue Type] Feature enhancement

Change-Id: I06df81a2d5ec236c79fb7f253d7d50a8dd4ca02d
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
CMakeLists.txt
packaging/capi-media-sound-manager.spec
src/sound_manager_private.c

index 6231e5f7b8da808266692541d22da132ed4d2f16..ffce8984ae2dd0cbb407e8204a981f1271b27bd1 100644 (file)
@@ -23,7 +23,7 @@ SET(service "media")
 SET(submodule "sound-manager")
 
 # for package file
-SET(dependents "mm-sound dlog capi-base-common mm-session libpulse gio-2.0")
+SET(dependents "mm-sound dlog capi-base-common mm-session libpulse gio-2.0 vconf")
 SET(pc_dependents "capi-base-common")
 
 # for deb
index bd1e643a803b3f52b0eb0c67c11901085291bfc8..c120843f4e5358c47235abe73f2e6c956794854e 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-sound-manager
 Summary:    Sound Manager library
-Version:    0.3.25
+Version:    0.3.26
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index de3cf8f1caa16ddc5164fc2f73b356fcc4ce451a..61ac59c1c5c8ab42fa656d4768e2659e8c61f704 100644 (file)
@@ -17,6 +17,7 @@
 #include <sound_manager.h>
 #include <sound_manager_private.h>
 #include <mm_sound.h>
+#include <vconf.h>
 
 #define PA_BUS_NAME                                             "org.pulseaudio.Server"
 #define PA_STREAM_MANAGER_OBJECT_PATH                           "/org/pulseaudio/StreamManager"
@@ -29,6 +30,8 @@
 #define PA_STREAM_MANAGER_METHOD_NAME_SET_VOLUME_LEVEL          "SetVolumeLevel"
 #define PA_STREAM_MANAGER_METHOD_NAME_GET_CURRENT_VOLUME_TYPE   "GetCurrentVolumeType"
 #define PA_STREAM_MANAGER_METHOD_NAME_UPDATE_FOCUS_STATUS       "UpdateFocusStatus"
+#define VCONF_PATH_PREFIX_VOLUME                                "file/private/sound/volume/"
+#define VCONF_PATH_MAX                                          64
 
 extern _session_interrupt_info_s g_session_interrupt_cb_table;
 extern _session_mode_e g_cached_session_mode;
@@ -727,7 +730,6 @@ int _set_manual_route_info(unsigned int index, manual_route_info_s *info)
 int _set_route_option(unsigned int index, const char *name, int value)
 {
        int ret = MM_ERROR_NONE;
-
        GVariant *result = NULL;
        GDBusConnection *conn = NULL;
        GError *err = NULL;
@@ -777,7 +779,6 @@ int _set_route_option(unsigned int index, const char *name, int value)
 int _get_volume_max_level(const char *direction, const char *volume_type, unsigned int *max_level)
 {
        int ret = MM_ERROR_NONE;
-
        GVariant *result = NULL;
        GDBusConnection *conn = NULL;
        GError *err = NULL;
@@ -824,7 +825,6 @@ int _get_volume_max_level(const char *direction, const char *volume_type, unsign
 int _get_volume_level(const char *direction, const char *volume_type, unsigned int *level)
 {
        int ret = MM_ERROR_NONE;
-
        GVariant *result = NULL;
        GDBusConnection *conn = NULL;
        GError *err = NULL;
@@ -871,7 +871,6 @@ int _get_volume_level(const char *direction, const char *volume_type, unsigned i
 int _set_volume_level(const char *direction, const char *volume_type, unsigned int level)
 {
        int ret = MM_ERROR_NONE;
-
        GVariant *result = NULL;
        GDBusConnection *conn = NULL;
        GError *err = NULL;
@@ -898,7 +897,7 @@ int _set_volume_level(const char *direction, const char *volume_type, unsigned i
                                                        NULL,
                                                        &err);
        if (!result && err) {
-               LOGE("g_dbus_connection_call_sync() for GET_VOLUME_LEVEL error (%s)", err->message);
+               LOGE("g_dbus_connection_call_sync() for SET_VOLUME_LEVEL error (%s)", err->message);
                g_error_free(err);
                ret = MM_ERROR_SOUND_INTERNAL;
        } else {
@@ -907,7 +906,14 @@ int _set_volume_level(const char *direction, const char *volume_type, unsigned i
                LOGI("g_dbus_connection_call_sync() success, method return value is (%s)", dbus_ret);
                if (strncmp("STREAM_MANAGER_RETURN_OK", dbus_ret, strlen(dbus_ret)))
                        ret = MM_ERROR_SOUND_INTERNAL;
-
+               else {
+                       int vret = 0;
+                       char volume_path[VCONF_PATH_MAX] = {0,};
+                       /* Set volume value to VCONF */
+                       snprintf(volume_path, sizeof(volume_path)-1, "%s%s", VCONF_PATH_PREFIX_VOLUME, volume_type);
+                       if ((vret = vconf_set_int(volume_path, (int)level)))
+                               LOGE("vconf_set_int(%s) failed..ret[%d]\n", volume_path, vret);
+               }
                g_variant_unref(result);
        }
        g_object_unref(conn);
@@ -917,7 +923,6 @@ int _set_volume_level(const char *direction, const char *volume_type, unsigned i
 int _get_current_volume_type(const char *direction, char **volume_type)
 {
        int ret = MM_ERROR_NONE;
-
        GVariant *result = NULL;
        GDBusConnection *conn = NULL;
        GError *err = NULL;