#endif
#define API __attribute__((visibility("default")))
+#ifndef FALSE
+#define FALSE (0)
+#endif
+
+#ifndef TRUE
+#define TRUE (1)
+#endif
+
#define SST_EQUAL 0
#ifndef SST_RES_DIR
#include <efl_extension.h>
#include "system_settings.h"
#include "sst.h"
-#include "sst_core.h"
#ifdef TIZEN_WEARABLE
#define SMALL_FONT_DPI (-90)
return ret;
}
-API bool sstu_is_valid_image(char *path)
+API bool sstu_is_valid_image(const char *path)
{
void *ee;
void *evas;
{
}
-API int sstu_is_available_font(char *font_name)
+API int sstu_is_available_font(const char *font_name)
{
FcObjectSet *os;
FcFontSet *fs;
return font_size;
}
-API bool sstu_set_font_config(char *font_name)
+API bool sstu_set_font_config(const char *font_name)
{
int font_size = _get_font_size();
- return eext_config_font_set(font_name, font_size);
+ return eext_config_font_set((char*)font_name, font_size);
}
API void sstu_set_font_size()
#include "system_settings.h"
#include "sst.h"
-#include "sst_core.h"
-#include "sst_misc.h"
#include "sst_vconf.h"
+#include "sst_sound.h"
#include "sst_interface.h"
API int system_settings_set_value_int(system_settings_key_e key, int value)
{
int ret;
+ sst_interface *iface = NULL;
+ ret = sst_get_interface(key, &iface);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_get_interface(%d) Fail(%d)", key, ret);
+ return ret;
+ }
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
+ if (SYSTEM_SETTING_DATA_TYPE_INT != iface->data_type) {
+ ERR("Invalide type for key(%d) : %d", key, iface->data_type);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
- //todo: need to revise
- int *ptr = &value;
- int **p_ptr = &ptr;
+ if (NULL == iface->setter.i) {
+ ERR("No setter for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
- ret = sst_set_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void*)p_ptr);
+ ret = iface->setter.i(iface, value);
if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_set_value(%d) Fail(%d)", key, ret);
+ ERR("setter(%d) Fail(%d)", key, ret);
return ret;
}
API int system_settings_get_value_int(system_settings_key_e key, int *value)
{
int ret;
- int value_int = 0;
- int *ptr = &value_int;
- int **p_ptr = &ptr;
+ sst_interface *iface = NULL;
+ ret = sst_get_interface(key, &iface);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_get_interface(%d) Fail(%d)", key, ret);
+ return ret;
+ }
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
+ if (SYSTEM_SETTING_DATA_TYPE_INT != iface->data_type) {
+ ERR("Invalide type for key(%d) : %d", key, iface->data_type);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (NULL == iface->getter.i) {
+ ERR("No getter for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
- ret = sst_get_value(key, SYSTEM_SETTING_DATA_TYPE_INT, (void **)p_ptr);
+ int result = 0;
+ ret = iface->getter.i(iface, &result);
if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_get_value(%d) Fail(%d)", key, ret);
+ ERR("getter(%d) Fail(%d)", key, ret);
return ret;
}
- *value = value_int;
+
+ *value = result;
return SYSTEM_SETTINGS_ERROR_NONE;
}
API int system_settings_set_value_bool(system_settings_key_e key, bool value)
{
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
+ int ret;
+ sst_interface *iface = NULL;
+ ret = sst_get_interface(key, &iface);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_get_interface(%d) Fail(%d)", key, ret);
+ return ret;
+ }
+
+ if (SYSTEM_SETTING_DATA_TYPE_BOOL != iface->data_type) {
+ ERR("Invalide type for key(%d) : %d", key, iface->data_type);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
- bool *ptr = &value;
- int ret = sst_set_value(key, SYSTEM_SETTING_DATA_TYPE_BOOL, (void*)ptr);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("sst_set_value(%d), Fail(%d)", key, ret);
+ if (NULL == iface->setter.b) {
+ ERR("No setter for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
- return ret;
+ ret = iface->setter.b(iface, value);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("setter(%d) Fail(%d)", key, ret);
+ return ret;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
}
API int system_settings_get_value_bool(system_settings_key_e key, bool *value)
{
int ret;
- signed long flag = 0;
+ sst_interface *iface = NULL;
+ ret = sst_get_interface(key, &iface);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_get_interface(%d) Fail(%d)", key, ret);
+ return ret;
+ }
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
-
- ret = sst_get_value(key, SYSTEM_SETTING_DATA_TYPE_BOOL, (void **)&flag);
- SECURE_ERR(" inf (flag) value : %ld ", flag);
- if (flag == 0) {
- *value = false;
- SECURE_ERR(" flag == 0 ");
- } else if (flag == 1) {
- *value = true;
- SECURE_ERR(" flag == 1 ");
- } else {
- *value = false;
- SECURE_ERR(" exception here!!! ");
- }
-
- return ret;
-}
+ if (SYSTEM_SETTING_DATA_TYPE_BOOL != iface->data_type) {
+ ERR("Invalide type for key(%d) : %d", key, iface->data_type);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
+
+ if (NULL == iface->getter.b) {
+ ERR("No getter for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ bool result = 0;
+ ret = iface->getter.b(iface, &result);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("getter(%d) Fail(%d)", key, ret);
+ return ret;
+ }
+ *value = result;
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
API int system_settings_set_value_string(system_settings_key_e key, const char *value)
{
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETVM_IF(key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
- "The defualt font type is only support getter");
+ int ret;
+ sst_interface *iface = NULL;
+ ret = sst_get_interface(key, &iface);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_get_interface(%d) Fail(%d)", key, ret);
+ return ret;
+ }
- int ret = sst_set_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void*)value);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("sst_set_value(%d), Fail(%d)", key, ret);
+ if (SYSTEM_SETTING_DATA_TYPE_STRING != iface->data_type) {
+ ERR("Invalide type for key(%d) : %d", key, iface->data_type);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
- return ret;
+ if (NULL == iface->setter.s) {
+ ERR("No setter for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
+ ret = iface->setter.s(iface, value);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("setter(%d) Fail(%d)", key, ret);
+ return ret;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
}
API int system_settings_get_value_string(system_settings_key_e key, char **value)
{
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
+ int ret;
+ sst_interface *iface = NULL;
+ ret = sst_get_interface(key, &iface);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_get_interface(%d) Fail(%d)", key, ret);
+ return ret;
+ }
+
+ if (SYSTEM_SETTING_DATA_TYPE_STRING != iface->data_type) {
+ ERR("Invalide type for key(%d) : %d", key, iface->data_type);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ }
- int ret = sst_get_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void **)value);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("sst_get_value(%d), Fail(%d)", key, ret);
+ if (NULL == iface->getter.s) {
+ ERR("No getter for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
- return ret;
+ char *result = NULL;
+ ret = iface->getter.s(iface, &result);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("getter(%d) Fail(%d)", key, ret);
+ return ret;
+ }
+
+ *value = result;
+ return SYSTEM_SETTINGS_ERROR_NONE;
}
//todo: need to deprecate
{
int ret;
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETVM_IF(key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
- "The defualt font type is only supporting getter");
RETV_IF(NULL == callback, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
sst_interface *iface = NULL;
//todo: need to deprecate
API int system_settings_unset_changed_cb(system_settings_key_e key)
{
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETVM_IF(key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
- "The defualt font type is only support getter");
-
sst_interface *iface = NULL;
int ret = sst_get_interface(key, &iface);
if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
API int system_settings_foreach_value_string(system_settings_key_e key, system_settings_iter_cb callback, void *value)
{
DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
+ RETVM_IF(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE != key,
+ SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
+ "Invalid Key(%d)", key);
- return sst_list_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, callback, (void*)value);
+ return sst_sound_get_call_ringtone_list(key, callback, value);
}
API int system_settings_add_value_string(system_settings_key_e key, const char* value)
{
DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
+ RETVM_IF(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE != key,
SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
"Invalid Key(%d)", key);
- return sst_add_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void*)value);
+ return sst_sound_add_call_ringtone(key, value);
}
API int system_settings_delete_value_string(system_settings_key_e key, const char* value)
{
DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
+ RETVM_IF(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE != key,
SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
"Invalid Key(%d)", key);
- return sst_del_value(key, SYSTEM_SETTING_DATA_TYPE_STRING, (void*)value);
+ return sst_sound_del_call_ringtone(key, value);
}
API int system_settings_add_changed_cb(system_settings_key_e key, system_settings_changed_cb callback, void *user_data)
{
int ret;
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETVM_IF(key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
- "The defualt font type is only support getter");
RETV_IF(NULL == callback, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
sst_interface *iface = NULL;
if (NULL == iface->vconf_key) {
ERR("NULL vconf_key of key(%d)", key);
- return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
}
INFO("key = %d, %s", key, iface->vconf_key);
{
int ret;
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETVM_IF(key == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER,
- "The defualt font type is only support getter");
RETV_IF(NULL == callback, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
sst_interface *iface = NULL;
return ret;
}
+ if (NULL == iface->vconf_key) {
+ ERR("NULL vconf_key of key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
+ }
+
ret = sst_vconf_del_multi_cb(iface, callback);
if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
ERR("sst_vconf_del_multi_cb() Fail(%d)", ret);
+++ /dev/null
-/*
- * Copyright (c) 2011-2020 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "sst_core.h"
-
-#include <unistd.h>
-#include <app_manager.h>
-#include <package_manager.h>
-#include <vconf.h>
-#include "sst.h"
-#include "sst_misc.h"
-#include "sst_vconf.h"
-#include "sst_interface.h"
-
-int sst_get_value(system_settings_key_e key, sst_interface_data_type data_type, void **value)
-{
- int ret;
-
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETV_IF(NULL == value, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-
- sst_interface *iface = NULL;
- ret = sst_get_interface(key, &iface);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_get_interface(%d) Fail(%d)", key, ret);
- return ret;
- }
-
- if (iface->data_type != data_type) {
- ERR("Invalide type for key(%d) : Expected(%d), Actual(%d)",
- key, iface->data_type, data_type);
- return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
- }
-
- sst_get_value_fn getter = iface->get_value_cb;
- if (NULL == getter) {
- ERR("No getter for key(%d)", key);
- return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
- }
-
- ret = getter(iface, value);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("getter(%d) Fail(%d)", key, ret);
- return ret;
-}
-
-int sst_set_value(system_settings_key_e key, sst_interface_data_type data_type, void *value)
-{
- int ret;
-
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- RETV_IF(NULL == value, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
-
- sst_interface *iface = NULL;
- ret = sst_get_interface(key, &iface);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_get_interface(%d) Fail(%d)", key, ret);
- return ret;
- }
-
- if (iface->data_type != data_type) {
- ERR("Invalide type for key(%d) : Expected(%d), Actual(%d)",
- key, iface->data_type, data_type);
- return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
- }
-
- sst_set_value_fn setter = iface->set_value_cb;
- if (NULL == setter) {
- ERR("No setter for key(%d)", key);
- return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
- }
-
- ret = setter(iface, value);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("setter(%d) Fail(%d)", key, ret);
- return ret;
-}
-
-int sst_list_value(system_settings_key_e key, sst_interface_data_type data_type, bool(*list_iterator_fn)(int, const char*, void *), void *user_data)
-{
- int ret;
-
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
-
- sst_interface *iface = NULL;
- ret = sst_get_interface(key, &iface);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_get_interface(%d) Fail(%d)", key, ret);
- return ret;
- }
-
- if (iface->data_type != data_type) {
- ERR("Invalide type for key(%d) : Expected(%d), Actual(%d)",
- key, iface->data_type, data_type);
- return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
- }
-
- sst_list_value_cb list_getter = iface->list_value_cb;
- if (NULL == list_getter) {
- ERR("No list_getter for key(%d)", key);
- return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
- }
-
- ret = list_getter(key, list_iterator_fn, user_data);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("list_getter(%d) Fail(%d)", key, ret);
- return ret;
-}
-
-int sst_add_value(system_settings_key_e key, sst_interface_data_type data_type, void *value)
-{
- int ret;
-
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
-
- sst_interface *iface = NULL;
- ret = sst_get_interface(key, &iface);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_get_interface(%d) Fail(%d)", key, ret);
- return ret;
- }
-
- if (iface->data_type != data_type) {
- ERR("Invalide type for key(%d) : Expected(%d), Actual(%d)",
- key, iface->data_type, data_type);
- return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
- }
-
- sst_add_value_fn adder = iface->add_value_cb;
- if (NULL == adder) {
- ERR("No adder for key(%d)", key);
- return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
- }
-
- ret = adder(key, value);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("adder(%d) Fail(%d)", key, ret);
- return ret;
-}
-
-int sst_del_value(system_settings_key_e key, sst_interface_data_type data_type, void *value)
-{
- int ret;
-
- DBG("Enter");
- RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
-
- sst_interface *iface = NULL;
- ret = sst_get_interface(key, &iface);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_get_interface(%d) Fail(%d)", key, ret);
- return ret;
- }
-
- if (iface->data_type != data_type) {
- ERR("Invalide type for key(%d) : Expected(%d), Actual(%d)",
- key, iface->data_type, data_type);
- return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
- }
-
- sst_del_value_fn deleter;
- deleter = iface->del_value_cb;
- if (NULL == deleter) {
- ERR("No deleter for key(%d)", key);
- return SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED;
- }
-
- ret = deleter(key, value);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret)
- ERR("deleter(%d) Fail(%d)", key, ret);
- return ret;
-
-}
-
-/**
- * sound == false, vibration == false --> silent mode
- * sound == true, vibration == false --> sound mode
- * sound == false, vibration == true --> vibration mode
- */
-int sst_get_sound_silent_mode(sst_interface *iface, void **value)
-{
- bool sound_status = false;
- if (sst_vconf_get_real_bool(iface->vconf_key, &sound_status)) {
- ERR("sst_vconf_get_real_bool(%s) Fail", iface->vconf_key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- bool vib_status = false;
- const char *vibration_key = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;
- if (sst_vconf_get_real_bool(vibration_key, &vib_status)) {
- ERR("sst_vconf_get_real_bool(%s) Fail", vibration_key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- bool ret_val = (sound_status == false && vib_status == false);
- *value = (void*)ret_val;
-
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-/**
- * sound == false, vibration == false --> silent mode
- * sound == true, vibration == false --> sound mode
- */
-//Todo: It should return to the old status.
-int sst_set_sound_silent_mode(sst_interface *iface, void *value)
-{
- bool *vconf_value = value;
-
- bool vconf_sound = !(*vconf_value);
- if (vconf_set_bool(iface->vconf_key, vconf_sound)) {
- ERR("vconf_set_bool(%s, %d) Fail", iface->vconf_key, vconf_sound);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- bool vconf_vib = false;
- const char *vibration_key = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;
- if (vconf_set_bool(vibration_key, vconf_vib)) {
- ERR("vconf_set_bool(%s) Fail", vibration_key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-int sst_set_sound_notification(sst_interface *iface, void *value)
-{
- char *vconf_value = value;
-
- bool is_valid = sst_misc_exist(vconf_value);
- if (true == is_valid) {
- if (vconf_set_str(iface->vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, vconf_value);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
- } else {
- ERR("sst_misc_exist(%s) Fail", vconf_value);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-int sst_set_device_name(system_settings_key_e key, void *value)
-{
- char *vconf_value = value;
-
- const char *vconf_key = VCONFKEY_SETAPPL_DEVICE_NAME_STR;
- if (vconf_set_str(vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s, %s) Fail", vconf_key, vconf_value);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-int sst_get_network_wifi_notification(sst_interface *iface, void **value)
-{
- int vconf_value = 0;
- if (vconf_get_int(iface->vconf_key, &vconf_value)) {
- ERR("vconf_get_int(%s) Fail", iface->vconf_key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- bool result;
- result = (vconf_value == VCONFKEY_WIFI_QS_ENABLE) ? true : false;
-
- *value = (void*)result;
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-//It is related with Advertisements
-#define DEFAULT_ADS_ID "00000000-0000-0000-0000-000000000000"
-int sst_get_ads_id(sst_interface *iface, void **value)
-{
- int result = 0;
- const char *key = VCONFKEY_SETAPPL_AD_ID_OPT_OUT;
- if (vconf_get_int(key, &result)) {
- ERR("vconf_get_int(%s) Fail", key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- if (result == 1) {
- *value = strdup(DEFAULT_ADS_ID);
- return SYSTEM_SETTINGS_ERROR_NONE;
- }
-
- char *vconf_value = NULL;
- if (sst_vconf_get_string(iface->vconf_key, &vconf_value)) {
- ERR("sst_vconf_get_string(%s) Fail", iface->vconf_key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- *value = vconf_value;
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-int sst_set_ads_id(sst_interface *iface, void *value)
-{
- char *vconf_value = value;
-
- if (vconf_set_str(iface->vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s) Fail", iface->vconf_key);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
-
-int sst_get_uds_state(sst_interface *iface, void **value)
-{
- int **p_value = (int**)value;
- int int_val;
- char *str_val = NULL;
-
- if (vconf_get_int(iface->vconf_key, &int_val))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
-
- if (int_val == SYSTEM_SETTINGS_UDS_ON) {
- const char *vconf_key = VCONFKEY_SETAPPL_UDSM_PKGID_LIST;
- int ret = sst_vconf_get_string(vconf_key, &str_val);
- if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("sst_vconf_get_string(%s) Fail(%d)", vconf_key, ret);
- return ret;
- }
-
- if (SST_EQUAL != strcmp(str_val, "NONE")) {
- char *app_id = NULL;
- char *package_id = NULL;
- pid_t pid = getpid();
-
- int ret = app_manager_get_app_id(pid, &app_id);
- if (ret != APP_MANAGER_ERROR_NONE) {
- SECURE_ERR("app_manager_get_app_id(%d) Fail(%d)", pid, ret);
- free(str_val);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
-
- ret = package_manager_get_package_id_by_app_id(app_id, &package_id);
- if (PACKAGE_MANAGER_ERROR_NONE != ret) {
- SECURE_ERR("package_manager_get_package_id_by_app_id(%s) Fail(%d)", app_id, ret);
- free(app_id);
- free(str_val);
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- }
- free(app_id);
-
- if (package_id && strstr(str_val, package_id))
- int_val = SYSTEM_SETTINGS_UDS_ON_WHITELISTED;
- free(package_id);
- }
- free(str_val);
- }
-
- **p_value = int_val;
-
- return SYSTEM_SETTINGS_ERROR_NONE;
-}
+++ /dev/null
-/*
- * Copyright (c) 2011-2020 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#pragma once
-
-#include "sst_interface.h"
-
-int sst_set_value(system_settings_key_e key, sst_interface_data_type data_type, void *value);
-int sst_get_value(system_settings_key_e key, sst_interface_data_type data_type, void **value);
-int sst_add_value(system_settings_key_e key, sst_interface_data_type data_type, void *value);
-int sst_del_value(system_settings_key_e key, sst_interface_data_type data_type, void *value);
-int sst_list_value(system_settings_key_e key, sst_interface_data_type data_type, bool(*system_setting_data_iterator)(int, const char*, void *), void *user_data);
-
-int sst_get_network_wifi_notification(sst_interface *iface, void **value);
-
-int sst_set_sound_notification(sst_interface *iface, void *value);
-int sst_get_sound_silent_mode(sst_interface *iface, void **value);
-int sst_set_sound_silent_mode(sst_interface *iface, void *value);
-
-int sst_get_ads_id(sst_interface *iface, void **value);
-int sst_set_ads_id(sst_interface *iface, void *value);
-
-int sst_get_uds_state(sst_interface *iface, void **value);
#include "sst.h"
#include "sst_utils_wrapper.h"
-int sst_font_set_size(sst_interface *iface, void *value)
+int sst_font_set_size(sst_interface *iface, int value)
{
- int *vconf_value;
- vconf_value = *(int **)value;
+ RETVM_IF(value < 0 || SYSTEM_SETTINGS_FONT_SIZE_GIANT < value,
+ SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid size(%d)", value);
- RETVM_IF(*vconf_value < 0 || SYSTEM_SETTINGS_FONT_SIZE_GIANT < *vconf_value,
- SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid value(%d)", *vconf_value);
-
- if (vconf_set_int(iface->vconf_key, *vconf_value)) {
- ERR("vconf_set_int(%s) Fail", iface->vconf_key);
+ if (vconf_set_int(iface->vconf_key, value)) {
+ ERR("vconf_set_int(%s, %d) Fail", iface->vconf_key, value);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
return SYSTEM_SETTINGS_ERROR_NONE;
}
-static void* font_conf_doc_parse(char *doc_name, char *font_name)
+static void* font_conf_doc_parse(const char *doc_name, const char *font_name)
{
xmlDocPtr doc = NULL;
xmlNodePtr cur = NULL;
xmlChar *key = NULL;
doc = xmlParseFile(doc_name);
-
cur = xmlDocGetRootElement(doc);
-
if (cur == NULL) {
xmlFreeDoc(doc);
doc = NULL;
}
}
-int sst_font_set_type(sst_interface *iface, void *value)
+int sst_font_set_type(sst_interface *iface, const char *font_name)
{
- char *font_name = NULL;
- font_name = (char*)value;
-
/* get current font list */
int is_found = sstu_is_available_font(font_name);
- if (is_found == 1) {
- DBG("found font : %s ", font_name);
- } else {
- ERR(" NOT found font : %s ", font_name);
+ if (FALSE == is_found) {
+ ERR("NO font(%s)", font_name);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
sstu_font_config_set_notification();
- char *vconf_value;
- vconf_value = (char*)value;
- if (vconf_set_str(iface->vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s) Fail", iface->vconf_key);
+ if (vconf_set_str(iface->vconf_key, font_name)) {
+ ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, font_name);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_font_get_default_type(sst_interface *iface, void **value)
+int sst_font_get_default_type(sst_interface *iface, char **value)
{
char *font_name = sstu_get_default_font();
if (NULL == font_name) {
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- *value = (void*)font_name;
+ *value = font_name;
return SYSTEM_SETTINGS_ERROR_NONE;
}
#include "sst_interface.h"
-int sst_font_set_size(sst_interface *iface, void *value);
-int sst_font_set_type(sst_interface *iface, void *value);
-int sst_font_get_default_type(sst_interface *iface, void **value);
+int sst_font_set_size(sst_interface *iface, int value);
+int sst_font_set_type(sst_interface *iface, const char *font_name);
+int sst_font_get_default_type(sst_interface *iface, char **value);
#include <vconf.h>
#include "sst.h"
-#include "sst_core.h"
#include "sst_font.h"
#include "sst_misc.h"
#include "sst_vconf.h"
+#include "sst_sound.h"
#include "sst_screen.h"
#include "sst_feature.h"
-#include "sst_ringtones.h"
#include "sst_time_N_locale.h"
-#define SYSTEM_SETTINGS_MAX -1
-
-struct _system_setting_s system_setting_table[] = {
- {
+static sst_interface sst_iface_table[] = {
+ [SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE] = {
SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE,
VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_ringtone_get_incoming_call,
- sst_ringtone_set_incoming_call,
- sst_ringtone_add_incoming_call, /* ADD */
- sst_ringtone_del_incoming_call, /* DEL */
- sst_ringtone_list_incoming_call, /* LIST */
- sst_feature_check_incoming_call, /* feature check */
+ .feature_checker = sst_feature_check_incoming_call,
+ .getter.s = sst_sound_get_call_ringtone,
+ .setter.s = sst_sound_set_call_ringtone
},
-
- {
+ [SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN] = {
SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN,
VCONFKEY_BGSET,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_vconf_get,
- sst_screen_set_home_wallpaper,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_home_screen, /* feature check */
+ .feature_checker = sst_feature_check_home_screen,
+ .getter.s = sst_vconf_get_str,
+ .setter.s = sst_screen_set_home_wallpaper
},
-
- {
+ [SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN] = {
SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN,
VCONFKEY_IDLE_LOCK_BGSET,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_vconf_get,
- sst_screen_set_lock_wallpaper,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_lock_screen, /* feature check */
+ .feature_checker = sst_feature_check_lock_screen,
+ .getter.s = sst_vconf_get_str,
+ .setter.s = sst_screen_set_lock_wallpaper
},
-
- {
+ [SYSTEM_SETTINGS_KEY_FONT_SIZE] = {
SYSTEM_SETTINGS_KEY_FONT_SIZE,
VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_SIZE,
SYSTEM_SETTING_DATA_TYPE_INT,
- sst_vconf_get,
- sst_font_set_size,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_font, /* feature check */
+ .feature_checker = sst_feature_check_font,
+ .getter.i = sst_vconf_get_int,
+ .setter.i = sst_font_set_size
},
-
- {
+ [SYSTEM_SETTINGS_KEY_FONT_TYPE] = {
SYSTEM_SETTINGS_KEY_FONT_TYPE,
VCONFKEY_SETAPPL_ACCESSIBILITY_FONT_NAME,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_vconf_get,
- sst_font_set_type,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_font, /* feature check */
+ .feature_checker = sst_feature_check_font,
+ .getter.s = sst_vconf_get_str,
+ .setter.s = sst_font_set_type
},
-
- {
+ [SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION] = {
SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION,
VCONFKEY_SETAPPL_MOTION_ACTIVATION,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
},
-
- {
+ [SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE] = {
SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE,
VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_ringtone_get_email_alert,
- sst_ringtone_set_email_alert,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_notification_email, /* feature check */
- },
- {
+ .feature_checker = sst_feature_check_notification_email,
+ .getter.s = sst_sound_get_email_alert,
+ .setter.s = sst_sound_set_email_alert
+ },
+ [SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED] = {
SYSTEM_SETTINGS_KEY_USB_DEBUGGING_ENABLED,
VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED] = {
SYSTEM_SETTINGS_KEY_3G_DATA_NETWORK_ENABLED,
VCONFKEY_3G_ENABLE,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- //{ /* Deprecated */
- // -5, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, { NULL, 0 }, NULL
- //},
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP] = {
SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP,
VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_screen_get_lockscreen,
- sst_screen_set_lockscreen,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_lock_screen, /* feature check */
- },
- {
+ .feature_checker = sst_feature_check_lock_screen,
+ .getter.s = sst_screen_get_lockscreen,
+ .setter.s = sst_screen_set_lockscreen
+ },
+ [SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE] = {
SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE,
NULL,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_font_get_default_type,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_font, /* feature check */
+ .feature_checker = sst_feature_check_font,
+ .getter.s = sst_font_get_default_type,
+ .setter.s = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY] = {
SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY,
VCONFKEY_REGIONFORMAT,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_locale_get_country,
- sst_locale_set_country,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.s = sst_locale_get_country,
+ .setter.s = sst_locale_set_country
+ },
+ [SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE] = {
SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE,
VCONFKEY_LANGSET,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_locale_get_language,
- sst_locale_set_language,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.s = sst_locale_get_language,
+ .setter.s = sst_locale_set_language
+ },
+ [SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR] = {
SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR,
VCONFKEY_REGIONFORMAT_TIME1224,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_locale_get_timeformat_24hour,
- sst_locale_set_timeformat_24hour,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_locale_get_timeformat_24hour,
+ .setter.b = sst_locale_set_timeformat_24hour
+ },
+ [SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE] = {
SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE,
VCONFKEY_SETAPPL_TIMEZONE_ID,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_locale_get_timezone,
- sst_locale_set_timezone,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.s = sst_locale_get_timezone,
+ .setter.s = sst_locale_set_timezone
+ },
+ [SYSTEM_SETTINGS_KEY_TIME_CHANGED] = {
SYSTEM_SETTINGS_KEY_TIME_CHANGED,
VCONFKEY_SYSTEM_TIME_CHANGED,
SYSTEM_SETTING_DATA_TYPE_INT,
- sst_time_get_changed,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.i = sst_time_get_changed,
+ .setter.i = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_SOUND_LOCK] = {
SYSTEM_SETTINGS_KEY_SOUND_LOCK,
VCONFKEY_SETAPPL_SOUND_LOCK_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE] = {
SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE,
VCONFKEY_SETAPPL_SOUND_STATUS_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_get_sound_silent_mode,
- sst_set_sound_silent_mode,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_sound_get_silent_mode,
+ .setter.b = sst_sound_set_silent_mode
+ },
+ [SYSTEM_SETTINGS_KEY_SOUND_TOUCH] = {
SYSTEM_SETTINGS_KEY_SOUND_TOUCH,
VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO] = {
SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO,
VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_DEVICE_NAME] = {
SYSTEM_SETTINGS_KEY_DEVICE_NAME,
VCONFKEY_SETAPPL_DEVICE_NAME_STR,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_vconf_get,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.s = sst_vconf_get_str,
+ .setter.s = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_MOTION_ENABLED] = {
SYSTEM_SETTINGS_KEY_MOTION_ENABLED,
VCONFKEY_SETAPPL_MOTION_ACTIVATION,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION] = {
SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION,
VCONFKEY_WIFI_ENABLE_QS,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_get_network_wifi_notification,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_wifi, /* feature check */
+ .feature_checker = sst_feature_check_wifi,
+ .getter.b = sst_misc_get_wifi_QS_noti,
+ .setter.b = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE] = {
SYSTEM_SETTINGS_KEY_NETWORK_FLIGHT_MODE,
VCONFKEY_TELEPHONY_FLIGHT_MODE,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME] = {
SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME,
VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL,
SYSTEM_SETTING_DATA_TYPE_INT,
- sst_vconf_get,
- sst_screen_set_backlight_time,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.i = sst_vconf_get_int,
+ .setter.i = sst_screen_set_backlight_time
+ },
+ [SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION] = {
SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION,
VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_vconf_get,
- sst_set_sound_notification,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_incoming_call, /* feature check */
- },
- {
+ .feature_checker = sst_feature_check_incoming_call,
+ .getter.s = sst_vconf_get_str,
+ .setter.s = sst_sound_set_notification
+ },
+ [SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION_REPETITION_PERIOD] = {
SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION_REPETITION_PERIOD,
VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT,
SYSTEM_SETTING_DATA_TYPE_INT,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.i = sst_vconf_get_int,
+ .setter.i = sst_vconf_set_int
+ },
+ [SYSTEM_SETTINGS_KEY_LOCK_STATE] = {
SYSTEM_SETTINGS_KEY_LOCK_STATE,
VCONFKEY_IDLE_LOCK_STATE_READ_ONLY,
SYSTEM_SETTING_DATA_TYPE_INT,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.i = sst_vconf_get_int,
+ .setter.i = sst_vconf_set_int
+ },
+ [SYSTEM_SETTINGS_KEY_ADS_ID] = {
SYSTEM_SETTINGS_KEY_ADS_ID,
VCONFKEY_SETAPPL_AD_ID,
SYSTEM_SETTING_DATA_TYPE_STRING,
- sst_get_ads_id,
- sst_set_ads_id,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- NULL, /* feature check */
+ .feature_checker = NULL,
+ .getter.s = sst_misc_get_ads_id,
+ .setter.s = sst_misc_set_ads_id
},
-
- {
+ [SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE] = {
SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE,
VCONFKEY_SETAPPL_UDSM,
SYSTEM_SETTING_DATA_TYPE_INT,
- sst_get_uds_state,
- NULL,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- sst_feature_check_telephony, /* feature check */
+ .feature_checker = sst_feature_check_telephony,
+ .getter.i = sst_misc_get_uds_state,
+ .setter.i = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE_PKG_LIST] = {
SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE_PKG_LIST,
VCONFKEY_SETAPPL_UDSM_PKGID_LIST,
SYSTEM_SETTING_DATA_TYPE_STRING,
- NULL,
- NULL,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- sst_feature_check_telephony, /* feature check */
+ .feature_checker = sst_feature_check_telephony,
+ .getter.s = NULL,
+ .setter.s = NULL
},
- {
+ [SYSTEM_SETTINGS_KEY_ACCESSIBILITY_TTS] = {
SYSTEM_SETTINGS_KEY_ACCESSIBILITY_TTS,
VCONFKEY_SETAPPL_ACCESSIBILITY_TTS,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_VIBRATION] = {
SYSTEM_SETTINGS_KEY_VIBRATION,
VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE] = {
SYSTEM_SETTINGS_KEY_AUTOMATIC_TIME_UPDATE,
VCONFKEY_SETAPPL_STATE_AUTOMATIC_TIME_UPDATE_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_telephony, /* feature check */
- },
- {
+ .feature_checker = sst_feature_check_telephony,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_DEVELOPER_OPTION_STATE] = {
SYSTEM_SETTINGS_KEY_DEVELOPER_OPTION_STATE,
VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- },
- {
+ .feature_checker = NULL,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_ACCESSIBILITY_GRAYSCALE] = {
SYSTEM_SETTINGS_KEY_ACCESSIBILITY_GRAYSCALE,
VCONFKEY_SETAPPL_ACCESSIBILITY_GREYSCALE,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_accessibility_grayscale, /* feature check */
- },
- {
+ .feature_checker = sst_feature_check_accessibility_grayscale,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_ACCESSIBILITY_NEGATIVE_COLOR] = {
SYSTEM_SETTINGS_KEY_ACCESSIBILITY_NEGATIVE_COLOR,
VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_accessibility_negative, /* feature check */
- },
- {
+ .feature_checker = sst_feature_check_accessibility_negative,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
+ },
+ [SYSTEM_SETTINGS_KEY_ROTARY_EVENT_ENABLED] = {
SYSTEM_SETTINGS_KEY_ROTARY_EVENT_ENABLED,
VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL,
SYSTEM_SETTING_DATA_TYPE_BOOL,
- sst_vconf_get,
- sst_vconf_set,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_rotary, /* feature check */
- },
- {
- SYSTEM_SETTINGS_MAX, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL
+ .feature_checker = sst_feature_check_rotary,
+ .getter.b = sst_vconf_get_bool,
+ .setter.b = sst_vconf_set_bool
}
};
-static int _search_item(system_settings_key_e key)
-{
- int start = 0;
- int end = SYSTEM_SETTINGS_KEY_MAX;
-
- while (start <= end) {
- int mid = (start + end) / 2;
- if (system_setting_table[mid].key == key)
- return mid;
- else if (system_setting_table[mid].key < key)
- start = mid + 1;
- else
- end = mid - 1;
- }
-
- ERR("key=%d, Can NOT find the key", key);
- return -1;
-}
-
int sst_get_interface(system_settings_key_e key, sst_interface **iface)
{
- DBG("Enter");
RETVM_IF(key < 0 || SYSTEM_SETTINGS_KEY_MAX <= key,
SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, "Invalid Key(%d)", key);
- int idx = _search_item(key);
- if (-1 == idx) {
- ERR("Unknown key(%d)", key);
- return TIZEN_ERROR_INVALID_PARAMETER;
+ if (sst_iface_table[key].key != key) {
+ ERR("Invalid interface for key(%d)", key);
+ return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
- if (system_setting_table[idx].feature_check_cb != NULL) {
- int ret = system_setting_table[idx].feature_check_cb(iface);
+ if (sst_iface_table[key].feature_checker) {
+ int ret = sst_iface_table[key].feature_checker(iface);
if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
- ERR("feature_check_cb(%d) Fail(%d)", key, ret);
+ ERR("feature_checker(%d) Fail(%d)", key, ret);
return ret;
}
}
- *iface = &system_setting_table[idx];
+ *iface = &sst_iface_table[key];
INFO("key = %d, type = %d", key, (*iface)->data_type);
return SYSTEM_SETTINGS_ERROR_NONE;
*/
#pragma once
-#include <glib.h>
#include "system_settings.h"
typedef enum {
//SYSTEM_SETTING_DATA_TYPE_DOULBE,
} sst_interface_data_type;
-typedef struct _system_setting_s sst_interface;
-
-typedef int (*sst_get_value_fn)(sst_interface *iface, void **value);
-typedef int (*sst_set_value_fn)(sst_interface *iface, void *value);
-typedef int (*sst_add_value_fn)(system_settings_key_e key, void *value);
-typedef int (*sst_del_value_fn)(system_settings_key_e key, void *value);
-typedef int (*sst_list_value_cb)(system_settings_key_e key, system_settings_iter_cb callback, void *user_data);
+typedef struct sst_interface_s sst_interface;
typedef int (*sst_check_feature_fn)(void *value);
-struct _system_setting_s {
- system_settings_key_e key;
- const char* const vconf_key;
- sst_interface_data_type data_type;
+typedef int (*sst_get_int_fn)(sst_interface *iface, int *value);
+typedef int (*sst_get_bool_fn)(sst_interface *iface, bool *value);
+typedef int (*sst_get_str_fn)(sst_interface *iface, char **value);
- sst_get_value_fn get_value_cb;
- sst_set_value_fn set_value_cb;
+typedef int (*sst_set_int_fn)(sst_interface *iface, int value);
+typedef int (*sst_set_bool_fn)(sst_interface *iface, bool value);
+typedef int (*sst_set_str_fn)(sst_interface *iface, const char *value);
- sst_add_value_fn add_value_cb;
- sst_del_value_fn del_value_cb;
- sst_list_value_cb list_value_cb;
- sst_check_feature_fn feature_check_cb;
+struct sst_interface_s {
+ system_settings_key_e key;
+ const char* const vconf_key;
+ sst_interface_data_type data_type;
+ sst_check_feature_fn feature_checker;
+ union {
+ sst_get_int_fn i;
+ sst_get_bool_fn b;
+ sst_get_str_fn s;
+ } getter;
+ union {
+ sst_set_int_fn i;
+ sst_set_bool_fn b;
+ sst_set_str_fn s;
+ } setter;
};
int sst_get_interface(system_settings_key_e key, sst_interface **iface);
free(handle);
}
-void sst_json_add_ringtone(sst_json_h *handle, char *nameval, char *pathval)
+void sst_json_add_ringtone(sst_json_h *handle, const char *nameval, const char *pathval)
{
JsonNode *root = handle->root;
JsonNode *menu_item = json_node_new(JSON_NODE_OBJECT);
}
}
-void sst_json_remove_ringtone(sst_json_h *handle, char *path_to_del)
+void sst_json_remove_ringtone(sst_json_h *handle, const char *path_to_del)
{
int i;
_json_save_ringtone(root);
}
-bool sst_json_contain_ringtone(sst_json_h *handle, char *ringtone_path)
+bool sst_json_contain_ringtone(sst_json_h *handle, const char *ringtone_path)
{
int i;
sst_json_h* sst_json_load_ringtone();
void sst_json_unref(sst_json_h *handle);
void sst_json_get_ringtones(sst_json_h *handle, system_settings_iter_cb cb, void *user_data);
-void sst_json_add_ringtone(sst_json_h *handle, char *nameval, char *pathval);
-void sst_json_remove_ringtone(sst_json_h *handle, char *path_to_del);
-bool sst_json_contain_ringtone(sst_json_h *handle, char *newfile);
+void sst_json_add_ringtone(sst_json_h *handle, const char *nameval, const char *pathval);
+void sst_json_remove_ringtone(sst_json_h *handle, const char *path_to_del);
+bool sst_json_contain_ringtone(sst_json_h *handle, const char *newfile);
*/
#include "sst_misc.h"
+#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
+#include <vconf.h>
+#include <app_manager.h>
+#include <package_manager.h>
#include "sst.h"
+#include "sst_vconf.h"
-bool sst_misc_exist(const char *path)
+bool sst_misc_file_exists(const char *path)
{
if (0 != access(path, R_OK)) {
- /* error code : 13 */
ERR("access(%s) Fail(%d)", path, errno);
return false;
}
return true;
}
+int sst_misc_get_wifi_QS_noti(sst_interface *iface, bool *value)
+{
+ int vconf_value = 0;
+ if (vconf_get_int(iface->vconf_key, &vconf_value)) {
+ ERR("vconf_get_int(%s) Fail", iface->vconf_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ bool result;
+ result = (vconf_value == VCONFKEY_WIFI_QS_ENABLE) ? true : false;
+
+ *value = result;
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+//It is related with Advertisements
+#define DEFAULT_ADS_ID "00000000-0000-0000-0000-000000000000"
+int sst_misc_get_ads_id(sst_interface *iface, char **value)
+{
+ int result = 0;
+ const char *key = VCONFKEY_SETAPPL_AD_ID_OPT_OUT;
+ if (vconf_get_int(key, &result)) {
+ ERR("vconf_get_int(%s) Fail", key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ if (result == 1) {
+ *value = strdup(DEFAULT_ADS_ID);
+ return SYSTEM_SETTINGS_ERROR_NONE;
+ }
+
+ char *vconf_value = NULL;
+ if (sst_vconf_get_str_ally(iface->vconf_key, &vconf_value)) {
+ ERR("sst_vconf_get_str_ally(%s) Fail", iface->vconf_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ *value = vconf_value;
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+int sst_misc_set_ads_id(sst_interface *iface, const char *value)
+{
+ if (vconf_set_str(iface->vconf_key, value)) {
+ ERR("vconf_set_str(%s) Fail", iface->vconf_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+int sst_misc_get_uds_state(sst_interface *iface, int *value)
+{
+ int int_val;
+ char *str_val = NULL;
+
+ if (vconf_get_int(iface->vconf_key, &int_val))
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+
+ if (int_val == SYSTEM_SETTINGS_UDS_ON) {
+ const char *vconf_key = VCONFKEY_SETAPPL_UDSM_PKGID_LIST;
+ int ret = sst_vconf_get_str_ally(vconf_key, &str_val);
+ if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+ ERR("sst_vconf_get_str_ally(%s) Fail(%d)", vconf_key, ret);
+ return ret;
+ }
+
+ if (SST_EQUAL != strcmp(str_val, "NONE")) {
+ char *app_id = NULL;
+ char *package_id = NULL;
+ pid_t pid = getpid();
+
+ int ret = app_manager_get_app_id(pid, &app_id);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SECURE_ERR("app_manager_get_app_id(%d) Fail(%d)", pid, ret);
+ free(str_val);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ ret = package_manager_get_package_id_by_app_id(app_id, &package_id);
+ if (PACKAGE_MANAGER_ERROR_NONE != ret) {
+ SECURE_ERR("package_manager_get_package_id_by_app_id(%s) Fail(%d)", app_id, ret);
+ free(app_id);
+ free(str_val);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+ free(app_id);
+
+ if (package_id && strstr(str_val, package_id))
+ int_val = SYSTEM_SETTINGS_UDS_ON_WHITELISTED;
+ free(package_id);
+ }
+ free(str_val);
+ }
+
+ *value = int_val;
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
#include <stdbool.h>
#include "sst_interface.h"
-bool sst_misc_exist(const char *path);
+bool sst_misc_file_exists(const char *path);
+int sst_misc_get_wifi_QS_noti(sst_interface *iface, bool *value);
+
+int sst_misc_get_ads_id(sst_interface *iface, char **value);
+int sst_misc_set_ads_id(sst_interface *iface, const char *value);
+
+int sst_misc_get_uds_state(sst_interface *iface, int *value);
+++ /dev/null
-/*
- * Copyright (c) 2011-2020 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#pragma once
-
-#include "sst_core.h"
-
-int sst_ringtone_get_incoming_call(sst_interface *iface, void **value);
-int sst_ringtone_set_incoming_call(sst_interface *iface, void *value);
-int sst_ringtone_add_incoming_call(system_settings_key_e key, void *value);
-int sst_ringtone_del_incoming_call(system_settings_key_e key, void *value);
-int sst_ringtone_list_incoming_call(system_settings_key_e key, system_settings_iter_cb callback, void *data);
-
-int sst_ringtone_get_email_alert(sst_interface *iface, void **value);
-int sst_ringtone_set_email_alert(sst_interface *iface, void *value);
*/
#include "sst_screen.h"
+#include <stdlib.h>
#include <dlfcn.h>
#include <pkgmgr-info.h>
#include <vconf.h>
#include "sst_exclusive.h"
#include "sst_utils_wrapper.h"
-int sst_screen_set_backlight_time(sst_interface *iface, void *value)
+int sst_screen_set_backlight_time(sst_interface *iface, int value)
{
- int *vconf_value = *(int **)value;
-
- if (*vconf_value <= 0 || 600 < *vconf_value) {
- ERR("Invalid Value(%d)", *vconf_value);
+ if (value <= 0 || 600 < value) {
+ ERR("Invalid Value(%d)", value);
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
- if (vconf_set_int(iface->vconf_key, *vconf_value)) {
- ERR("vconf_set_int(%s, %d) Fail", iface->vconf_key, *vconf_value);
+ if (vconf_set_int(iface->vconf_key, value)) {
+ ERR("vconf_set_int(%s, %d) Fail", iface->vconf_key, value);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_screen_set_home_wallpaper(sst_interface *iface, void *value)
+int sst_screen_set_home_wallpaper(sst_interface *iface, const char *value)
{
- char *vconf_value = value;
-
- bool valid = sstu_is_valid_image(vconf_value);
+ bool valid = sstu_is_valid_image(value);
if (false == valid) {
- ERR("Invalid image file(%s)", vconf_value);
+ ERR("Invalid image file(%s)", value);
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
- return sst_excl_set_wallpaper(iface->vconf_key, vconf_value);
+ return sst_excl_set_wallpaper(iface->vconf_key, value);
}
-int sst_screen_set_lock_wallpaper(sst_interface *iface, void *value)
+int sst_screen_set_lock_wallpaper(sst_interface *iface, const char *value)
{
- char *vconf_value = value;
-
- bool valid = sstu_is_valid_image(vconf_value);
+ bool valid = sstu_is_valid_image(value);
if (false == valid) {
- ERR("Invalid image file(%s)", vconf_value);
+ ERR("Invalid image file(%s)", value);
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
- if (vconf_set_str(iface->vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, vconf_value);
+ if (vconf_set_str(iface->vconf_key, value)) {
+ ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, value);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
}
/**
- *
* set 'swipe type' if current lockscreen app is 'com.samsung.lockscreen'
- *
*/
-int sst_screen_set_lockscreen(sst_interface *iface, void *value)
+int sst_screen_set_lockscreen(sst_interface *iface, const char *app_id)
{
int ret;
- char *app_id = value; //ex) com.samsung.lockscreen
- RETV_IF(NULL == value, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == app_id, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ //ex) app_id = com.samsung.lockscreen
pkgmgrinfo_appinfo_h handle = NULL;
ret = pkgmgrinfo_appinfo_get_appinfo(app_id, &handle);
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_screen_get_lockscreen(sst_interface *iface, void **value)
+int sst_screen_get_lockscreen(sst_interface *iface, char **value)
{
char *pkg_name = NULL;
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- if (sst_vconf_get_string(iface->vconf_key, &pkg_name)) {
- ERR("sst_vconf_get_string(%s) Fail", iface->vconf_key);
+ if (sst_vconf_get_str_ally(iface->vconf_key, &pkg_name)) {
+ ERR("sst_vconf_get_str_ally(%s) Fail", iface->vconf_key);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
#include "sst_interface.h"
//set current path of the wallpaper
-int sst_screen_set_home_wallpaper(sst_interface *iface, void *value);
+int sst_screen_set_home_wallpaper(sst_interface *iface, const char *value);
//set current path of the bg image of the lock screen
-int sst_screen_set_lock_wallpaper(sst_interface *iface, void *value);
+int sst_screen_set_lock_wallpaper(sst_interface *iface, const char *value);
-int sst_screen_get_lockscreen(sst_interface *iface, void **value);
-int sst_screen_set_lockscreen(sst_interface *iface, void *value);
-int sst_screen_set_backlight_time(sst_interface *iface, void *value);
+int sst_screen_get_lockscreen(sst_interface *iface, char **value);
+int sst_screen_set_lockscreen(sst_interface *iface, const char *app_id);
+int sst_screen_set_backlight_time(sst_interface *iface, int value);
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "sst_ringtones.h"
-#include <pthread.h>
+#include "sst_sound.h"
+
#include <stdio.h>
+#include <pthread.h>
#include <libgen.h>
#include <glib.h>
#include <vconf.h>
#include <metadata_extractor.h>
-
#include "sst.h"
#include "sst_json.h"
#include "sst_vconf.h"
sst_json_get_ringtones(handle, callback, user_data);
sst_json_unref(handle);
}
-int sst_ringtone_add_incoming_call(system_settings_key_e key, void *value)
+int sst_sound_add_call_ringtone(system_settings_key_e key, const char *value)
{
- char *path = value;
+ const char *path = value;
sst_json_h *handle = sst_json_load_ringtone();
if (sst_json_contain_ringtone(handle, path)) {
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_ringtone_del_incoming_call(system_settings_key_e key, void *value)
+int sst_sound_del_call_ringtone(system_settings_key_e key, const char *value)
{
sst_json_h *handle = sst_json_load_ringtone();
sst_json_remove_ringtone(handle, value);
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_ringtone_list_incoming_call(system_settings_key_e key, system_settings_iter_cb callback, void *data)
+int sst_sound_get_call_ringtone_list(system_settings_key_e key, system_settings_iter_cb callback, void *data)
{
RETV_IF(NULL == callback, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_ringtone_set_incoming_call(sst_interface *iface, void *value)
+int sst_sound_set_call_ringtone(sst_interface *iface, const char *value)
{
- char *vconf_value = value;
-
- bool is_valid = sst_misc_exist(vconf_value);
+ bool is_valid = sst_misc_file_exists(value);
if (false == is_valid) {
- ERR("sst_misc_exist(%s) Fail", vconf_value);
+ ERR("sst_misc_file_exists(%s) Fail", value);
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
- if (vconf_set_str(iface->vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, vconf_value);
+ if (vconf_set_str(iface->vconf_key, value)) {
+ ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, value);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_ringtone_set_email_alert(sst_interface *iface, void *value)
+int sst_sound_set_email_alert(sst_interface *iface, const char *value)
{
- char *vconf_value = value;
-
- bool is_valid = sst_misc_exist(vconf_value);
+ bool is_valid = sst_misc_file_exists(value);
if (false == is_valid) {
- ERR("sst_misc_exist(%s) Fail", vconf_value);
+ ERR("sst_misc_file_exists(%s) Fail", value);
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
- if (vconf_set_str(iface->vconf_key, vconf_value)) {
- ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, vconf_value);
+ if (vconf_set_str(iface->vconf_key, value)) {
+ ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, value);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
* @return the ringtone file path specified by user in normal case
* if it's not accessable, return the default ringtone path
*/
-int sst_ringtone_get_incoming_call(sst_interface *iface, void **value)
+int sst_sound_get_call_ringtone(sst_interface *iface, char **value)
{
char *vconf_value = NULL;
- if (sst_vconf_get_string(iface->vconf_key, &vconf_value))
+ if (sst_vconf_get_str_ally(iface->vconf_key, &vconf_value))
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
/* check to see if it's accessable -> OK */
/* no --> default ringtone path VCONFKEY_SETAPPL_CALL_RINGTONE_DEFAULT_PATH_STR */
- bool is_valid = sst_misc_exist(vconf_value);
+ bool is_valid = sst_misc_file_exists(vconf_value);
if (true == is_valid) {
*value = vconf_value;
} else {
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_ringtone_get_email_alert(sst_interface *iface, void **value)
+int sst_sound_get_email_alert(sst_interface *iface, char **value)
{
char *vconf_value = NULL;
- if (sst_vconf_get_string(iface->vconf_key, &vconf_value))
+ if (sst_vconf_get_str_ally(iface->vconf_key, &vconf_value))
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
/* check to see if it's accessable -> OK */
/* no --> default ringtone path VCONFKEY_SETAPPL_NOTI_RINGTONE_DEFAULT_PATH_STR */
- bool is_valid = sst_misc_exist(vconf_value);
+ bool is_valid = sst_misc_file_exists(vconf_value);
if (true == is_valid) {
*value = vconf_value;
} else {
return SYSTEM_SETTINGS_ERROR_NONE;
}
+
+/**
+ * sound == false, vibration == false --> silent mode
+ * sound == true, vibration == false --> sound mode
+ * sound == false, vibration == true --> vibration mode
+ */
+int sst_sound_get_silent_mode(sst_interface *iface, bool *value)
+{
+ int sound_status = 0;
+ if (VCONF_OK != vconf_get_bool(iface->vconf_key, &sound_status)) {
+ ERR("vconf_get_bool(%s) Fail", iface->vconf_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ const char *vibration_key = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;
+ int vib_status = 0;
+ if (VCONF_OK != vconf_get_bool(vibration_key, &vib_status)) {
+ ERR("vconf_get_bool(%s) Fail", vibration_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ bool result = (sound_status == FALSE && vib_status == FALSE);
+ *value = result;
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+/**
+ * sound == false, vibration == false --> silent mode
+ * sound == true, vibration == false --> sound mode
+ */
+//Todo: It should return to the old status.
+int sst_sound_set_silent_mode(sst_interface *iface, bool value)
+{
+ int sound_state = !value;
+ if (vconf_set_bool(iface->vconf_key, sound_state)) {
+ ERR("vconf_set_bool(%s, %d) Fail", iface->vconf_key, sound_state);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ int vib_state = FALSE;
+ const char *vibration_key = VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL;
+ if (vconf_set_bool(vibration_key, vib_state)) {
+ ERR("vconf_set_bool(%s) Fail", vibration_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+int sst_sound_set_notification(sst_interface *iface, const char *value)
+{
+ bool is_valid = sst_misc_file_exists(value);
+ if (true == is_valid) {
+ if (vconf_set_str(iface->vconf_key, value)) {
+ ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, value);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+ } else {
+ ERR("sst_misc_file_exists(%s) Fail", value);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
--- /dev/null
+/*
+ * Copyright (c) 2011-2020 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include "sst_interface.h"
+
+int sst_sound_get_call_ringtone(sst_interface *iface, char **value);
+int sst_sound_set_call_ringtone(sst_interface *iface, const char *value);
+int sst_sound_add_call_ringtone(system_settings_key_e key, const char *value);
+int sst_sound_del_call_ringtone(system_settings_key_e key, const char *value);
+int sst_sound_get_call_ringtone_list(system_settings_key_e key, system_settings_iter_cb callback, void *data);
+
+int sst_sound_get_email_alert(sst_interface *iface, char **value);
+int sst_sound_set_email_alert(sst_interface *iface, const char *value);
+
+int sst_sound_set_notification(sst_interface *iface, const char *value);
+int sst_sound_get_silent_mode(sst_interface *iface, bool *value);
+int sst_sound_set_silent_mode(sst_interface *iface, bool value);
#include "sst_misc.h"
#include "sst_interface.h"
-int sst_locale_get_country(sst_interface *iface, void **value)
+int sst_locale_get_country(sst_interface *iface, char **value)
{
char *locale = NULL;
- if (sst_vconf_get_string(iface->vconf_key, &locale)) {
- ERR("sst_vconf_get_string(%s) Fail", iface->vconf_key);
+ if (sst_vconf_get_str_ally(iface->vconf_key, &locale)) {
+ ERR("sst_vconf_get_str_ally(%s) Fail", iface->vconf_key);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_set_country(sst_interface *iface, void *value)
+int sst_locale_set_country(sst_interface *iface, const char *country)
{
- char *country = value;
const char *codeset = "UTF-8";
char locale[100];
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_get_language(sst_interface *iface, void **value)
+int sst_locale_get_language(sst_interface *iface, char **value)
{
//It is same data with sst_locale_get_country()
int ret = sst_locale_get_country(iface, value);
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_set_language(sst_interface *iface, void *value)
+int sst_locale_set_language(sst_interface *iface, const char *value)
{
//It is same data with sst_locale_set_country()
int ret = sst_locale_set_country(iface, value);
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_get_timeformat_24hour(sst_interface *iface, void **value)
+int sst_locale_get_timeformat_24hour(sst_interface *iface, bool *value)
{
- int int_val;
+ int time_fmt;
- if (vconf_get_int(iface->vconf_key, &int_val)) {
+ if (vconf_get_int(iface->vconf_key, &time_fmt)) {
ERR("vconf_get_int(%s) Fail", iface->vconf_key);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- bool ret_value = true;
- if (int_val == VCONFKEY_TIME_FORMAT_12)
- ret_value = false;
- else if (int_val == VCONFKEY_TIME_FORMAT_24)
- ret_value = true;
+ bool result = true;
+ if (time_fmt == VCONFKEY_TIME_FORMAT_12)
+ result = false;
+ else if (time_fmt == VCONFKEY_TIME_FORMAT_24)
+ result = true;
- *value = (void*)ret_value;
+ *value = result;
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_set_timeformat_24hour(sst_interface *iface, void *value)
+int sst_locale_set_timeformat_24hour(sst_interface *iface, bool is_24hour)
{
- bool is_24hour = *(bool*)value;
int vconf_val;
if (is_24hour)
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_get_timezone(sst_interface *iface, void **value)
+int sst_locale_get_timezone(sst_interface *iface, char **value)
{
char tzpath[PATH_MAX];
ssize_t len = readlink(SETTING_TZONE_SYMLINK_PATH, tzpath, sizeof(tzpath) - 1);
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_locale_set_timezone(sst_interface *iface, void *value)
+int sst_locale_set_timezone(sst_interface *iface, const char *timezone)
{
- char *timezone = value;
-
char tzpath[PATH_MAX];
snprintf(tzpath, sizeof(tzpath), SETTING_TIME_ZONEINFO_PATH"/%s", timezone);
- if (false == sst_misc_exist(tzpath)) {
- ERR("sst_misc_exist(%s) Fail", tzpath);
+ if (false == sst_misc_file_exists(tzpath)) {
+ ERR("sst_misc_file_exists(%s) Fail", tzpath);
return SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER;
}
}
//TODO : checking this function is being used or not.
-int sst_time_get_changed(sst_interface *iface, void **value)
+int sst_time_get_changed(sst_interface *iface, int *value)
{
time_t cur_tick;
- int ** val = (int**)value;
+
cur_tick = time(NULL);
- **val = cur_tick;
+ *value = cur_tick;
+
return SYSTEM_SETTINGS_ERROR_NONE;
}
*/
#pragma once
-#include "sst_core.h"
+#include "sst_interface.h"
-int sst_locale_get_country(sst_interface *iface, void **value);
-int sst_locale_set_country(sst_interface *iface, void *value);
-int sst_locale_get_language(sst_interface *iface, void **value);
-int sst_locale_set_language(sst_interface *iface, void *value);
-int sst_locale_get_timeformat_24hour(sst_interface *iface, void **value);
-int sst_locale_set_timeformat_24hour(sst_interface *iface, void *value);
-int sst_locale_get_timezone(sst_interface *iface, void **value);
-int sst_locale_set_timezone(sst_interface *iface, void *value);
-int sst_time_get_changed(sst_interface *iface, void **value);
+int sst_locale_get_country(sst_interface *iface, char **value);
+int sst_locale_set_country(sst_interface *iface, const char *value);
+int sst_locale_get_language(sst_interface *iface, char **value);
+int sst_locale_set_language(sst_interface *iface, const char *value);
+int sst_locale_get_timeformat_24hour(sst_interface *iface, bool *value);
+int sst_locale_set_timeformat_24hour(sst_interface *iface, bool is_24hour);
+int sst_locale_get_timezone(sst_interface *iface, char **value);
+int sst_locale_set_timezone(sst_interface *iface, const char *timezone);
+int sst_time_get_changed(sst_interface *iface, int *value);
return sst_utils_handle;
}
-bool sstu_set_font_config(char *font_name)
+bool sstu_set_font_config(const char *font_name)
{
- static bool (*fn_impl)(char*);
+ static bool (*fn_impl)(const char*);
if (fn_impl)
return fn_impl(font_name);
return fn_impl(font_name);
}
-int sstu_is_available_font(char *font_name)
+int sstu_is_available_font(const char *font_name)
{
- static int (*fn_impl)(char*) = NULL;
+ static int (*fn_impl)(const char*) = NULL;
if (fn_impl)
return fn_impl(font_name);
return fn_impl();
}
-bool sstu_is_valid_image(char *path)
+bool sstu_is_valid_image(const char *path)
{
- static bool (*fn_impl)(char*) = NULL;
+ static bool (*fn_impl)(const char*) = NULL;
if (fn_impl)
return fn_impl(path);
void *handle = _utils_load_lib();
if (NULL == handle) {
ERR("No Utils Library Handle");
- return sst_misc_exist(path);
+ return sst_misc_file_exists(path);
}
fn_impl = dlsym(handle, "sstu_is_valid_image");
dlclose(sst_utils_handle);
sst_utils_handle = NULL;
}
-*/
\ No newline at end of file
+*/
#include <stdbool.h>
//It is same with util Library
-bool sstu_set_font_config(char *font_name);
-int sstu_is_available_font(char *font_name);
+bool sstu_set_font_config(const char *font_name);
+int sstu_is_available_font(const char *font_name);
char* sstu_get_default_font();
-bool sstu_is_valid_image(char *path);
+bool sstu_is_valid_image(const char *path);
void sstu_set_font_size();
void sstu_font_config_set_notification();
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <glib.h>
#include <vconf.h>
#include "sst.h"
void *cb_data;
};
-int sst_vconf_set(sst_interface *iface, void *value)
+int sst_vconf_set_int(sst_interface *iface, int val)
{
- char *vconf_char;
- int vconf_int;
- bool vconf_bool;
-
- switch (iface->data_type) {
- case SYSTEM_SETTING_DATA_TYPE_STRING:
- vconf_char = (char*)value;
- if (vconf_set_str(iface->vconf_key, vconf_char))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- break;
- case SYSTEM_SETTING_DATA_TYPE_INT:
- //todo: change double pointer to valide data type
- vconf_int = **(int**)value;
- if (vconf_set_int(iface->vconf_key, vconf_int))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- break;
- case SYSTEM_SETTING_DATA_TYPE_BOOL:
- vconf_bool = *(bool*)value;
- if (vconf_set_bool(iface->vconf_key, vconf_bool))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- break;
- default:
- ERR("Unknown type(%d)", iface->data_type);
+ RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+
+ if (VCONF_OK != vconf_set_int(iface->vconf_key, val)) {
+ ERR("vconf_set_int(%s, %d) Fail", iface->vconf_key, val);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_vconf_get(sst_interface *iface, void **value)
+int sst_vconf_set_bool(sst_interface *iface, bool val)
{
- char *vconf_char;
- int vconf_int;
- int **val = (int**)value;
- bool vconf_bool;
-
- switch (iface->data_type) {
- case SYSTEM_SETTING_DATA_TYPE_STRING:
- if (sst_vconf_get_string(iface->vconf_key, &vconf_char))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- *value = vconf_char;
- break;
- case SYSTEM_SETTING_DATA_TYPE_INT:
- if (vconf_get_int(iface->vconf_key, &vconf_int))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- **val = vconf_int;
- break;
- case SYSTEM_SETTING_DATA_TYPE_BOOL:
- if (sst_vconf_get_real_bool(iface->vconf_key, &vconf_bool))
- return SYSTEM_SETTINGS_ERROR_IO_ERROR;
- *value = (void*)vconf_bool;
- break;
- default:
- ERR("Unknown type(%d)", iface->data_type);
+ RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+
+ if (VCONF_OK != vconf_set_bool(iface->vconf_key, val)) {
+ ERR("vconf_set_bool(%s, %d) Fail", iface->vconf_key, val);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+int sst_vconf_set_str(sst_interface *iface, const char *val)
+{
+ RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+
+ if (VCONF_OK != vconf_set_str(iface->vconf_key, val)) {
+ ERR("vconf_set_str(%s, %s) Fail", iface->vconf_key, val);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+int sst_vconf_get_int(sst_interface *iface, int *val)
+{
+ RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+
+ int result = 0;
+ if (VCONF_OK != vconf_get_int(iface->vconf_key, &result)) {
+ ERR("vconf_get_int(%s) Fail", iface->vconf_key);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
+ *val = result ? true : false;
+
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_vconf_get_real_bool(const char *vconf_key, bool *value)
+int sst_vconf_get_bool(sst_interface *iface, bool *val)
{
- int temp = 0;
- int ret = vconf_get_bool(vconf_key, &temp);
- if (VCONF_OK != ret) {
- ERR("vconf_get_bool(%s) Fail(%d)", vconf_key, ret);
+ RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+
+ int result = 0;
+ if (VCONF_OK != vconf_get_bool(iface->vconf_key, &result)) {
+ ERR("vconf_get_bool(%s) Fail", iface->vconf_key);
return SYSTEM_SETTINGS_ERROR_IO_ERROR;
}
- *value = temp ? true : false;
+ *val = result ? true : false;
+
+ return SYSTEM_SETTINGS_ERROR_NONE;
+}
+
+int sst_vconf_get_str(sst_interface *iface, char **val)
+{
+ RETV_IF(NULL == iface, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+ RETV_IF(NULL == iface->vconf_key, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
+
+ char *result = vconf_get_str(iface->vconf_key);
+ if (NULL == result) {
+ ERR("vconf_get_str(%s) Fail(NULL)", iface->vconf_key);
+ return SYSTEM_SETTINGS_ERROR_IO_ERROR;
+ }
+ *val = result;
return SYSTEM_SETTINGS_ERROR_NONE;
}
-int sst_vconf_get_string(const char *vconf_key, char **value)
+int sst_vconf_get_str_ally(const char *vconf_key, char **value)
{
char *str_value = vconf_get_str(vconf_key);
if (NULL == str_value) {
*/
#pragma once
-#include "sst_core.h"
+#include "sst_interface.h"
-int sst_vconf_get_real_bool(const char *vconf_key, bool *value);
-int sst_vconf_get_string(const char *vconf_key, char **value);
+int sst_vconf_get_str_ally(const char *vconf_key, char **value);
-int sst_vconf_get(sst_interface *iface, void **value);
-int sst_vconf_set(sst_interface *iface, void *value);
+int sst_vconf_set_int(sst_interface *iface, int val);
+int sst_vconf_set_bool(sst_interface *iface, bool val);
+int sst_vconf_set_str(sst_interface *iface, const char *val);
+
+int sst_vconf_get_int(sst_interface *iface, int *val);
+int sst_vconf_get_bool(sst_interface *iface, bool *val);
+int sst_vconf_get_str(sst_interface *iface, char **val);
int sst_vconf_set_cb(sst_interface *iface, system_settings_changed_cb cb, void *user_data);
int sst_vconf_unset_cb(sst_interface *iface);
int sst_vconf_add_multi_cb(sst_interface *iface, system_settings_changed_cb cb, void *user_data);
-int sst_vconf_del_multi_cb(sst_interface *iface, system_settings_changed_cb cb);
\ No newline at end of file
+int sst_vconf_del_multi_cb(sst_interface *iface, system_settings_changed_cb cb);