1941b3855SMatthias Ringwald /* 2941b3855SMatthias Ringwald * Copyright (C) 2015 BlueKitchen GmbH 3941b3855SMatthias Ringwald * 4941b3855SMatthias Ringwald * Redistribution and use in source and binary forms, with or without 5941b3855SMatthias Ringwald * modification, are permitted provided that the following conditions 6941b3855SMatthias Ringwald * are met: 7941b3855SMatthias Ringwald * 8941b3855SMatthias Ringwald * 1. Redistributions of source code must retain the above copyright 9941b3855SMatthias Ringwald * notice, this list of conditions and the following disclaimer. 10941b3855SMatthias Ringwald * 2. Redistributions in binary form must reproduce the above copyright 11941b3855SMatthias Ringwald * notice, this list of conditions and the following disclaimer in the 12941b3855SMatthias Ringwald * documentation and/or other materials provided with the distribution. 13941b3855SMatthias Ringwald * 3. Neither the name of the copyright holders nor the names of 14941b3855SMatthias Ringwald * contributors may be used to endorse or promote products derived 15941b3855SMatthias Ringwald * from this software without specific prior written permission. 16941b3855SMatthias Ringwald * 4. Any redistribution, use, or modification is done solely for 17941b3855SMatthias Ringwald * personal benefit and not for any commercial purpose or for 18941b3855SMatthias Ringwald * monetary gain. 19941b3855SMatthias Ringwald * 20941b3855SMatthias Ringwald * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21941b3855SMatthias Ringwald * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22941b3855SMatthias Ringwald * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23941b3855SMatthias Ringwald * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS 24941b3855SMatthias Ringwald * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25941b3855SMatthias Ringwald * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26941b3855SMatthias Ringwald * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27941b3855SMatthias Ringwald * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28941b3855SMatthias Ringwald * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29941b3855SMatthias Ringwald * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30941b3855SMatthias Ringwald * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31941b3855SMatthias Ringwald * SUCH DAMAGE. 32941b3855SMatthias Ringwald * 33941b3855SMatthias Ringwald * Please inquire about commercial licensing options at 34941b3855SMatthias Ringwald * [email protected] 35941b3855SMatthias Ringwald * 36941b3855SMatthias Ringwald */ 37941b3855SMatthias Ringwald 38941b3855SMatthias Ringwald /* 39941b3855SMatthias Ringwald * btstack-defines.h 40941b3855SMatthias Ringwald * 41941b3855SMatthias Ringwald * BTstack definitions, events, and error codes */ 42941b3855SMatthias Ringwald 43941b3855SMatthias Ringwald #ifndef __BTSTACK_DEFINES_H 44941b3855SMatthias Ringwald #define __BTSTACK_DEFINES_H 45941b3855SMatthias Ringwald 468974fcd6SMatthias Ringwald #include <stdint.h> 478974fcd6SMatthias Ringwald #include "btstack_linked_list.h" 488974fcd6SMatthias Ringwald 49f3963406SMatthias Ringwald 50f3963406SMatthias Ringwald // UNUSED macro 51f3963406SMatthias Ringwald #define UNUSED(x) (void)(sizeof(x)) 52f3963406SMatthias Ringwald 538974fcd6SMatthias Ringwald // TYPES 548974fcd6SMatthias Ringwald 558974fcd6SMatthias Ringwald // packet handler 568974fcd6SMatthias Ringwald typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); 578974fcd6SMatthias Ringwald 588974fcd6SMatthias Ringwald // packet callback supporting multiple registrations 598974fcd6SMatthias Ringwald typedef struct { 608974fcd6SMatthias Ringwald btstack_linked_item_t item; 618974fcd6SMatthias Ringwald btstack_packet_handler_t callback; 628974fcd6SMatthias Ringwald } btstack_packet_callback_registration_t; 638974fcd6SMatthias Ringwald 64bb38f057SMatthias Ringwald // context callback supporting multiple registrations 65bb38f057SMatthias Ringwald typedef struct { 66bb38f057SMatthias Ringwald btstack_linked_item_t * item; 67bb38f057SMatthias Ringwald void (*callback)(void * context); 68bb38f057SMatthias Ringwald void * context; 69bb38f057SMatthias Ringwald } btstack_context_callback_registration_t; 70bb38f057SMatthias Ringwald 71f7a05cdaSMatthias Ringwald /** 728974fcd6SMatthias Ringwald * @brief 128 bit key used with AES128 in Security Manager 73f7a05cdaSMatthias Ringwald */ 748974fcd6SMatthias Ringwald typedef uint8_t sm_key_t[16]; 75f7a05cdaSMatthias Ringwald 76941b3855SMatthias Ringwald // DEFINES 77941b3855SMatthias Ringwald 78941b3855SMatthias Ringwald #define DAEMON_EVENT_PACKET 0x05 79941b3855SMatthias Ringwald 80941b3855SMatthias Ringwald // L2CAP data 81941b3855SMatthias Ringwald #define L2CAP_DATA_PACKET 0x06 82941b3855SMatthias Ringwald 83941b3855SMatthias Ringwald // RFCOMM data 84941b3855SMatthias Ringwald #define RFCOMM_DATA_PACKET 0x07 85941b3855SMatthias Ringwald 86941b3855SMatthias Ringwald // Attribute protocol data 87941b3855SMatthias Ringwald #define ATT_DATA_PACKET 0x08 88941b3855SMatthias Ringwald 89941b3855SMatthias Ringwald // Security Manager protocol data 90941b3855SMatthias Ringwald #define SM_DATA_PACKET 0x09 91941b3855SMatthias Ringwald 92941b3855SMatthias Ringwald // SDP query result 93941b3855SMatthias Ringwald // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k) 94941b3855SMatthias Ringwald #define SDP_CLIENT_PACKET 0x0a 95941b3855SMatthias Ringwald 96941b3855SMatthias Ringwald // BNEP data 97941b3855SMatthias Ringwald #define BNEP_DATA_PACKET 0x0b 98941b3855SMatthias Ringwald 99941b3855SMatthias Ringwald // Unicast Connectionless Data 100941b3855SMatthias Ringwald #define UCD_DATA_PACKET 0x0c 101941b3855SMatthias Ringwald 102941b3855SMatthias Ringwald // debug log messages 103941b3855SMatthias Ringwald #define LOG_MESSAGE_PACKET 0xfc 104941b3855SMatthias Ringwald 105941b3855SMatthias Ringwald 106941b3855SMatthias Ringwald // ERRORS 107941b3855SMatthias Ringwald 108941b3855SMatthias Ringwald // last error code in 2.1 is 0x38 - we start with 0x50 for BTstack errors 109941b3855SMatthias Ringwald #define BTSTACK_CONNECTION_TO_BTDAEMON_FAILED 0x50 110941b3855SMatthias Ringwald #define BTSTACK_ACTIVATION_FAILED_SYSTEM_BLUETOOTH 0x51 111941b3855SMatthias Ringwald #define BTSTACK_ACTIVATION_POWERON_FAILED 0x52 112941b3855SMatthias Ringwald #define BTSTACK_ACTIVATION_FAILED_UNKNOWN 0x53 113941b3855SMatthias Ringwald #define BTSTACK_NOT_ACTIVATED 0x54 114941b3855SMatthias Ringwald #define BTSTACK_BUSY 0x55 115941b3855SMatthias Ringwald #define BTSTACK_MEMORY_ALLOC_FAILED 0x56 116941b3855SMatthias Ringwald #define BTSTACK_ACL_BUFFERS_FULL 0x57 117941b3855SMatthias Ringwald 118941b3855SMatthias Ringwald // l2cap errors - enumeration by the command that created them 119941b3855SMatthias Ringwald #define L2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD 0x60 120941b3855SMatthias Ringwald #define L2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED 0x61 121941b3855SMatthias Ringwald #define L2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST 0x62 122941b3855SMatthias Ringwald 123941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL 0x63 124941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_PENDING 0x64 125941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM 0x65 126941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY 0x66 127941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES 0x67 128941b3855SMatthias Ringwald #define L2CAP_CONNECTION_RESPONSE_RESULT_RTX_TIMEOUT 0x68 129941b3855SMatthias Ringwald 130941b3855SMatthias Ringwald #define L2CAP_SERVICE_ALREADY_REGISTERED 0x69 131941b3855SMatthias Ringwald #define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6A 1327e8856ebSMatthias Ringwald #define L2CAP_SERVICE_DOES_NOT_EXIST 0x6B 13394530c77SMatthias Ringwald #define L2CAP_LOCAL_CID_DOES_NOT_EXIST 0x6C 134941b3855SMatthias Ringwald 135941b3855SMatthias Ringwald #define RFCOMM_MULTIPLEXER_STOPPED 0x70 136941b3855SMatthias Ringwald #define RFCOMM_CHANNEL_ALREADY_REGISTERED 0x71 137941b3855SMatthias Ringwald #define RFCOMM_NO_OUTGOING_CREDITS 0x72 138941b3855SMatthias Ringwald #define RFCOMM_AGGREGATE_FLOW_OFF 0x73 139941b3855SMatthias Ringwald #define RFCOMM_DATA_LEN_EXCEEDS_MTU 0x74 140941b3855SMatthias Ringwald 141941b3855SMatthias Ringwald #define SDP_HANDLE_ALREADY_REGISTERED 0x80 142941b3855SMatthias Ringwald #define SDP_QUERY_INCOMPLETE 0x81 143941b3855SMatthias Ringwald #define SDP_SERVICE_NOT_FOUND 0x82 144941b3855SMatthias Ringwald #define SDP_HANDLE_INVALID 0x83 145e5057641SMatthias Ringwald #define SDP_QUERY_BUSY 0x84 146941b3855SMatthias Ringwald 147941b3855SMatthias Ringwald #define ATT_HANDLE_VALUE_INDICATION_IN_PORGRESS 0x90 148941b3855SMatthias Ringwald #define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91 149941b3855SMatthias Ringwald 150941b3855SMatthias Ringwald #define GATT_CLIENT_NOT_CONNECTED 0x93 151941b3855SMatthias Ringwald #define GATT_CLIENT_BUSY 0x94 152616edd56SMatthias Ringwald #define GATT_CLIENT_IN_WRONG_STATE 0x95 153616edd56SMatthias Ringwald #define GATT_CLIENT_DIFFERENT_CONTEXT_FOR_ADDRESS_ALREADY_EXISTS 0x96 154616edd56SMatthias Ringwald #define GATT_CLIENT_VALUE_TOO_LONG 0x97 155616edd56SMatthias Ringwald #define GATT_CLIENT_CHARACTERISTIC_NOTIFICATION_NOT_SUPPORTED 0x98 156616edd56SMatthias Ringwald #define GATT_CLIENT_CHARACTERISTIC_INDICATION_NOT_SUPPORTED 0x99 157941b3855SMatthias Ringwald 158941b3855SMatthias Ringwald #define BNEP_SERVICE_ALREADY_REGISTERED 0xA0 159941b3855SMatthias Ringwald #define BNEP_CHANNEL_NOT_CONNECTED 0xA1 160941b3855SMatthias Ringwald #define BNEP_DATA_LEN_EXCEEDS_MTU 0xA2 161941b3855SMatthias Ringwald 16262c64df1SMatthias Ringwald 16362c64df1SMatthias Ringwald 16462c64df1SMatthias Ringwald // DAEMON COMMANDS 165b3f90e25SMatthias Ringwald 166b3f90e25SMatthias Ringwald #define OGF_BTSTACK 0x3d 167b3f90e25SMatthias Ringwald 168b3f90e25SMatthias Ringwald // cmds for BTstack 169b3f90e25SMatthias Ringwald // get state: @returns HCI_STATE 170b3f90e25SMatthias Ringwald #define BTSTACK_GET_STATE 0x01 171b3f90e25SMatthias Ringwald 172045013feSMatthias Ringwald // set power mode: param HCI_POWER_MODE 173b3f90e25SMatthias Ringwald #define BTSTACK_SET_POWER_MODE 0x02 174b3f90e25SMatthias Ringwald 175045013feSMatthias Ringwald // set capture mode: param on 176b3f90e25SMatthias Ringwald #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03 177b3f90e25SMatthias Ringwald 178b3f90e25SMatthias Ringwald // get BTstack version 179b3f90e25SMatthias Ringwald #define BTSTACK_GET_VERSION 0x04 180b3f90e25SMatthias Ringwald 181b3f90e25SMatthias Ringwald // get system Bluetooth state 182b3f90e25SMatthias Ringwald #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05 183b3f90e25SMatthias Ringwald 184b3f90e25SMatthias Ringwald // set system Bluetooth state 185b3f90e25SMatthias Ringwald #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06 186b3f90e25SMatthias Ringwald 187b3f90e25SMatthias Ringwald // enable inquiry scan for this client 188b3f90e25SMatthias Ringwald #define BTSTACK_SET_DISCOVERABLE 0x07 189b3f90e25SMatthias Ringwald 190b3f90e25SMatthias Ringwald // set global Bluetooth state 191b3f90e25SMatthias Ringwald #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08 192b3f90e25SMatthias Ringwald 193045013feSMatthias Ringwald // create l2cap channel: param bd_addr(48), psm (16) 194b3f90e25SMatthias Ringwald #define L2CAP_CREATE_CHANNEL 0x20 195b3f90e25SMatthias Ringwald 196045013feSMatthias Ringwald // disconnect l2cap disconnect, param channel(16), reason(8) 197b3f90e25SMatthias Ringwald #define L2CAP_DISCONNECT 0x21 198b3f90e25SMatthias Ringwald 199045013feSMatthias Ringwald // register l2cap service: param psm(16), mtu (16) 200b3f90e25SMatthias Ringwald #define L2CAP_REGISTER_SERVICE 0x22 201b3f90e25SMatthias Ringwald 202045013feSMatthias Ringwald // unregister l2cap disconnect, param psm(16) 203b3f90e25SMatthias Ringwald #define L2CAP_UNREGISTER_SERVICE 0x23 204b3f90e25SMatthias Ringwald 205045013feSMatthias Ringwald // accept connection param bd_addr(48), dest cid (16) 206b3f90e25SMatthias Ringwald #define L2CAP_ACCEPT_CONNECTION 0x24 207b3f90e25SMatthias Ringwald 208045013feSMatthias Ringwald // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 209b3f90e25SMatthias Ringwald #define L2CAP_DECLINE_CONNECTION 0x25 210b3f90e25SMatthias Ringwald 211045013feSMatthias Ringwald // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 212b3f90e25SMatthias Ringwald #define L2CAP_CREATE_CHANNEL_MTU 0x26 213b3f90e25SMatthias Ringwald 214b3f90e25SMatthias Ringwald // register SDP Service Record: service record (size) 215b3f90e25SMatthias Ringwald #define SDP_REGISTER_SERVICE_RECORD 0x30 216b3f90e25SMatthias Ringwald 217b3f90e25SMatthias Ringwald // unregister SDP Service Record 218b3f90e25SMatthias Ringwald #define SDP_UNREGISTER_SERVICE_RECORD 0x31 219b3f90e25SMatthias Ringwald 220b3f90e25SMatthias Ringwald // Get remote RFCOMM services 221b3f90e25SMatthias Ringwald #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32 222b3f90e25SMatthias Ringwald 223b3f90e25SMatthias Ringwald // Get remote SDP services 224b3f90e25SMatthias Ringwald #define SDP_CLIENT_QUERY_SERVICES 0x33 225b3f90e25SMatthias Ringwald 226b3f90e25SMatthias Ringwald // RFCOMM "HCI" Commands 227b3f90e25SMatthias Ringwald #define RFCOMM_CREATE_CHANNEL 0x40 228b3f90e25SMatthias Ringwald #define RFCOMM_DISCONNECT 0x41 229b3f90e25SMatthias Ringwald #define RFCOMM_REGISTER_SERVICE 0x42 230b3f90e25SMatthias Ringwald #define RFCOMM_UNREGISTER_SERVICE 0x43 231b3f90e25SMatthias Ringwald #define RFCOMM_ACCEPT_CONNECTION 0x44 232b3f90e25SMatthias Ringwald #define RFCOMM_DECLINE_CONNECTION 0x45 233b3f90e25SMatthias Ringwald #define RFCOMM_PERSISTENT_CHANNEL 0x46 234b3f90e25SMatthias Ringwald #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47 235b3f90e25SMatthias Ringwald #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48 236b3f90e25SMatthias Ringwald #define RFCOMM_GRANT_CREDITS 0x49 237b3f90e25SMatthias Ringwald 238b3f90e25SMatthias Ringwald // GAP Classic 0x50 239b3f90e25SMatthias Ringwald #define GAP_DISCONNECT 0x50 240b3f90e25SMatthias Ringwald 241b3f90e25SMatthias Ringwald // GAP LE 0x60 242b3f90e25SMatthias Ringwald #define GAP_LE_SCAN_START 0x60 243b3f90e25SMatthias Ringwald #define GAP_LE_SCAN_STOP 0x61 244b3f90e25SMatthias Ringwald #define GAP_LE_CONNECT 0x62 245b3f90e25SMatthias Ringwald #define GAP_LE_CONNECT_CANCEL 0x63 246b3f90e25SMatthias Ringwald #define GAP_LE_SET_SCAN_PARAMETERS 0x64 247b3f90e25SMatthias Ringwald 248b3f90e25SMatthias Ringwald // GATT (Client) 0x70 249b3f90e25SMatthias Ringwald #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70 250b3f90e25SMatthias Ringwald #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71 251b3f90e25SMatthias Ringwald #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72 252b3f90e25SMatthias Ringwald #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73 253b3f90e25SMatthias Ringwald #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74 254b3f90e25SMatthias Ringwald #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75 255b3f90e25SMatthias Ringwald #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76 256b3f90e25SMatthias Ringwald #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77 257b3f90e25SMatthias Ringwald #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78 258b3f90e25SMatthias Ringwald #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79 259b3f90e25SMatthias Ringwald #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7A 260b3f90e25SMatthias Ringwald #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7B 261b3f90e25SMatthias Ringwald #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7C 262b3f90e25SMatthias Ringwald #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7D 263b3f90e25SMatthias Ringwald #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7E 264b3f90e25SMatthias Ringwald #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7F 265b3f90e25SMatthias Ringwald #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80 266b3f90e25SMatthias Ringwald #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81 267b3f90e25SMatthias Ringwald #define GATT_GET_MTU 0x82 268b3f90e25SMatthias Ringwald 269941b3855SMatthias Ringwald 27062c64df1SMatthias Ringwald 271941b3855SMatthias Ringwald // EVENTS 272941b3855SMatthias Ringwald 273941b3855SMatthias Ringwald /** 274941b3855SMatthias Ringwald * @format 1 275941b3855SMatthias Ringwald * @param state 276941b3855SMatthias Ringwald */ 277941b3855SMatthias Ringwald #define BTSTACK_EVENT_STATE 0x60 278941b3855SMatthias Ringwald 279941b3855SMatthias Ringwald // data: event(8), len(8), nr hci connections 280941b3855SMatthias Ringwald #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61 281941b3855SMatthias Ringwald 282941b3855SMatthias Ringwald /** 283941b3855SMatthias Ringwald * @format 284941b3855SMatthias Ringwald */ 285941b3855SMatthias Ringwald #define BTSTACK_EVENT_POWERON_FAILED 0x62 286941b3855SMatthias Ringwald 287941b3855SMatthias Ringwald /** 288827b1c43SMatthias Ringwald * @format 1 289827b1c43SMatthias Ringwald * @param discoverable 290827b1c43SMatthias Ringwald */ 291827b1c43SMatthias Ringwald #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 292827b1c43SMatthias Ringwald 293827b1c43SMatthias Ringwald // Daemon Events 294827b1c43SMatthias Ringwald 295827b1c43SMatthias Ringwald /** 296941b3855SMatthias Ringwald * @format 112 297941b3855SMatthias Ringwald * @param major 298941b3855SMatthias Ringwald * @param minor 299941b3855SMatthias Ringwald @ @param revision 300941b3855SMatthias Ringwald */ 301827b1c43SMatthias Ringwald #define DAEMON_EVENT_VERSION 0x63 302941b3855SMatthias Ringwald 303941b3855SMatthias Ringwald // data: system bluetooth on/off (bool) 304e2334cdcSMatthias Ringwald /** 305e2334cdcSMatthias Ringwald * @format 1 306e2334cdcSMatthias Ringwald * param system_bluetooth_enabled 307e2334cdcSMatthias Ringwald */ 308827b1c43SMatthias Ringwald #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 309941b3855SMatthias Ringwald 310941b3855SMatthias Ringwald // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 311e2334cdcSMatthias Ringwald 312e2334cdcSMatthias Ringwald /* 313e2334cdcSMatthias Ringwald * @format 1BT 314e2334cdcSMatthias Ringwald * @param status == 0 to match read_remote_name_request 315e2334cdcSMatthias Ringwald * @param address 316e2334cdcSMatthias Ringwald * @param name 317e2334cdcSMatthias Ringwald */ 318827b1c43SMatthias Ringwald #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 319941b3855SMatthias Ringwald 32062c64df1SMatthias Ringwald // internal - data: event(8) 321e2334cdcSMatthias Ringwald #define DAEMON_EVENT_CONNECTION_OPENED 0x67 322941b3855SMatthias Ringwald 32362c64df1SMatthias Ringwald // internal - data: event(8) 324e2334cdcSMatthias Ringwald #define DAEMON_EVENT_CONNECTION_CLOSED 0x68 325941b3855SMatthias Ringwald 32662c64df1SMatthias Ringwald // data: event(8), len(8), local_cid(16), credits(8) 32762c64df1SMatthias Ringwald #define DAEMON_EVENT_L2CAP_CREDITS 0x74 32862c64df1SMatthias Ringwald 32962c64df1SMatthias Ringwald /** 33062c64df1SMatthias Ringwald * @format 12 33162c64df1SMatthias Ringwald * @param status 33262c64df1SMatthias Ringwald * @param psm 33362c64df1SMatthias Ringwald */ 33462c64df1SMatthias Ringwald #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75 33562c64df1SMatthias Ringwald 33662c64df1SMatthias Ringwald /** 33762c64df1SMatthias Ringwald * @format 21 33862c64df1SMatthias Ringwald * @param rfcomm_cid 33962c64df1SMatthias Ringwald * @param credits 34062c64df1SMatthias Ringwald */ 34162c64df1SMatthias Ringwald #define DAEMON_EVENT_RFCOMM_CREDITS 0x84 34262c64df1SMatthias Ringwald 34362c64df1SMatthias Ringwald /** 34462c64df1SMatthias Ringwald * @format 11 34562c64df1SMatthias Ringwald * @param status 34662c64df1SMatthias Ringwald * @param channel_id 34762c64df1SMatthias Ringwald */ 348fea5a680SMatthias Ringwald #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85 349fea5a680SMatthias Ringwald 35062c64df1SMatthias Ringwald /** 35162c64df1SMatthias Ringwald * @format 11 35262c64df1SMatthias Ringwald * @param status 35362c64df1SMatthias Ringwald * @param server_channel_id 35462c64df1SMatthias Ringwald */ 35562c64df1SMatthias Ringwald #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86 35662c64df1SMatthias Ringwald 35762c64df1SMatthias Ringwald /** 35862c64df1SMatthias Ringwald * @format 14 35962c64df1SMatthias Ringwald * @param status 36062c64df1SMatthias Ringwald * @param service_record_handle 36162c64df1SMatthias Ringwald */ 36262c64df1SMatthias Ringwald #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90 36362c64df1SMatthias Ringwald 36462c64df1SMatthias Ringwald 365827b1c43SMatthias Ringwald 3663bc639ceSMatthias Ringwald // additional HCI events 36763fa3374SMatthias Ringwald 36863fa3374SMatthias Ringwald /** 36962ca45d7SMatthias Ringwald * @brief Indicates HCI transport enters/exits Sleep mode 37062ca45d7SMatthias Ringwald * @format 1 37162ca45d7SMatthias Ringwald * @param active 37262ca45d7SMatthias Ringwald */ 373d16a0392SMatthias Ringwald #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69 37462ca45d7SMatthias Ringwald 37562ca45d7SMatthias Ringwald /** 37663fa3374SMatthias Ringwald * @brief Outgoing packet 37763fa3374SMatthias Ringwald */ 37863fa3374SMatthias Ringwald #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6E 37963fa3374SMatthias Ringwald 3803bc639ceSMatthias Ringwald /** 3813bc639ceSMatthias Ringwald * @format B 3823bc639ceSMatthias Ringwald * @param handle 3833bc639ceSMatthias Ringwald */ 3843bc639ceSMatthias Ringwald #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F 3853bc639ceSMatthias Ringwald 38662c64df1SMatthias Ringwald 387941b3855SMatthias Ringwald // L2CAP EVENTS 388941b3855SMatthias Ringwald 389b072ba33SMatthias Ringwald /** 390bab5f4f0SMatthias Ringwald * @format 1BH2222221 391b072ba33SMatthias Ringwald * @param status 392b072ba33SMatthias Ringwald * @param address 393b072ba33SMatthias Ringwald * @param handle 394b072ba33SMatthias Ringwald * @param psm 395b072ba33SMatthias Ringwald * @param local_cid 396b072ba33SMatthias Ringwald * @param remote_cid 397b072ba33SMatthias Ringwald * @param local_mtu 398b072ba33SMatthias Ringwald * @param remote_mtu 399b072ba33SMatthias Ringwald * @param flush_timeout 400bab5f4f0SMatthias Ringwald * @param incoming 401b072ba33SMatthias Ringwald */ 402941b3855SMatthias Ringwald #define L2CAP_EVENT_CHANNEL_OPENED 0x70 403941b3855SMatthias Ringwald 404b072ba33SMatthias Ringwald /* 405b072ba33SMatthias Ringwald * @format 2 406b072ba33SMatthias Ringwald * @param local_cid 407b072ba33SMatthias Ringwald */ 408941b3855SMatthias Ringwald #define L2CAP_EVENT_CHANNEL_CLOSED 0x71 409941b3855SMatthias Ringwald 410b072ba33SMatthias Ringwald /** 4116d4269d3SMilanka Ringwald * @format BH222 412b072ba33SMatthias Ringwald * @param address 413b072ba33SMatthias Ringwald * @param handle 414b072ba33SMatthias Ringwald * @param psm 415b072ba33SMatthias Ringwald * @param local_cid 416b072ba33SMatthias Ringwald * @param remote_cid 417b072ba33SMatthias Ringwald */ 418941b3855SMatthias Ringwald #define L2CAP_EVENT_INCOMING_CONNECTION 0x72 419941b3855SMatthias Ringwald 420b072ba33SMatthias Ringwald // ?? 421941b3855SMatthias Ringwald // data: event(8), len(8), handle(16) 422941b3855SMatthias Ringwald #define L2CAP_EVENT_TIMEOUT_CHECK 0x73 423941b3855SMatthias Ringwald 424b072ba33SMatthias Ringwald /** 425b072ba33SMatthias Ringwald * @format H2222 426b072ba33SMatthias Ringwald * @param handle 427b072ba33SMatthias Ringwald * @param interval_min 428b072ba33SMatthias Ringwald * @param interval_max 429b072ba33SMatthias Ringwald * @param latencey 430b072ba33SMatthias Ringwald * @param timeout_multiplier 431b072ba33SMatthias Ringwald */ 432941b3855SMatthias Ringwald #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76 433941b3855SMatthias Ringwald 434941b3855SMatthias Ringwald // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 435b072ba33SMatthias Ringwald /** 436b072ba33SMatthias Ringwald * @format H2 437b072ba33SMatthias Ringwald * @param handle 4382c737695SMatthias Ringwald * @param result 439b072ba33SMatthias Ringwald */ 440941b3855SMatthias Ringwald #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77 441941b3855SMatthias Ringwald 442b072ba33SMatthias Ringwald /** 443b072ba33SMatthias Ringwald * @format 2 444b072ba33SMatthias Ringwald * @param local_cid 445b072ba33SMatthias Ringwald */ 446b072ba33SMatthias Ringwald #define L2CAP_EVENT_CAN_SEND_NOW 0x78 447b072ba33SMatthias Ringwald 44844276248SMatthias Ringwald // LE Data Channels 44944276248SMatthias Ringwald 45044276248SMatthias Ringwald /** 45144276248SMatthias Ringwald * @format 1BH2222 45244276248SMatthias Ringwald * @param address_type 45344276248SMatthias Ringwald * @param address 45444276248SMatthias Ringwald * @param handle 45544276248SMatthias Ringwald * @param psm 45644276248SMatthias Ringwald * @param local_cid 45744276248SMatthias Ringwald * @param remote_cid 45844276248SMatthias Ringwald * @param remote_mtu 45944276248SMatthias Ringwald */ 46044276248SMatthias Ringwald #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 46144276248SMatthias Ringwald 46244276248SMatthias Ringwald /** 46312242deaSMatthias Ringwald * @format 11BH122222 46444276248SMatthias Ringwald * @param status 46544276248SMatthias Ringwald * @param address_type 46644276248SMatthias Ringwald * @param address 46744276248SMatthias Ringwald * @param handle 46812242deaSMatthias Ringwald * @param incoming 46944276248SMatthias Ringwald * @param psm 47044276248SMatthias Ringwald * @param local_cid 47144276248SMatthias Ringwald * @param remote_cid 47244276248SMatthias Ringwald * @param local_mtu 47344276248SMatthias Ringwald * @param remote_mtu 47444276248SMatthias Ringwald */ 47544276248SMatthias Ringwald #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 47644276248SMatthias Ringwald 47744276248SMatthias Ringwald /* 47844276248SMatthias Ringwald * @format 2 47944276248SMatthias Ringwald * @param local_cid 48044276248SMatthias Ringwald */ 48144276248SMatthias Ringwald #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 48244276248SMatthias Ringwald 48344276248SMatthias Ringwald /* 48444276248SMatthias Ringwald * @format 2 48544276248SMatthias Ringwald * @param local_cid 48644276248SMatthias Ringwald */ 48744276248SMatthias Ringwald #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 48844276248SMatthias Ringwald 48944276248SMatthias Ringwald /* 49044276248SMatthias Ringwald * @format 2 49144276248SMatthias Ringwald * @param local_cid 49244276248SMatthias Ringwald */ 49344276248SMatthias Ringwald #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 49444276248SMatthias Ringwald 49544276248SMatthias Ringwald 496941b3855SMatthias Ringwald // RFCOMM EVENTS 497b072ba33SMatthias Ringwald 498941b3855SMatthias Ringwald /** 499bab5f4f0SMatthias Ringwald * @format 1B21221 500941b3855SMatthias Ringwald * @param status 501941b3855SMatthias Ringwald * @param bd_addr 502941b3855SMatthias Ringwald * @param con_handle 503941b3855SMatthias Ringwald * @param server_channel 504941b3855SMatthias Ringwald * @param rfcomm_cid 505941b3855SMatthias Ringwald * @param max_frame_size 506bab5f4f0SMatthias Ringwald * @param incoming 507941b3855SMatthias Ringwald */ 508f8f6a918SMatthias Ringwald #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 509941b3855SMatthias Ringwald 510941b3855SMatthias Ringwald /** 511941b3855SMatthias Ringwald * @format 2 512941b3855SMatthias Ringwald * @param rfcomm_cid 513941b3855SMatthias Ringwald */ 514941b3855SMatthias Ringwald #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 515941b3855SMatthias Ringwald 516941b3855SMatthias Ringwald /** 517941b3855SMatthias Ringwald * @format B12 518941b3855SMatthias Ringwald * @param bd_addr 519941b3855SMatthias Ringwald * @param server_channel 520941b3855SMatthias Ringwald * @param rfcomm_cid 521941b3855SMatthias Ringwald */ 522941b3855SMatthias Ringwald #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 523941b3855SMatthias Ringwald 524941b3855SMatthias Ringwald /** 525941b3855SMatthias Ringwald * @format 21 526941b3855SMatthias Ringwald * @param rfcomm_cid 527941b3855SMatthias Ringwald * @param line_status 528941b3855SMatthias Ringwald */ 529941b3855SMatthias Ringwald #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 530941b3855SMatthias Ringwald 531941b3855SMatthias Ringwald /** 532941b3855SMatthias Ringwald * @format 21 533941b3855SMatthias Ringwald * @param rfcomm_cid 534941b3855SMatthias Ringwald * @param modem_status 535941b3855SMatthias Ringwald */ 536941b3855SMatthias Ringwald #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 537941b3855SMatthias Ringwald 538941b3855SMatthias Ringwald /** 5397bd8e93bSMatthias Ringwald * TODO: format for variable data 2? 540045013feSMatthias Ringwald * param rfcomm_cid 541045013feSMatthias Ringwald * param rpn_data 542941b3855SMatthias Ringwald */ 543941b3855SMatthias Ringwald #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 544941b3855SMatthias Ringwald 545941b3855SMatthias Ringwald /** 546b072ba33SMatthias Ringwald * @format 2 54762c468cbSMatthias Ringwald * @param rfcomm_cid 548b072ba33SMatthias Ringwald */ 549b072ba33SMatthias Ringwald #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 550b072ba33SMatthias Ringwald 551b072ba33SMatthias Ringwald 552b072ba33SMatthias Ringwald /** 553941b3855SMatthias Ringwald * @format 1 554941b3855SMatthias Ringwald * @param status 555941b3855SMatthias Ringwald */ 5565611a760SMatthias Ringwald #define SDP_EVENT_QUERY_COMPLETE 0x91 557941b3855SMatthias Ringwald 558941b3855SMatthias Ringwald /** 559941b3855SMatthias Ringwald * @format 1T 560941b3855SMatthias Ringwald * @param rfcomm_channel 561941b3855SMatthias Ringwald * @param name 562941b3855SMatthias Ringwald */ 5635611a760SMatthias Ringwald #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 564941b3855SMatthias Ringwald 565941b3855SMatthias Ringwald /** 5664225393cSMatthias Ringwald * @format 22221 5674225393cSMatthias Ringwald * @param record_id 568941b3855SMatthias Ringwald * @param attribute_id 5694225393cSMatthias Ringwald * @param attribute_length 5704225393cSMatthias Ringwald * @param data_offset 5714225393cSMatthias Ringwald * @param data 572941b3855SMatthias Ringwald */ 5735611a760SMatthias Ringwald #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 574941b3855SMatthias Ringwald 5754de250b4SMatthias Ringwald /** 5764de250b4SMatthias Ringwald * @format 22LV 5774de250b4SMatthias Ringwald * @param record_id 5784de250b4SMatthias Ringwald * @param attribute_id 5794de250b4SMatthias Ringwald * @param attribute_length 5804de250b4SMatthias Ringwald * @param attribute_value 5814de250b4SMatthias Ringwald */ 5825611a760SMatthias Ringwald #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 5834225393cSMatthias Ringwald 5844225393cSMatthias Ringwald /** 5854225393cSMatthias Ringwald * @format 224 5864225393cSMatthias Ringwald * @param total_count 5874225393cSMatthias Ringwald * @param record_index 5884225393cSMatthias Ringwald * @param record_handle 5894225393cSMatthias Ringwald * @note Not provided by daemon, only used for internal testing 5904225393cSMatthias Ringwald */ 5915611a760SMatthias Ringwald #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 592941b3855SMatthias Ringwald 593941b3855SMatthias Ringwald /** 594941b3855SMatthias Ringwald * @format H1 595941b3855SMatthias Ringwald * @param handle 596941b3855SMatthias Ringwald * @param status 597941b3855SMatthias Ringwald */ 5985611a760SMatthias Ringwald #define GATT_EVENT_QUERY_COMPLETE 0xA0 599941b3855SMatthias Ringwald 600941b3855SMatthias Ringwald /** 601941b3855SMatthias Ringwald * @format HX 602941b3855SMatthias Ringwald * @param handle 603941b3855SMatthias Ringwald * @param service 604941b3855SMatthias Ringwald */ 6055611a760SMatthias Ringwald #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 606941b3855SMatthias Ringwald 607941b3855SMatthias Ringwald /** 608941b3855SMatthias Ringwald * @format HY 609941b3855SMatthias Ringwald * @param handle 610941b3855SMatthias Ringwald * @param characteristic 611941b3855SMatthias Ringwald */ 6125611a760SMatthias Ringwald #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 613941b3855SMatthias Ringwald 614941b3855SMatthias Ringwald /** 615941b3855SMatthias Ringwald * @format H2X 616941b3855SMatthias Ringwald * @param handle 617941b3855SMatthias Ringwald * @param include_handle 618941b3855SMatthias Ringwald * @param service 619941b3855SMatthias Ringwald */ 6205611a760SMatthias Ringwald #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 621941b3855SMatthias Ringwald 622941b3855SMatthias Ringwald /** 623941b3855SMatthias Ringwald * @format HZ 624941b3855SMatthias Ringwald * @param handle 625941b3855SMatthias Ringwald * @param characteristic_descriptor 626941b3855SMatthias Ringwald */ 6275611a760SMatthias Ringwald #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 628941b3855SMatthias Ringwald 629941b3855SMatthias Ringwald /** 630941b3855SMatthias Ringwald * @format H2LV 631941b3855SMatthias Ringwald * @param handle 632941b3855SMatthias Ringwald * @param value_handle 633941b3855SMatthias Ringwald * @param value_length 634941b3855SMatthias Ringwald * @param value 635941b3855SMatthias Ringwald */ 6365611a760SMatthias Ringwald #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 637941b3855SMatthias Ringwald 638941b3855SMatthias Ringwald /** 639941b3855SMatthias Ringwald * @format H22LV 640941b3855SMatthias Ringwald * @param handle 641941b3855SMatthias Ringwald * @param value_handle 642941b3855SMatthias Ringwald * @param value_offset 643941b3855SMatthias Ringwald * @param value_length 644941b3855SMatthias Ringwald * @param value 645941b3855SMatthias Ringwald */ 6465611a760SMatthias Ringwald #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 647941b3855SMatthias Ringwald 648941b3855SMatthias Ringwald /** 649941b3855SMatthias Ringwald * @format H2LV 650941b3855SMatthias Ringwald * @param handle 651941b3855SMatthias Ringwald * @param value_handle 652941b3855SMatthias Ringwald * @param value_length 653941b3855SMatthias Ringwald * @param value 654941b3855SMatthias Ringwald */ 6555611a760SMatthias Ringwald #define GATT_EVENT_NOTIFICATION 0xA7 656941b3855SMatthias Ringwald 657941b3855SMatthias Ringwald /** 658941b3855SMatthias Ringwald * @format H2LV 659941b3855SMatthias Ringwald * @param handle 660941b3855SMatthias Ringwald * @param value_handle 661941b3855SMatthias Ringwald * @param value_length 662941b3855SMatthias Ringwald * @param value 663941b3855SMatthias Ringwald */ 6645611a760SMatthias Ringwald #define GATT_EVENT_INDICATION 0xA8 665941b3855SMatthias Ringwald 666941b3855SMatthias Ringwald /** 667941b3855SMatthias Ringwald * @format H2LV 6682c737695SMatthias Ringwald * @param handle 669941b3855SMatthias Ringwald * @param descriptor_handle 670941b3855SMatthias Ringwald * @param descriptor_length 671941b3855SMatthias Ringwald * @param descriptor 672941b3855SMatthias Ringwald */ 6735611a760SMatthias Ringwald #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 674941b3855SMatthias Ringwald 675941b3855SMatthias Ringwald /** 676941b3855SMatthias Ringwald * @format H2LV 677941b3855SMatthias Ringwald * @param handle 678941b3855SMatthias Ringwald * @param descriptor_offset 679941b3855SMatthias Ringwald * @param descriptor_length 680941b3855SMatthias Ringwald * @param descriptor 681941b3855SMatthias Ringwald */ 6825611a760SMatthias Ringwald #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 683941b3855SMatthias Ringwald 684941b3855SMatthias Ringwald /** 685941b3855SMatthias Ringwald * @format H2 686941b3855SMatthias Ringwald * @param handle 687941b3855SMatthias Ringwald * @param MTU 688941b3855SMatthias Ringwald */ 6895611a760SMatthias Ringwald #define GATT_EVENT_MTU 0xAB 690941b3855SMatthias Ringwald 691941b3855SMatthias Ringwald /** 692941b3855SMatthias Ringwald * @format H2 693941b3855SMatthias Ringwald * @param handle 694941b3855SMatthias Ringwald * @param MTU 695941b3855SMatthias Ringwald */ 6965611a760SMatthias Ringwald #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 697941b3855SMatthias Ringwald 69849d18261SMatthias Ringwald /** 69949d18261SMatthias Ringwald * @format 1H2 70049d18261SMatthias Ringwald * @param status 70149d18261SMatthias Ringwald * @param conn_handle 70249d18261SMatthias Ringwald * @param attribute_handle 70349d18261SMatthias Ringwald */ 7045611a760SMatthias Ringwald #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 705941b3855SMatthias Ringwald 70649d18261SMatthias Ringwald /** 70749d18261SMatthias Ringwald * @format 70849d18261SMatthias Ringwald */ 70949d18261SMatthias Ringwald #define ATT_EVENT_CAN_SEND_NOW 0xB7 710941b3855SMatthias Ringwald 71149d18261SMatthias Ringwald // TODO: daemon only event 71249d18261SMatthias Ringwald 71349d18261SMatthias Ringwald /** 71449d18261SMatthias Ringwald * @format 12 71549d18261SMatthias Ringwald * @param status 71649d18261SMatthias Ringwald * @param service_uuid 71749d18261SMatthias Ringwald */ 718941b3855SMatthias Ringwald #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 719941b3855SMatthias Ringwald 72049d18261SMatthias Ringwald /** 721423c667cSMatthias Ringwald * @format 12222B 72249d18261SMatthias Ringwald * @param status 723423c667cSMatthias Ringwald * @param bnep_cid 72449d18261SMatthias Ringwald * @param source_uuid 72549d18261SMatthias Ringwald * @param destination_uuid 72649d18261SMatthias Ringwald * @param mtu 72749d18261SMatthias Ringwald * @param remote_address 72849d18261SMatthias Ringwald */ 729423c667cSMatthias Ringwald #define BNEP_EVENT_CHANNEL_OPENED 0xC1 730941b3855SMatthias Ringwald 73149d18261SMatthias Ringwald /** 732423c667cSMatthias Ringwald * @format 222B 733423c667cSMatthias Ringwald * @param bnep_cid 73449d18261SMatthias Ringwald * @param source_uuid 73549d18261SMatthias Ringwald * @param destination_uuid 73649d18261SMatthias Ringwald * @param remote_address 73749d18261SMatthias Ringwald */ 738941b3855SMatthias Ringwald #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 739941b3855SMatthias Ringwald 74049d18261SMatthias Ringwald /** 741423c667cSMatthias Ringwald * @format 222B1 742423c667cSMatthias Ringwald * @param bnep_cid 74349d18261SMatthias Ringwald * @param source_uuid 74449d18261SMatthias Ringwald * @param destination_uuid 74549d18261SMatthias Ringwald * @param remote_address 74649d18261SMatthias Ringwald * @param channel_state 74749d18261SMatthias Ringwald */ 748941b3855SMatthias Ringwald #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 749941b3855SMatthias Ringwald 75049d18261SMatthias Ringwald /** 751423c667cSMatthias Ringwald * @format 222B 752423c667cSMatthias Ringwald * @param bnep_cid 75349d18261SMatthias Ringwald * @param source_uuid 75449d18261SMatthias Ringwald * @param destination_uuid 75549d18261SMatthias Ringwald * @param remote_address 75649d18261SMatthias Ringwald */ 7572d4c8c04SMatthias Ringwald #define BNEP_EVENT_CAN_SEND_NOW 0xC4 758941b3855SMatthias Ringwald 759941b3855SMatthias Ringwald /** 760941b3855SMatthias Ringwald * @format H1B 761941b3855SMatthias Ringwald * @param handle 762941b3855SMatthias Ringwald * @param addr_type 763941b3855SMatthias Ringwald * @param address 764941b3855SMatthias Ringwald */ 7655611a760SMatthias Ringwald #define SM_EVENT_JUST_WORKS_REQUEST 0xD0 766941b3855SMatthias Ringwald 767941b3855SMatthias Ringwald /** 768941b3855SMatthias Ringwald * @format H1B 769941b3855SMatthias Ringwald * @param handle 770941b3855SMatthias Ringwald * @param addr_type 771941b3855SMatthias Ringwald * @param address 772941b3855SMatthias Ringwald */ 7735611a760SMatthias Ringwald #define SM_EVENT_JUST_WORKS_CANCEL 0xD1 774941b3855SMatthias Ringwald 775941b3855SMatthias Ringwald /** 776941b3855SMatthias Ringwald * @format H1B4 777941b3855SMatthias Ringwald * @param handle 778941b3855SMatthias Ringwald * @param addr_type 779941b3855SMatthias Ringwald * @param address 780941b3855SMatthias Ringwald * @param passkey 781941b3855SMatthias Ringwald */ 7825611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xD2 783941b3855SMatthias Ringwald 784941b3855SMatthias Ringwald /** 785941b3855SMatthias Ringwald * @format H1B 786941b3855SMatthias Ringwald * @param handle 787941b3855SMatthias Ringwald * @param addr_type 788941b3855SMatthias Ringwald * @param address 789941b3855SMatthias Ringwald */ 7905611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xD3 791941b3855SMatthias Ringwald 792941b3855SMatthias Ringwald /** 7932c737695SMatthias Ringwald * @format H1B 794941b3855SMatthias Ringwald * @param handle 795941b3855SMatthias Ringwald * @param addr_type 796941b3855SMatthias Ringwald * @param address 797941b3855SMatthias Ringwald */ 7985611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xD4 799941b3855SMatthias Ringwald 800941b3855SMatthias Ringwald /** 801941b3855SMatthias Ringwald * @format H1B 802941b3855SMatthias Ringwald * @param handle 803941b3855SMatthias Ringwald * @param addr_type 804941b3855SMatthias Ringwald * @param address 805941b3855SMatthias Ringwald */ 8065611a760SMatthias Ringwald #define SM_EVENT_PASSKEY_INPUT_CANCEL 0xD5 807941b3855SMatthias Ringwald 808941b3855SMatthias Ringwald /** 8098362d86aSMatthias Ringwald * @format H1B4 8108362d86aSMatthias Ringwald * @param handle 8118362d86aSMatthias Ringwald * @param addr_type 8128362d86aSMatthias Ringwald * @param address 8138362d86aSMatthias Ringwald * @param passkey 8148362d86aSMatthias Ringwald */ 8158362d86aSMatthias Ringwald #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xD6 8168362d86aSMatthias Ringwald 8178362d86aSMatthias Ringwald /** 8182c737695SMatthias Ringwald * @format H1B 819941b3855SMatthias Ringwald * @param handle 820941b3855SMatthias Ringwald * @param addr_type 821941b3855SMatthias Ringwald * @param address 822941b3855SMatthias Ringwald */ 8238362d86aSMatthias Ringwald #define SM_EVENT_NUMERIC_COMPARISON_CANCEL 0xD7 824941b3855SMatthias Ringwald 825941b3855SMatthias Ringwald /** 826941b3855SMatthias Ringwald * @format H1B 827941b3855SMatthias Ringwald * @param handle 828941b3855SMatthias Ringwald * @param addr_type 829941b3855SMatthias Ringwald * @param address 830941b3855SMatthias Ringwald */ 8318362d86aSMatthias Ringwald #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xD8 8328362d86aSMatthias Ringwald 8338362d86aSMatthias Ringwald /** 8348362d86aSMatthias Ringwald * @format H1B 8358362d86aSMatthias Ringwald * @param handle 8368362d86aSMatthias Ringwald * @param addr_type 8378362d86aSMatthias Ringwald * @param address 8388362d86aSMatthias Ringwald */ 8398362d86aSMatthias Ringwald #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xD9 840941b3855SMatthias Ringwald 841941b3855SMatthias Ringwald /** 84284182ed9SMatthias Ringwald * @brief Identify resolving succeeded 84384182ed9SMatthias Ringwald * 844334126b3SMatthias Ringwald * @format H1B1B2 845941b3855SMatthias Ringwald * @param handle 846941b3855SMatthias Ringwald * @param addr_type 847941b3855SMatthias Ringwald * @param address 84884182ed9SMatthias Ringwald * @param identity_addr_type 84984182ed9SMatthias Ringwald * @param identity_address 850334126b3SMatthias Ringwald * @param index_internal 85184182ed9SMatthias Ringwald * 852941b3855SMatthias Ringwald */ 8538362d86aSMatthias Ringwald #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xDA 854941b3855SMatthias Ringwald 855941b3855SMatthias Ringwald /** 856941b3855SMatthias Ringwald * @format H1B 857941b3855SMatthias Ringwald * @param handle 858941b3855SMatthias Ringwald * @param addr_type 859941b3855SMatthias Ringwald * @param address 860941b3855SMatthias Ringwald */ 8618362d86aSMatthias Ringwald #define SM_EVENT_AUTHORIZATION_REQUEST 0xDB 862941b3855SMatthias Ringwald 863941b3855SMatthias Ringwald /** 864941b3855SMatthias Ringwald * @format H1B1 865941b3855SMatthias Ringwald * @param handle 866941b3855SMatthias Ringwald * @param addr_type 867941b3855SMatthias Ringwald * @param address 868941b3855SMatthias Ringwald * @param authorization_result 869941b3855SMatthias Ringwald */ 8708362d86aSMatthias Ringwald #define SM_EVENT_AUTHORIZATION_RESULT 0xDC 871941b3855SMatthias Ringwald 8723d7fe1e9SMatthias Ringwald /** 8733d7fe1e9SMatthias Ringwald * @format H1 8743d7fe1e9SMatthias Ringwald * @param handle 8753d7fe1e9SMatthias Ringwald * @param action see SM_KEYPRESS_* 8763d7fe1e9SMatthias Ringwald */ 8773d7fe1e9SMatthias Ringwald #define SM_EVENT_KEYPRESS_NOTIFICATION 0xDD 8783d7fe1e9SMatthias Ringwald 87984182ed9SMatthias Ringwald /** 88084182ed9SMatthias Ringwald * @brief Emitted during pairing to inform app about address used as identity 88184182ed9SMatthias Ringwald * 88284182ed9SMatthias Ringwald * @format H1B1B 88384182ed9SMatthias Ringwald * @param handle 88484182ed9SMatthias Ringwald * @param addr_type 88584182ed9SMatthias Ringwald * @param address 88684182ed9SMatthias Ringwald * @param identity_addr_type 88784182ed9SMatthias Ringwald * @param identity_address 88884182ed9SMatthias Ringwald */ 88984182ed9SMatthias Ringwald #define SM_EVENT_IDENTITY_CREATED 0xDE 8903d7fe1e9SMatthias Ringwald 891941b3855SMatthias Ringwald // GAP 892941b3855SMatthias Ringwald 89346bc5396SMilanka Ringwald /** 89446bc5396SMilanka Ringwald * @format H1 89546bc5396SMilanka Ringwald * @param handle 89646bc5396SMilanka Ringwald * @param security_level 89746bc5396SMilanka Ringwald */ 8985611a760SMatthias Ringwald #define GAP_EVENT_SECURITY_LEVEL 0xE0 899941b3855SMatthias Ringwald 90046bc5396SMilanka Ringwald /** 90146bc5396SMilanka Ringwald * @format 1B 90246bc5396SMilanka Ringwald * @param status 90346bc5396SMilanka Ringwald * @param address 90446bc5396SMilanka Ringwald */ 9055611a760SMatthias Ringwald #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xE1 906941b3855SMatthias Ringwald 907941b3855SMatthias Ringwald /** 908941b3855SMatthias Ringwald * @format 11B1JV 909941b3855SMatthias Ringwald * @param advertising_event_type 910941b3855SMatthias Ringwald * @param address_type 911941b3855SMatthias Ringwald * @param address 912941b3855SMatthias Ringwald * @param rssi 913941b3855SMatthias Ringwald * @param data_length 914941b3855SMatthias Ringwald * @param data 915941b3855SMatthias Ringwald */ 916045013feSMatthias Ringwald #define GAP_EVENT_ADVERTISING_REPORT 0xE2 917941b3855SMatthias Ringwald 918827b1c43SMatthias Ringwald 919e10ce426SMatthias Ringwald // Meta Events, see below for sub events 920941b3855SMatthias Ringwald #define HCI_EVENT_HSP_META 0xE8 92139d235cbSMatthias Ringwald #define HCI_EVENT_HFP_META 0xE9 922e10ce426SMatthias Ringwald #define HCI_EVENT_ANCS_META 0xEA 923beaf082cSMatthias Ringwald #define HCI_EVENT_AVDTP_META 0xEB 924decc740cSMilanka Ringwald #define HCI_EVENT_AVRCP_META 0xEC 92539d235cbSMatthias Ringwald 926e10ce426SMatthias Ringwald // Potential other meta groups 927e10ce426SMatthias Ringwald // #define HCI_EVENT_BNEP_META 0xxx 928e10ce426SMatthias Ringwald // #define HCI_EVENT_GAP_META 0xxx 929e10ce426SMatthias Ringwald // #define HCI_EVENT_GATT_META 0xxx 930e10ce426SMatthias Ringwald // #define HCI_EVENT_PAN_META 0xxx 931e10ce426SMatthias Ringwald // #define HCI_EVENT_SDP_META 0xxx 932e10ce426SMatthias Ringwald // #define HCI_EVENT_SM_META 0xxx 93339d235cbSMatthias Ringwald 934d63c37a1SMatthias Ringwald 935d63c37a1SMatthias Ringwald /** HSP Subevent */ 936d63c37a1SMatthias Ringwald 937827b1c43SMatthias Ringwald /** 93899a10067SMatthias Ringwald * @format 11 939827b1c43SMatthias Ringwald * @param subevent_code 940827b1c43SMatthias Ringwald * @param status 0 == OK 941827b1c43SMatthias Ringwald */ 94299a10067SMatthias Ringwald #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 94399a10067SMatthias Ringwald 94499a10067SMatthias Ringwald /** 94599a10067SMatthias Ringwald * @format 11 94699a10067SMatthias Ringwald * @param subevent_code 94799a10067SMatthias Ringwald * @param status 0 == OK 94899a10067SMatthias Ringwald */ 94999a10067SMatthias Ringwald #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 95099a10067SMatthias Ringwald 95199a10067SMatthias Ringwald 95299a10067SMatthias Ringwald /** 95362c468cbSMatthias Ringwald * @format 11H 95499a10067SMatthias Ringwald * @param subevent_code 95599a10067SMatthias Ringwald * @param status 0 == OK 95662c468cbSMatthias Ringwald * @param handle 95799a10067SMatthias Ringwald */ 95899a10067SMatthias Ringwald #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 959827b1c43SMatthias Ringwald 960827b1c43SMatthias Ringwald /** 961827b1c43SMatthias Ringwald * @format 11 962827b1c43SMatthias Ringwald * @param subevent_code 963827b1c43SMatthias Ringwald * @param status 0 == OK 964827b1c43SMatthias Ringwald */ 96599a10067SMatthias Ringwald #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 966827b1c43SMatthias Ringwald 967827b1c43SMatthias Ringwald /** 968827b1c43SMatthias Ringwald * @format 1 969827b1c43SMatthias Ringwald * @param subevent_code 970827b1c43SMatthias Ringwald */ 97199a10067SMatthias Ringwald #define HSP_SUBEVENT_RING 0x05 972827b1c43SMatthias Ringwald 973827b1c43SMatthias Ringwald /** 974827b1c43SMatthias Ringwald * @format 11 975827b1c43SMatthias Ringwald * @param subevent_code 976827b1c43SMatthias Ringwald * @param gain Valid range: [0,15] 977827b1c43SMatthias Ringwald */ 97899a10067SMatthias Ringwald #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 979827b1c43SMatthias Ringwald 980827b1c43SMatthias Ringwald /** 981827b1c43SMatthias Ringwald * @format 11 982827b1c43SMatthias Ringwald * @param subevent_code 983827b1c43SMatthias Ringwald * @param gain Valid range: [0,15] 984827b1c43SMatthias Ringwald */ 98599a10067SMatthias Ringwald #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 986827b1c43SMatthias Ringwald 987827b1c43SMatthias Ringwald /** 988827b1c43SMatthias Ringwald * @format 1JV 989827b1c43SMatthias Ringwald * @param subevent_code 990827b1c43SMatthias Ringwald * @param value_length 991827b1c43SMatthias Ringwald * @param value 992827b1c43SMatthias Ringwald */ 99399a10067SMatthias Ringwald #define HSP_SUBEVENT_HS_COMMAND 0x08 994827b1c43SMatthias Ringwald 995827b1c43SMatthias Ringwald /** 996827b1c43SMatthias Ringwald * @format 1JV 997827b1c43SMatthias Ringwald * @param subevent_code 998827b1c43SMatthias Ringwald * @param value_length 999827b1c43SMatthias Ringwald * @param value 1000827b1c43SMatthias Ringwald */ 100199a10067SMatthias Ringwald #define HSP_SUBEVENT_AG_INDICATION 0x09 1002827b1c43SMatthias Ringwald 1003941b3855SMatthias Ringwald 1004d63c37a1SMatthias Ringwald /** HFP Subevent */ 1005941b3855SMatthias Ringwald 1006d63c37a1SMatthias Ringwald /** 1007a23045e2SMilanka Ringwald * @format 11HB 1008d63c37a1SMatthias Ringwald * @param subevent_code 1009d63c37a1SMatthias Ringwald * @param status 0 == OK 1010a0653c3bSMilanka Ringwald * @param con_handle 10116a7f44bdSMilanka Ringwald * @param bd_addr 1012d63c37a1SMatthias Ringwald */ 1013941b3855SMatthias Ringwald #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1014d63c37a1SMatthias Ringwald 1015d63c37a1SMatthias Ringwald /** 1016d63c37a1SMatthias Ringwald * @format 1 1017d63c37a1SMatthias Ringwald * @param subevent_code 1018d63c37a1SMatthias Ringwald */ 1019941b3855SMatthias Ringwald #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1020d63c37a1SMatthias Ringwald 1021d63c37a1SMatthias Ringwald /** 1022a23045e2SMilanka Ringwald * @format 11HB1 1023d63c37a1SMatthias Ringwald * @param subevent_code 1024d63c37a1SMatthias Ringwald * @param status 0 == OK 10256ff51cfdSMatthias Ringwald * @param handle 10266a7f44bdSMilanka Ringwald * @param bd_addr 1027d0c4aea6SMilanka Ringwald * @param negotiated_codec 1028d63c37a1SMatthias Ringwald */ 1029941b3855SMatthias Ringwald #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1030d63c37a1SMatthias Ringwald 1031d63c37a1SMatthias Ringwald /** 1032d63c37a1SMatthias Ringwald * @format 1 1033d63c37a1SMatthias Ringwald * @param subevent_code 1034d63c37a1SMatthias Ringwald */ 1035941b3855SMatthias Ringwald #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1036d63c37a1SMatthias Ringwald 1037d63c37a1SMatthias Ringwald /** 1038d63c37a1SMatthias Ringwald * @format 11 1039d63c37a1SMatthias Ringwald * @param subevent_code 1040d63c37a1SMatthias Ringwald * @param status 0 == OK 1041d63c37a1SMatthias Ringwald */ 1042941b3855SMatthias Ringwald #define HFP_SUBEVENT_COMPLETE 0x05 1043d63c37a1SMatthias Ringwald 1044d63c37a1SMatthias Ringwald /** 1045d63c37a1SMatthias Ringwald * @format 111T 1046d63c37a1SMatthias Ringwald * @param subevent_code 1047d63c37a1SMatthias Ringwald * @param indicator_index 1048d63c37a1SMatthias Ringwald * @param indicator_status 1049d63c37a1SMatthias Ringwald * @param indicator_name 1050d63c37a1SMatthias Ringwald */ 1051941b3855SMatthias Ringwald #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x06 1052d63c37a1SMatthias Ringwald 1053d63c37a1SMatthias Ringwald /** 10542c737695SMatthias Ringwald * @format 111T 1055d63c37a1SMatthias Ringwald * @param subevent_code 1056d63c37a1SMatthias Ringwald * @param network_operator_mode 1057d63c37a1SMatthias Ringwald * @param network_operator_format 1058d63c37a1SMatthias Ringwald * @param network_operator_name 1059d63c37a1SMatthias Ringwald */ 1060941b3855SMatthias Ringwald #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x07 1061d63c37a1SMatthias Ringwald 1062d63c37a1SMatthias Ringwald /** 1063d63c37a1SMatthias Ringwald * @format 11 1064d63c37a1SMatthias Ringwald * @param subevent_code 1065d63c37a1SMatthias Ringwald * @param error 1066d63c37a1SMatthias Ringwald */ 1067941b3855SMatthias Ringwald #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x08 1068d63c37a1SMatthias Ringwald 1069d63c37a1SMatthias Ringwald /** 1070d63c37a1SMatthias Ringwald * @format 1 1071d63c37a1SMatthias Ringwald * @param subevent_code 1072d63c37a1SMatthias Ringwald */ 1073aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_START_RINGINIG 0x0A 1074d63c37a1SMatthias Ringwald 1075d63c37a1SMatthias Ringwald /** 1076d63c37a1SMatthias Ringwald * @format 1 1077d63c37a1SMatthias Ringwald * @param subevent_code 1078d63c37a1SMatthias Ringwald */ 1079aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_STOP_RINGINIG 0x0B 1080d63c37a1SMatthias Ringwald 1081d63c37a1SMatthias Ringwald /** 1082d63c37a1SMatthias Ringwald * @format 1 1083d63c37a1SMatthias Ringwald * @param subevent_code 1084d63c37a1SMatthias Ringwald */ 1085aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_CALL_TERMINATED 0x0C 1086d63c37a1SMatthias Ringwald 1087d63c37a1SMatthias Ringwald /** 1088d63c37a1SMatthias Ringwald * @format 1T 1089d63c37a1SMatthias Ringwald * @param subevent_code 1090d63c37a1SMatthias Ringwald * @param number 1091d63c37a1SMatthias Ringwald */ 1092aa4dd815SMatthias Ringwald #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1093d63c37a1SMatthias Ringwald 1094d63c37a1SMatthias Ringwald /** 1095d63c37a1SMatthias Ringwald * @format 1 1096d63c37a1SMatthias Ringwald * @param subevent_code 1097d63c37a1SMatthias Ringwald */ 1098d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1099d63c37a1SMatthias Ringwald 1100d63c37a1SMatthias Ringwald /** 1101d63c37a1SMatthias Ringwald * @format 1T 1102d63c37a1SMatthias Ringwald * @param subevent_code 1103d63c37a1SMatthias Ringwald * @param number 1104d63c37a1SMatthias Ringwald */ 1105d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1106d63c37a1SMatthias Ringwald 1107d63c37a1SMatthias Ringwald /** 1108d63c37a1SMatthias Ringwald * @format 1T 1109d63c37a1SMatthias Ringwald * @param subevent_code 1110d63c37a1SMatthias Ringwald * @param dtmf code 1111d63c37a1SMatthias Ringwald */ 1112d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1113d63c37a1SMatthias Ringwald 1114d63c37a1SMatthias Ringwald /** 1115d63c37a1SMatthias Ringwald * @format 1 1116d63c37a1SMatthias Ringwald * @param subevent_code 1117d63c37a1SMatthias Ringwald */ 1118d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1119d63c37a1SMatthias Ringwald 1120d63c37a1SMatthias Ringwald /** 1121d63c37a1SMatthias Ringwald * @format 1 1122d63c37a1SMatthias Ringwald * @param subevent_code 1123d63c37a1SMatthias Ringwald */ 1124d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CONFERENCE_CALL 0x12 1125d63c37a1SMatthias Ringwald 1126d63c37a1SMatthias Ringwald /** 1127d63c37a1SMatthias Ringwald * @format 1 1128d63c37a1SMatthias Ringwald * @param subevent_code 1129d63c37a1SMatthias Ringwald */ 1130d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_RING 0x13 1131d63c37a1SMatthias Ringwald 1132d63c37a1SMatthias Ringwald /** 1133d63c37a1SMatthias Ringwald * @format 111 1134d63c37a1SMatthias Ringwald * @param subevent_code 1135d63c37a1SMatthias Ringwald * @param status 1136d63c37a1SMatthias Ringwald * @param gain 1137d63c37a1SMatthias Ringwald */ 1138d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1139d63c37a1SMatthias Ringwald 1140d63c37a1SMatthias Ringwald /** 1141d63c37a1SMatthias Ringwald * @format 111 1142d63c37a1SMatthias Ringwald * @param subevent_code 1143d63c37a1SMatthias Ringwald * @param status 1144d63c37a1SMatthias Ringwald * @param gain 1145d63c37a1SMatthias Ringwald */ 1146d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1147d63c37a1SMatthias Ringwald 1148d63c37a1SMatthias Ringwald /** 1149d63c37a1SMatthias Ringwald * @format 11T 1150d63c37a1SMatthias Ringwald * @param subevent_code 1151d63c37a1SMatthias Ringwald * @param type 1152d63c37a1SMatthias Ringwald * @param number 1153d63c37a1SMatthias Ringwald */ 1154d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1155d63c37a1SMatthias Ringwald 1156d63c37a1SMatthias Ringwald /** 1157d63c37a1SMatthias Ringwald * @format 11T 1158d63c37a1SMatthias Ringwald * @param subevent_code 1159d63c37a1SMatthias Ringwald * @param type 1160d63c37a1SMatthias Ringwald * @param number 1161d63c37a1SMatthias Ringwald */ 1162d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_CALLING_LINE_INDETIFICATION_NOTIFICATION 0x17 1163d63c37a1SMatthias Ringwald 1164d63c37a1SMatthias Ringwald /** 1165d63c37a1SMatthias Ringwald * @format 111111T 1166d63c37a1SMatthias Ringwald * @param subevent_code 1167d63c37a1SMatthias Ringwald * @param clcc_idx 1168d63c37a1SMatthias Ringwald * @param clcc_dir 1169d63c37a1SMatthias Ringwald * @param clcc_status 1170d63c37a1SMatthias Ringwald * @param clcc_mpty 1171d63c37a1SMatthias Ringwald * @param bnip_type 1172d63c37a1SMatthias Ringwald * @param bnip_number 1173d63c37a1SMatthias Ringwald */ 1174d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1175d63c37a1SMatthias Ringwald 1176d63c37a1SMatthias Ringwald /** 1177d63c37a1SMatthias Ringwald * @format 111T 1178d63c37a1SMatthias Ringwald * @param subevent_code 1179d63c37a1SMatthias Ringwald * @param status 1180d63c37a1SMatthias Ringwald * @param bnip_type 1181d63c37a1SMatthias Ringwald * @param bnip_number 1182d63c37a1SMatthias Ringwald */ 1183d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1184d63c37a1SMatthias Ringwald 1185d63c37a1SMatthias Ringwald /** 1186d63c37a1SMatthias Ringwald * @format 1T 1187d63c37a1SMatthias Ringwald * @param subevent_code 1188d63c37a1SMatthias Ringwald * @param value 1189d63c37a1SMatthias Ringwald */ 1190d63c37a1SMatthias Ringwald #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1191941b3855SMatthias Ringwald 1192941b3855SMatthias Ringwald // ANCS Client 1193a4815874SMatthias Ringwald 1194a4815874SMatthias Ringwald /** 1195e10ce426SMatthias Ringwald * @format 1H 1196e10ce426SMatthias Ringwald * @param subevent_code 1197a4815874SMatthias Ringwald * @param handle 1198a4815874SMatthias Ringwald */ 1199e10ce426SMatthias Ringwald #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1200a4815874SMatthias Ringwald 1201a4815874SMatthias Ringwald /** 1202e10ce426SMatthias Ringwald * @format 1H2T 1203e10ce426SMatthias Ringwald * @param subevent_code 1204a4815874SMatthias Ringwald * @param handle 1205a4815874SMatthias Ringwald * @param attribute_id 1206a4815874SMatthias Ringwald * @param text 1207a4815874SMatthias Ringwald */ 1208e10ce426SMatthias Ringwald #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1209a4815874SMatthias Ringwald 1210a4815874SMatthias Ringwald /** 1211e10ce426SMatthias Ringwald * @format 1H 1212e10ce426SMatthias Ringwald * @param subevent_code 1213a4815874SMatthias Ringwald * @param handle 1214a4815874SMatthias Ringwald */ 1215e10ce426SMatthias Ringwald #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1216941b3855SMatthias Ringwald 1217a23045e2SMilanka Ringwald 1218a23045e2SMilanka Ringwald /** AVDTP Subevent */ 1219a23045e2SMilanka Ringwald 12203338b9aeSMilanka Ringwald /** 12212c737695SMatthias Ringwald * @format 1H11 12222c708e8aSMilanka Ringwald * @param subevent_code 12232c708e8aSMilanka Ringwald * @param con_handle 12242c708e8aSMilanka Ringwald * @param signal_identifier 12252c708e8aSMilanka Ringwald * @param status 0 == OK 12262c708e8aSMilanka Ringwald */ 12272c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 12282c708e8aSMilanka Ringwald 12292c708e8aSMilanka Ringwald /** 12302c708e8aSMilanka Ringwald * @format 1H1 12312c708e8aSMilanka Ringwald * @param subevent_code 12322c708e8aSMilanka Ringwald * @param con_handle 12332c708e8aSMilanka Ringwald * @param signal_identifier 12342c708e8aSMilanka Ringwald */ 12352c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 12362c708e8aSMilanka Ringwald 12372c708e8aSMilanka Ringwald /** 12382c708e8aSMilanka Ringwald * @format 1H1 12392c708e8aSMilanka Ringwald * @param subevent_code 12402c708e8aSMilanka Ringwald * @param con_handle 12412c708e8aSMilanka Ringwald * @param signal_identifier 12422c708e8aSMilanka Ringwald */ 12432c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 12442c708e8aSMilanka Ringwald 12452c708e8aSMilanka Ringwald /** 12463338b9aeSMilanka Ringwald * @format 1HB1 12473338b9aeSMilanka Ringwald * @param subevent_code 12483338b9aeSMilanka Ringwald * @param con_handle 12493338b9aeSMilanka Ringwald * @param bd_addr 12503338b9aeSMilanka Ringwald * @param status 0 == OK 12513338b9aeSMilanka Ringwald */ 12522c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1253a23045e2SMilanka Ringwald 12543338b9aeSMilanka Ringwald /** 12553338b9aeSMilanka Ringwald * @format 1 12563338b9aeSMilanka Ringwald * @param subevent_code 12573338b9aeSMilanka Ringwald */ 12582c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 12593338b9aeSMilanka Ringwald 12603338b9aeSMilanka Ringwald /** 12613338b9aeSMilanka Ringwald * @format 1H1111 12623338b9aeSMilanka Ringwald * @param subevent_code 12633338b9aeSMilanka Ringwald * @param handle 12643338b9aeSMilanka Ringwald * @param seid 0x01 – 0x3E 12653338b9aeSMilanka Ringwald * @param in_use 0-not in use, 1-in use 12663338b9aeSMilanka Ringwald * @param media_type 0-audio, 1-video, 2-multimedia 12673338b9aeSMilanka Ringwald * @param sep_type 0-source, 1-sink 12683338b9aeSMilanka Ringwald */ 12692c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 12703338b9aeSMilanka Ringwald 12713338b9aeSMilanka Ringwald /** 12723338b9aeSMilanka Ringwald * @format 1H11111111 12733338b9aeSMilanka Ringwald * @param subevent_code 12743338b9aeSMilanka Ringwald * @param con_handle 12753338b9aeSMilanka Ringwald * @param media_type 1276ea7bd529SMilanka Ringwald * @param sampling_frequency_bitmap 1277ea7bd529SMilanka Ringwald * @param channel_mode_bitmap 1278ea7bd529SMilanka Ringwald * @param block_length_bitmap 1279ea7bd529SMilanka Ringwald * @param subbands_bitmap 1280ea7bd529SMilanka Ringwald * @param allocation_method_bitmap 12813338b9aeSMilanka Ringwald * @param min_bitpool_value 12823338b9aeSMilanka Ringwald * @param max_bitpool_value 12833338b9aeSMilanka Ringwald */ 12842c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 12853338b9aeSMilanka Ringwald 12863338b9aeSMilanka Ringwald /** 12872c737695SMatthias Ringwald * @format 1H12LV 12883338b9aeSMilanka Ringwald * @param subevent_code 12893338b9aeSMilanka Ringwald * @param con_handle 12903338b9aeSMilanka Ringwald * @param media_type 12913338b9aeSMilanka Ringwald * @param media_codec_type 12923338b9aeSMilanka Ringwald * @param media_codec_information_len 12933338b9aeSMilanka Ringwald * @param media_codec_information 12943338b9aeSMilanka Ringwald */ 12952c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x08 1296a23045e2SMilanka Ringwald 1297ea7bd529SMilanka Ringwald /** 129860099f8bSMilanka Ringwald * @format 1H1121111111 1299ea7bd529SMilanka Ringwald * @param subevent_code 1300ea7bd529SMilanka Ringwald * @param con_handle 1301ea7bd529SMilanka Ringwald * @param reconfigure 1302ea7bd529SMilanka Ringwald * @param media_type 1303ea7bd529SMilanka Ringwald * @param sampling_frequency 1304ea7bd529SMilanka Ringwald * @param channel_mode 1305ea7bd529SMilanka Ringwald * @param num_channels 1306ea7bd529SMilanka Ringwald * @param block_length 1307ea7bd529SMilanka Ringwald * @param subbands 1308ea7bd529SMilanka Ringwald * @param allocation_method 1309ea7bd529SMilanka Ringwald * @param min_bitpool_value 1310ea7bd529SMilanka Ringwald * @param max_bitpool_value 1311ea7bd529SMilanka Ringwald */ 13122c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x09 1313ea7bd529SMilanka Ringwald 1314ea7bd529SMilanka Ringwald /** 13152c737695SMatthias Ringwald * @format 1H112LV 1316ea7bd529SMilanka Ringwald * @param subevent_code 1317ea7bd529SMilanka Ringwald * @param con_handle 1318ea7bd529SMilanka Ringwald * @param reconfigure 1319ea7bd529SMilanka Ringwald * @param media_type 1320ea7bd529SMilanka Ringwald * @param media_codec_type 1321ea7bd529SMilanka Ringwald * @param media_codec_information_len 1322ea7bd529SMilanka Ringwald * @param media_codec_information 1323ea7bd529SMilanka Ringwald */ 13242c708e8aSMilanka Ringwald #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x0A 1325decc740cSMilanka Ringwald 1326decc740cSMilanka Ringwald 1327decc740cSMilanka Ringwald /** AVRCP Subevent */ 1328decc740cSMilanka Ringwald 1329decc740cSMilanka Ringwald /** 13302a029560SMilanka Ringwald * @format 1H12B1 1331decc740cSMilanka Ringwald * @param subevent_code 1332decc740cSMilanka Ringwald * @param con_handle 13332a029560SMilanka Ringwald * @param status 0 == OK 1334decc740cSMilanka Ringwald * @param local_cid 1335decc740cSMilanka Ringwald * @param bd_addr 1336decc740cSMilanka Ringwald */ 1337decc740cSMilanka Ringwald #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x01 1338decc740cSMilanka Ringwald 1339decc740cSMilanka Ringwald /** 1340decc740cSMilanka Ringwald * @format 1H 1341decc740cSMilanka Ringwald * @param subevent_code 1342decc740cSMilanka Ringwald * @param con_handle 1343decc740cSMilanka Ringwald */ 1344*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x02 1345decc740cSMilanka Ringwald 1346cd41da7eSMilanka Ringwald /** 1347e222d6a0SMatthias Ringwald * @format 1H1114JVJVJVJV 1348cd41da7eSMilanka Ringwald * @param subevent_code 1349cd41da7eSMilanka Ringwald * @param con_handle 13502a029560SMilanka Ringwald * @param status 1351e222d6a0SMatthias Ringwald * @param track 1352e222d6a0SMatthias Ringwald * @param total_tracks 1353e222d6a0SMatthias Ringwald * @param song_length in ms 1354cd41da7eSMilanka Ringwald * @param title_len 1355cd41da7eSMilanka Ringwald * @param title 1356cd41da7eSMilanka Ringwald * @param artist_len 1357cd41da7eSMilanka Ringwald * @param artist 1358cd41da7eSMilanka Ringwald * @param album_len 1359cd41da7eSMilanka Ringwald * @param album 1360cd41da7eSMilanka Ringwald * @param genre_len 1361cd41da7eSMilanka Ringwald * @param genre 1362cd41da7eSMilanka Ringwald */ 13632a029560SMilanka Ringwald #define AVRCP_SUBEVENT_NOW_PLAYING_INFO 0x03 1364cd41da7eSMilanka Ringwald 13652a029560SMilanka Ringwald /** 13662a029560SMilanka Ringwald * @format 1H111 13672a029560SMilanka Ringwald * @param subevent_code 13682a029560SMilanka Ringwald * @param con_handle 13692a029560SMilanka Ringwald * @param status 13702a029560SMilanka Ringwald * @param repeat_mode 13712a029560SMilanka Ringwald * @param shuffle_mode 13722a029560SMilanka Ringwald */ 13732a029560SMilanka Ringwald #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x04 1374cd41da7eSMilanka Ringwald 1375*6eb7ba29SMilanka Ringwald /** 1376*6eb7ba29SMilanka Ringwald * @format 1H1441 1377*6eb7ba29SMilanka Ringwald * @param subevent_code 1378*6eb7ba29SMilanka Ringwald * @param con_handle 1379*6eb7ba29SMilanka Ringwald * @param status 1380*6eb7ba29SMilanka Ringwald * @param song_length 1381*6eb7ba29SMilanka Ringwald * @param song_position 1382*6eb7ba29SMilanka Ringwald * @param play_status 1383*6eb7ba29SMilanka Ringwald */ 1384*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_PLAY_STATUS 0x05 1385*6eb7ba29SMilanka Ringwald 1386*6eb7ba29SMilanka Ringwald /** 1387*6eb7ba29SMilanka Ringwald * @format 1H11 1388*6eb7ba29SMilanka Ringwald * @param subevent_code 1389*6eb7ba29SMilanka Ringwald * @param con_handle 1390*6eb7ba29SMilanka Ringwald * @param status 1391*6eb7ba29SMilanka Ringwald * @param playback_status 1392*6eb7ba29SMilanka Ringwald */ 1393*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x06 1394*6eb7ba29SMilanka Ringwald 1395*6eb7ba29SMilanka Ringwald /** 1396*6eb7ba29SMilanka Ringwald * @format 1H11 1397*6eb7ba29SMilanka Ringwald * @param subevent_code 1398*6eb7ba29SMilanka Ringwald * @param con_handle 1399*6eb7ba29SMilanka Ringwald * @param status 1400*6eb7ba29SMilanka Ringwald * @param track_status 1401*6eb7ba29SMilanka Ringwald */ 1402*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x07 1403*6eb7ba29SMilanka Ringwald 1404*6eb7ba29SMilanka Ringwald /** 1405*6eb7ba29SMilanka Ringwald * @format 1H1 1406*6eb7ba29SMilanka Ringwald * @param subevent_code 1407*6eb7ba29SMilanka Ringwald * @param con_handle 1408*6eb7ba29SMilanka Ringwald * @param status 1409*6eb7ba29SMilanka Ringwald */ 1410*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x08 1411*6eb7ba29SMilanka Ringwald 1412*6eb7ba29SMilanka Ringwald /** 1413*6eb7ba29SMilanka Ringwald * @format 1H1 1414*6eb7ba29SMilanka Ringwald * @param subevent_code 1415*6eb7ba29SMilanka Ringwald * @param con_handle 1416*6eb7ba29SMilanka Ringwald * @param status 1417*6eb7ba29SMilanka Ringwald */ 1418*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x09 1419*6eb7ba29SMilanka Ringwald 1420*6eb7ba29SMilanka Ringwald /** 1421*6eb7ba29SMilanka Ringwald * @format 1H11 1422*6eb7ba29SMilanka Ringwald * @param subevent_code 1423*6eb7ba29SMilanka Ringwald * @param con_handle 1424*6eb7ba29SMilanka Ringwald * @param status 1425*6eb7ba29SMilanka Ringwald * @param absolute_volume 1426*6eb7ba29SMilanka Ringwald */ 1427*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0A 1428*6eb7ba29SMilanka Ringwald 1429*6eb7ba29SMilanka Ringwald /** 1430*6eb7ba29SMilanka Ringwald * @format 1H11 1431*6eb7ba29SMilanka Ringwald * @param subevent_code 1432*6eb7ba29SMilanka Ringwald * @param con_handle 1433*6eb7ba29SMilanka Ringwald * @param status 1434*6eb7ba29SMilanka Ringwald * @param absolute_volume 1435*6eb7ba29SMilanka Ringwald */ 1436*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x0B 1437*6eb7ba29SMilanka Ringwald 1438*6eb7ba29SMilanka Ringwald /** 1439*6eb7ba29SMilanka Ringwald * @format 1H11 1440*6eb7ba29SMilanka Ringwald * @param subevent_code 1441*6eb7ba29SMilanka Ringwald * @param con_handle 1442*6eb7ba29SMilanka Ringwald * @param status 1443*6eb7ba29SMilanka Ringwald * @param notification_id 1444*6eb7ba29SMilanka Ringwald */ 1445*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x0C 1446*6eb7ba29SMilanka Ringwald 1447*6eb7ba29SMilanka Ringwald /** 1448*6eb7ba29SMilanka Ringwald * @format 1H11 1449*6eb7ba29SMilanka Ringwald * @param subevent_code 1450*6eb7ba29SMilanka Ringwald * @param con_handle 1451*6eb7ba29SMilanka Ringwald * @param status 1452*6eb7ba29SMilanka Ringwald * @param operation_id 1453*6eb7ba29SMilanka Ringwald */ 1454*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_OPERATION_START 0x0D 1455*6eb7ba29SMilanka Ringwald 1456*6eb7ba29SMilanka Ringwald /** 1457*6eb7ba29SMilanka Ringwald * @format 1H11 1458*6eb7ba29SMilanka Ringwald * @param subevent_code 1459*6eb7ba29SMilanka Ringwald * @param con_handle 1460*6eb7ba29SMilanka Ringwald * @param status 1461*6eb7ba29SMilanka Ringwald * @param operation_id 1462*6eb7ba29SMilanka Ringwald */ 1463*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x0E 1464*6eb7ba29SMilanka Ringwald 1465*6eb7ba29SMilanka Ringwald /** 1466*6eb7ba29SMilanka Ringwald * @format 1H1 1467*6eb7ba29SMilanka Ringwald * @param subevent_code 1468*6eb7ba29SMilanka Ringwald * @param con_handle 1469*6eb7ba29SMilanka Ringwald * @param status 1470*6eb7ba29SMilanka Ringwald */ 1471*6eb7ba29SMilanka Ringwald #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x0F 1472*6eb7ba29SMilanka Ringwald 1473*6eb7ba29SMilanka Ringwald 1474*6eb7ba29SMilanka Ringwald 1475941b3855SMatthias Ringwald #endif 1476