removed the log message functions
[framework/api/system-settings.git] / src / system_settings_vconf.c
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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. 
15  */
16
17 #include <stdio.h>
18 #include <stdlib.h>
19 #include <string.h>
20
21 #include <vconf.h>
22 #include <dlog.h>
23
24 #include <system_settings.h>
25 #include <system_settings_private.h>
26
27 #ifdef LOG_TAG
28 #undef LOG_TAG
29 #endif
30
31 #define LOG_TAG "TIZEN_N_SYSTEM_SETTINGS"
32
33
34 int system_setting_vconf_get_value_int(const char *vconf_key, int *value)
35 {
36         return vconf_get_int(vconf_key, value);
37 }
38
39 int system_setting_vconf_get_value_bool(const char *vconf_key, bool *value)
40 {
41         return vconf_get_bool(vconf_key, (int*)value);
42 }
43
44 int system_setting_vconf_get_value_double(const char *vconf_key, double *value)
45 {
46         return vconf_get_dbl(vconf_key, value);
47 }
48
49 int system_setting_vconf_get_value_string(const char *vconf_key, char **value)
50 {
51     char *str_value = NULL;
52
53     str_value = vconf_get_str(vconf_key);
54         
55     if (str_value != NULL)
56     {
57         *value = str_value;
58         return 0;
59     }
60     else
61     {
62         return -1;
63     }
64 }
65
66 int system_setting_vconf_set_value_int(const char *vconf_key, int value)
67 {
68         return vconf_set_int(vconf_key, value);
69 }
70
71 int system_setting_vconf_set_value_bool(const char *vconf_key, bool value)
72 {
73         return vconf_set_bool(vconf_key, (int)value);
74 }
75
76 int system_setting_vconf_set_value_double(const char *vconf_key, double value)
77 {
78         return vconf_set_dbl(vconf_key, value);
79 }
80
81 int system_setting_vconf_set_value_string(const char *vconf_key, char *value)
82 {
83     return vconf_set_str(vconf_key, value);
84 }
85
86
87 /////////////////////////////////////////////////////////////////////////////////////////////
88
89 typedef void (*system_setting_vconf_event_cb)(keynode_t *node, void *event_data);
90     
91 static void system_setting_vconf_event_cb0(keynode_t *node, void *event_data)
92 {       
93         system_settings_key_e pkey = (system_settings_key_e)event_data;
94
95     if (node != NULL)
96     {
97                 system_setting_h system_setting_item;
98                                                                                                                                                                                                                                                   
99                 if (system_settings_get_item(pkey, &system_setting_item))
100                 {
101                         LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
102                 }
103                 system_setting_item->changed_cb(pkey, NULL);
104     }       
105 }
106     
107 static void system_setting_vconf_event_cb1(keynode_t *node, void *event_data)
108 {       
109         system_settings_key_e pkey = (system_settings_key_e)event_data;
110         //printf("*** system_setting_vconf_event_cb1  : %d \n",pkey );
111
112     if (node != NULL)
113     {
114                 system_setting_h system_setting_item;
115                                                                                                                                                                                                                                                   
116                 if (system_settings_get_item(pkey, &system_setting_item))
117                 {
118                         LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
119                 }
120                 system_setting_item->changed_cb(pkey, NULL);
121     }       
122 }
123     
124 static void system_setting_vconf_event_cb2(keynode_t *node, void *event_data)
125 {       
126         system_settings_key_e pkey = (system_settings_key_e)event_data;
127         //printf("*** system_setting_vconf_event_cb2  : %d \n",pkey );
128
129     if (node != NULL)
130     {
131                 system_setting_h system_setting_item;
132                                                                                                                                                                                                                                                   
133                 if (system_settings_get_item(pkey, &system_setting_item))
134                 {
135                         LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
136                 }
137                 system_setting_item->changed_cb(pkey, NULL);
138     }       
139 }
140
141 static void system_setting_vconf_event_cb3(keynode_t *node, void *event_data)
142 {
143         system_settings_key_e pkey = (system_settings_key_e)event_data;
144         //printf("*** system_setting_vconf_event_cb3  : %d \n",pkey );
145
146     if (node != NULL)
147     {
148                 system_setting_h system_setting_item;
149                                                                                                                                                                                                                                                   
150                 if (system_settings_get_item(pkey, &system_setting_item))
151                 {
152                         LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
153                 }
154                 system_setting_item->changed_cb(pkey, NULL);
155     }       
156 }
157
158 static void system_setting_vconf_event_cb4(keynode_t *node, void *event_data)
159 {
160         system_settings_key_e pkey = (system_settings_key_e)event_data;
161         //printf("*** system_setting_vconf_event_cb4  : %d \n",pkey );
162
163     if (node != NULL)
164     {
165                 system_setting_h system_setting_item;
166                                                                                                                                                                                                                                                   
167                 if (system_settings_get_item(pkey, &system_setting_item))
168                 {
169                         LOGE("[%s] INVALID_PARAMETER(0x%08x) : invalid key", __FUNCTION__, SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER);
170                 }
171                 system_setting_item->changed_cb(pkey, NULL);
172     }       
173 }
174
175
176 static system_setting_vconf_event_cb system_setting_vconf_get_event_cb_slot(int slot)
177 {
178     switch (slot)
179     {
180     case 0:
181         return system_setting_vconf_event_cb0;
182
183     case 1:
184         return system_setting_vconf_event_cb1;
185
186     case 2:
187         return system_setting_vconf_event_cb2;
188
189     case 3:
190         return system_setting_vconf_event_cb3;
191
192     case 4:
193         return system_setting_vconf_event_cb4;
194
195     default:
196         return NULL;
197     }
198 }
199
200 int system_setting_vconf_set_changed_cb(const char *vconf_key, system_settings_key_e key, int slot)
201 {
202     system_setting_vconf_event_cb vconf_event_cb;
203
204     vconf_event_cb = system_setting_vconf_get_event_cb_slot(slot);
205
206     if (vconf_event_cb == NULL)
207     {
208         return SYSTEM_SETTINGS_ERROR_IO_ERROR;
209     }
210
211     if (vconf_notify_key_changed(vconf_key, vconf_event_cb, (void*)key))
212     {
213         return SYSTEM_SETTINGS_ERROR_IO_ERROR;
214     }
215
216     return SYSTEM_SETTINGS_ERROR_NONE;
217 }
218
219 int system_setting_vconf_unset_changed_cb(const char *vconf_key, int slot)
220 {
221     system_setting_vconf_event_cb vconf_event_cb;
222
223     vconf_event_cb = system_setting_vconf_get_event_cb_slot(slot);
224
225     if (vconf_event_cb != NULL)
226     {
227         vconf_ignore_key_changed(vconf_key, vconf_event_cb);
228     }
229
230     return SYSTEM_SETTINGS_ERROR_NONE;
231 }
232
233