From: pr.jung Date: Wed, 30 Mar 2016 02:01:49 +0000 (+0900) Subject: Get Ringtone path from system setting api X-Git-Tag: accepted/tizen/ivi/20160330.062958 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Ftags%2Faccepted%2Ftizen%2Fivi%2F20160330.062958;p=platform%2Fcore%2Fsystem%2Flibstorage.git Get Ringtone path from system setting api Change-Id: I4a837028d9e6b49c6d57b2d3c62da36a108e3784 Signed-off-by: pr.jung --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f621ade..a846ba6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ SET(VERSION 0.1) SET(INC_DIR include) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/${INC_DIR}) -SET(dependents "dlog capi-base-common vconf glib-2.0 libtzplatform-config") +SET(dependents "dlog capi-base-common vconf glib-2.0 libtzplatform-config capi-system-system-settings") SET(pc_dependents "capi-base-common") INCLUDE(FindPkgConfig) diff --git a/packaging/libstorage.spec b/packaging/libstorage.spec index f9eef1f..9f1087a 100644 --- a/packaging/libstorage.spec +++ b/packaging/libstorage.spec @@ -12,6 +12,7 @@ BuildRequires: pkgconfig(capi-base-common) BuildRequires: pkgconfig(vconf) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(libtzplatform-config) +BuildRequires: pkgconfig(capi-system-system-settings) %description development package of library to get storage diff --git a/src/storage.c b/src/storage.c index dcf301d..e21b0cd 100644 --- a/src/storage.c +++ b/src/storage.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "common.h" #include "list.h" @@ -33,7 +34,7 @@ const char *dir_path[STORAGE_DIRECTORY_MAX] = { [STORAGE_DIRECTORY_MUSIC] = "Music", [STORAGE_DIRECTORY_DOCUMENTS] = "Documents", [STORAGE_DIRECTORY_OTHERS] = "Others", - [STORAGE_DIRECTORY_SYSTEM_RINGTONES] = "/usr/apps/org.tizen.setting/shared/res/settings/Ringtones", + [STORAGE_DIRECTORY_SYSTEM_RINGTONES] = "", }; static dd_list *st_head; @@ -100,6 +101,8 @@ API int storage_get_directory(int storage_id, storage_directory_e type, char **p const struct storage_ops *st; const char *root; char temp[PATH_MAX]; + char *temp2, *end; + int ret; if (!path) { _E("Invalid parameger"); @@ -124,9 +127,18 @@ API int storage_get_directory(int storage_id, storage_directory_e type, char **p } root = st->root(); - if (type == STORAGE_DIRECTORY_SYSTEM_RINGTONES) - snprintf(temp, PATH_MAX, "%s", dir_path[type]); - else + if (type == STORAGE_DIRECTORY_SYSTEM_RINGTONES) { + ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &temp2); + if (ret < 0) { + _E("Failed to get ringtone path : %d", ret); + return STORAGE_ERROR_OPERATION_FAILED; + } + end = strrchr(temp2, '/'); + if (end) + *end = '\0'; + snprintf(temp, PATH_MAX, "%s", temp2); + free(temp2); + } else snprintf(temp, PATH_MAX, "%s/%s", root, dir_path[type]); *path = strdup(temp);