Added multi-callback for system-settings keys
[platform/core/api/system-settings.git] / include / system_settings_private.h
index 968fd2b..eb4ca68 100644 (file)
@@ -25,6 +25,7 @@ extern "C"
 
 #include <dlog.h>
 #include <system_settings.h>
+#include <system_settings_multi_callback.h>
 
 #ifdef LOG_TAG
 #undef LOG_TAG
@@ -62,6 +63,13 @@ extern "C"
 #endif
 
 
+#define SETTING_PROFILE_PATH "tizen.org/feature/profile"
+#define SETTING_INCOMING_CALL_PATH "tizen.org/feature/systemsetting.incoming_call"
+#define SETTING_HOME_SCREEN_PATH "tizen.org/feature/systemsetting.home_screen"
+#define SETTING_LOCK_SCREEN_PATH "tizen.org/feature/systemsetting.lock_screen"
+#define SETTING_NOTIFICATION_EMAIL_PATH "tizen.org/feature/systemsetting.notification_email"
+#define SETTING_WIFI_PATH "tizen.org/feature/network.wifi"
+#define SETTING_TELEPHONY_PATH "tizen.org/feature/network.telephony"
 
 /**
  * @internal
@@ -79,6 +87,19 @@ typedef enum {
 }
 system_setting_data_type_e;
 
+/**
+ * @internal
+ * @since_tizen 4.0
+ * Enumeration for supported profile info
+ */
+typedef enum {
+       SYSTEM_SETTING_SUPPORTED_PROFILE_MOBILE = 0x1,          /**< mobile */
+       SYSTEM_SETTING_SUPPORTED_PROFILE_WEARABLE = 0x2,        /**< wearable */
+       SYSTEM_SETTING_SUPPORTED_PROFILE_TV = 0x4,                      /**< tv */
+       SYSTEM_SETTING_SUPPORTED_PROFILE_COMMON = 0x8,          /**< common*/
+       SYSTEM_SETTING_SUPPORTED_PROFILE_ALL = 0xF,                     /**< all of profiles */
+}
+system_setting_supported_profile_info_e;
 
 /**
  * @internal
@@ -89,7 +110,7 @@ system_setting_data_type_e;
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-typedef int (*system_setting_get_value_cb)(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+typedef int (*system_setting_get_value_cb)(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -100,11 +121,12 @@ typedef int (*system_setting_get_value_cb)(system_settings_key_e key, system_set
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-typedef int (*system_setting_set_value_cb)(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+typedef int (*system_setting_set_value_cb)(system_settings_key_e key, void *value);
+typedef int (*system_setting_add_value_cb)(system_settings_key_e key, void *value);
+typedef int (*system_setting_del_value_cb)(system_settings_key_e key, void *value);
+typedef int (*system_setting_list_value_cb)(system_settings_key_e key, system_settings_iter_cb callback, void *user_data);
 
-typedef int (*system_setting_add_value_cb)(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
-typedef int (*system_setting_del_value_cb)(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
-typedef int (*system_setting_list_value_cb)(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *user_data);
+typedef int (*system_setting_feature_check_cb)(void *value);
 
 /**
  * @internal
@@ -151,6 +173,10 @@ typedef struct {
        system_setting_del_value_cb del_value_cb;
        system_setting_list_value_cb list_value_cb;
 
+       system_setting_feature_check_cb feature_check_cb;
+
+       callback_list changed_cb_list;
+
        void *user_data;                                                                                                /* user_data */
 
 } system_setting_s;
@@ -166,6 +192,7 @@ typedef system_setting_s *system_setting_h;
  * @retval     #SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
  */
 int system_settings_get_item(system_settings_key_e key, system_setting_h *item);
 
@@ -280,6 +307,42 @@ int system_setting_vconf_unset_changed_cb(const char *vconf_key, int slot);
 
 /**
  * @internal
+ * @brief Unset the system settings notification callback
+ * @since_tizen 4.0
+ * @param[in] key system_settings_key_e value to get vconf string
+ * @param[out] key_string string pointer to be assigned vconf string
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_settings_vconf_get_key_string(system_settings_key_e key, char **key_string);
+
+
+/**
+ * @internal
+ * @brief Unset the system settings notification callback
+ * @since_tizen 4.0
+ * @param[in] vconf_key vconf key name used in the code
+ * @param[in] key system_settings_key_e value.
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ */
+int system_setting_vconf_set_changed_multi_cb(const char *vconf_key, system_settings_key_e key);
+
+/**
+ * @internal
+ * @brief Unset the system settings notification callback
+ * @since_tizen 4.0
+ * @param[in] vconf_key vconf key name used in the code
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ */
+int system_setting_vconf_unset_changed_multi_cb(const char *vconf_key);
+
+/**
+ * @internal
  * @brief get current font size
  * @since_tizen 2.3
  * @param[in] key key name should be SYSTEM_SETTINGS_KEY_FONT_SIZE
@@ -289,7 +352,7 @@ int system_setting_vconf_unset_changed_cb(const char *vconf_key, int slot);
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_font_size(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_font_size(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -303,7 +366,7 @@ int system_setting_get_font_size(system_settings_key_e key, system_setting_data_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_font_size(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_font_size(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -326,7 +389,7 @@ int system_setting_unset_changed_callback_font_size(system_settings_key_e key);
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_incoming_call_ringtone(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -340,25 +403,25 @@ int system_setting_get_incoming_call_ringtone(system_settings_key_e key, system_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_incoming_call_ringtone(system_settings_key_e key, void *value);
 
 
 /**
  * @todo add comment here
  */
-int system_setting_add_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_add_incoming_call_ringtone(system_settings_key_e key, void *value);
 
 
 /**
  * @todo add comment here
  */
-int system_setting_del_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_del_incoming_call_ringtone(system_settings_key_e key, void *value);
 
 
 /**
  * @todo add comment here
  */
-int system_setting_list_incoming_call_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, system_settings_iter_cb callback, void *data);
+int system_setting_list_incoming_call_ringtone(system_settings_key_e key, system_settings_iter_cb callback, void *data);
 
 /**
  * @internal
@@ -380,7 +443,7 @@ int system_setting_unset_changed_callback_incoming_call_ringtone(system_settings
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_email_alert_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_email_alert_ringtone(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -394,7 +457,7 @@ int system_setting_get_email_alert_ringtone(system_settings_key_e key, system_se
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_email_alert_ringtone(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_email_alert_ringtone(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -417,7 +480,7 @@ int system_setting_unset_changed_callback_email_alert_ringtone(system_settings_k
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_wallpaper_home_screen(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_wallpaper_home_screen(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -431,7 +494,7 @@ int system_setting_get_wallpaper_home_screen(system_settings_key_e key, system_s
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_wallpaper_home_screen(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_wallpaper_home_screen(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -454,7 +517,7 @@ int system_setting_unset_changed_callback_wallpaper_home_screen(system_settings_
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_wallpaper_lock_screen(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_wallpaper_lock_screen(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -468,7 +531,7 @@ int system_setting_get_wallpaper_lock_screen(system_settings_key_e key, system_s
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_wallpaper_lock_screen(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_wallpaper_lock_screen(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -490,7 +553,7 @@ int system_setting_unset_changed_callback_wallpaper_lock_screen(system_settings_
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_default_font_type(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_default_font_type(system_settings_key_e key, void **value);
 
 
 /**
@@ -498,7 +561,7 @@ int system_setting_get_default_font_type(system_settings_key_e key, system_setti
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_font_type(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_font_type(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -512,7 +575,7 @@ int system_setting_get_font_type(system_settings_key_e key, system_setting_data_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_font_type(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_font_type(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -534,7 +597,7 @@ int system_setting_unset_changed_callback_font_type(system_settings_key_e key);
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_motion_activation(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_motion_activation(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -548,7 +611,7 @@ int system_setting_get_motion_activation(system_settings_key_e key, system_setti
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_motion_activation(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_motion_activation(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -570,7 +633,7 @@ int system_setting_unset_changed_callback_motion_activation(system_settings_key_
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_usb_debugging_option(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_usb_debugging_option(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -584,7 +647,7 @@ int system_setting_get_usb_debugging_option(system_settings_key_e key, system_se
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_usb_debugging_option(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_usb_debugging_option(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -606,7 +669,7 @@ int system_setting_unset_changed_callback_usb_debugging_option(system_settings_k
  * @since_tizen 2.3
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_3g_data_network(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_3g_data_network(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -620,7 +683,7 @@ int system_setting_get_3g_data_network(system_settings_key_e key, system_setting
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_3g_data_network(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_3g_data_network(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -650,7 +713,7 @@ int system_setting_unset_changed_callback_3g_data_network(system_settings_key_e
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_tap_and_hold_delay(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_tap_and_hold_delay(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -660,7 +723,7 @@ int system_setting_get_tap_and_hold_delay(system_settings_key_e key, system_sett
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_tap_and_hold_delay(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_tap_and_hold_delay(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -690,7 +753,7 @@ int system_setting_unset_changed_callback_tap_and_hold_delay(system_settings_key
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_lockscreen_app(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_lockscreen_app(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -700,7 +763,7 @@ int system_setting_get_lockscreen_app(system_settings_key_e key, system_setting_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_lockscreen_app(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_lockscreen_app(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -730,7 +793,7 @@ int system_setting_unset_changed_callback_lockscreen_app(system_settings_key_e k
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_locale_country(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_locale_country(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -739,7 +802,7 @@ int system_setting_get_locale_country(system_settings_key_e key, system_setting_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_locale_country(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_locale_country(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -767,7 +830,7 @@ int system_setting_unset_changed_callback_locale_country(system_settings_key_e k
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_locale_language(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_locale_language(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -776,7 +839,7 @@ int system_setting_get_locale_language(system_settings_key_e key, system_setting
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_locale_language(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_locale_language(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -804,7 +867,7 @@ int system_setting_unset_changed_callback_locale_language(system_settings_key_e
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_locale_timeformat_24hour(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_locale_timeformat_24hour(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -813,7 +876,7 @@ int system_setting_get_locale_timeformat_24hour(system_settings_key_e key, syste
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_locale_timeformat_24hour(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_locale_timeformat_24hour(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -841,7 +904,7 @@ int system_setting_unset_changed_callback_locale_timeformat_24hour(system_settin
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_locale_timezone(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_locale_timezone(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -851,7 +914,7 @@ int system_setting_get_locale_timezone(system_settings_key_e key, system_setting
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_locale_timezone(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_locale_timezone(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -902,7 +965,7 @@ int system_setting_unset_changed_callback_locale_timezone_changed(system_setting
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_time_changed(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_time_changed(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -931,7 +994,7 @@ int system_setting_unset_changed_callback_time_changed(system_settings_key_e key
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_sound_lock(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_sound_lock(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -959,7 +1022,7 @@ int system_setting_unset_changed_callback_sound_lock(system_settings_key_e key);
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_sound_silent_mode(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_sound_silent_mode(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -969,7 +1032,7 @@ int system_setting_get_sound_silent_mode(system_settings_key_e key, system_setti
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_sound_silent_mode(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_sound_silent_mode(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -998,7 +1061,7 @@ int system_setting_unset_changed_callback_sound_silent_mode(system_settings_key_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_sound_touch(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_sound_touch(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1026,7 +1089,7 @@ int system_setting_unset_changed_callback_sound_touch(system_settings_key_e key)
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_auto_rotation_mode(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_auto_rotation_mode(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1035,7 +1098,7 @@ int system_setting_get_auto_rotation_mode(system_settings_key_e key, system_sett
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_auto_rotation_mode(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_auto_rotation_mode(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1063,7 +1126,7 @@ int system_setting_unset_changed_callback_auto_rotation_mode(system_settings_key
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_screen_backlight_time(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_screen_backlight_time(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1072,7 +1135,7 @@ int system_setting_get_screen_backlight_time(system_settings_key_e key, system_s
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_screen_backlight_time(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_screen_backlight_time(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1100,7 +1163,7 @@ int system_setting_unset_changed_callback_screen_backlight_time(system_settings_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_sound_notification(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_sound_notification(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1109,7 +1172,7 @@ int system_setting_get_sound_notification(system_settings_key_e key, system_sett
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_sound_notification(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_sound_notification(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1137,7 +1200,7 @@ int system_setting_unset_changed_callback_sound_notification(system_settings_key
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_notification_repetition_period(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_notification_repetition_period(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1146,7 +1209,7 @@ int system_setting_get_notification_repetition_period(system_settings_key_e key,
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_notification_repetition_period(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_notification_repetition_period(system_settings_key_e key, void *value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1174,7 +1237,7 @@ int system_setting_unset_changed_callback_notification_repetition_period(system_
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_device_name(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_device_name(system_settings_key_e key, void **value);
 /**
  * @internal
  * @since_tizen 2.3
@@ -1203,7 +1266,7 @@ int system_setting_unset_changed_callback_device_name(system_settings_key_e key)
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_network_flight_mode(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_network_flight_mode(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -1235,7 +1298,7 @@ int system_setting_unset_changed_callback_network_flight_mode(system_settings_ke
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_network_wifi_notification(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_network_wifi_notification(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -1267,7 +1330,7 @@ int system_setting_unset_changed_callback_network_wifi_notification(system_setti
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_lock_state(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_lock_state(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -1277,7 +1340,7 @@ int system_setting_get_lock_state(system_settings_key_e key, system_setting_data
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_lock_state(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_lock_state(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -1308,7 +1371,7 @@ int system_setting_unset_changed_callback_lock_state(system_settings_key_e key);
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_ads_id(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_ads_id(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -1319,7 +1382,7 @@ int system_setting_get_ads_id(system_settings_key_e key, system_setting_data_typ
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_set_ads_id(system_settings_key_e key, system_setting_data_type_e data_type, void *value);
+int system_setting_set_ads_id(system_settings_key_e key, void *value);
 
 /**
  * @internal
@@ -1350,7 +1413,7 @@ int system_setting_unset_changed_callback_ads_id(system_settings_key_e key);
  * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
  * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
  */
-int system_setting_get_uds_state(system_settings_key_e key, system_setting_data_type_e data_type, void **value);
+int system_setting_get_uds_state(system_settings_key_e key, void **value);
 
 /**
  * @internal
@@ -1384,6 +1447,73 @@ int system_setting_unset_changed_callback_uds_state(system_settings_key_e key);
 int system_setting_set_changed_callback_uds_pkg_list(system_settings_key_e key, system_settings_changed_cb callback, void *user_data);
 
 
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_get_accessibility_tts(system_settings_key_e key, void **value);
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_set_changed_callback_accessibility_tts(system_settings_key_e key, system_settings_changed_cb callback, void *user_data);
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_unset_changed_callback_accessibility_tts(system_settings_key_e key);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_get_vibration(system_settings_key_e key, void **value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_set_vibration(system_settings_key_e key, void *value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_set_changed_callback_vibration(system_settings_key_e key, system_settings_changed_cb callback, void *user_data);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED Permission violation error
+ */
+int system_setting_unset_changed_callback_vibration(system_settings_key_e key);
 
 /**
  * @internal
@@ -1395,6 +1525,65 @@ int system_setting_set_changed_callback_uds_pkg_list(system_settings_key_e key,
  */
 int system_setting_unset_changed_callback_uds_pkg_list(system_settings_key_e key);
 
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_setting_feature_check_incoming_call(void * value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_setting_feature_check_home_screen(void * value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_setting_feature_check_lock_screen(void * value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_setting_feature_check_notification_email(void * value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_setting_feature_check_wifi(void * value);
+
+/**
+ * @internal
+ * @since_tizen 4.0
+ * @return     0 on success, otherwise a negative error value
+ * @retval     #SYSTEM_SETTINGS_ERROR_NONE Successful
+ * @retval     #SYSTEM_SETTINGS_ERROR_IO_ERROR Internal I/O error
+ * @retval     #SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED Not support system-settings API
+ */
+int system_setting_feature_check_telephony(void *value);
 /*// */