#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <aul.h>
#include <regex.h>
#include <fontconfig/fontconfig.h>
-#include <alarm.h>
-
#include <pkgmgr-info.h>
#include <system_settings.h>
#include <system_settings_private.h>
+#include <system_settings_ringtones.h>
+#include <system_settings_json.h>
+
#include <tzplatform_config.h>
+#include <alarm.h>
#ifdef USE_EFL_ASSIST
#include <efl_assist.h>
#endif
+
+
#define SETTING_FONT_CONF_FILE _TZ_SYS_ETC"/fonts/conf.avail/99-tizen.conf"
#define SETTING_DEFAULT_FONT_CONF_FILE _TZ_SYS_ETC"/fonts/conf.avail/99-tizen.conf"
#define SETTING_TIME_SHARE_LOCAL_PATH "/usr/share/locale"
#define SETTING_TZONE_SYMLINK_PATH "/opt/etc/localtime"
+
+#define __FREE(del, arg) do { \
+ if (arg) { \
+ del((void *)(arg)); /*cast any argument to (void*) to avoid build warring*/\
+ arg = NULL; \
+ } \
+ } while (0);
+#define FREE(arg) __FREE(free, arg)
+
#ifdef SETTING_ARCH_64
#define SETTING_UTILS_SO_FILE_PATH "/usr/lib64/libsystem-settings-util.so.0.1.0"
#else
{
SETTING_TRACE_BEGIN;
int vconf_value;
+ int ** val = (int**)value;
if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE, &vconf_value)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- *value = (void *)vconf_value;
+ **val = vconf_value;
return SYSTEM_SETTINGS_ERROR_NONE;
}
*
* @return SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE raise exception if current lock type is 'password'
*/
-/* LCOV_EXCL_START */
int system_setting_get_lockscreen_app(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
{
SETTING_TRACE_BEGIN;
*value = pkg_name;
return SYSTEM_SETTINGS_ERROR_NONE;
}
-/* LCOV_EXCL_STOP */
/*////////////////////////////////////////////////////////////////////////////////////////////////// */
}
}
+
+
+/*////////////////////////////////////////////////////////////////////////////////////////////////// */
+// @todo move to CMake
+#define DEF_RINGTONE_FILE_PATH "/opt/share/settings/Ringtones"
+#define USR_RINGTONE_FILE_PATH "/home/owner/content/Sounds/Ringtones"
+#define JSONFILE "/opt/home/owner/apps_rw/org.tizen.setting/data/.user-ringtones.json"
+
+#if 0
+static char* _get_json_file_path()
+{
+ // for testing
+ return JSONFILE;
+}
+#endif
+
+int system_setting_add_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+{
+ SETTING_TRACE_BEGIN;
+ char* pathval = (char*)value;
+
+#ifdef USE_JSONFILE
+ // NOT IN USE
+ JsonParser *parser = ss_json_ringtone_open_file(JSONFILE);
+#else
+ JsonParser *parser = ss_json_ringtone_load_from_data();
+#endif
+
+ JsonNode *root = json_parser_get_root(parser);
+
+ // dirname
+ // basename
+ int ret = SYSTEM_SETTINGS_ERROR_NONE;
+ if (false == ss_json_ringtone_contain(root, pathval)) {
+ SETTING_TRACE("---> dirname is : %s ", dirname(strdup(pathval)));
+ SETTING_TRACE("---> basename is : %s ", basename(strdup(pathval)));
+ // @todo : MAKE SURE THE ACTUAL FILE IS THERE ON PATHVAL(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER)
+ ss_json_ringtone_add(root, JSONFILE, pathval, pathval);
+ SETTING_TRACE("pathval is : %s -- OK", pathval);
+ } else {
+ SETTING_TRACE("pathval is duplicated : %s", pathval);
+ SETTING_TRACE("---> dirname is : %s ", dirname(strdup(pathval)));
+ SETTING_TRACE("---> basename is : %s ", basename(strdup(pathval)));
+ ret = SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (parser) {
+ g_object_unref(parser);
+ parser = NULL;
+ }
+
+ return ret;
+}
+
+int system_setting_del_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+{
+ SETTING_TRACE_BEGIN;
+ char* pathval = (char*)value;
+#ifdef USE_JSONFILE
+ // NOT IN USE
+ JsonParser* parser = ss_json_ringtone_open_file(JSONFILE);
+#else
+ JsonParser* parser = ss_json_ringtone_load_from_data();
+#endif
+ JsonNode *root = json_parser_get_root(parser);
+
+ ss_json_ringtone_remove(root, JSONFILE, pathval);
+ //void ss_json_ringtone_remove(JsonNode *root, char* filename, char* path_to_del)
+
+ ss_json_ringtone_print(root);
+ if (parser) {
+ g_object_unref(parser);
+ parser = NULL;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+
+static int _compare_cb(const void *d1, const void *d2)
+{
+ fileNodeInfo *pNode1 = (fileNodeInfo *)d1;
+ fileNodeInfo *pNode2 = (fileNodeInfo *)d2;
+
+ return strcmp(pNode1->media_name, pNode2->media_name);
+}
+
+/*
+ * get the RINGTONE list
+ */
+static void _get_default_ringtones(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ /*Get file list */
+ Eina_List *filelist = NULL;
+ Eina_List *l = NULL;
+ fileNodeInfo *node = NULL;
+ int idx = 0;
+
+ //-----------------------------------------------------------------------------------------------------------------
+ // 1. get the default ringtone list
+ //-----------------------------------------------------------------------------------------------------------------
+ int ret = get_filelist_from_dir_path(DEF_RINGTONE_FILE_PATH, &filelist);
+ if (ret != 0) {
+ SETTING_TRACE("Failed to get filelist, ret = %d %s", ret, DEF_RINGTONE_FILE_PATH);
+ }
+ filelist = eina_list_sort(filelist, eina_list_count(filelist), _compare_cb);
+
+ EINA_LIST_FOREACH(filelist, l, node)
+ {
+ SETTING_TRACE("file path = (%d) : name:%s path:%s [%s]", ret, node->name, node->path, node->media_name);
+ // @todo assert NULL check
+ if (callback) {
+ char temp[1024];
+ snprintf(temp, 1024, "%s/%s", node->path, node->name);
+ char* path = strdup(temp);
+ bool ret = callback(idx, (void *)(path), data);
+ if (path) {
+ free(path);
+ path = NULL;
+ }
+ if (ret == false) {
+ SETTING_TRACE("quit the iteration by return value == false : %d", ret);
+ break;
+ }
+
+ } else {
+ SETTING_TRACE("--> system_setting_data_iterator is NULL");
+ }
+ }
+
+ l = NULL;
+ node = NULL;
+ EINA_LIST_FOREACH(filelist, l, node)
+ {
+ FREE(node->path);
+ FREE(node->name);
+ FREE(node->media_name);
+ FREE(node);
+ }
+ eina_list_free(filelist);
+ filelist = NULL;
+
+}
+
+static void _get_user_ringtones(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *data)
+{
+ SETTING_TRACE_BEGIN;
+
+#ifdef USE_JSONFILE
+ // NOT IN USE
+ JsonParser* parser = ss_json_ringtone_open_file(JSONFILE);
+#else
+ JsonParser* parser = ss_json_ringtone_load_from_data();
+#endif
+
+ JsonNode *root = json_parser_get_root(parser);
+ int size = json_array_get_length(json_node_get_array(root));
+
+ int i = 0;
+ for (i = 0; i < size ; i++) {
+ JsonObject *ringtone = json_array_get_object_element(json_node_get_array(root), i);
+ char *nameval = (char *)json_object_get_string_member(ringtone, "name");
+ char *pathval = (char *)json_object_get_string_member(ringtone, "path");
+ SETTING_TRACE("(%s) --- (%s) \n", nameval, pathval);
+ if (callback) {
+ char* path = strdup(pathval);
+ bool ret = callback(i, (void *)(path), data);
+ if (ret == false) {
+ SETTING_TRACE("quit the iteration by return value == false : %d", ret);
+ break;
+ }
+ } else {
+ SETTING_TRACE("--> callback is NULL");
+ }
+ }
+}
+
+int system_setting_list_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *data)
+{
+ SETTING_TRACE_BEGIN;
+
+ _get_default_ringtones(key, data_type, callback, data);
+ //-----------------------------------------------------------------------------------------------------------------
+ // 2. get the USER ringtone list
+ //-----------------------------------------------------------------------------------------------------------------
+ _get_user_ringtones(key, data_type, callback, data);
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+
/* LCOV_EXCL_START */
int system_setting_set_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
{
{
SETTING_TRACE_BEGIN;
int *vconf_value;
- vconf_value = (int *)value;
+ vconf_value = *(int **)value;
if (*vconf_value < 0 || *vconf_value > SYSTEM_SETTINGS_FONT_SIZE_GIANT) {
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
{
SETTING_TRACE_BEGIN;
time_t cur_tick;
+ int ** val = (int**)value;
cur_tick = time(NULL);
- *value = (void *)cur_tick;
+ **val = cur_tick;
/* struct tm * localtime = time (cur_tick); */
/* printf("%s\n", ctime(&cur_tick); */
return SYSTEM_SETTINGS_ERROR_NONE;
{
SETTING_TRACE_BEGIN;
int vconf_value;
+ int ** val = (int**)value;
if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &vconf_value)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- *value = (void *)vconf_value;
+ **val = vconf_value;
return SYSTEM_SETTINGS_ERROR_NONE;
}
{
SETTING_TRACE_BEGIN;
int *vconf_value;
- vconf_value = (int *)value;
+ vconf_value = *(int **)value;
if (!(*vconf_value > 0 && *vconf_value < 600)) {
SETTING_TRACE(" ERR Betweeny here 0 ~ 600");
int system_setting_get_notification_repetition_period(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
{
SETTING_TRACE_BEGIN;
+ int ** val = (int**)value;
int vconf_value;
if (system_setting_vconf_get_value_int(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, &vconf_value)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- *value = (void *)vconf_value;
+ **val = vconf_value;
return SYSTEM_SETTINGS_ERROR_NONE;
}
{
SETTING_TRACE_BEGIN;
int *vconf_value;
- vconf_value = (int *)value;
+ vconf_value = *(int **)value;
if (system_setting_vconf_set_value_int(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, *vconf_value)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
int system_setting_get_lock_state(system_settings_key_e key, system_setting_data_type_e data_type, void **value)
{
int vconf_value;
+ int ** val = (int**)value;
if (system_setting_vconf_get_value_int(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, &vconf_value)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- *value = (void *)vconf_value;
+ **val = vconf_value;
return SYSTEM_SETTINGS_ERROR_NONE;
}
{
SETTING_TRACE_BEGIN;
int *vconf_value;
- vconf_value = (int *)value;
+ vconf_value = *(int **)value;
if (system_setting_vconf_set_value_int(VCONFKEY_IDLE_LOCK_STATE_READ_ONLY, *vconf_value)) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
system_setting_set_changed_callback_incoming_call_ringtone,
system_setting_unset_changed_callback_incoming_call_ringtone,
NULL,
+ system_setting_add_incoming_call_ringtone, /* ADD */
+ system_setting_del_incoming_call_ringtone, /* DEL */
+ system_setting_list_incoming_call_ringtone, /* LIST */
NULL /* user data */
},
system_setting_set_changed_callback_wallpaper_home_screen,
system_setting_unset_changed_callback_wallpaper_home_screen,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
system_setting_set_changed_callback_wallpaper_lock_screen,
system_setting_unset_changed_callback_wallpaper_lock_screen,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
system_setting_set_changed_callback_font_size,
system_setting_unset_changed_callback_font_size,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
system_setting_set_changed_callback_font_type,
system_setting_unset_changed_callback_font_type,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
system_setting_set_changed_callback_motion_activation,
system_setting_unset_changed_callback_motion_activation,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
system_setting_set_changed_callback_email_alert_ringtone,
system_setting_unset_changed_callback_email_alert_ringtone,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_usb_debugging_option,
system_setting_unset_changed_callback_usb_debugging_option,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_3g_data_network,
system_setting_unset_changed_callback_3g_data_network,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_lockscreen_app,
system_setting_unset_changed_callback_lockscreen_app,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
NULL,
NULL,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_locale_country,
system_setting_unset_changed_callback_locale_country,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_locale_language,
system_setting_unset_changed_callback_locale_language,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_locale_timeformat_24hour,
system_setting_unset_changed_callback_locale_timeformat_24hour,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_locale_timezone,
system_setting_unset_changed_callback_locale_timezone,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_time_changed,
system_setting_unset_changed_callback_time_changed,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_sound_lock,
system_setting_unset_changed_callback_sound_lock,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_sound_silent_mode,
system_setting_unset_changed_callback_sound_silent_mode,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_sound_touch,
system_setting_unset_changed_callback_sound_touch,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_auto_rotation_mode,
system_setting_unset_changed_callback_auto_rotation_mode,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_screen_backlight_time,
system_setting_unset_changed_callback_screen_backlight_time,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_sound_notification,
system_setting_unset_changed_callback_sound_notification,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_notification_repetition_period,
system_setting_unset_changed_callback_notification_repetition_period,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_device_name,
system_setting_unset_changed_callback_device_name,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_motion_activation,
system_setting_unset_changed_callback_motion_activation,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_network_flight_mode,
system_setting_unset_changed_callback_network_flight_mode,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_network_wifi_notification,
system_setting_unset_changed_callback_network_wifi_notification,
NULL,
+ NULL, /* ADD */
+ NULL, /* DEL */
+ NULL, /* LIST */
NULL /* user data */
},
{
system_setting_set_changed_callback_lock_state,
system_setting_unset_changed_callback_lock_state,
NULL,
+ NULL, /* add */
+ NULL, /* del */
+ NULL, /* list */
NULL /* user data */
},
{
system_setting_set_changed_callback_ads_id,
system_setting_unset_changed_callback_ads_id,
NULL,
+ NULL, /* add */
+ NULL, /* del */
+ NULL, /* list */
NULL /* user data */
},
+
{
SYSTEM_SETTINGS_MAX, -1, NULL, NULL, NULL, NULL, NULL, NULL
}
}
/* LCOV_EXCL_STOP */
+
+
+int system_settings_add_value(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+{
+ LOGE("Enter [%s]", __FUNCTION__);
+ if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key) || value == NULL) {
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+
+ system_setting_h system_setting_item;
+ system_setting_add_value_cb system_setting_adder;
+
+ int ret = system_settings_get_item(key, &system_setting_item);
+
+ if (0 != ret) {
+ LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ /* type check */
+ if (system_setting_item->data_type != data_type) {
+ LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid data type", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ system_setting_adder = system_setting_item->add_value_cb;
+
+ if (system_setting_adder == NULL) {
+ LOGE("[%s] IO_ERROR(0x%08x) : failed to call setter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ return system_setting_adder(key, system_setting_item->data_type, value);
+}
+
+
+int system_settings_del_value(system_settings_key_e key, system_setting_data_type_e data_type, void *value)
+{
+ LOGE("Enter [%s]", __FUNCTION__);
+ if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key) || value == NULL) {
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+
+ system_setting_h system_setting_item;
+ system_setting_del_value_cb system_setting_deler;
+
+ int ret = system_settings_get_item(key, &system_setting_item);
+
+ if (0 != ret) {
+ LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ /* type check */
+ if (system_setting_item->data_type != data_type) {
+ LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid data type", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ system_setting_deler = system_setting_item->del_value_cb;
+
+ if (system_setting_deler == NULL) {
+ LOGE("[%s] IO_ERROR(0x%08x) : failed to call setter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ return system_setting_deler(key, system_setting_item->data_type, value);
+}
+
+
+
+
+
+//system_setting_list_value_cb list_changed_cb;
+int system_settings_list_value(system_settings_key_e key, system_setting_data_type_e data_type, bool (*system_setting_data_iterator)(int, void *, void *), void *value)
+{
+ LOGE("Enter [%s]", __FUNCTION__);
+ if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key) || value == NULL) {
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+
+ system_setting_h system_setting_item;
+ system_setting_list_value_cb system_setting_lister;
+
+ int ret = system_settings_get_item(key, &system_setting_item);
+
+ if (0 != ret) {
+ LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ /* type check */
+ if (system_setting_item->data_type != data_type) {
+ LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid data type", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ //system_setting_list_value_cb list_changed_cb;
+ system_setting_lister = system_setting_item->list_value_cb;
+
+ if (system_setting_lister == NULL) {
+ LOGE("[%s] IO_ERROR(0x%08x) : failed to call setter for the system settings", __FUNCTION__, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ return system_setting_lister(key, system_setting_item->data_type, system_setting_data_iterator, value);
+}
+
+
+
+
+
+
/* LCOV_EXCL_START */
int system_settings_set_value_int(system_settings_key_e key, int value)
{
}
int *ptr = &value;
- return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void *)ptr);
+ int **p_ptr = &ptr;
+ return system_settings_set_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void *)p_ptr);
}
/* LCOV_EXCL_STOP */
if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
-
- return system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void **)value);
+ int value_int = 0;
+ int *ptr = &value_int;
+ int **p_ptr = &ptr;
+ int ret = 0;
+ ret = system_settings_get_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void **)p_ptr);
+ *value = value_int;
+ return ret;
}
/* LCOV_EXCL_START */
return system_setting_unset_changed_cb(key);
}
+//////////////////////////////////////////////////////////////////////////////////////////////////
+// list
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+int system_settings_foreach_value_string(system_settings_key_e key, system_settings_iter_cb callback, void *value)
+{
+ LOGE("Enter [%s]", __FUNCTION__);
+ if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ return system_settings_list_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, callback, (void *)value);
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+// add
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+int system_settings_add_value_string(system_settings_key_e key, const char* value)
+{
+ LOGE("Enter [%s]", __FUNCTION__);
+ if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ return system_settings_add_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void *)value);
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+// del
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+int system_settings_delete_value_string(system_settings_key_e key, const char* value)
+{
+ LOGE("Enter [%s]", __FUNCTION__);
+ if (!(key >= 0 && SYSTEM_SETTINGS_KEY_MAX > key)) {
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ return system_settings_del_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void *)value);
+}
+
+