#include <vconf.h>
#include "sst.h"
-#include "sst_core.h"
#include "sst_font.h"
-#include "sst_utils.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_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- 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 */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_home_screen, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_lock_screen, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_font, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_font, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .feature_checker = sst_feature_check_font,
+ .getter.s = sst_font_get_type,
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_notification_email, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- //{ /* 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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_lock_screen, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- NULL,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_font, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_wifi, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_incoming_call, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- sst_feature_check_telephony, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* add */
- NULL, /* del */
- NULL, /* list */
- sst_feature_check_telephony, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_telephony, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .feature_checker = sst_feature_check_automatic_time_update,
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- NULL, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_accessibility_grayscale, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_accessibility_negative, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
+ .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,
- sst_vconf_set_changed_cb,
- sst_vconf_unset_changed_cb,
- NULL,
- NULL, /* ADD */
- NULL, /* DEL */
- NULL, /* LIST */
- sst_feature_check_rotary, /* feature check */
- { NULL, 0 }, /* changed callabck list */
- NULL, /* user data */
- },
- {
- SYSTEM_SETTINGS_MAX, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, { NULL, 0 }, 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;