2 * Copyright (c) 2011 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.
24 #include <runtime_info.h>
25 #include <runtime_info_private.h>
31 #define LOG_TAG "CAPI_SYSTEM_RUNTIME_INFO"
33 int runtime_info_vconf_get_value_int(const char *vconf_key, int *value)
35 return vconf_get_int(vconf_key, value);
38 int runtime_info_vconf_get_value_bool(const char *vconf_key, int *value)
40 return vconf_get_bool(vconf_key, value);
43 int runtime_info_vconf_get_value_double(const char *vconf_key, double *value)
45 return vconf_get_dbl(vconf_key, value);
48 int runtime_info_vconf_get_value_string(const char *vconf_key, char **value)
50 char *str_value = NULL;
52 str_value = vconf_get_str(vconf_key);
54 if (str_value != NULL) {
62 typedef void (*runtime_info_vconf_event_cb)(keynode_t *node, void *event_data);
64 static void runtime_info_vconf_event_cb0(keynode_t *node, void *event_data)
67 runtime_info_updated((runtime_info_key_e)event_data);
70 static void runtime_info_vconf_event_cb1(keynode_t *node, void *event_data)
73 runtime_info_updated((runtime_info_key_e)event_data);
76 static void runtime_info_vconf_event_cb2(keynode_t *node, void *event_data)
79 runtime_info_updated((runtime_info_key_e)event_data);
82 static void runtime_info_vconf_event_cb3(keynode_t *node, void *event_data)
85 runtime_info_updated((runtime_info_key_e)event_data);
88 static void runtime_info_vconf_event_cb4(keynode_t *node, void *event_data)
91 runtime_info_updated((runtime_info_key_e)event_data);
94 static runtime_info_vconf_event_cb runtime_info_vconf_get_event_cb_slot(int slot)
98 return runtime_info_vconf_event_cb0;
101 return runtime_info_vconf_event_cb1;
104 return runtime_info_vconf_event_cb2;
107 return runtime_info_vconf_event_cb3;
110 return runtime_info_vconf_event_cb4;
117 int runtime_info_vconf_set_event_cb(const char *vconf_key, runtime_info_key_e runtime_info_key, int slot)
119 runtime_info_vconf_event_cb vconf_event_cb;
121 vconf_event_cb = runtime_info_vconf_get_event_cb_slot(slot);
123 if (vconf_event_cb == NULL)
124 return RUNTIME_INFO_ERROR_IO_ERROR;
126 if (vconf_notify_key_changed(vconf_key, vconf_event_cb, (void *)runtime_info_key))
127 return RUNTIME_INFO_ERROR_IO_ERROR;
129 return RUNTIME_INFO_ERROR_NONE;
132 void runtime_info_vconf_unset_event_cb(const char *vconf_key, int slot)
134 runtime_info_vconf_event_cb vconf_event_cb;
136 vconf_event_cb = runtime_info_vconf_get_event_cb_slot(slot);
138 if (vconf_event_cb != NULL)
139 vconf_ignore_key_changed(vconf_key, vconf_event_cb);