hfp: report speaker and microphone gain changes on HF

This commit is contained in:
Matthias Ringwald 2015-11-28 14:38:47 +01:00
parent f36add6afd
commit b45e664d79
3 changed files with 19 additions and 1 deletions

View File

@ -648,6 +648,8 @@ extern "C" {
#define HFP_SUBEVENT_CALL_ANSWERED 0x13
#define HFP_SUBEVENT_CONFERENCE_CALL 0x14
#define HFP_SUBEVENT_RING 0x15
#define HFP_SUBEVENT_SPEAKER_VOLUME 0x16
#define HFP_SUBEVENT_MICROPHONE_VOLUME 0x17
// ANCS Client
#define ANCS_CLIENT_CONNECTED 0xF0

View File

@ -843,6 +843,14 @@ static void hfp_handle_rfcomm_event(uint8_t packet_type, uint16_t channel, uint8
}
switch (context->command){
case HFP_CMD_SET_SPEAKER_GAIN:
context->command = HFP_CMD_NONE;
hfp_emit_event(hfp_callback, HFP_SUBEVENT_SPEAKER_VOLUME, atoi((char*)context->line_buffer));
break;
case HFP_CMD_SET_MICROPHONE_GAIN:
context->command = HFP_CMD_NONE;
hfp_emit_event(hfp_callback, HFP_SUBEVENT_MICROPHONE_VOLUME, atoi((char*)context->line_buffer));
break;
case HFP_CMD_AG_SENT_PHONE_NUMBER:
context->command = HFP_CMD_NONE;
hfp_emit_string_event(hfp_callback, HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG, context->bnip_number);

View File

@ -357,7 +357,9 @@ static 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_NUMBER_FOR_VOICE_TAG
&& event[2] != HFP_SUBEVENT_SPEAKER_VOLUME
&& event[2] != HFP_SUBEVENT_MICROPHONE_VOLUME){
printf("ERROR, status: %u\n", event[3]);
return;
}
@ -401,6 +403,12 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
case HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG:
printf("Phone number for voice tag: %s\n", (const char *) &event[3]);
break;
case HFP_SUBEVENT_SPEAKER_VOLUME:
printf("Speaker volume: %u\n", event[3]);
break;
case HFP_SUBEVENT_MICROPHONE_VOLUME:
printf("Microphone volume: %u\n", event[3]);
break;
default:
printf("event not handled %u\n", event[2]);
break;