From 827b1c43e5480ad8fc0321fa9e56fdee431481e0 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 18 Feb 2016 12:24:44 +0100 Subject: [PATCH] use DAEMON prefix for daemon events --- example/daemon/inquiry.c | 2 +- platform/daemon/daemon.c | 12 ++-- port/ios/CocoaTouch/src/BTstackManager.m | 6 +- port/ios/PrefsBundle/BluetoothController.m | 8 +-- src/btstack_defines.h | 79 +++++++++++++++++----- src/classic/hfp.c | 2 +- test/pts/classic_test.c | 2 +- test/pts/hfp_ag_test.c | 2 +- 8 files changed, 80 insertions(+), 33 deletions(-) diff --git a/example/daemon/inquiry.c b/example/daemon/inquiry.c index 43c48115a..37279f5bc 100644 --- a/example/daemon/inquiry.c +++ b/example/daemon/inquiry.c @@ -201,7 +201,7 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe start_scan(); break; - case BTSTACK_EVENT_REMOTE_NAME_CACHED: + case DAEMON_EVENT_REMOTE_NAME_CACHED: reverse_bd_addr(&packet[3], addr); printf("Cached remote name for %s: '%s'\n", bd_addr_to_str(addr), &packet[9]); break; diff --git a/platform/daemon/daemon.c b/platform/daemon/daemon.c index d9b3c53a1..a8b71b5e3 100644 --- a/platform/daemon/daemon.c +++ b/platform/daemon/daemon.c @@ -683,9 +683,9 @@ static void daemon_disconnect_client(connection_t * connection){ } static void hci_emit_btstack_version(void){ - log_info("BTSTACK_EVENT_VERSION %u.%u", BTSTACK_MAJOR, BTSTACK_MINOR); + log_info("DAEMON_EVENT_VERSION %u.%u", BTSTACK_MAJOR, BTSTACK_MINOR); uint8_t event[6]; - event[0] = BTSTACK_EVENT_VERSION; + event[0] = DAEMON_EVENT_VERSION; event[1] = sizeof(event) - 2; event[2] = BTSTACK_MAJOR; event[3] = BTSTACK_MINOR; @@ -694,9 +694,9 @@ static void hci_emit_btstack_version(void){ } static void hci_emit_system_bluetooth_enabled(uint8_t enabled){ - log_info("BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED %u", enabled); + log_info("DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED %u", enabled); uint8_t event[3]; - event[0] = BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED; + event[0] = DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED; event[1] = sizeof(event) - 2; event[2] = enabled; hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event)); @@ -1559,13 +1559,13 @@ static void daemon_packet_handler(void * connection, uint8_t packet_type, uint16 for (i=0; iget_name(addr, (device_name_t *) &remote_name_event[9])){ - remote_name_event[0] = BTSTACK_EVENT_REMOTE_NAME_CACHED; + remote_name_event[0] = DAEMON_EVENT_REMOTE_NAME_CACHED; remote_name_event[1] = sizeof(remote_name_event) - 2 - 1; remote_name_event[2] = 0; // just to be compatible with HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE reverse_bd_addr(addr, &remote_name_event[3]); remote_name_event[9+248] = 0; // assert \0 for log_info - log_info("BTSTACK_EVENT_REMOTE_NAME_CACHED %s = '%s'", bd_addr_to_str(addr), &remote_name_event[9]); + log_info("DAEMON_EVENT_REMOTE_NAME_CACHED %s = '%s'", bd_addr_to_str(addr), &remote_name_event[9]); hci_dump_packet(HCI_EVENT_PACKET, 0, remote_name_event, sizeof(remote_name_event)-1); daemon_emit_packet(connection, HCI_EVENT_PACKET, channel, remote_name_event, sizeof(remote_name_event) -1); } diff --git a/port/ios/CocoaTouch/src/BTstackManager.m b/port/ios/CocoaTouch/src/BTstackManager.m index f1e6b5253..56a2b5c92 100644 --- a/port/ios/CocoaTouch/src/BTstackManager.m +++ b/port/ios/CocoaTouch/src/BTstackManager.m @@ -263,8 +263,8 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe case kW4SysBTState: case kW4SysBTDisabled: - // BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED - if ( packet[0] == BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED){ + // DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED + if ( packet[0] == DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED){ if (packet[2]){ // system bt on - first time try to disable it if ( state == kW4SysBTState) { @@ -458,7 +458,7 @@ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packe } break; } - case BTSTACK_EVENT_REMOTE_NAME_CACHED: + case DAEMON_EVENT_REMOTE_NAME_CACHED: [self handleRemoteNameCached:packet]; break; diff --git a/port/ios/PrefsBundle/BluetoothController.m b/port/ios/PrefsBundle/BluetoothController.m index f82b0585d..25141e509 100644 --- a/port/ios/PrefsBundle/BluetoothController.m +++ b/port/ios/PrefsBundle/BluetoothController.m @@ -184,9 +184,9 @@ static BluetoothController* sharedInstance = nil; hci_state = packet[2]; // NSLog(@"new BTSTACK_EVENT_STATE %u", hci_state); break; - case BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED: + case DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED: system_bluetooth = packet[2]; - // NSLog(@"new BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED %u", system_bluetooth); + // NSLog(@"new DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED %u", system_bluetooth); break; default: break; @@ -205,7 +205,7 @@ static BluetoothController* sharedInstance = nil; break; case kW4SystemOffToEnableBTstack: - if (packet[0] == BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED) { + if (packet[0] == DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED) { if (system_bluetooth == 0){ bt_send_cmd(&btstack_set_power_mode, HCI_POWER_ON); state = kIdle; @@ -220,7 +220,7 @@ static BluetoothController* sharedInstance = nil; bt_send_cmd(&btstack_set_system_bluetooth_enabled, 1); } } - if (packet[0] == BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED) { + if (packet[0] == DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED) { if (system_bluetooth == 0){ // NSLog(@"Sending set system bluetooth enable B"); bt_send_cmd(&btstack_set_system_bluetooth_enabled, 1); diff --git a/src/btstack_defines.h b/src/btstack_defines.h index 39c36b409..adcad14b7 100644 --- a/src/btstack_defines.h +++ b/src/btstack_defines.h @@ -268,24 +268,27 @@ typedef uint8_t sm_key_t[16]; */ #define BTSTACK_EVENT_POWERON_FAILED 0x62 +/** + * @format 1 + * @param discoverable + */ +#define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 + +// Daemon Events + /** * @format 112 * @param major * @param minor @ @param revision */ -#define BTSTACK_EVENT_VERSION 0x63 +#define DAEMON_EVENT_VERSION 0x63 // data: system bluetooth on/off (bool) -#define BTSTACK_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 +#define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) -#define BTSTACK_EVENT_REMOTE_NAME_CACHED 0x65 - -// data: discoverable enabled (bool) -#define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 - -// Daemon Events used internally +#define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 // data: event(8) #define DAEMON_EVENT_CONNECTION_OPENED 0x68 @@ -302,6 +305,7 @@ typedef uint8_t sm_key_t[16]; // data: event(8) #define DAEMON_EVENT_HCI_PACKET_SENT 0x6C + // additional HCI events /** * @format B @@ -738,16 +742,59 @@ typedef uint8_t sm_key_t[16]; */ #define GAP_LE_EVENT_ADVERTISING_REPORT 0xE2 + #define HCI_EVENT_HSP_META 0xE8 -#define HSP_SUBEVENT_ERROR 0x01 -#define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x02 -#define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x03 -#define HSP_SUBEVENT_RING 0x04 -#define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x05 -#define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x06 -#define HSP_SUBEVENT_HS_COMMAND 0x07 -#define HSP_SUBEVENT_AG_INDICATION 0x08 +/** + * @format 11 + * @param subevent_code + * @param status 0 == OK + */ +#define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x01 + +/** + * @format 11 + * @param subevent_code + * @param status 0 == OK + */ +#define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x02 + +/** + * @format 1 + * @param subevent_code + */ +#define HSP_SUBEVENT_RING 0x03 + +/** + * @format 11 + * @param subevent_code + * @param gain Valid range: [0,15] + */ +#define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x04 + +/** + * @format 11 + * @param subevent_code + * @param gain Valid range: [0,15] + */ +#define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x05 + +/** + * @format 1JV + * @param subevent_code + * @param value_length + * @param value + */ +#define HSP_SUBEVENT_HS_COMMAND 0x06 + +/** + * @format 1JV + * @param subevent_code + * @param value_length + * @param value + */ +#define HSP_SUBEVENT_AG_INDICATION 0x07 + #define HCI_EVENT_HFP_META 0xE9 diff --git a/src/classic/hfp.c b/src/classic/hfp.c index 744eef71e..029125e38 100644 --- a/src/classic/hfp.c +++ b/src/classic/hfp.c @@ -637,7 +637,7 @@ void hfp_handle_hci_event(uint8_t packet_type, uint8_t *packet, uint16_t size){ case HCI_EVENT_INQUIRY_RESULT: case HCI_EVENT_INQUIRY_RESULT_WITH_RSSI: case HCI_EVENT_INQUIRY_COMPLETE: - case BTSTACK_EVENT_REMOTE_NAME_CACHED: + case DAEMON_EVENT_REMOTE_NAME_CACHED: case HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE: // forward inquiry events to app - TODO: replace with new event handler architecture (*hfp_callback)(packet, size); diff --git a/test/pts/classic_test.c b/test/pts/classic_test.c index 56d920d88..9a6ba6fae 100644 --- a/test/pts/classic_test.c +++ b/test/pts/classic_test.c @@ -237,7 +237,7 @@ static void inquiry_packet_handler (uint8_t packet_type, uint8_t *packet, uint16 continue_remote_names(); break; - case BTSTACK_EVENT_REMOTE_NAME_CACHED: + case DAEMON_EVENT_REMOTE_NAME_CACHED: reverse_bd_addr(&packet[3], addr); printf("Cached remote name for %s: '%s'\n", bd_addr_to_str(addr), &packet[9]); break; diff --git a/test/pts/hfp_ag_test.c b/test/pts/hfp_ag_test.c index 69d7c8fef..53af3e2ba 100644 --- a/test/pts/hfp_ag_test.c +++ b/test/pts/hfp_ag_test.c @@ -241,7 +241,7 @@ static void inquiry_packet_handler (uint8_t packet_type, uint8_t *packet, uint16 continue_remote_names(); break; - case BTSTACK_EVENT_REMOTE_NAME_CACHED: + case DAEMON_EVENT_REMOTE_NAME_CACHED: reverse_bd_addr(&packet[3], addr); printf("Cached remote name for %s: '%s'\n", bd_addr_to_str(addr), &packet[9]); break;