diff --git a/example/ancs_client_demo.c b/example/ancs_client_demo.c index 19d073ad7..52633a5ac 100644 --- a/example/ancs_client_demo.c +++ b/example/ancs_client_demo.c @@ -105,7 +105,7 @@ static void app_packet_handler (uint8_t packet_type, uint16_t channel, uint8_t * } } -static void ancs_callback(uint8_t packet_type, uint8_t *packet, uint16_t size){ +static void ancs_callback(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){ const char * attribute_name; if (packet[0] != HCI_EVENT_ANCS_META) return; switch (packet[2]){ diff --git a/port/arduino/BTstack.h b/port/arduino/BTstack.h index 963e0b757..84f428a3b 100644 --- a/port/arduino/BTstack.h +++ b/port/arduino/BTstack.h @@ -106,11 +106,11 @@ public: class BLEDevice { private: - uint16_t handle; + hci_con_handle_t handle; public: BLEDevice(); - BLEDevice(uint16_t handle); - uint16_t getHandle(); + BLEDevice(hci_con_handle_t handle); + hci_con_handle_t getHandle(); // discovery of services and characteristics int discoverGATTServices(); diff --git a/port/arduino/examples/ANCS/ANCS.ino b/port/arduino/examples/ANCS/ANCS.ino index 43054eee2..26d88e2fc 100644 --- a/port/arduino/examples/ANCS/ANCS.ino +++ b/port/arduino/examples/ANCS/ANCS.ino @@ -72,7 +72,7 @@ void loop(void){ /* LISTING_START(ANCSCallback): ANCS Callback */ -void ancs_callback(uint8_t packet_type, uint8_t *packet, uint16_t size){ +void ancs_callback(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){ const char * attribute_name; if (packet[0] != HCI_EVENT_ANCS_META) return; switch (packet[0]){ diff --git a/src/ble/ancs_client.c b/src/ble/ancs_client.c index 1a0088b59..1d9581137 100644 --- a/src/ble/ancs_client.c +++ b/src/ble/ancs_client.c @@ -103,11 +103,11 @@ static uint16_t ancs_bytes_received; static uint16_t ancs_bytes_needed; static uint8_t ancs_attribute_id; static uint16_t ancs_attribute_len; -static void (*client_handler)(uint8_t packet_type, uint8_t *packet, uint16_t size); +static btstack_packet_handler_t client_handler; static btstack_packet_callback_registration_t hci_event_callback_registration; -void ancs_client_register_callback(void (*handler)(uint8_t packet_type, uint8_t *packet, uint16_t size)){ +void ancs_client_register_callback(btstack_packet_handler_t handler){ client_handler = handler; } @@ -122,7 +122,7 @@ static void notify_client_text(int event_type){ memcpy(&event[7], ancs_notification_buffer, ancs_attribute_len); // we're nice event[7+ancs_attribute_len] = 0; - (*client_handler)(HCI_EVENT_PACKET, event, event[1] + 2); + (*client_handler)(HCI_EVENT_PACKET, 0, event, event[1] + 2); } static void notify_client_simple(int event_type){ @@ -132,7 +132,7 @@ static void notify_client_simple(int event_type){ event[1] = 3; event[2] = event_type; little_endian_store_16(event, 3, gc_handle); - (*client_handler)(HCI_EVENT_PACKET, event, sizeof(event)); + (*client_handler)(HCI_EVENT_PACKET, 0, event, sizeof(event)); } static void ancs_chunk_parser_init(void){ diff --git a/src/ble/ancs_client.h b/src/ble/ancs_client.h index db930478b..2df2c48ac 100644 --- a/src/ble/ancs_client.h +++ b/src/ble/ancs_client.h @@ -43,11 +43,12 @@ extern "C" { #endif #include - +#include "btstack_defines.h" + /* API_START */ void ancs_client_init(void); -void ancs_client_register_callback(void (*handler)(uint8_t packet_type, uint8_t *packet, uint16_t size)); +void ancs_client_register_callback(btstack_packet_handler_t callback); const char * ancs_client_attribute_name_for_id(int id); /* API_END */