mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-17 02:42:33 +00:00
hfp remove status field from events
This commit is contained in:
parent
65fd5e57ee
commit
352dca4473
@ -679,9 +679,8 @@ extern "C" {
|
||||
#define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status 0 == OK
|
||||
*/
|
||||
#define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02
|
||||
|
||||
@ -693,9 +692,8 @@ extern "C" {
|
||||
#define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status 0 == OK
|
||||
*/
|
||||
#define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04
|
||||
|
||||
@ -707,9 +705,8 @@ extern "C" {
|
||||
#define HFP_SUBEVENT_COMPLETE 0x05
|
||||
|
||||
/**
|
||||
* @format 1111T
|
||||
* @format 111T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param indicator_index
|
||||
* @param indicator_status
|
||||
* @param indicator_name
|
||||
@ -719,7 +716,6 @@ extern "C" {
|
||||
/**
|
||||
* @format 1111T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param network_operator_mode
|
||||
* @param network_operator_format
|
||||
* @param network_operator_name
|
||||
@ -741,74 +737,67 @@ extern "C" {
|
||||
#define HFP_SUBEVENT_CODECS_CONNECTION_COMPLETE 0x09
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
*/
|
||||
#define HFP_SUBEVENT_START_RINGINIG 0x0A
|
||||
#define HFP_SUBEVENT_START_RINGINIG 0x0A
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
*/
|
||||
#define HFP_SUBEVENT_STOP_RINGINIG 0x0B
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
*/
|
||||
#define HFP_SUBEVENT_CALL_TERMINATED 0x0C
|
||||
|
||||
/**
|
||||
* @format 11T
|
||||
* @format 1T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param number
|
||||
*/
|
||||
#define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D
|
||||
#define HFP_SUBEVENT_REDIAL_LAST_NUMBER 0x0E
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
*/
|
||||
#define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0F
|
||||
#define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E
|
||||
|
||||
/**
|
||||
* @format 11T
|
||||
* @format 1T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param number
|
||||
*/
|
||||
#define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x10
|
||||
#define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F
|
||||
|
||||
/**
|
||||
* @format 11T
|
||||
* @format 1T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param dtmf code
|
||||
*/
|
||||
#define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x11
|
||||
|
||||
#define HFP_SUBEVENT_TRANSMIT_STATUS_OF_CURRENT_CALL 0x12
|
||||
#define HFP_SUBEVENT_CALL_ANSWERED 0x13
|
||||
#define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
*/
|
||||
#define HFP_SUBEVENT_CONFERENCE_CALL 0x14
|
||||
#define HFP_SUBEVENT_CALL_ANSWERED 0x11
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
*/
|
||||
#define HFP_SUBEVENT_RING 0x15
|
||||
#define HFP_SUBEVENT_CONFERENCE_CALL 0x12
|
||||
|
||||
/**
|
||||
* @format 1
|
||||
* @param subevent_code
|
||||
*/
|
||||
#define HFP_SUBEVENT_RING 0x13
|
||||
|
||||
/**
|
||||
* @format 111
|
||||
@ -816,7 +805,7 @@ extern "C" {
|
||||
* @param status
|
||||
* @param gain
|
||||
*/
|
||||
#define HFP_SUBEVENT_SPEAKER_VOLUME 0x16
|
||||
#define HFP_SUBEVENT_SPEAKER_VOLUME 0x14
|
||||
|
||||
/**
|
||||
* @format 111
|
||||
@ -824,30 +813,27 @@ extern "C" {
|
||||
* @param status
|
||||
* @param gain
|
||||
*/
|
||||
#define HFP_SUBEVENT_MICROPHONE_VOLUME 0x17
|
||||
#define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15
|
||||
|
||||
/**
|
||||
* @format 111T
|
||||
* @format 11T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param type
|
||||
* @param number
|
||||
*/
|
||||
#define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x18
|
||||
#define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16
|
||||
|
||||
/**
|
||||
* @format 111T
|
||||
* @format 11T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param type
|
||||
* @param number
|
||||
*/
|
||||
#define HFP_SUBEVENT_CALLING_LINE_INDETIFICATION_NOTIFICATION 0x19
|
||||
#define HFP_SUBEVENT_CALLING_LINE_INDETIFICATION_NOTIFICATION 0x17
|
||||
|
||||
/**
|
||||
* @format 1111111T
|
||||
* @format 111111T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param clcc_idx
|
||||
* @param clcc_dir
|
||||
* @param clcc_status
|
||||
@ -855,7 +841,7 @@ extern "C" {
|
||||
* @param bnip_type
|
||||
* @param bnip_number
|
||||
*/
|
||||
#define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x1A
|
||||
#define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18
|
||||
|
||||
/**
|
||||
* @format 111T
|
||||
@ -864,15 +850,14 @@ extern "C" {
|
||||
* @param bnip_type
|
||||
* @param bnip_number
|
||||
*/
|
||||
#define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x1B
|
||||
#define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19
|
||||
|
||||
/**
|
||||
* @format 11T
|
||||
* @format 1T
|
||||
* @param subevent_code
|
||||
* @param status
|
||||
* @param value
|
||||
*/
|
||||
#define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1C
|
||||
#define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A
|
||||
|
||||
// ANCS Client
|
||||
#define ANCS_CLIENT_CONNECTED 0xF0
|
||||
|
13
src/hfp.c
13
src/hfp.c
@ -196,6 +196,15 @@ int join_bitmap(char * buffer, int buffer_size, uint32_t values, int values_nr){
|
||||
return offset;
|
||||
}
|
||||
|
||||
void hfp_emit_simple_event(hfp_callback_t callback, uint8_t event_subtype){
|
||||
if (!callback) return;
|
||||
uint8_t event[3];
|
||||
event[0] = HCI_EVENT_HFP_META;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = event_subtype;
|
||||
(*callback)(event, sizeof(event));
|
||||
}
|
||||
|
||||
void hfp_emit_event(hfp_callback_t callback, uint8_t event_subtype, uint8_t value){
|
||||
if (!callback) return;
|
||||
uint8_t event[4];
|
||||
@ -615,7 +624,7 @@ void hfp_handle_hci_event(hfp_callback_t callback, uint8_t packet_type, uint8_t
|
||||
break;
|
||||
}
|
||||
|
||||
hfp_emit_event(callback, HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED, 0);
|
||||
hfp_emit_simple_event(callback, HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED);
|
||||
remove_hfp_connection_context(hfp_connection);
|
||||
break;
|
||||
|
||||
@ -635,7 +644,7 @@ void hfp_handle_hci_event(hfp_callback_t callback, uint8_t packet_type, uint8_t
|
||||
hfp_connection->sco_handle = 0;
|
||||
hfp_connection->release_audio_connection = 0;
|
||||
hfp_connection->state = HFP_SERVICE_LEVEL_CONNECTION_ESTABLISHED;
|
||||
hfp_emit_event(callback, HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED, 0);
|
||||
hfp_emit_simple_event(callback, HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -623,6 +623,7 @@ int store_bit(uint32_t bitmap, int position, uint8_t value);
|
||||
void hfp_create_sdp_record(uint8_t * service, uint16_t service_uuid, int rfcomm_channel_nr, const char * name);
|
||||
void hfp_handle_hci_event(hfp_callback_t callback, uint8_t packet_type, uint8_t *packet, uint16_t size);
|
||||
void hfp_emit_event(hfp_callback_t callback, uint8_t event_subtype, uint8_t value);
|
||||
void hfp_emit_simple_event(hfp_callback_t callback, uint8_t event_subtype);
|
||||
void hfp_emit_string_event(hfp_callback_t callback, uint8_t event_subtype, const char * value);
|
||||
|
||||
hfp_connection_t * get_hfp_connection_context_for_rfcomm_cid(uint16_t cid);
|
||||
|
14
src/hfp_ag.c
14
src/hfp_ag.c
@ -852,7 +852,7 @@ static void hfp_ag_hf_start_ringing(hfp_connection_t * hfp_connection){
|
||||
hfp_connection->ag_ring = 1;
|
||||
hfp_connection->ag_send_clip = hfp_gsm_clip_type() && hfp_connection->clip_enabled;
|
||||
hfp_connection->call_state = HFP_CALL_RINGING;
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_START_RINGINIG, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_START_RINGINIG);
|
||||
}
|
||||
}
|
||||
|
||||
@ -860,7 +860,7 @@ static void hfp_ag_hf_stop_ringing(hfp_connection_t * hfp_connection){
|
||||
hfp_connection->ag_ring = 0;
|
||||
hfp_connection->ag_send_clip = 0;
|
||||
hfp_timeout_stop(hfp_connection);
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_STOP_RINGINIG, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_STOP_RINGINIG);
|
||||
}
|
||||
|
||||
static void hfp_ag_trigger_incoming_call(void){
|
||||
@ -1009,7 +1009,7 @@ static void hfp_ag_trigger_terminate_call(void){
|
||||
hfp_connection->release_audio_connection = 1;
|
||||
hfp_run_for_context(hfp_connection);
|
||||
}
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_CALL_TERMINATED, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_CALL_TERMINATED);
|
||||
}
|
||||
|
||||
static void hfp_ag_set_callsetup_indicator(){
|
||||
@ -1077,7 +1077,7 @@ static int call_setup_state_machine(hfp_connection_t * hfp_connection){
|
||||
hfp_connection->ag_send_clip = hfp_gsm_clip_type() && hfp_connection->clip_enabled;
|
||||
hfp_connection->call_state = HFP_CALL_RINGING;
|
||||
hfp_connection->call_state = HFP_CALL_RINGING;
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_START_RINGINIG, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_START_RINGINIG);
|
||||
break;
|
||||
case HFP_CALL_W4_AUDIO_CONNECTION_FOR_ACTIVE:
|
||||
if (hfp_connection->state != HFP_AUDIO_CONNECTION_ESTABLISHED) return 0;
|
||||
@ -1173,7 +1173,7 @@ static void hfp_ag_call_sm(hfp_ag_call_event_t event, hfp_connection_t * hfp_con
|
||||
hfp_gsm_handle_event(HFP_AG_HELD_CALL_JOINED_BY_AG);
|
||||
hfp_ag_set_callheld_indicator();
|
||||
hfp_ag_transfer_callheld_state();
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_CONFERENCE_CALL, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_CONFERENCE_CALL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -1549,7 +1549,7 @@ static void hfp_ag_call_sm(hfp_ag_call_event_t event, hfp_connection_t * hfp_con
|
||||
hfp_gsm_handle_event(HFP_AG_CALL_HOLD_ADD_HELD_CALL);
|
||||
hfp_ag_set_callheld_indicator();
|
||||
hfp_connection->ag_indicators_status_update_bitmap = store_bit(hfp_connection->ag_indicators_status_update_bitmap, callheld_indicator_index, 1);
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_CONFERENCE_CALL, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_CONFERENCE_CALL);
|
||||
}
|
||||
hfp_connection->call_state = HFP_CALL_ACTIVE;
|
||||
break;
|
||||
@ -1847,7 +1847,7 @@ static void hfp_handle_rfcomm_data(uint8_t packet_type, uint16_t channel, uint8_
|
||||
break;
|
||||
case HFP_CMD_HF_REQUEST_PHONE_NUMBER:
|
||||
hfp_connection->command = HFP_CMD_NONE;
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG);
|
||||
break;
|
||||
case HFP_CMD_TURN_OFF_EC_AND_NR:
|
||||
hfp_connection->command = HFP_CMD_NONE;
|
||||
|
39
src/hfp_hf.c
39
src/hfp_hf.c
@ -91,6 +91,20 @@ void hfp_hf_register_packet_handler(hfp_callback_t callback){
|
||||
hfp_callback = callback;
|
||||
}
|
||||
|
||||
static void hfp_hf_emit_subscriber_information(hfp_callback_t callback, uint8_t event_subtype, uint8_t status, uint8_t bnip_type, const char * bnip_number){
|
||||
if (!callback) return;
|
||||
uint8_t event[31];
|
||||
event[0] = HCI_EVENT_HFP_META;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = event_subtype;
|
||||
event[3] = status;
|
||||
event[4] = bnip_type;
|
||||
int size = (strlen(bnip_number) < sizeof(event) - 6) ? strlen(bnip_number) : sizeof(event) - 6;
|
||||
strncpy((char*)&event[5], bnip_number, size);
|
||||
event[5 + size] = 0;
|
||||
(*callback)(event, sizeof(event));
|
||||
}
|
||||
|
||||
static void hfp_hf_emit_type_and_number(hfp_callback_t callback, uint8_t event_subtype, uint8_t bnip_type, const char * bnip_number){
|
||||
if (!callback) return;
|
||||
uint8_t event[30];
|
||||
@ -356,17 +370,16 @@ static int hfp_hf_send_clcc(uint16_t cid){
|
||||
return send_str_over_rfcomm(cid, buffer);
|
||||
}
|
||||
|
||||
static void hfp_emit_ag_indicator_event(hfp_callback_t callback, int status, hfp_ag_indicator_t indicator){
|
||||
static void hfp_emit_ag_indicator_event(hfp_callback_t callback, hfp_ag_indicator_t indicator){
|
||||
if (!callback) return;
|
||||
uint8_t event[6+HFP_MAX_INDICATOR_DESC_SIZE+1];
|
||||
uint8_t event[5+HFP_MAX_INDICATOR_DESC_SIZE+1];
|
||||
event[0] = HCI_EVENT_HFP_META;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED;
|
||||
event[3] = status;
|
||||
event[4] = indicator.index;
|
||||
event[5] = indicator.status;
|
||||
strncpy((char*)&event[6], indicator.name, HFP_MAX_INDICATOR_DESC_SIZE);
|
||||
event[6+HFP_MAX_INDICATOR_DESC_SIZE] = 0;
|
||||
event[3] = indicator.index;
|
||||
event[4] = indicator.status;
|
||||
strncpy((char*)&event[5], indicator.name, HFP_MAX_INDICATOR_DESC_SIZE);
|
||||
event[5+HFP_MAX_INDICATOR_DESC_SIZE] = 0;
|
||||
(*callback)(event, sizeof(event));
|
||||
}
|
||||
|
||||
@ -376,9 +389,9 @@ static void hfp_emit_network_operator_event(hfp_callback_t callback, hfp_network
|
||||
event[0] = HCI_EVENT_HFP_META;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED;
|
||||
event[4] = network_operator.mode;
|
||||
event[5] = network_operator.format;
|
||||
strcpy((char*)&event[6], network_operator.name);
|
||||
event[3] = network_operator.mode;
|
||||
event[4] = network_operator.format;
|
||||
strcpy((char*)&event[5], network_operator.name);
|
||||
(*callback)(event, sizeof(event));
|
||||
}
|
||||
|
||||
@ -962,7 +975,7 @@ static void hfp_handle_rfcomm_event(uint8_t packet_type, uint16_t channel, uint8
|
||||
case HFP_CMD_GET_SUBSCRIBER_NUMBER_INFORMATION:
|
||||
hfp_connection->command = HFP_CMD_NONE;
|
||||
// printf("Subscriber Number: number %s, type %u\n", hfp_connection->bnip_number, hfp_connection->bnip_type);
|
||||
hfp_hf_emit_type_and_number(hfp_callback, HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION, hfp_connection->bnip_type, hfp_connection->bnip_number);
|
||||
hfp_hf_emit_subscriber_information(hfp_callback, HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION, 0, hfp_connection->bnip_type, hfp_connection->bnip_number);
|
||||
break;
|
||||
case HFP_CMD_RESPONSE_AND_HOLD_STATUS:
|
||||
hfp_connection->command = HFP_CMD_NONE;
|
||||
@ -1018,7 +1031,7 @@ static void hfp_handle_rfcomm_event(uint8_t packet_type, uint16_t channel, uint8
|
||||
hfp_hf_switch_on_ok(hfp_connection);
|
||||
break;
|
||||
case HFP_CMD_RING:
|
||||
hfp_emit_event(hfp_callback, HFP_SUBEVENT_RING, 0);
|
||||
hfp_emit_simple_event(hfp_callback, HFP_SUBEVENT_RING);
|
||||
break;
|
||||
case HFP_CMD_TRANSFER_AG_INDICATOR_STATUS:
|
||||
for (i = 0; i < hfp_connection->ag_indicators_nr; i++){
|
||||
@ -1031,7 +1044,7 @@ static void hfp_handle_rfcomm_event(uint8_t packet_type, uint16_t channel, uint8
|
||||
hfp_call_status = (hfp_call_status_t) hfp_connection->ag_indicators[i].status;
|
||||
}
|
||||
hfp_connection->ag_indicators[i].status_changed = 0;
|
||||
hfp_emit_ag_indicator_event(hfp_callback, 0, hfp_connection->ag_indicators[i]);
|
||||
hfp_emit_ag_indicator_event(hfp_callback, hfp_connection->ag_indicators[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -362,8 +362,7 @@ void packet_handler(uint8_t * event, uint16_t event_size){
|
||||
if (event[3]
|
||||
&& event[2] != HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER
|
||||
&& event[2] != HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG
|
||||
&& event[2] != HFP_SUBEVENT_TRANSMIT_DTMF_CODES
|
||||
&& event[2] != HFP_SUBEVENT_TRANSMIT_STATUS_OF_CURRENT_CALL){
|
||||
&& event[2] != HFP_SUBEVENT_TRANSMIT_DTMF_CODES){
|
||||
printf("ERROR, status: %u\n", event[3]);
|
||||
return;
|
||||
}
|
||||
|
@ -394,14 +394,6 @@ void simulate_test_sequence(hfp_test_item_t * test_item){
|
||||
|
||||
void packet_handler(uint8_t * event, uint16_t event_size){
|
||||
if (event[0] != HCI_EVENT_HFP_META) return;
|
||||
if (event[3]
|
||||
&& event[2] != HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR
|
||||
&& event[2] != HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG
|
||||
&& event[2] != HFP_SUBEVENT_SPEAKER_VOLUME
|
||||
&& event[2] != HFP_SUBEVENT_MICROPHONE_VOLUME){
|
||||
printf("ERROR, status: %u\n", event[3]);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event[2]) {
|
||||
case HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED:
|
||||
@ -443,10 +435,10 @@ void packet_handler(uint8_t * event, uint16_t event_size){
|
||||
printf("HFP AG HFP_SUBEVENT_COMPLETE.\n");
|
||||
break;
|
||||
case HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED:
|
||||
printf("AG_INDICATOR_STATUS_CHANGED, AG indicator '%s' (index: %d) to: %d\n", (const char*) &event[6], event[4], event[5]);
|
||||
printf("AG_INDICATOR_STATUS_CHANGED, AG indicator '%s' (index: %d) to: %d\n", (const char*) &event[5], event[3], event[4]);
|
||||
break;
|
||||
case HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED:
|
||||
printf("NETWORK_OPERATOR_CHANGED, operator mode: %d, format: %d, name: %s\n", event[4], event[5], (char *) &event[6]);
|
||||
printf("NETWORK_OPERATOR_CHANGED, operator mode: %d, format: %d, name: %s\n", event[3], event[4], (char *) &event[5]);
|
||||
break;
|
||||
case HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR:
|
||||
if (event[4])
|
||||
|
@ -599,8 +599,7 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
||||
if (event[3]
|
||||
&& event[2] != HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER
|
||||
&& event[2] != HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG
|
||||
&& event[2] != HFP_SUBEVENT_TRANSMIT_DTMF_CODES
|
||||
&& event[2] != HFP_SUBEVENT_TRANSMIT_STATUS_OF_CURRENT_CALL){
|
||||
&& event[2] != HFP_SUBEVENT_TRANSMIT_DTMF_CODES){
|
||||
printf("ERROR, status: %u\n", event[3]);
|
||||
return;
|
||||
}
|
||||
|
@ -467,14 +467,7 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
||||
return;
|
||||
}
|
||||
if (event[0] != HCI_EVENT_HFP_META) return;
|
||||
if (event[3]
|
||||
&& event[2] != HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR
|
||||
&& event[2] != HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG
|
||||
&& event[2] != HFP_SUBEVENT_SPEAKER_VOLUME
|
||||
&& event[2] != HFP_SUBEVENT_MICROPHONE_VOLUME){
|
||||
printf("ERROR, status: %u\n", event[3]);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event[2]) {
|
||||
case HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED:
|
||||
printf("Service level connection established.\n\n");
|
||||
@ -500,10 +493,10 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
|
||||
}
|
||||
break;
|
||||
case HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED:
|
||||
printf("AG_INDICATOR_STATUS_CHANGED, AG indicator '%s' (index: %d) to: %d\n", (const char*) &event[6], event[4], event[5]);
|
||||
printf("AG_INDICATOR_STATUS_CHANGED, AG indicator '%s' (index: %d) to: %d\n", (const char*) &event[5], event[3], event[4]);
|
||||
break;
|
||||
case HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED:
|
||||
printf("NETWORK_OPERATOR_CHANGED, operator mode: %d, format: %d, name: %s\n", event[4], event[5], (char *) &event[6]);
|
||||
printf("NETWORK_OPERATOR_CHANGED, operator mode: %d, format: %d, name: %s\n", event[3], event[4]], (char *) &event[5]);
|
||||
break;
|
||||
case HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR:
|
||||
if (event[4])
|
||||
|
Loading…
x
Reference in New Issue
Block a user