#define BT_CORE_IDLE_TERM_TIME 200 /* 200ms */
#define BT_CORE_CHECK_ADAPTER_OBJECT_PATH_MAX 50
+#define BT_CORE_SERVICE_NAME_LENGTH_MAX 50
#ifdef TIZEN_FEATURE_BT_OTP
#define BT_OTP_OBJECT_PATH "/org/projectx/otp"
#define BLE_DISABLED "LeDisabled"
#endif
+struct service_name_table {
+ int supported;
+ char name[BT_CORE_SERVICE_NAME_LENGTH_MAX];
+};
+
static bt_status_t adapter_status = BT_DEACTIVATED;
static bt_le_status_t adapter_le_status = BT_LE_DEACTIVATED;
static gboolean is_recovery_mode = FALSE;
return 0;
}
+static void __bt_stack_down()
+{
+ int ret, i;
+ struct service_name_table service_list[] = {
+ {TIZEN_FEATURE_BT_SUPPORTED, BT_SYSTEMACT_BLUEZ_START},
+ {TIZEN_FEATURE_BT_SUPPORTED, BT_SYSTEMACT_HCI_LOGGER_START},
+ {TIZEN_FEATURE_BT_SUPPORTED, BT_SYSTEMACT_HF_AGENT},
+ {TIZEN_FEATURE_BT_SUPPORTED, BT_SYSTEMACT_MAP_AGENT},
+ {TIZEN_FEATURE_OPP_SUPPORTED, BT_SYSTEMACT_BLUETOOTH_SHARE_START},
+ {TIZEN_FEATURE_OPP_SUPPORTED, BT_SYSTEMACT_OBEX},
+ {TIZEN_FEATURE_PBAP_SUPPORTED, BT_SYSTEMACT_PBAP_AGENT},
+ {TIZEN_FEATURE_AUDIO_CALL_SUPPORTED, BT_SYSTEMACT_AG_AGENT},
+ {TIZEN_FEATURE_HID_DEVICE_SUPPORTED, BT_SYSTEMACT_HID_AGENT},
+ {-1, ""},
+ };
+
+ BT_DBG("Stop bluetooth-related services");
+ for (i = 0; service_list[i].supported != -1; i++) {
+ if (service_list[i].supported) {
+ ret = actd_stop_unit(UNIT_CONTROL_BUS_TYPE_SYSTEM, service_list[i].name, 5000);
+ if (ret != UNIT_CONTROL_OK)
+ BT_ERR("Failed to stop the %s: %d", service_list[i].name, ret);
+ else
+ BT_INFO("%s stopped successfully", service_list[i].name);
+ }
+ }
+}
+
int _bt_enable_adapter(void)
{
int ret;
return -1;
}
BT_ERR("Stopped successfully bluetooth hal");
+
+ __bt_stack_down();
}
}
_bt_core_terminate();
return -1;
}
BT_ERR("Stopped successfully bluetooth hal");
+
+ __bt_stack_down();
}
}
#define BT_SYSTEMACT_STACK_DOWN_WITH_RADIO "bluetooth-stack-down-with-radio.service"
#define BT_SYSTEMACT_EDUTM_ON "bluetooth-edutm-on.service"
#define BT_SYSTEMACT_EDUTM_OFF "bluetooth-edutm-off.service"
+#define BT_SYSTEMACT_PBAP_AGENT "bluetooth-pbap-agent.service"
+#define BT_SYSTEMACT_MAP_AGENT "bluetooth-map-agent.service"
+#define BT_SYSTEMACT_HF_AGENT "bluetooth-hf-agent.service"
+#define BT_SYSTEMACT_AG_AGENT "bluetooth-ag-agent.service"
+#define BT_SYSTEMACT_HID_AGENT "bluetooth-hid-agent.service"
+#define BT_SYSTEMACT_OBEX "obex.service"
#define BT_CORE_TYPE (bt_core_get_type())
#define BT_FEATURE_COMMON "http://tizen.org/feature/network.bluetooth"
#define BT_FEATURE_OPP "http://tizen.org/feature/network.bluetooth.opp"
+#define BT_FEATURE_AUDIO_CALL "http://tizen.org/feature/network.bluetooth.audio.call"
+#define BT_FEATURE_HID_DEVICE "http://tizen.org/feature/network.bluetooth.hid_device"
+#define BT_FEATURE_PBAP "http://tizen.org/feature/network.bluetooth.phonebook.client"
struct bluetooth_headed_plugin_t {
int (*bt_launch_dpmpopup) (char *mode);
#define TIZEN_FEATURE_BLUEZ_SPEAKER_REFERENCE ((get_tizen_model()) == _MODEL_RPI3 && (get_tizen_profile()) == _PROFILE_COMMON)
#define TIZEN_FEATURE_BT_SUPPORTED (get_tizen_feature_supported(BT_FEATURE_COMMON) == true)
#define TIZEN_FEATURE_OPP_SUPPORTED (get_tizen_feature_supported(BT_FEATURE_OPP) == true)
+#define TIZEN_FEATURE_AUDIO_CALL_SUPPORTED (get_tizen_feature_supported(BT_FEATURE_AUDIO_CALL) == true)
+#define TIZEN_FEATURE_HID_DEVICE_SUPPORTED (get_tizen_feature_supported(BT_FEATURE_HID_DEVICE) == true)
+#define TIZEN_FEATURE_PBAP_SUPPORTED (get_tizen_feature_supported(BT_FEATURE_PBAP) == true)
#ifdef __cplusplus
}