2 * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "lockscreen.h"
22 #include "default_lock.h"
24 static struct _s_info {
27 bool is_rotation_enabled;
29 .is_sound_lock = false,
30 .is_sound_touch = false,
31 .is_rotation_enabled = false,
34 bool lock_property_sound_lock_get(void)
36 return s_info.is_sound_lock;
39 bool lock_property_sound_touch_get(void)
41 return s_info.is_sound_touch;
44 bool lock_property_rotation_enabled_get(void)
46 return s_info.is_rotation_enabled;
49 lock_error_e lock_property_get_string(property_type_e type, void *key, char **str)
54 case PROPERTY_TYPE_SYSTEM_SETTINGS :
55 ret = system_settings_get_value_string((int)key, &(*str));
56 if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
59 _D("SYSTEM SETTINGS : key(%d), val(%s)", (int)key, *str);
61 case PROPERTY_TYPE_SYSTEM_INFO :
62 ret = system_info_get_platform_string((char *)key, &(*str));
63 if (SYSTEM_INFO_ERROR_NONE != ret) {
67 _D("SYSTEM INFO : key(%s), val(%s)", (char *)key, *str);
68 case PROPERTY_TYPE_RUNTIME_INFO :
69 ret = runtime_info_get_value_string((int)key, &(*str));
70 if (RUNTIME_INFO_ERROR_NONE != ret) {
73 _D("RUNTIME INFO : key(%d), val(%s)", (int)key, *str);
75 case PROPERTY_TYPE_VCONFKEY :
76 *str = vconf_get_str((char *)key);
80 _D("vconfkey : key(%s), val(%s)", (char *)key, *str);
83 _E("Failed to get property. type error(%d)", type);
84 return LOCK_ERROR_FAIL;
88 _E("Failed to get property : type(%d), ret(%d)", type, ret);
89 return LOCK_ERROR_FAIL;
95 lock_error_e lock_property_get_bool(property_type_e type, void *key, void *val)
100 case PROPERTY_TYPE_SYSTEM_SETTINGS :
101 ret = system_settings_get_value_bool((int)key, val);
102 if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
105 _D("SYSTEM SETTINGS : key(%d), val(%d)", (int)key, *((bool *)val));
107 case PROPERTY_TYPE_SYSTEM_INFO :
108 ret = system_info_get_platform_bool((char *)key, val);
109 if (SYSTEM_INFO_ERROR_NONE != ret) {
112 _D("SYSTEM INFO : key(%s), val(%d)", (char *)key, *((bool *)val));
114 case PROPERTY_TYPE_RUNTIME_INFO :
115 ret = runtime_info_get_value_bool((int)key, val);
116 if (RUNTIME_INFO_ERROR_NONE != ret) {
119 _D("RUNTIME INFO : key(%d), val(%d)", (int)key, *((bool *)val));
121 case PROPERTY_TYPE_VCONFKEY :
122 ret = vconf_get_bool((char *)key, val);
126 _D("vconfkey : key(%s), val(%d)", (char *)key, *((int *)val));
129 _E("Failed to get property. type error(%d)", type);
130 return LOCK_ERROR_FAIL;
134 _E("Failed to get property : type(%d), ret(%d)", type, ret);
135 return LOCK_ERROR_FAIL;
138 return LOCK_ERROR_OK;
141 lock_error_e lock_property_get_int(property_type_e type, void *key, int *val)
146 case PROPERTY_TYPE_SYSTEM_SETTINGS :
147 ret = system_settings_get_value_int((int)key, val);
148 if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
151 _D("SYSTEM SETTINGS : key(%d), val(%d)", (int)key, *val);
153 case PROPERTY_TYPE_SYSTEM_INFO :
154 ret = system_info_get_platform_int((char *)key, val);
155 if (SYSTEM_INFO_ERROR_NONE != ret) {
158 _D("SYSTEM INFO : key(%s), val(%d)", (char *)key, *val);
160 case PROPERTY_TYPE_RUNTIME_INFO :
161 ret = runtime_info_get_value_int((int)key, &(*val));
162 if (RUNTIME_INFO_ERROR_NONE != ret) {
165 _D("RUNTIME INFO : key(%d), val(%d)", (int)key, *val);
167 case PROPERTY_TYPE_VCONFKEY :
168 ret = vconf_get_int((char *)key, &(*val));
172 _D("vconfkey : key(%s), val(%d)", (char *)key, *val);
175 _E("Failed to get property. type error(%d)", type);
176 return LOCK_ERROR_FAIL;
180 _E("Failed to get property : type(%d), ret(%d)", type, ret);
181 return LOCK_ERROR_FAIL;
184 return LOCK_ERROR_OK;
187 static void _feedback_state_changed_cb(system_settings_key_e key, void *user_data)
192 ret = lock_property_get_bool(PROPERTY_TYPE_SYSTEM_SETTINGS, (void *)key, &val);
193 if (ret != LOCK_ERROR_OK) {
194 _E("Failed to get system settings");
199 case SYSTEM_SETTINGS_KEY_SOUND_LOCK :
200 _D("lock sound : %d", val);
201 s_info.is_sound_lock = val;
203 case SYSTEM_SETTINGS_KEY_SOUND_TOUCH :
204 _D("touch sound : %d", val);
205 s_info.is_sound_touch = val;
212 void lock_property_register(void *data)
217 ret = lock_property_get_bool(PROPERTY_TYPE_SYSTEM_SETTINGS, (void *)SYSTEM_SETTINGS_KEY_SOUND_LOCK, &val);
218 if (ret != LOCK_ERROR_OK) {
219 _E("Failed to get system settings : %d", SYSTEM_SETTINGS_KEY_SOUND_LOCK);
222 s_info.is_sound_lock = val;
224 ret = lock_property_get_bool(PROPERTY_TYPE_SYSTEM_SETTINGS, (void *)SYSTEM_SETTINGS_KEY_SOUND_TOUCH, &val);
225 if (ret != LOCK_ERROR_OK) {
226 _E("Failed to get system settings : %d", SYSTEM_SETTINGS_KEY_SOUND_TOUCH);
229 s_info.is_sound_touch = val;
231 ret = lock_property_get_bool(PROPERTY_TYPE_SYSTEM_SETTINGS, (void *)SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &val);
232 if (ret != LOCK_ERROR_OK) {
233 _E("Failed to get system settings : %d", SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO);
236 s_info.is_rotation_enabled = val;
238 _D("sound_lock(%d), sound_touch(%d), rotation(%d)", s_info.is_sound_lock, s_info.is_sound_touch, s_info.is_rotation_enabled);
240 /* Register changed callback */
241 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_LOCK, _feedback_state_changed_cb, NULL);
242 if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
243 _E("Failed to register sound feedback callback");
246 ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_TOUCH, _feedback_state_changed_cb, NULL);
247 if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
248 _E("Failed to register touch feedback callback");
252 void lock_property_unregister(void)
254 _D("unregister property cb");
255 system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_LOCK);
256 system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_TOUCH);