mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-24 06:02:43 +00:00
hci: extract hci_run_gap_tasks_classic
This commit is contained in:
parent
27741fe78f
commit
ab4831a308
79
src/hci.c
79
src/hci.c
@ -1313,6 +1313,47 @@ static void gap_run_set_eir_data(void){
|
|||||||
}
|
}
|
||||||
hci_send_cmd_packet(packet, HCI_CMD_HEADER_SIZE + 1 + EXTENDED_INQUIRY_RESPONSE_DATA_LEN);
|
hci_send_cmd_packet(packet, HCI_CMD_HEADER_SIZE + 1 + EXTENDED_INQUIRY_RESPONSE_DATA_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void hci_run_gap_tasks_classic(void){
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_SET_CLASS_OF_DEVICE) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_SET_CLASS_OF_DEVICE;
|
||||||
|
hci_send_cmd(&hci_write_class_of_device, hci_stack->class_of_device);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_SET_LOCAL_NAME) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_SET_LOCAL_NAME;
|
||||||
|
gap_run_set_local_name();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_SET_EIR_DATA) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_SET_EIR_DATA;
|
||||||
|
gap_run_set_eir_data();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_SET_DEFAULT_LINK_POLICY) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_SET_DEFAULT_LINK_POLICY;
|
||||||
|
hci_send_cmd(&hci_write_default_link_policy_setting, hci_stack->default_link_policy_settings);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// write page scan activity
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_WRITE_PAGE_SCAN_ACTIVITY) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_WRITE_PAGE_SCAN_ACTIVITY;
|
||||||
|
hci_send_cmd(&hci_write_page_scan_activity, hci_stack->new_page_scan_interval, hci_stack->new_page_scan_window);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// write page scan type
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_WRITE_PAGE_SCAN_TYPE) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_WRITE_PAGE_SCAN_TYPE;
|
||||||
|
hci_send_cmd(&hci_write_page_scan_type, hci_stack->new_page_scan_type);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// send scan enable
|
||||||
|
if ((hci_stack->gap_tasks & GAP_TASK_WRITE_SCAN_ENABLE) != 0) {
|
||||||
|
hci_stack->gap_tasks &= ~GAP_TASK_WRITE_SCAN_ENABLE;
|
||||||
|
hci_send_cmd(&hci_write_scan_enable, hci_stack->new_scan_enable_value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_HOST_CONTROLLER_API
|
#ifndef HAVE_HOST_CONTROLLER_API
|
||||||
@ -4137,42 +4178,8 @@ static bool hci_run_general_gap_classic(void){
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_SET_CLASS_OF_DEVICE) != 0) {
|
if (hci_stack->gap_tasks != 0){
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_SET_CLASS_OF_DEVICE;
|
hci_run_gap_tasks_classic();
|
||||||
hci_send_cmd(&hci_write_class_of_device, hci_stack->class_of_device);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_SET_LOCAL_NAME) != 0) {
|
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_SET_LOCAL_NAME;
|
|
||||||
gap_run_set_local_name();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_SET_EIR_DATA) != 0) {
|
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_SET_EIR_DATA;
|
|
||||||
gap_run_set_eir_data();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_SET_DEFAULT_LINK_POLICY) != 0) {
|
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_SET_DEFAULT_LINK_POLICY;
|
|
||||||
hci_send_cmd(&hci_write_default_link_policy_setting, hci_stack->default_link_policy_settings);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
// write page scan activity
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_WRITE_PAGE_SCAN_ACTIVITY) != 0) {
|
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_WRITE_PAGE_SCAN_ACTIVITY;
|
|
||||||
hci_send_cmd(&hci_write_page_scan_activity, hci_stack->new_page_scan_interval, hci_stack->new_page_scan_window);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
// write page scan type
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_WRITE_PAGE_SCAN_TYPE) != 0) {
|
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_WRITE_PAGE_SCAN_TYPE;
|
|
||||||
hci_send_cmd(&hci_write_page_scan_type, hci_stack->new_page_scan_type);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
// send scan enable
|
|
||||||
if ((hci_stack->gap_tasks & GAP_TASK_WRITE_SCAN_ENABLE) != 0) {
|
|
||||||
hci_stack->gap_tasks &= ~GAP_TASK_WRITE_SCAN_ENABLE;
|
|
||||||
hci_send_cmd(&hci_write_scan_enable, hci_stack->new_scan_enable_value);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user