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>
27 #include <system_info.h>
33 #define LOG_TAG "CAPI_SYSTEM_RUNTIME_INFO"
35 static const char *VCONF_WIFI_STATUS = VCONFKEY_WIFI_STATE;
36 static const char *VCONF_BT_ENABLED = VCONFKEY_BT_STATUS;
37 static const char *VCONF_WIFI_HOTSPOT_ENABLED = VCONFKEY_MOBILE_HOTSPOT_MODE;
38 static const char *VCONF_BT_HOTSPOT_ENABLED = VCONFKEY_MOBILE_HOTSPOT_MODE;
39 static const char *VCONF_USB_HOTSPOT_ENABLED = VCONFKEY_MOBILE_HOTSPOT_MODE;
40 static const char *VCONF_PACKET_DATA_ENABLED = VCONFKEY_3G_ENABLE;
41 static const char *VCONF_DATA_ROAMING_ENABLED = VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL;
42 static const char *VCONF_GPS_STATUS = VCONFKEY_LOCATION_GPS_STATE;
44 int runtime_info_wifi_status_get_value(runtime_info_value_h value)
49 ret = runtime_info_vconf_get_value_int(VCONF_WIFI_STATUS, &vconf_value);
50 if (ret != RUNTIME_INFO_ERROR_NONE)
53 switch (vconf_value) {
54 case VCONFKEY_WIFI_OFF:
55 value->i = RUNTIME_INFO_WIFI_STATUS_DISABLED;
58 case VCONFKEY_WIFI_UNCONNECTED:
59 value->i = RUNTIME_INFO_WIFI_STATUS_UNCONNECTED;
62 case VCONFKEY_WIFI_CONNECTED:
63 case VCONFKEY_WIFI_TRANSFER:
64 value->i = RUNTIME_INFO_WIFI_STATUS_CONNECTED;
68 return RUNTIME_INFO_ERROR_IO_ERROR;
74 int runtime_info_wifi_status_set_event_cb()
76 return runtime_info_vconf_set_event_cb(VCONF_WIFI_STATUS, RUNTIME_INFO_INTERNAL_KEY_WIFI_STATUS, 0);
79 void runtime_info_wifi_status_unset_event_cb()
81 runtime_info_vconf_unset_event_cb(VCONF_WIFI_STATUS, 0);
84 int runtime_info_bt_enabled_get_value(runtime_info_value_h value)
89 ret = runtime_info_vconf_get_value_int(VCONF_BT_ENABLED, &vconf_value);
90 if (ret != RUNTIME_INFO_ERROR_NONE)
93 switch (vconf_value) {
94 case VCONFKEY_BT_STATUS_OFF:
98 case VCONFKEY_BT_STATUS_ON:
99 case VCONFKEY_BT_STATUS_BT_VISIBLE:
100 case VCONFKEY_BT_STATUS_TRANSFER:
105 return RUNTIME_INFO_ERROR_IO_ERROR;
111 int runtime_info_bt_enabled_set_event_cb()
113 return runtime_info_vconf_set_event_cb(VCONF_BT_ENABLED, RUNTIME_INFO_KEY_BLUETOOTH_ENABLED, 0);
116 void runtime_info_bt_enabled_unset_event_cb()
118 runtime_info_vconf_unset_event_cb(VCONF_BT_ENABLED, 0);
122 int runtime_info_wifi_hotspot_get_value(runtime_info_value_h value)
128 ret = system_info_get_platform_bool("http://tizen.org/feature/network.tethering.wifi", &supported);
129 if (ret != SYSTEM_INFO_ERROR_NONE)
130 return RUNTIME_INFO_ERROR_IO_ERROR;
133 return RUNTIME_INFO_ERROR_NOT_SUPPORTED;
135 ret = runtime_info_vconf_get_value_int(VCONF_WIFI_HOTSPOT_ENABLED, &vconf_value);
136 if (ret == RUNTIME_INFO_ERROR_NONE)
137 value->b = (vconf_value&VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI) ? true : false;
142 int runtime_info_wifi_hotspot_set_event_cb()
144 return runtime_info_vconf_set_event_cb(VCONF_WIFI_HOTSPOT_ENABLED, RUNTIME_INFO_KEY_WIFI_HOTSPOT_ENABLED, 0);
147 void runtime_info_wifi_hotspot_unset_event_cb()
149 runtime_info_vconf_unset_event_cb(VCONF_WIFI_HOTSPOT_ENABLED, 0);
152 int runtime_info_bt_hotspot_get_value(runtime_info_value_h value)
158 ret = system_info_get_platform_bool("http://tizen.org/feature/network.tethering.bluetooth", &supported);
159 if (ret != SYSTEM_INFO_ERROR_NONE)
160 return RUNTIME_INFO_ERROR_IO_ERROR;
163 return RUNTIME_INFO_ERROR_NOT_SUPPORTED;
165 ret = runtime_info_vconf_get_value_int(VCONF_BT_HOTSPOT_ENABLED, &vconf_value);
166 if (ret == RUNTIME_INFO_ERROR_NONE)
167 value->b = (vconf_value&VCONFKEY_MOBILE_HOTSPOT_MODE_BT) ? true : false;
172 int runtime_info_bt_hotspot_set_event_cb()
174 return runtime_info_vconf_set_event_cb(VCONF_BT_HOTSPOT_ENABLED, RUNTIME_INFO_KEY_BLUETOOTH_TETHERING_ENABLED, 0);
177 void runtime_info_bt_hotspot_unset_event_cb()
179 runtime_info_vconf_unset_event_cb(VCONF_BT_HOTSPOT_ENABLED, 0);
182 int runtime_info_usb_hotspot_get_value(runtime_info_value_h value)
188 ret = system_info_get_platform_bool("http://tizen.org/feature/network.tethering.usb", &supported);
189 if (ret != SYSTEM_INFO_ERROR_NONE)
190 return RUNTIME_INFO_ERROR_IO_ERROR;
193 return RUNTIME_INFO_ERROR_NOT_SUPPORTED;
195 ret = runtime_info_vconf_get_value_int(VCONF_USB_HOTSPOT_ENABLED, &vconf_value);
196 if (ret == RUNTIME_INFO_ERROR_NONE)
197 value->b = (vconf_value&VCONFKEY_MOBILE_HOTSPOT_MODE_USB) ? true : false;
202 int runtime_info_usb_hotspot_set_event_cb()
204 return runtime_info_vconf_set_event_cb(VCONF_USB_HOTSPOT_ENABLED, RUNTIME_INFO_KEY_USB_TETHERING_ENABLED, 0);
207 void runtime_info_usb_hotspot_unset_event_cb()
209 runtime_info_vconf_unset_event_cb(VCONF_USB_HOTSPOT_ENABLED, 0);
212 int runtime_info_packet_data_get_value(runtime_info_value_h value)
217 ret = runtime_info_vconf_get_value_bool(VCONF_PACKET_DATA_ENABLED, &vconf_value);
218 if (ret == RUNTIME_INFO_ERROR_NONE)
219 value->b = (bool)vconf_value;
224 int runtime_info_packet_data_set_event_cb()
226 return runtime_info_vconf_set_event_cb(VCONF_PACKET_DATA_ENABLED, RUNTIME_INFO_KEY_PACKET_DATA_ENABLED, 0);
229 void runtime_info_packet_data_unset_event_cb()
231 runtime_info_vconf_unset_event_cb(VCONF_PACKET_DATA_ENABLED, 0);
234 int runtime_info_data_roaming_get_value(runtime_info_value_h value)
239 ret = runtime_info_vconf_get_value_bool(VCONF_DATA_ROAMING_ENABLED, &vconf_value);
240 if (ret == RUNTIME_INFO_ERROR_NONE)
241 value->b = (bool)vconf_value;
246 int runtime_info_data_roaming_set_event_cb()
248 return runtime_info_vconf_set_event_cb(VCONF_DATA_ROAMING_ENABLED, RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED, 0);
251 void runtime_info_data_roaming_unset_event_cb()
253 runtime_info_vconf_unset_event_cb(VCONF_DATA_ROAMING_ENABLED, 0);
256 int runtime_info_gps_status_get_value(runtime_info_value_h value)
261 ret = runtime_info_vconf_get_value_int(VCONF_GPS_STATUS, &vconf_value);
262 if (ret != RUNTIME_INFO_ERROR_NONE)
265 switch (vconf_value) {
266 case VCONFKEY_LOCATION_GPS_OFF:
267 value->i = RUNTIME_INFO_GPS_STATUS_DISABLED;
270 case VCONFKEY_LOCATION_GPS_SEARCHING:
271 value->i = RUNTIME_INFO_GPS_STATUS_SEARCHING;
274 case VCONFKEY_LOCATION_GPS_CONNECTED:
275 value->i = RUNTIME_INFO_GPS_STATUS_CONNECTED;
279 return RUNTIME_INFO_ERROR_IO_ERROR;
285 int runtime_info_gps_status_set_event_cb()
287 return runtime_info_vconf_set_event_cb(VCONF_GPS_STATUS, RUNTIME_INFO_KEY_GPS_STATUS, 0);
290 void runtime_info_gps_status_unset_event_cb()
292 runtime_info_vconf_unset_event_cb(VCONF_GPS_STATUS, 0);