#include <vconf.h>
#include <vconf-keys.h>
#include <bundle.h>
-#if 0
#include <eventsystem.h>
-#endif
#include "bt-core-main.h"
#include "bt-core-adapter.h"
static gboolean is_recovery_mode = FALSE;
static int bt_status_before[BT_MODE_MAX] = { VCONFKEY_BT_STATUS_OFF, };
-static int bt_le_status_before[BT_MODE_MAX] = { 0, };
-
-static DBusGConnection *conn = NULL;
+static int bt_le_status_before[BT_MODE_MAX] = { VCONFKEY_BT_LE_STATUS_OFF, };
static void __bt_core_set_status(bt_status_t status)
{
#endif
if (ret < 0) {
BT_ERR("running script failed");
+#ifdef USB_BLUETOOTH
+ char *argv_down[] = {"/usr/bin/hciconfig", "/usr/bin/hciconfig", "hci0", "down", NULL};
+ ret = __execute_command("/usr/bin/hciconfig", argv_down);
+#else
ret = __execute_command("/usr/etc/bluetooth/bt-dev-end.sh", NULL);
+#endif
__bt_core_set_status(BT_DEACTIVATED);
return -1;
}
le_status = _bt_core_get_le_status();
BT_DBG("le_status : %d", le_status);
+#if 0 /* only the concept of private */
if (le_status == BT_LE_ACTIVATED) {
/* Turn off PSCAN, (ISCAN if needed) */
/* Return with 0 for the Disabled response. */
g_timeout_add(BT_CORE_IDLE_TERM_TIME, __bt_core_idle_terminate, NULL);
return 0;
}
+#endif
status = _bt_core_get_status();
if (status == BT_ACTIVATING) {
#endif
if (ret < 0) {
BT_ERR("running script failed");
+#ifdef USB_BLUETOOTH
+ char *argv_down[] = {"/usr/bin/hciconfig", "/usr/bin/hciconfig", "hci0", "down", NULL};
+ ret = __execute_command("/usr/bin/hciconfig", argv_down);
+#else
ret = __execute_command("/usr/etc/bluetooth/bt-dev-end.sh &", NULL);
+#endif
__bt_core_set_status(BT_DEACTIVATED);
__bt_core_set_le_status(BT_LE_DEACTIVATED);
return -1;
__bt_core_set_le_status(BT_LE_ACTIVATED);
g_timeout_add(BT_CORE_IDLE_TERM_TIME, __bt_core_idle_terminate, NULL);
}
+#ifdef HPS_FEATURE
+ ret = _bt_core_start_httpproxy();
+ if (ret < 0) {
+ BT_ERR("_bt_core_start_httpproxy() failed");
+ }
+#endif
return 0;
}
retv_if(le_status == BT_LE_DEACTIVATED, 0);
retv_if(le_status == BT_LE_DEACTIVATING, -1);
+#ifdef HPS_FEATURE
+ _bt_core_stop_httpproxy();
+#endif
+
status = _bt_core_get_status();
BT_DBG("status : %d", status);
return -1;
}
} else {
- g_timeout_add(BT_CORE_IDLE_TERM_TIME, __bt_core_idle_terminate, NULL);
+ g_timeout_add(BT_CORE_IDLE_TERM_TIME, __bt_core_idle_terminate, NULL);
}
__bt_core_set_le_status(BT_LE_DEACTIVATED);
BT_INFO("bt_status = %d, bt_le_status = %d", bt_status, bt_le_status);
- if(bt_status == VCONFKEY_BT_STATUS_ON)
+ if(bt_status & VCONFKEY_BT_STATUS_ON)
__bt_core_set_status(BT_ACTIVATED);
- if(bt_le_status == VCONFKEY_BT_LE_STATUS_ON)
+ if(bt_le_status & VCONFKEY_BT_LE_STATUS_ON)
__bt_core_set_le_status(BT_ACTIVATED);
}
}
return FALSE;
}
-#if 0
+
static int __bt_eventsystem_set_value(const char *event, const char *key, const char *value)
{
int ret;
bundle_add_str(b, key, value);
- ret = eventsystem_request_sending_system_event(event, b);
+ ret = eventsystem_send_system_event(event, b);
- BT_DBG("request_sending_system_event result: %d", ret);
+ BT_DBG("eventsystem_send_system_event result: %d", ret);
bundle_free(b);
return ret;
}
-#endif
+
void _bt_core_adapter_added_cb(void)
{
bt_status_t status;
__bt_core_set_le_status(BT_LE_DEACTIVATED);
if (vconf_set_int(VCONFKEY_BT_STATUS, VCONFKEY_BT_STATUS_OFF) != 0)
BT_ERR("Set vconf failed");
-
if (vconf_set_int(VCONFKEY_BT_LE_STATUS, VCONFKEY_BT_LE_STATUS_OFF) != 0)
BT_ERR("Set vconf failed");
-#if 0
if (__bt_eventsystem_set_value(SYS_EVENT_BT_STATE, EVT_KEY_BT_STATE,
EVT_VAL_BT_OFF) != ES_R_OK)
BT_ERR("Fail to set value");
if (__bt_eventsystem_set_value(SYS_EVENT_BT_STATE, EVT_KEY_BT_LE_STATE,
EVT_VAL_BT_LE_OFF) != ES_R_OK)
BT_ERR("Fail to set value");
-#endif
+
if (is_recovery_mode == TRUE)
{
if (timer_id < 0)