From ea3e91cf13da8f5e716534aa01c88b47e9443839 Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Thu, 6 Nov 2014 10:32:00 +0200 Subject: [PATCH] android/handsfree: Add support for new API for dial_call_cmd_cb Dial Call Command notification callback has new parameter bdaddr. --- android/hal-handsfree.c | 4 ++++ android/hal-ipc-api.txt | 3 ++- android/hal-msg.h | 1 + android/handsfree.c | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/android/hal-handsfree.c b/android/hal-handsfree.c index bb64da01d..3a5eec695 100644 --- a/android/hal-handsfree.c +++ b/android/hal-handsfree.c @@ -122,7 +122,11 @@ static void handle_dial(void *buf, uint16_t len, int fd) if (ev->number_len) number = (char *) ev->number; +#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0) + cbs->dial_call_cmd_cb(number, (bt_bdaddr_t *) (ev->bdaddr)); +#else cbs->dial_call_cmd_cb(number); +#endif } static void handle_dtmf(void *buf, uint16_t len, int fd) diff --git a/android/hal-ipc-api.txt b/android/hal-ipc-api.txt index a78a0972b..174bf7916 100644 --- a/android/hal-ipc-api.txt +++ b/android/hal-ipc-api.txt @@ -1032,7 +1032,8 @@ Notifications: Opcode 0x87 - Dial Call Command notification - Notification parameters: Number (string) + Notification parameters: Remote address (6 octets) + Number (string) Opcode 0x88 - DTMF Command notification diff --git a/android/hal-msg.h b/android/hal-msg.h index 889b45e40..a1cfff13c 100644 --- a/android/hal-msg.h +++ b/android/hal-msg.h @@ -1368,6 +1368,7 @@ struct hal_ev_handsfree_volume { #define HAL_EV_HANDSFREE_DIAL 0x87 struct hal_ev_handsfree_dial { + uint8_t bdaddr[6]; uint16_t number_len; uint8_t number[0]; } __attribute__((packed)); diff --git a/android/handsfree.c b/android/handsfree.c index c5aa99abc..121d37af9 100644 --- a/android/handsfree.c +++ b/android/handsfree.c @@ -537,6 +537,8 @@ static void at_cmd_d(struct hfp_context *context, (char *) ev->number, 255)) break; + bdaddr2android(&dev->bdaddr, ev->bdaddr); + ev->number_len = strlen((char *) ev->number); if (ev->number[ev->number_len - 1] != ';') @@ -794,6 +796,7 @@ static void at_cmd_bldn(struct hfp_context *context, if (hfp_context_has_next(context)) break; + bdaddr2android(&dev->bdaddr, ev.bdaddr); ev.number_len = 0; ipc_send_notif(hal_ipc, HAL_SERVICE_ID_HANDSFREE, -- 2.47.3