mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-06 03:40:16 +00:00
hfp: emit call answered and terminated events
This commit is contained in:
parent
a13ff7d155
commit
674ebed504
@ -160,7 +160,7 @@ static void show_usage(void){
|
||||
printf("c - simulate incoming call from 1234567 | C - simulate call from 1234567 dropped\n");
|
||||
printf("d - report AG failure\n");
|
||||
printf("D - delete all link keys\n");
|
||||
printf("e - answer call on AG | E - reject call on AG\n");
|
||||
printf("e - answer call on AG | E - terminate call on AG\n");
|
||||
printf("r - disable in-band ring tone | R - enable in-band ring tone\n");
|
||||
printf("f - Disable cellular network | F - Enable cellular network\n");
|
||||
printf("g - Set signal strength to 0 | G - Set signal strength to 5\n");
|
||||
@ -247,7 +247,7 @@ static void stdin_process(char cmd){
|
||||
break;
|
||||
case 'E':
|
||||
log_info("USER:\'%c\'", cmd);
|
||||
printf("Reject call on AG\n");
|
||||
printf("Terminate call on AG\n");
|
||||
hfp_ag_terminate_call();
|
||||
break;
|
||||
case 'f':
|
||||
@ -559,9 +559,15 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t * even
|
||||
hci_request_sco_can_send_now_event();
|
||||
}
|
||||
break;
|
||||
|
||||
case HFP_SUBEVENT_CALL_ANSWERED:
|
||||
printf("Call answered\n");
|
||||
break;
|
||||
|
||||
case HFP_SUBEVENT_CALL_TERMINATED:
|
||||
printf("Call terminated\n");
|
||||
break;
|
||||
|
||||
case HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED:
|
||||
printf("Audio connection released\n");
|
||||
sco_handle = HCI_CON_HANDLE_INVALID;
|
||||
@ -595,14 +601,12 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t * even
|
||||
printf("Attach number to voice tag. Sending '1234567\n");
|
||||
hfp_ag_send_phone_number_for_voice_tag(acl_handle, "1234567");
|
||||
break;
|
||||
|
||||
case HFP_SUBEVENT_TRANSMIT_DTMF_CODES:
|
||||
printf("Send DTMF Codes: '%s'\n", hfp_subevent_transmit_dtmf_codes_get_dtmf(event));
|
||||
hfp_ag_send_dtmf_code_done(acl_handle);
|
||||
break;
|
||||
case HFP_SUBEVENT_CALL_ANSWERED:
|
||||
printf("Call answered by HF\n");
|
||||
break;
|
||||
|
||||
|
||||
case HFP_SUBEVENT_VOICE_RECOGNITION_STATUS:
|
||||
status = hfp_subevent_voice_recognition_status_get_status(event);
|
||||
if (status != ERROR_CODE_SUCCESS){
|
||||
|
@ -528,6 +528,11 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t * even
|
||||
hci_request_sco_can_send_now_event();
|
||||
}
|
||||
break;
|
||||
|
||||
case HFP_SUBEVENT_CALL_ANSWERED:
|
||||
printf("Call answered\n");
|
||||
break;
|
||||
|
||||
case HFP_SUBEVENT_CALL_TERMINATED:
|
||||
printf("Call terminated\n");
|
||||
break;
|
||||
|
@ -1634,7 +1634,6 @@ static void hfp_ag_call_sm(hfp_ag_call_event_t event, hfp_connection_t * hfp_con
|
||||
default:
|
||||
break;
|
||||
}
|
||||
hfp_emit_simple_event(hfp_connection, HFP_SUBEVENT_CALL_TERMINATED);
|
||||
break;
|
||||
|
||||
case HFP_AG_TERMINATE_CALL_BY_AG:
|
||||
@ -1823,6 +1822,7 @@ static void hfp_ag_call_sm(hfp_ag_call_event_t event, hfp_connection_t * hfp_con
|
||||
hfp_ag_transfer_callheld_state();
|
||||
}
|
||||
hfp_ag_hf_stop_ringing(hfp_connection);
|
||||
hfp_emit_simple_event(hfp_connection, HFP_SUBEVENT_CALL_ANSWERED);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -416,7 +416,7 @@ void hfp_ag_outgoing_call_ringing(void);
|
||||
void hfp_ag_outgoing_call_established(void);
|
||||
|
||||
/**
|
||||
* @brief Pass the call droped event to the AG.
|
||||
* @brief Pass the call dropped event to the AG.
|
||||
*/
|
||||
void hfp_ag_call_dropped(void);
|
||||
|
||||
|
@ -1189,7 +1189,15 @@ static void hfp_hf_handle_transfer_ag_indicator_status(hfp_connection_t * hfp_co
|
||||
// avoid set but not used warning
|
||||
(void) hfp_hf_callheld_status;
|
||||
} else if (strcmp(hfp_connection->ag_indicators[i].name, "call") == 0){
|
||||
hfp_hf_call_status = (hfp_call_status_t) hfp_connection->ag_indicators[i].status;
|
||||
hfp_call_status_t new_hf_call_status = (hfp_call_status_t) hfp_connection->ag_indicators[i].status;
|
||||
if (hfp_hf_call_status != new_hf_call_status){
|
||||
if (new_hf_call_status == HFP_CALL_STATUS_NO_HELD_OR_ACTIVE_CALLS){
|
||||
hfp_emit_simple_event(hfp_connection, HFP_SUBEVENT_CALL_TERMINATED);
|
||||
} else {
|
||||
hfp_emit_simple_event(hfp_connection, HFP_SUBEVENT_CALL_ANSWERED);
|
||||
}
|
||||
}
|
||||
hfp_hf_call_status = new_hf_call_status;
|
||||
}
|
||||
hfp_connection->ag_indicators[i].status_changed = 0;
|
||||
hfp_emit_ag_indicator_event(hfp_connection, &hfp_connection->ag_indicators[i]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user