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 static const char *VCONF_WIFI_STATUS = VCONFKEY_WIFI_STATE;
34 static const char *VCONF_BT_ENABLED = VCONFKEY_BT_STATUS;
35 static const char *VCONF_WIFI_HOTSPOT_ENABLED = VCONFKEY_MOBILE_HOTSPOT_MODE;
36 static const char *VCONF_BT_HOTSPOT_ENABLED = VCONFKEY_MOBILE_HOTSPOT_MODE;
37 static const char *VCONF_USB_HOTSPOT_ENABLED = VCONFKEY_MOBILE_HOTSPOT_MODE;
38 static const char *VCONF_PACKET_DATA_ENABLED = VCONFKEY_3G_ENABLE;
39 static const char *VCONF_DATA_ROAMING_ENABLED = VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL;
40 static const char *VCONF_GPS_STATUS = VCONFKEY_LOCATION_GPS_STATE;
42 //LCOV_EXCL_START : not supported feature
43 int runtime_info_wifi_status_get_value(runtime_info_value_h value)
48 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.wifi");
50 ret = runtime_info_vconf_get_value_int(VCONF_WIFI_STATUS, &vconf_value);
51 if (ret != RUNTIME_INFO_ERROR_NONE)
54 switch (vconf_value) {
55 case VCONFKEY_WIFI_OFF:
56 value->i = RUNTIME_INFO_WIFI_STATUS_DISABLED;
59 case VCONFKEY_WIFI_UNCONNECTED:
60 value->i = RUNTIME_INFO_WIFI_STATUS_UNCONNECTED;
63 case VCONFKEY_WIFI_CONNECTED:
64 case VCONFKEY_WIFI_TRANSFER:
65 value->i = RUNTIME_INFO_WIFI_STATUS_CONNECTED;
69 return RUNTIME_INFO_ERROR_IO_ERROR;
75 int runtime_info_wifi_status_set_event_cb()
77 return runtime_info_vconf_set_event_cb(VCONF_WIFI_STATUS, RUNTIME_INFO_INTERNAL_KEY_WIFI_STATUS, 0);
80 void runtime_info_wifi_status_unset_event_cb()
82 runtime_info_vconf_unset_event_cb(VCONF_WIFI_STATUS, 0);
86 int runtime_info_bt_enabled_get_value(runtime_info_value_h value)
91 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.bluetooth");
93 ret = runtime_info_vconf_get_value_int(VCONF_BT_ENABLED, &vconf_value);
94 if (ret != RUNTIME_INFO_ERROR_NONE)
97 switch (vconf_value) {
98 case VCONFKEY_BT_STATUS_OFF:
102 case VCONFKEY_BT_STATUS_ON:
103 case VCONFKEY_BT_STATUS_BT_VISIBLE:
104 case VCONFKEY_BT_STATUS_TRANSFER:
109 return RUNTIME_INFO_ERROR_IO_ERROR;
115 int runtime_info_bt_enabled_set_event_cb()
117 return runtime_info_vconf_set_event_cb(VCONF_BT_ENABLED, RUNTIME_INFO_KEY_BLUETOOTH_ENABLED, 0);
120 void runtime_info_bt_enabled_unset_event_cb()
122 runtime_info_vconf_unset_event_cb(VCONF_BT_ENABLED, 0);
126 int runtime_info_wifi_hotspot_get_value(runtime_info_value_h value)
131 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.tethering.wifi");
133 ret = runtime_info_vconf_get_value_int(VCONF_WIFI_HOTSPOT_ENABLED, &vconf_value);
134 if (ret == RUNTIME_INFO_ERROR_NONE)
135 value->b = (vconf_value&VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI) ? true : false;
140 int runtime_info_wifi_hotspot_set_event_cb()
142 return runtime_info_vconf_set_event_cb(VCONF_WIFI_HOTSPOT_ENABLED, RUNTIME_INFO_KEY_WIFI_HOTSPOT_ENABLED, 0);
145 void runtime_info_wifi_hotspot_unset_event_cb()
147 runtime_info_vconf_unset_event_cb(VCONF_WIFI_HOTSPOT_ENABLED, 0);
150 int runtime_info_bt_hotspot_get_value(runtime_info_value_h value)
155 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.tethering.bluetooth");
157 ret = runtime_info_vconf_get_value_int(VCONF_BT_HOTSPOT_ENABLED, &vconf_value);
158 if (ret == RUNTIME_INFO_ERROR_NONE)
159 value->b = (vconf_value&VCONFKEY_MOBILE_HOTSPOT_MODE_BT) ? true : false;
164 int runtime_info_bt_hotspot_set_event_cb()
166 return runtime_info_vconf_set_event_cb(VCONF_BT_HOTSPOT_ENABLED, RUNTIME_INFO_KEY_BLUETOOTH_TETHERING_ENABLED, 0);
169 void runtime_info_bt_hotspot_unset_event_cb()
171 runtime_info_vconf_unset_event_cb(VCONF_BT_HOTSPOT_ENABLED, 0);
174 int runtime_info_usb_hotspot_get_value(runtime_info_value_h value)
179 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.tethering.usb");
181 ret = runtime_info_vconf_get_value_int(VCONF_USB_HOTSPOT_ENABLED, &vconf_value);
182 if (ret == RUNTIME_INFO_ERROR_NONE)
183 value->b = (vconf_value&VCONFKEY_MOBILE_HOTSPOT_MODE_USB) ? true : false;
188 int runtime_info_usb_hotspot_set_event_cb()
190 return runtime_info_vconf_set_event_cb(VCONF_USB_HOTSPOT_ENABLED, RUNTIME_INFO_KEY_USB_TETHERING_ENABLED, 0);
193 void runtime_info_usb_hotspot_unset_event_cb()
195 runtime_info_vconf_unset_event_cb(VCONF_USB_HOTSPOT_ENABLED, 0);
198 int runtime_info_packet_data_get_value(runtime_info_value_h value)
203 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.telephony");
205 ret = runtime_info_vconf_get_value_bool(VCONF_PACKET_DATA_ENABLED, &vconf_value);
206 if (ret == RUNTIME_INFO_ERROR_NONE)
207 value->b = (bool)vconf_value;
212 int runtime_info_packet_data_set_event_cb()
214 return runtime_info_vconf_set_event_cb(VCONF_PACKET_DATA_ENABLED, RUNTIME_INFO_KEY_PACKET_DATA_ENABLED, 0);
217 void runtime_info_packet_data_unset_event_cb()
219 runtime_info_vconf_unset_event_cb(VCONF_PACKET_DATA_ENABLED, 0);
222 int runtime_info_data_roaming_get_value(runtime_info_value_h value)
227 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/network.telephony");
229 ret = runtime_info_vconf_get_value_bool(VCONF_DATA_ROAMING_ENABLED, &vconf_value);
230 if (ret == RUNTIME_INFO_ERROR_NONE)
231 value->b = (bool)vconf_value;
236 int runtime_info_data_roaming_set_event_cb()
238 return runtime_info_vconf_set_event_cb(VCONF_DATA_ROAMING_ENABLED, RUNTIME_INFO_KEY_DATA_ROAMING_ENABLED, 0);
241 void runtime_info_data_roaming_unset_event_cb()
243 runtime_info_vconf_unset_event_cb(VCONF_DATA_ROAMING_ENABLED, 0);
246 int runtime_info_gps_status_get_value(runtime_info_value_h value)
251 RETURN_ERROR_IF_NOT_SUPPORTED("http://tizen.org/feature/location.gps");
253 ret = runtime_info_vconf_get_value_int(VCONF_GPS_STATUS, &vconf_value);
254 if (ret != RUNTIME_INFO_ERROR_NONE)
257 switch (vconf_value) {
258 case VCONFKEY_LOCATION_GPS_OFF:
259 value->i = RUNTIME_INFO_GPS_STATUS_DISABLED;
262 case VCONFKEY_LOCATION_GPS_SEARCHING:
263 value->i = RUNTIME_INFO_GPS_STATUS_SEARCHING;
266 case VCONFKEY_LOCATION_GPS_CONNECTED:
267 value->i = RUNTIME_INFO_GPS_STATUS_CONNECTED;
271 return RUNTIME_INFO_ERROR_IO_ERROR;
277 int runtime_info_gps_status_set_event_cb()
279 return runtime_info_vconf_set_event_cb(VCONF_GPS_STATUS, RUNTIME_INFO_KEY_GPS_STATUS, 0);
282 void runtime_info_gps_status_unset_event_cb()
284 runtime_info_vconf_unset_event_cb(VCONF_GPS_STATUS, 0);