1 /* 2 * Copyright (C) 2015 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the copyright holders nor the names of 14 * contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 4. Any redistribution, use, or modification is done solely for 17 * personal benefit and not for any commercial purpose or for 18 * monetary gain. 19 * 20 * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN 24 * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * Please inquire about commercial licensing options at 34 * [email protected] 35 * 36 */ 37 38 /** 39 * 40 * BTstack definitions, events, and error codes 41 * 42 */ 43 44 #ifndef BTSTACK_DEFINES_H 45 #define BTSTACK_DEFINES_H 46 #include <stdint.h> 47 48 #include "btstack_linked_list.h" 49 50 // UNUSED macro 51 #ifndef UNUSED 52 #define UNUSED(x) (void)(x) 53 #endif 54 55 56 // Get the number of entries in an array ('x' must NOT be a pointer!) 57 #ifndef ARRAYSIZE 58 #define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0])) 59 #endif 60 61 // TYPES 62 63 // packet handler 64 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); 65 66 // packet callback supporting multiple registrations 67 typedef struct { 68 btstack_linked_item_t item; 69 btstack_packet_handler_t callback; 70 } btstack_packet_callback_registration_t; 71 72 // context callback supporting multiple registrations 73 typedef struct { 74 btstack_linked_item_t * item; 75 void (*callback)(void * context); 76 void * context; 77 } btstack_context_callback_registration_t; 78 79 /** 80 * @brief 128 bit key used with AES128 in Security Manager 81 */ 82 typedef uint8_t sm_key_t[16]; 83 84 // DEFINES 85 86 // hci con handles (12 bit): 0x0000..0x0fff 87 #define HCI_CON_HANDLE_INVALID 0xffffu 88 89 90 #define DAEMON_EVENT_PACKET 0x05u 91 92 // L2CAP data 93 #define L2CAP_DATA_PACKET 0x06u 94 95 // RFCOMM data 96 #define RFCOMM_DATA_PACKET 0x07u 97 98 // Attribute protocol data 99 #define ATT_DATA_PACKET 0x08u 100 101 // Security Manager protocol data 102 #define SM_DATA_PACKET 0x09u 103 104 // SDP query result - only used by daemon 105 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k) 106 #define SDP_CLIENT_PACKET 0x0au 107 108 // BNEP data 109 #define BNEP_DATA_PACKET 0x0bu 110 111 // Unicast Connectionless Data 112 #define UCD_DATA_PACKET 0x0cu 113 114 // GOEP data 115 #define GOEP_DATA_PACKET 0x0du 116 117 // PBAP data 118 #define PBAP_DATA_PACKET 0x0eu 119 120 // AVRCP browsing data 121 #define AVRCP_BROWSING_DATA_PACKET 0x0fu 122 123 // MAP data 124 #define MAP_DATA_PACKET 0x10u 125 126 // BIP data 127 #define BIP_DATA_PACKET 0x11 128 129 // Mesh Provisioning PDU 130 #define PROVISIONING_DATA_PACKET 0x12u 131 132 // Mesh Proxy PDU 133 #define MESH_PROXY_DATA_PACKET 0x12u 134 135 // Mesh Network PDU 136 #define MESH_NETWORK_PACKET 0x13u 137 138 // Mesh Network PDU 139 #define MESH_BEACON_PACKET 0x14u 140 141 // debug log messages 142 #define LOG_MESSAGE_PACKET 0xfcu 143 144 145 // DAEMON COMMANDS 146 147 #define OGF_BTSTACK 0x3du 148 149 // cmds for BTstack 150 // get state: @return HCI_STATE 151 #define BTSTACK_GET_STATE 0x01u 152 153 // set power mode: param HCI_POWER_MODE 154 #define BTSTACK_SET_POWER_MODE 0x02u 155 156 // set capture mode: param on 157 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03u 158 159 // get BTstack version 160 #define BTSTACK_GET_VERSION 0x04u 161 162 // get system Bluetooth state 163 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05u 164 165 // set system Bluetooth state 166 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06u 167 168 // enable inquiry scan for this client 169 #define BTSTACK_SET_DISCOVERABLE 0x07u 170 171 // set global Bluetooth state 172 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08u 173 174 // create l2cap channel: param bd_addr(48), psm (16) 175 #define L2CAP_CREATE_CHANNEL 0x20u 176 177 // disconnect l2cap disconnect, param channel(16), reason(8) 178 #define L2CAP_DISCONNECT 0x21u 179 180 // register l2cap service: param psm(16), mtu (16) 181 #define L2CAP_REGISTER_SERVICE 0x22u 182 183 // unregister l2cap disconnect, param psm(16) 184 #define L2CAP_UNREGISTER_SERVICE 0x23u 185 186 // accept connection param bd_addr(48), dest cid (16) 187 #define L2CAP_ACCEPT_CONNECTION 0x24u 188 189 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 190 #define L2CAP_DECLINE_CONNECTION 0x25u 191 192 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 193 #define L2CAP_CREATE_CHANNEL_MTU 0x26u 194 195 // request can send now event: l2cap_cid 196 #define L2CAP_REQUEST_CAN_SEND_NOW 0x27u 197 198 // register SDP Service Record: service record (size) 199 #define SDP_REGISTER_SERVICE_RECORD 0x30u 200 201 // unregister SDP Service Record 202 #define SDP_UNREGISTER_SERVICE_RECORD 0x31u 203 204 // Get remote RFCOMM services 205 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32u 206 207 // Get remote SDP services 208 #define SDP_CLIENT_QUERY_SERVICES 0x33u 209 210 // RFCOMM "HCI" Commands 211 #define RFCOMM_CREATE_CHANNEL 0x40u 212 #define RFCOMM_DISCONNECT 0x41u 213 #define RFCOMM_REGISTER_SERVICE 0x42u 214 #define RFCOMM_UNREGISTER_SERVICE 0x43u 215 #define RFCOMM_ACCEPT_CONNECTION 0x44u 216 #define RFCOMM_DECLINE_CONNECTION 0x45u 217 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47u 218 #define RFCOMM_PERSISTENT_CHANNEL 0x46u 219 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48u 220 #define RFCOMM_GRANT_CREDITS 0x49u 221 // request can send now event: rfcomm_cid 222 #define RFCOMM_REQUEST_CAN_SEND_NOW 0x4Au 223 224 // GAP Classic 0x50u 225 #define GAP_DISCONNECT 0x50u 226 #define GAP_INQUIRY_START 0x51u 227 #define GAP_INQUIRY_STOP 0x52u 228 #define GAP_REMOTE_NAME_REQUEST 0x53u 229 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54u 230 #define GAP_DELETE_ALL_LINK_KEYS 0x55u 231 #define GAP_PIN_CODE_RESPONSE 0x56u 232 #define GAP_PIN_CODE_NEGATIVE 0x57u 233 234 // GAP LE 0x60u 235 #define GAP_LE_SCAN_START 0x60u 236 #define GAP_LE_SCAN_STOP 0x61u 237 #define GAP_LE_CONNECT 0x62u 238 #define GAP_LE_CONNECT_CANCEL 0x63u 239 #define GAP_LE_SET_SCAN_PARAMETERS 0x64u 240 241 // GATT (Client) 0x70u 242 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70u 243 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71u 244 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72u 245 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73u 246 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74u 247 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75u 248 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76u 249 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77u 250 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78u 251 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79u 252 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7Au 253 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7Bu 254 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7Cu 255 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7Du 256 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7Eu 257 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7Fu 258 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80u 259 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81u 260 #define GATT_GET_MTU 0x82u 261 262 // SM 0x90u 263 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90u 264 #define SM_SET_IO_CAPABILITIES 0x92u 265 #define SM_BONDING_DECLINE 0x93u 266 #define SM_JUST_WORKS_CONFIRM 0x94u 267 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95u 268 #define SM_PASSKEY_INPUT 0x96u 269 270 // ATT 271 272 // .. 273 // Internal properties reuse some GATT Characteristic Properties fields 274 #define ATT_DB_VERSION 0x01u 275 276 // EVENTS 277 278 // Events from host controller to host 279 280 /** 281 * @brief Custom NOP Event - used for internal testing 282 */ 283 #define HCI_EVENT_NOP 0x00u 284 285 /** 286 * @format 1 287 * @param status 288 */ 289 #define HCI_EVENT_INQUIRY_COMPLETE 0x01u 290 291 /** 292 * @format 1B11132 293 * @param num_responses 294 * @param bd_addr 295 * @param page_scan_repetition_mode 296 * @param reserved1 297 * @param reserved2 298 * @param class_of_device 299 * @param clock_offset 300 */ 301 #define HCI_EVENT_INQUIRY_RESULT 0x02u 302 303 /** 304 * @format 12B11 305 * @param status 306 * @param connection_handle 307 * @param bd_addr 308 * @param link_type 309 * @param encryption_enabled 310 */ 311 #define HCI_EVENT_CONNECTION_COMPLETE 0x03u 312 /** 313 * @format B31 314 * @param bd_addr 315 * @param class_of_device 316 * @param link_type 317 */ 318 #define HCI_EVENT_CONNECTION_REQUEST 0x04u 319 /** 320 * @format 121 321 * @param status 322 * @param connection_handle 323 * @param reason 324 */ 325 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05u 326 /** 327 * @format 12 328 * @param status 329 * @param connection_handle 330 */ 331 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06u 332 333 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead 334 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE 335 336 /** 337 * @format 1BN 338 * @param status 339 * @param bd_addr 340 * @param remote_name 341 */ 342 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07u 343 344 /** 345 * @format 121 346 * @param status 347 * @param connection_handle 348 * @param encryption_enabled 349 */ 350 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08u 351 352 /** 353 * @format 12 354 * @param status 355 * @param connection_handle 356 */ 357 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09u 358 359 /** 360 * @format 121 361 * @param status 362 * @param connection_handle 363 * @param key_flag 364 */ 365 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0Au 366 367 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0Bu 368 369 /** 370 * @format 12122 371 * @param status 372 * @param connection_handle 373 * @param version 374 * @param manufacturer_name 375 * @param subversion 376 */ 377 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0Cu 378 379 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0Du 380 381 /** 382 * @format 12R 383 * @param num_hci_command_packets 384 * @param command_opcode 385 * @param return_parameters 386 */ 387 #define HCI_EVENT_COMMAND_COMPLETE 0x0Eu 388 /** 389 * @format 112 390 * @param status 391 * @param num_hci_command_packets 392 * @param command_opcode 393 */ 394 #define HCI_EVENT_COMMAND_STATUS 0x0Fu 395 396 /** 397 * @format 1 398 * @param hardware_code 399 */ 400 #define HCI_EVENT_HARDWARE_ERROR 0x10u 401 402 /** 403 * @format H 404 * @param handle 405 */ 406 #define HCI_EVENT_FLUSH_OCCURRED 0x11u 407 408 /** 409 * @format 1B1 410 * @param status 411 * @param bd_addr 412 * @param role 413 */ 414 #define HCI_EVENT_ROLE_CHANGE 0x12u 415 416 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 417 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13u 418 419 /** 420 * @format 1H12 421 * @param status 422 * @param handle 423 * @param mode 424 * @param interval 425 */ 426 #define HCI_EVENT_MODE_CHANGE 0x14u 427 428 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 429 #define HCI_EVENT_RETURN_LINK_KEYS 0x15u 430 431 /** 432 * @format B 433 * @param bd_addr 434 */ 435 #define HCI_EVENT_PIN_CODE_REQUEST 0x16u 436 437 /** 438 * @format B 439 * @param bd_addr 440 */ 441 #define HCI_EVENT_LINK_KEY_REQUEST 0x17u 442 443 // TODO: bd_addr B, link_key 16octets, key_type 1 444 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18u 445 446 // event params contains HCI ccommand 447 #define HCI_EVENT_LOOPBACK_COMMAND 0x19u 448 449 /** 450 * @format 1 451 * @param link_type 452 */ 453 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1Au 454 455 /** 456 * @format H1 457 * @param handle 458 * @param lmp_max_slots 459 */ 460 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1Bu 461 462 /** 463 * @format 1H2 464 * @param status 465 * @param handle 466 * @param clock_offset 467 */ 468 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1Cu 469 470 /** 471 * @format 1H2 472 * @param status 473 * @param handle 474 * @param packet_types 475 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 476 */ 477 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1Du 478 479 /** 480 * @format H 481 * @param handle 482 */ 483 #define HCI_EVENT_QOS_VIOLATION 0x1Eu 484 485 // 0x1f not defined 486 487 /** 488 * @format H1 489 * @param handle 490 * @param page_scan_repetition_mode 491 */ 492 #define HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE 0x20u 493 494 /** 495 * @format 1H1114444 496 * @param status 497 * @param handle 498 * @param unused 499 * @param flow_direction 500 * @param service_type 501 * @param token_rate 502 * @param token_bucket_size 503 * @param peak_bandwidth 504 * @param access_latency 505 * 506 */ 507 #define HCI_EVENT_FLOW_SPECIFICATION_COMPLETE 0x21u 508 509 /** 510 * @format 1B11321 511 * @param num_responses 512 * @param bd_addr 513 * @param page_scan_repetition_mode 514 * @param reserved 515 * @param class_of_device 516 * @param clock_offset 517 * @param rssi 518 */ 519 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22u 520 521 #define HCI_EVENT_READ_REMOTE_EXTENDED_FEATURES_COMPLETE 0x23u 522 523 // 0x24..0x2b not defined 524 525 /** 526 * @format 1HB111221 527 * @param status 528 * @param handle 529 * @param bd_addr 530 * @param link_type 531 * @param transmission_interval 532 * @param retransmission_interval 533 * @param rx_packet_length 534 * @param tx_packet_length 535 * @param air_mode 536 */ 537 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2Cu 538 539 /** 540 * @format 1H1122 541 * @param status 542 * @param handle 543 * @param transmission_interval 544 * @param retransmission_interval 545 * @param rx_packet_length 546 * @param tx_packet_length 547 */ 548 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_CHANGED 0x2Du 549 550 /** 551 * @format 1H2222 552 * @param status 553 * @param handle 554 * @param max_tx_latency 555 * @param max_rx_latency 556 * @param min_remote_timeout 557 * @param min_local_timeout 558 */ 559 #define HCI_EVENT_SNIFF_SUBRATING 0x2Eu 560 561 // TODO: serialize extended_inquiry_response and provide parser 562 563 /** 564 * @format 1B11321 565 * @param num_responses 566 * @param bd_addr 567 * @param page_scan_repetition_mode 568 * @param reserved 569 * @param class_of_device 570 * @param clock_offset 571 * @param rssi 572 */ 573 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2Fu 574 575 /** 576 * @format 1H 577 * @param status 578 * @param handle 579 */ 580 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30u 581 582 /** 583 * @format B 584 * @param bd_addr 585 */ 586 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31u 587 588 /** 589 * @format B111 590 * @param bd_addr 591 * @param io_capability 592 * @param oob_data_present 593 * @param authentication_requirements 594 */ 595 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32u 596 597 /** 598 * @format B4 599 * @param bd_addr 600 * @param numeric_value 601 */ 602 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33u 603 604 /** 605 * @format B 606 * @param bd_addr 607 */ 608 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34u 609 610 /** 611 * @format B 612 * @param bd_addr 613 */ 614 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35u 615 616 /** 617 * @format 1B 618 * @param status 619 * @param bd_addr 620 */ 621 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36u 622 623 /** 624 * @format H2 625 * @param handle 626 * @param link_supervision_timeout 627 */ 628 #define HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED 0x38u 629 630 /** 631 * @format H 632 * @param handle 633 */ 634 #define HCI_EVENT_ENHANCED_FLUSH_COMPLETE 0x39u 635 636 // 0x03a not defined 637 638 /** 639 * @format B4 640 * @param bd_addr 641 * @param numeric_value 642 */ 643 #define HCI_EVENT_USER_PASSKEY_NOTIFICATION 0x3Bu 644 645 /** 646 * @format B1 647 * @param bd_addr 648 * @param notification_type 649 */ 650 #define HCI_EVENT_KEYPRESS_NOTIFICATION 0x3Cu 651 652 #define HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES 0x3Du 653 654 #define HCI_EVENT_LE_META 0x3Eu 655 656 // 0x3f..0x47 not defined 657 658 #define HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS 0x48u 659 660 // 0x49..0x58 not defined 661 662 /** 663 * @format 1211 664 * @param status 665 * @param connection_handle 666 * @param encryption_enabled 667 * @param encryption_key_size 668 */ 669 #define HCI_EVENT_ENCRYPTION_CHANGE_V2 0x59u 670 671 // last used HCI_EVENT in 5.3 is 0x59u 672 673 #define HCI_EVENT_VENDOR_SPECIFIC 0xFFu 674 675 /** 676 * @format 11H11B2221 677 * @param subevent_code 678 * @param status 679 * @param connection_handle 680 * @param role 681 * @param peer_address_type 682 * @param peer_address 683 * @param conn_interval 684 * @param conn_latency 685 * @param supervision_timeout 686 * @param master_clock_accuracy 687 */ 688 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01u 689 690 // array of advertisements, not handled by event accessor generator 691 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02u 692 693 /** 694 * @format 11H222 695 * @param subevent_code 696 * @param status 697 * @param connection_handle 698 * @param conn_interval 699 * @param conn_latency 700 * @param supervision_timeout 701 */ 702 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03u 703 704 /** 705 * @format 1HD 706 * @param subevent_code 707 * @param connection_handle 708 * @param le_features 709 */ 710 #define HCI_SUBEVENT_LE_READ_REMOTE_FEATURES_COMPLETE 0x04u 711 712 /** 713 * @format 1HD2 714 * @param subevent_code 715 * @param connection_handle 716 * @param random_number 717 * @param encryption_diversifier 718 */ 719 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05u 720 721 /** 722 * @format 1H2222 723 * @param subevent_code 724 * @param connection_handle 725 * @param interval_min 726 * @param interval_max 727 * @param latency 728 * @param timeout 729 */ 730 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06u 731 732 /** 733 * @format 1H2222 734 * @param subevent_code 735 * @param connection_handle 736 * @param max_tx_octets 737 * @param max_tx_time 738 * @param max_rx_octets 739 * @param max_rx_time 740 */ 741 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07u 742 743 /** 744 * @format 11QQ 745 * @param subevent_code 746 * @param status 747 * @param dhkey_x x coordinate of P256 public key 748 * @param dhkey_y y coordinate of P256 public key 749 */ 750 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08u 751 752 /** 753 * @format 11Q 754 * @param subevent_code 755 * @param status 756 * @param dhkey Diffie-Hellman key 757 */ 758 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09u 759 760 /** 761 * @format 11H11BBB2221 762 * @param subevent_code 763 * @param status 764 * @param connection_handle 765 * @param role 766 * @param peer_address_type 767 * @param peer_addresss 768 * @param local_resolvable_private_address 769 * @param peer_resolvable_private_address 770 * @param conn_interval 771 * @param conn_latency 772 * @param supervision_timeout 773 * @param master_clock_accuracy 774 */ 775 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V1 0x0Au 776 777 // array of advertisements, not handled by event accessor generator 778 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0Bu 779 780 /** 781 * @format 11H1 782 * @param subevent_code 783 * @param status 784 * @param connection_handle 785 * @param tx_phy 786 */ 787 #define HCI_SUBEVENT_LE_PHY_UPDATE_COMPLETE 0x0Cu 788 789 // array of advertisements, not handled by event accessor generator 790 #define HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT 0x0Du 791 792 /** 793 * @format 11H11B121 794 * @param subevent_code 795 * @param status 796 * @param sync_handle 797 * @param advertising_sid 798 * @param advertiser_address_type 799 * @param advertiser_address 800 * @param advertiser_phy 801 * @param periodic_advertising_interval 802 * @param advertiser_clock_accuracy 803 */ 804 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHMENT 0x0Eu 805 806 /** 807 * @format 1H1111JV 808 * @param subevent_code 809 * @param sync_handle 810 * @param tx_power 811 * @param rssi 812 * @param cte_type 813 * @param data_status 814 * @param data_length 815 * @param data 816 */ 817 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT 0x0Fu 818 819 /** 820 * @format 1H 821 * @param subevent_code 822 * @param sync_handle 823 */ 824 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_LOST 0x10u 825 826 /** 827 * @format 1 828 * @param subevent_code 829 */ 830 #define HCI_SUBEVENT_LE_SCAN_TIMEOUT 0x11u 831 832 /** 833 * @format 111H1 834 * @param subevent_code 835 * @param status 836 * @param advertising_handle 837 * @param connection_handle 838 * @param num_completed_exteneded_advertising_events 839 */ 840 #define HCI_SUBEVENT_LE_ADVERTISING_SET_TERMINATED 0x12u 841 842 /** 843 * @format 111B 844 * @param subevent_code 845 * @param advertising_handle 846 * @param scanner_address_type 847 * @param scanner_address 848 */ 849 #define HCI_SUBEVENT_LE_SCAN_REQUEST_RECEIVED 0x13u 850 851 /** 852 * @format 1H1 853 * @param subevent_code 854 * @param connection_handle 855 * @param channel_selection_algorithm 856 */ 857 #define HCI_SUBEVENT_LE_CHANNEL_SELECTION_ALGORITHM 0x14u 858 859 // array of advertisements, not handled by event accessor generator 860 #define HCI_SUBEVENT_LE_CONNECTIONLESS_IQ_REPORT 0x15u 861 862 // array of advertisements, not handled by event accessor generator 863 #define HCI_SUBEVENT_LE_CONNECTION_IQ_REPORT 0x16u 864 865 /** 866 * @format 11H 867 * @param subevent_code 868 * @param status 869 * @param connection_handle 870 */ 871 #define HCI_SUBEVENT_LE_LE_CTE_REQUEST_FAILED 0x17u 872 873 /** 874 * @format 11H2H11B121 875 * @param subevent_code 876 * @param status 877 * @param connection_handle 878 * @param service_data 879 * @param sync_handle 880 * @param advertising_sid 881 * @param advertiser_address_type 882 * @param advertiser_address 883 * @param advertiser_phy 884 * @param periodic_advertising_interval 885 * @param advertiser_clock_accuracy 886 */ 887 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED 0x18u 888 889 /** 890 * @format 11H33331111111222 891 * @param subevent_code 892 * @param status 893 * @param connection_handle 894 * @param cig_sync_delay 895 * @param cis_sync_delay 896 * @param transport_latency_c_to_p 897 * @param transport_latency_p_to_c 898 * @param phy_c_to_p 899 * @param phy_p_to_c 900 * @param nse 901 * @param bn_c_to_p 902 * @param bn_p_to_c 903 * @param ft_c_to_p 904 * @param ft_p_to_c 905 * @param max_pdu_c_to_p 906 * @param max_pdu_p_to_c 907 * @param iso_interval 908 */ 909 #define HCI_SUBEVENT_LE_CIS_ESTABLISHED 0x19u 910 911 /** 912 * @format 1HH11 913 * @param subevent_code 914 * @param acl_connection_handle 915 * @param cis_connection_handle 916 * @param cig_id 917 * @param cis_id 918 */ 919 #define HCI_SUBEVENT_LE_CIS_REQUEST 0x1au 920 921 // array of advertisements, not handled by event accessor generator 922 #define HCI_SUBEVENT_LE_CREATE_BIG_COMPLETE 0x1Bu 923 924 /** 925 * @format 111 926 * @param subevent_code 927 * @param big_handle 928 * @param reason 929 */ 930 #define HCI_SUBEVENT_LE_TERMINATE_BIG_COMPLETE 0x1Cu 931 932 // array of advertisements, not handled by event accessor generator 933 #define HCI_SUBEVENT_LE_BIG_SYNC_ESTABLISHED 0x1Du 934 935 /** 936 * @format 111 937 * @param subevent_code 938 * @param big_handle 939 * @param reason 940 */ 941 #define HCI_SUBEVENT_LE_BIG_SYNC_LOST 0x1Eu 942 943 /** 944 * @format 11H1 945 * @param subevent_code 946 * @param status 947 * @param connection_handle 948 * @param peer_clock_accuracy 949 */ 950 #define HCI_SUBEVENT_LE_REQUEST_PEER_SCA_COMPLETE 0x1Fu 951 952 /** 953 * @format 11H11111 954 * @param subevent_code 955 * @param status 956 * @param connection_handle 957 * @param reason 958 * @param phy 959 * @param tx_power_level 960 * @param tx_power_level_flag 961 * @param delta 962 */ 963 #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21u 964 965 /** 966 * @format 1H112111232111 967 * @param subevent_code 968 * @param sync_handle 969 * @param num_bis 970 * @param nse 971 * @param iso_interval 972 * @param bn 973 * @param pto 974 * @param irc 975 * @param max_pdu 976 * @param sdu_interval 977 * @param max_sdu 978 * @param phy 979 * @param framing 980 * @param encryption 981 */ 982 #define HCI_SUBEVENT_LE_BIGINFO_ADVERTISING_REPORT 0x22u 983 984 /** 985 * @format 11H2222 986 * @param subevent_code 987 * @param status 988 * @param connection_handle 989 * @param subrate_factor 990 * @param peripheral_latency 991 * @param continuation_number 992 * @param supervision_timeout 993 */ 994 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23u 995 996 /** 997 * @format 1111 998 * @param subevent_code 999 * @param advertising_handle 1000 * @param subevent_start 1001 * @param subevent_data_count 1002 */ 1003 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_DATA_REQUEST 0x27u 1004 1005 /** 1006 * @format 11H11BBB22211H 1007 * @param subevent_code 1008 * @param status 1009 * @param connection_handle 1010 * @param role 1011 * @param peer_address_type 1012 * @param peer_addresss 1013 * @param local_resolvable_private_address 1014 * @param peer_resolvable_private_address 1015 * @param conn_interval 1016 * @param conn_latency 1017 * @param supervision_timeout 1018 * @param master_clock_accuracy 1019 * @param advertising_handle 1020 * @param sync_handle 1021 */ 1022 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 0x29u 1023 1024 /** Internal BTstack events */ 1025 #define BTSTACK_EVENT_FIRST BTSTACK_EVENT_STATE 1026 1027 /** 1028 * @format 1 1029 * @param state 1030 */ 1031 #define BTSTACK_EVENT_STATE 0x60u 1032 1033 /** 1034 * @format 1 1035 * @param number_connections 1036 */ 1037 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61u 1038 1039 /** 1040 * @format 1041 */ 1042 #define BTSTACK_EVENT_POWERON_FAILED 0x62u 1043 1044 /** 1045 * @format 11 1046 * @param discoverable 1047 * @param connectable 1048 */ 1049 #define BTSTACK_EVENT_SCAN_MODE_CHANGED 0x66u 1050 1051 // Daemon Events 1052 1053 /** 1054 * @format 112 1055 * @param major 1056 * @param minor 1057 @ @param revision 1058 */ 1059 #define DAEMON_EVENT_VERSION 0x63u 1060 1061 // data: system bluetooth on/off (bool) 1062 /** 1063 * @format 1 1064 * @param system_bluetooth_enabled 1065 */ 1066 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64u 1067 1068 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 1069 1070 /* 1071 * @format 1BT 1072 * @param status == 0 to match read_remote_name_request 1073 * @param address 1074 * @param name 1075 */ 1076 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65u 1077 1078 // internal - data: event(8) 1079 #define DAEMON_EVENT_CONNECTION_OPENED 0x67u 1080 1081 // internal - data: event(8) 1082 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68u 1083 1084 // data: event(8), len(8), local_cid(16), credits(8) 1085 #define DAEMON_EVENT_L2CAP_CREDITS 0x74u 1086 1087 /** 1088 * @format 12 1089 * @param status 1090 * @param psm 1091 */ 1092 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75u 1093 1094 /** 1095 * @format 11 1096 * @param status 1097 * @param channel_id 1098 */ 1099 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85u 1100 1101 /** 1102 * @format 11 1103 * @param status 1104 * @param server_channel_id 1105 */ 1106 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86u 1107 1108 /** 1109 * @format 14 1110 * @param status 1111 * @param service_record_handle 1112 */ 1113 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90u 1114 1115 1116 1117 // additional HCI events 1118 1119 /** 1120 * @brief Indicates HCI transport enters/exits Sleep mode 1121 * @format 1 1122 * @param active 1123 */ 1124 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69u 1125 1126 /** 1127 * @brief Transport USB Bluetooth Controller info 1128 * @format 22JV 1129 * @param vendor_id 1130 * @param product_id 1131 * @param path_len 1132 * @param path 1133 */ 1134 #define HCI_EVENT_TRANSPORT_USB_INFO 0x6Au 1135 1136 /** 1137 * @brief Transport ready 1138 */ 1139 #define HCI_EVENT_TRANSPORT_READY 0x6Du 1140 1141 /** 1142 * @brief Outgoing packet 1143 */ 1144 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6Eu 1145 1146 /** 1147 * @format 11H 1148 * @param big_handle 1149 * @param bis_index 1150 * @param con_handle 1151 */ 1152 #define HCI_EVENT_BIS_CAN_SEND_NOW 0x6Bu 1153 1154 /** 1155 * @format H 1156 * @param cis_con_handle 1157 */ 1158 #define HCI_EVENT_CIS_CAN_SEND_NOW 0x6Cu 1159 1160 /** 1161 * @format 1162 */ 1163 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6Fu 1164 1165 1166 // L2CAP EVENTS 1167 1168 /** 1169 * @format 1BH222222111 1170 * @param status 1171 * @param address 1172 * @param handle 1173 * @param psm 1174 * @param local_cid 1175 * @param remote_cid 1176 * @param local_mtu 1177 * @param remote_mtu 1178 * @param flush_timeout 1179 * @param incoming 1180 * @param mode 1181 * @param fcs 1182 */ 1183 #define L2CAP_EVENT_CHANNEL_OPENED 0x70u 1184 1185 /* 1186 * @format 2 1187 * @param local_cid 1188 */ 1189 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71u 1190 1191 /** 1192 * @format BH222 1193 * @param address 1194 * @param handle 1195 * @param psm 1196 * @param local_cid 1197 * @param remote_cid 1198 */ 1199 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72u 1200 1201 // ?? 1202 // data: event(8), len(8), handle(16) 1203 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73u 1204 1205 /** 1206 * @format H2222 1207 * @param handle 1208 * @param interval_min 1209 * @param interval_max 1210 * @param latency 1211 * @param timeout_multiplier 1212 */ 1213 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76u 1214 1215 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 1216 /** 1217 * @format H2 1218 * @param handle 1219 * @param result 1220 */ 1221 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77u 1222 1223 /* 1224 * @format H22 1225 * @param con_handle 1226 * @param extended_feature_mask 1227 * @param fixed_channels_supported 1228 */ 1229 #define L2CAP_EVENT_INFORMATION_RESPONSE 0x78u 1230 1231 /** 1232 * @format 2 1233 * @param local_cid 1234 */ 1235 #define L2CAP_EVENT_CAN_SEND_NOW 0x79u 1236 1237 /* 1238 * @format 2 1239 * @param local_cid 1240 */ 1241 #define L2CAP_EVENT_PACKET_SENT 0x7au 1242 1243 /* 1244 * @format 2 1245 * @param local_cid 1246 */ 1247 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7bu 1248 1249 // L2CAP Channel in LE Credit-based Flow-Control Mode (CBM) 1250 1251 /** 1252 * @format 1BH2222 1253 * @param address_type 1254 * @param address 1255 * @param handle 1256 * @param psm 1257 * @param local_cid 1258 * @param remote_cid 1259 * @param remote_mtu 1260 */ 1261 #define L2CAP_EVENT_CBM_INCOMING_CONNECTION 0x7cu 1262 1263 /** 1264 * @format 11BH122222 1265 * @param status 1266 * @param address_type 1267 * @param address 1268 * @param handle 1269 * @param incoming 1270 * @param psm 1271 * @param local_cid 1272 * @param remote_cid 1273 * @param local_mtu 1274 * @param remote_mtu 1275 */ 1276 #define L2CAP_EVENT_CBM_CHANNEL_OPENED 0x7du 1277 1278 /* 1279 * @format 1280 */ 1281 #define L2CAP_EVENT_TRIGGER_RUN 0x7eu 1282 1283 /** 1284 * @format 1BH212 1285 * @param address_type 1286 * @param address 1287 * @param handle 1288 * @param psm 1289 * @param num_channels 1290 * @param local_cid first new cid 1291 */ 1292 #define L2CAP_EVENT_ECBM_INCOMING_CONNECTION 0x7fu 1293 1294 /** 1295 * @format 11BH122222 1296 * @param status 1297 * @param address_type 1298 * @param address 1299 * @param handle 1300 * @param incoming 1301 * @param psm 1302 * @param local_cid 1303 * @param remote_cid 1304 * @param local_mtu 1305 * @param remote_mtu 1306 */ 1307 #define L2CAP_EVENT_ECBM_CHANNEL_OPENED 0x8au 1308 1309 /* 1310 * @format 222 1311 * @param remote_cid 1312 * @param mtu 1313 * @param mps 1314 */ 1315 #define L2CAP_EVENT_ECBM_RECONFIGURED 0x8bu 1316 1317 /* 1318 * @format 22 1319 * @param local_cid 1320 * @param reconfigure_result 1321 */ 1322 #define L2CAP_EVENT_ECBM_RECONFIGURATION_COMPLETE 0x8cu 1323 1324 1325 // RFCOMM EVENTS 1326 1327 /** 1328 * @format 1B21221 1329 * @param status 1330 * @param bd_addr 1331 * @param con_handle 1332 * @param server_channel 1333 * @param rfcomm_cid 1334 * @param max_frame_size 1335 * @param incoming 1336 */ 1337 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80u 1338 1339 /** 1340 * @format 2 1341 * @param rfcomm_cid 1342 */ 1343 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81u 1344 1345 /** 1346 * @format B12H 1347 * @param bd_addr 1348 * @param server_channel 1349 * @param rfcomm_cid 1350 * @param con_handle 1351 1352 */ 1353 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82u 1354 1355 /** 1356 * @format 21 1357 * @param rfcomm_cid 1358 * @param line_status 1359 */ 1360 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83u 1361 1362 /** 1363 * @format 21 1364 * @param rfcomm_cid 1365 * @param modem_status 1366 */ 1367 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87u 1368 1369 /** 1370 * note: port configuration not parsed by stack, getters provided by rfcomm.h 1371 * param rfcomm_cid 1372 * param remote - 0 for local port, 1 for remote port 1373 * param baud_rate 1374 * param data_bits 1375 * param stop_bits 1376 * param parity 1377 * param flow_control 1378 * param xon 1379 * param xoff 1380 */ 1381 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88u 1382 1383 /** 1384 * @format 2 1385 * @param rfcomm_cid 1386 */ 1387 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89u 1388 1389 1390 /** 1391 * @format 1 1392 * @param status 1393 */ 1394 #define SDP_EVENT_QUERY_COMPLETE 0x91u 1395 1396 /** 1397 * @format 1T 1398 * @param rfcomm_channel 1399 * @param name 1400 */ 1401 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92u 1402 1403 /** 1404 * @format 22221 1405 * @param record_id 1406 * @param attribute_id 1407 * @param attribute_length 1408 * @param data_offset 1409 * @param data 1410 */ 1411 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93u 1412 1413 /** 1414 * @format 22LV 1415 * @param record_id 1416 * @param attribute_id 1417 * @param attribute_length 1418 * @param attribute_value 1419 */ 1420 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94u 1421 1422 /** 1423 * @format 224 1424 * @param total_count 1425 * @param record_index 1426 * @param record_handle 1427 * @note Not provided by daemon, only used for internal testing 1428 */ 1429 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95u 1430 1431 /** 1432 * @format H221 1433 * @param handle 1434 * @param service_id 1435 * @param connection_id 1436 * @param att_status see ATT errors in bluetooth.h 1437 */ 1438 #define GATT_EVENT_QUERY_COMPLETE 0xA0u 1439 1440 /** 1441 * @format H22X 1442 * @param handle 1443 * @param service_id 1444 * @param connection_id 1445 * @param service 1446 */ 1447 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1u 1448 1449 /** 1450 * @format H22Y 1451 * @param handle 1452 * @param service_id 1453 * @param connection_id 1454 * @param characteristic 1455 */ 1456 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2u 1457 1458 /** 1459 * @format H222X 1460 * @param handle 1461 * @param service_id 1462 * @param connection_id 1463 * @param include_handle 1464 * @param service 1465 */ 1466 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3u 1467 1468 /** 1469 * @format H22Z 1470 * @param handle 1471 * @param service_id 1472 * @param connection_id 1473 * @param characteristic_descriptor 1474 */ 1475 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4u 1476 1477 /** 1478 * @format H222LV 1479 * @param handle 1480 * @param service_id 1481 * @param connection_id 1482 * @param value_handle 1483 * @param value_length 1484 * @param value 1485 */ 1486 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5u 1487 1488 /** 1489 * @format H2222LV 1490 * @param handle 1491 * @param service_id 1492 * @param connection_id 1493 * @param value_handle 1494 * @param value_offset 1495 * @param value_length 1496 * @param value 1497 */ 1498 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6u 1499 1500 /** 1501 * @format H222LV 1502 * @param handle 1503 * @param service_id 1504 * @param connection_id 1505 * @param value_handle 1506 * @param value_length 1507 * @param value 1508 */ 1509 #define GATT_EVENT_NOTIFICATION 0xA7u 1510 1511 /** 1512 * @format H222LV 1513 * @param handle 1514 * @param service_id 1515 * @param connection_id 1516 * @param value_handle 1517 * @param value_length 1518 * @param value 1519 */ 1520 #define GATT_EVENT_INDICATION 0xA8u 1521 1522 /** 1523 * @format H222LV 1524 * @param handle 1525 * @param service_id 1526 * @param connection_id 1527 * @param descriptor_handle 1528 * @param descriptor_length 1529 * @param descriptor 1530 */ 1531 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9u 1532 1533 /** 1534 * @format H2222LV 1535 * @param handle 1536 * @param service_id 1537 * @param connection_id 1538 * @param descriptor_handle 1539 * @param descriptor_offset 1540 * @param descriptor_length 1541 * @param descriptor 1542 */ 1543 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAAu 1544 1545 /** 1546 * @format H2 1547 * @param handle 1548 * @param MTU 1549 */ 1550 #define GATT_EVENT_MTU 0xABu 1551 1552 /** 1553 * @format H 1554 * @param handle 1555 */ 1556 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xACu 1557 1558 /** 1559 * @format 11BH 1560 * @param status 1561 * @param address_type 1562 * @param address 1563 * @param handle 1564 */ 1565 #define GATT_EVENT_CONNECTED 0xADu 1566 1567 /** 1568 * @format H 1569 * @param handle 1570 */ 1571 #define GATT_EVENT_DISCONNECTED 0xAEu 1572 1573 /** 1574 * @format H22 1575 * @param handle 1576 * @param attribute_handle_start 1577 * @param attribute_handle_end 1578 */ 1579 #define GATT_EVENT_SERVICE_CHANGED 0xAFu 1580 1581 1582 /** 1583 * @format 1BH 1584 * @param address_type 1585 * @param address 1586 * @param handle 1587 */ 1588 #define ATT_EVENT_CONNECTED 0xB3u 1589 1590 /** 1591 * @format H 1592 * @param handle 1593 */ 1594 #define ATT_EVENT_DISCONNECTED 0xB4u 1595 1596 /** 1597 * @format H2 1598 * @param handle 1599 * @param MTU 1600 */ 1601 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5u 1602 1603 /** 1604 * @format 1H2 1605 * @param status 1606 * @param conn_handle 1607 * @param attribute_handle 1608 */ 1609 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6u 1610 1611 /** 1612 * @format 1613 */ 1614 #define ATT_EVENT_CAN_SEND_NOW 0xB7u 1615 1616 // TODO: daemon only event 1617 1618 /** 1619 * @format 12 1620 * @param status 1621 * @param service_uuid 1622 */ 1623 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0u 1624 1625 /** 1626 * @format 12222BH 1627 * @param status 1628 * @param bnep_cid 1629 * @param source_uuid 1630 * @param destination_uuid 1631 * @param mtu 1632 * @param remote_address 1633 * @param con_handle 1634 */ 1635 #define BNEP_EVENT_CHANNEL_OPENED 0xC1u 1636 1637 /** 1638 * @format 222B 1639 * @param bnep_cid 1640 * @param source_uuid 1641 * @param destination_uuid 1642 * @param remote_address 1643 */ 1644 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2u 1645 1646 /** 1647 * @format 222B1 1648 * @param bnep_cid 1649 * @param source_uuid 1650 * @param destination_uuid 1651 * @param remote_address 1652 * @param channel_state 1653 */ 1654 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3u 1655 1656 /** 1657 * @format 222B 1658 * @param bnep_cid 1659 * @param source_uuid 1660 * @param destination_uuid 1661 * @param remote_address 1662 */ 1663 #define BNEP_EVENT_CAN_SEND_NOW 0xC4u 1664 1665 /** 1666 * @format H1B1 1667 * @param handle 1668 * @param addr_type 1669 * @param address 1670 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1671 */ 1672 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8u 1673 1674 /** 1675 * @format H1B14 1676 * @param handle 1677 * @param addr_type 1678 * @param address 1679 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1680 * @param passkey 1681 */ 1682 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9u 1683 1684 /** 1685 * @format H1B 1686 * @param handle 1687 * @param addr_type 1688 * @param address 1689 */ 1690 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCAu 1691 1692 /** 1693 * @format H1B1 1694 * @param handle 1695 * @param addr_type 1696 * @param address 1697 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1698 */ 1699 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCBu 1700 1701 /** 1702 * @format H1B14 1703 * @param handle 1704 * @param addr_type 1705 * @param address 1706 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1707 * @param passkey 1708 */ 1709 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCCu 1710 1711 /** 1712 * @format H1B 1713 * @param handle 1714 * @param addr_type 1715 * @param address 1716 */ 1717 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCDu 1718 1719 /** 1720 * @format H1B 1721 * @param handle 1722 * @param addr_type 1723 * @param address 1724 */ 1725 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCEu 1726 1727 /** 1728 * @brief Identify resolving succeeded 1729 * 1730 * @format H1B1B2 1731 * @param handle 1732 * @param addr_type 1733 * @param address 1734 * @param identity_addr_type 1735 * @param identity_address 1736 * @param index 1737 * 1738 */ 1739 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCFu 1740 1741 /** 1742 * @format H1B 1743 * @param handle 1744 * @param addr_type 1745 * @param address 1746 */ 1747 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0u 1748 1749 /** 1750 * @format H1B1 1751 * @param handle 1752 * @param addr_type 1753 * @param address 1754 * @param authorization_result 1755 */ 1756 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1u 1757 1758 /** 1759 * @format H1 1760 * @param handle 1761 * @param action see SM_KEYPRESS_* 1762 */ 1763 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2u 1764 1765 /** 1766 * @brief Emitted during pairing to inform app about address used as identity 1767 * 1768 * @format H1B1B2 1769 * @param handle 1770 * @param addr_type 1771 * @param address 1772 * @param identity_addr_type 1773 * @param identity_address 1774 * @param index 1775 */ 1776 #define SM_EVENT_IDENTITY_CREATED 0xD3u 1777 1778 /** 1779 * @brief Emitted to inform app that pairing has started. 1780 * @format H1B 1781 * @param handle 1782 * @param addr_type 1783 * @param address 1784 */ 1785 #define SM_EVENT_PAIRING_STARTED 0xD4u 1786 1787 /** 1788 * @brief Emitted to inform app that pairing is complete. Possible status values: 1789 * ERROR_CODE_SUCCESS -> pairing success 1790 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1791 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1792 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1793 * 1794 * @format H1B11 1795 * @param handle 1796 * @param addr_type 1797 * @param address 1798 * @param status 1799 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1800 */ 1801 #define SM_EVENT_PAIRING_COMPLETE 0xD5u 1802 1803 1804 /** 1805 * @brief Proactive Authentication for bonded devices started. 1806 * @format H1B 1807 * @param handle 1808 * @param addr_type 1809 * @param address 1810 */ 1811 #define SM_EVENT_REENCRYPTION_STARTED 0xD6u 1812 1813 /** 1814 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1815 * ERROR_CODE_SUCCESS -> connection secure 1816 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1817 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1818 * @format H1B1 1819 * @param handle 1820 * @param addr_type 1821 * @param address 1822 * @param status 1823 */ 1824 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7u 1825 1826 // GAP 1827 1828 /** 1829 * @format H1 1830 * @param handle 1831 * @param security_level 1832 */ 1833 #define GAP_EVENT_SECURITY_LEVEL 0xD8u 1834 1835 /** 1836 * @format 1B 1837 * @param status 1838 * @param address 1839 */ 1840 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9u 1841 1842 /** 1843 * @format 11B1JV 1844 * @param advertising_event_type 1845 * @param address_type 1846 * @param address 1847 * @param rssi 1848 * @param data_length 1849 * @param data 1850 */ 1851 #define GAP_EVENT_ADVERTISING_REPORT 0xDAu 1852 1853 /** 1854 * @format 21B1111121BJV 1855 * @param advertising_event_type 1856 * @param address_type 1857 * @param address 1858 * @param primary_phy 1859 * @param secondary_phy 1860 * @param advertising_sid 1861 * @param tx_power 1862 * @param rssi 1863 * @param periodic_advertising_interval 1864 * @param direct_address_type 1865 * @param direct_address 1866 * @param data_length 1867 * @param data 1868 */ 1869 #define GAP_EVENT_EXTENDED_ADVERTISING_REPORT 0xDBu 1870 1871 /** 1872 * @format B13211122221JV 1873 * @param bd_addr 1874 * @param page_scan_repetition_mode 1875 * @param class_of_device 1876 * @param clock_offset 1877 * @param rssi_available 1878 * @param rssi 1879 * @param device_id_available 1880 * @param device_id_vendor_id_source 1881 * @param device_id_vendor_id 1882 * @param device_id_product_id 1883 * @param device_id_version 1884 * @param name_available 1885 * @param name_len 1886 * @param name 1887 */ 1888 #define GAP_EVENT_INQUIRY_RESULT 0xDCu 1889 1890 /** 1891 * @format 1 1892 * @param status 1893 */ 1894 #define GAP_EVENT_INQUIRY_COMPLETE 0xDDu 1895 1896 /** 1897 * @format H1 1898 * @param con_handle 1899 * @param rssi (signed integer -127..127) 1900 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1901 * @note LE: rssi is absolute dBm 1902 */ 1903 #define GAP_EVENT_RSSI_MEASUREMENT 0xDEu 1904 1905 /** 1906 * @format 1KKKK 1907 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1908 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1909 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1910 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1911 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1912 */ 1913 #define GAP_EVENT_LOCAL_OOB_DATA 0xDFu 1914 1915 1916 /** 1917 * @format HB11 1918 * @param con_handle 1919 * @param bd_addr 1920 * @param ssp 1921 * @param initiator 1922 */ 1923 #define GAP_EVENT_PAIRING_STARTED 0xE0u 1924 1925 /** 1926 * @format HB1 1927 * @param con_handle 1928 * @param bd_addr 1929 * @param status 1930 */ 1931 #define GAP_EVENT_PAIRING_COMPLETE 0xE1u 1932 1933 // Meta Events, see below for sub events 1934 #define HCI_EVENT_META_GAP 0xE7u 1935 #define HCI_EVENT_HSP_META 0xE8u 1936 #define HCI_EVENT_HFP_META 0xE9u 1937 #define HCI_EVENT_ANCS_META 0xEAu 1938 #define HCI_EVENT_AVDTP_META 0xEBu 1939 #define HCI_EVENT_AVRCP_META 0xECu 1940 #define HCI_EVENT_GOEP_META 0xEDu 1941 #define HCI_EVENT_PBAP_META 0xEEu 1942 #define HCI_EVENT_HID_META 0xEFu 1943 #define HCI_EVENT_A2DP_META 0xF0u 1944 #define HCI_EVENT_HIDS_META 0xF1u 1945 #define HCI_EVENT_GATTSERVICE_META 0xF2u 1946 #define HCI_EVENT_BIP_META 0xF3u 1947 #define HCI_EVENT_MAP_META 0xF4u 1948 #define HCI_EVENT_MESH_META 0xF5u 1949 #define HCI_EVENT_LEAUDIO_META 0xF6u 1950 1951 // Potential other meta groups 1952 // #define HCI_EVENT_BNEP_META 0xxx 1953 // #define HCI_EVENT_GAP_META 0xxx 1954 // #define HCI_EVENT_GATT_META 0xxx 1955 // #define HCI_EVENT_PAN_META 0xxx 1956 // #define HCI_EVENT_SDP_META 0xxx 1957 // #define HCI_EVENT_SM_META 0xxx 1958 1959 /** GAP Subevent */ 1960 1961 1962 /** 1963 * @format 1111 1964 * @param subevent_code 1965 * @param advertisement_handle 1966 * @param status 1967 * @param selected_tx_power 1968 */ 1969 #define GAP_SUBEVENT_ADVERTISING_SET_INSTALLED 0x00u 1970 1971 /** 1972 * @format 11 1973 * @param subevent_code 1974 * @param advertisement_handle 1975 */ 1976 #define GAP_SUBEVENT_ADVERTISING_SET_REMOVED 0x01u 1977 1978 /** 1979 * @format 1111C 1980 * @param subevent_code 1981 * @param status 1982 * @param big_handle 1983 * @param num_bis 1984 * @param bis_con_handles 1985 */ 1986 #define GAP_SUBEVENT_BIG_CREATED 0x02u 1987 1988 /** 1989 * @format 11 1990 * @param subevent_code 1991 * @param big_handle 1992 */ 1993 #define GAP_SUBEVENT_BIG_TERMINATED 0x03u 1994 1995 /** 1996 * @format 1111C 1997 * @param subevent_code 1998 * @param status 1999 * @param big_handle 2000 * @param num_bis 2001 * @param bis_con_handles 2002 */ 2003 #define GAP_SUBEVENT_BIG_SYNC_CREATED 0x04u 2004 2005 /** 2006 * @format 11 2007 * @param subevent_code 2008 * @param big_handle 2009 */ 2010 #define GAP_SUBEVENT_BIG_SYNC_STOPPED 0x05u 2011 2012 /** 2013 * @format 1111C 2014 * @param subevent_code 2015 * @param status 2016 * @param cig_id 2017 * @param num_cis 2018 * @param cis_con_handles 2019 */ 2020 #define GAP_SUBEVENT_CIG_CREATED 0x06u 2021 2022 /** 2023 * @format 1111HH211111 2024 * @param subevent_code 2025 * @param status 2026 * @param cig_id 2027 * @param cis_id 2028 * @param cis_con_handle 2029 * @param acl_con_handle 2030 * @param iso_interval_1250us 2031 * @param number_of_subevents 2032 * @param burst_number_c_to_p 2033 * @param burst_number_p_to_c 2034 * @param flush_timeout_c_to_p 2035 * @param flush_timeout_p_to_c 2036 */ 2037 2038 #define GAP_SUBEVENT_CIS_CREATED 0x07u 2039 2040 /** 2041 * Generic version of 2042 * - HCI_SUBEVENT_LE_CONNECTION_COMPLETE 2043 * - HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V1 2044 * - HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE_V2 2045 * @format 11H11BBB22211H 2046 * @param subevent_code 2047 * @param status 2048 * @param connection_handle 2049 * @param role 2050 * @param peer_address_type 2051 * @param peer_address 2052 * @param local_resolvable_private_address - 00..00 if not valid 2053 * @param peer_resolvable_private_address - 00..00 if not valid 2054 * @param conn_interval 2055 * @param conn_latency 2056 * @param supervision_timeout 2057 * @param master_clock_accuracy 2058 * @param advertising_handle - 0xff if not set 2059 * @param sync_handle - 0xffff if not set 2060 */ 2061 #define GAP_SUBEVENT_LE_CONNECTION_COMPLETE 0x08u 2062 2063 /** HSP Subevent */ 2064 2065 /** 2066 * @format 1H1B 2067 * @param subevent_code 2068 * @param acl_handle 2069 * @param status 0 == OK 2070 * @param bd_addr 2071 */ 2072 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01u 2073 2074 /** 2075 * @format 1H 2076 * @param subevent_code 2077 * @param acl_handle 2078 */ 2079 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02u 2080 2081 /** 2082 * @format 1H1H 2083 * @param subevent_code 2084 * @param acl_handle 2085 * @param status 0 == OK 2086 * @param sco_handle 2087 */ 2088 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03u 2089 2090 /** 2091 * @format 1HH 2092 * @param subevent_code 2093 * @param acl_handle 2094 * @param sco_handle 2095 */ 2096 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04u 2097 2098 /** 2099 * @format 1H 2100 * @param subevent_code 2101 * @param acl_handle 2102 */ 2103 #define HSP_SUBEVENT_RING 0x05u 2104 2105 /** 2106 * @format 1H1 2107 * @param subevent_code 2108 * @param acl_handle 2109 * @param gain Valid range: [0,15] 2110 */ 2111 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06u 2112 2113 /** 2114 * @format 1H1 2115 * @param subevent_code 2116 * @param acl_handle 2117 * @param gain Valid range: [0,15] 2118 */ 2119 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07u 2120 2121 /** 2122 * @format 1HJV 2123 * @param subevent_code 2124 * @param acl_handle 2125 * @param value_length 2126 * @param value 2127 */ 2128 #define HSP_SUBEVENT_HS_COMMAND 0x08u 2129 2130 /** 2131 * @format 1HJV 2132 * @param subevent_code 2133 * @param acl_handle 2134 * @param value_length 2135 * @param value 2136 */ 2137 #define HSP_SUBEVENT_AG_INDICATION 0x09u 2138 2139 /** 2140 * @format 1H 2141 * @param subevent_code 2142 * @param acl_handle 2143 */ 2144 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0au 2145 2146 /** HFP Subevent */ 2147 2148 /** 2149 * @format 1H1B 2150 * @param subevent_code 2151 * @param acl_handle 2152 * @param status 0 == OK 2153 * @param bd_addr 2154 */ 2155 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01u 2156 2157 /** 2158 * @format 1H 2159 * @param subevent_code 2160 * @param acl_handle 2161 */ 2162 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02u 2163 2164 /** 2165 * @format 1H1HB1222 2166 * @param subevent_code 2167 * @param acl_handle 2168 * @param status 0 == OK 2169 * @param sco_handle 2170 * @param bd_addr 2171 * @param negotiated_codec 2172 * @param sco_packet_types see SCO_PACKET_TYPES_* in btstack_defines.h 2173 * @param rx_packet_length 2174 * @param tx_packet_length 2175 */ 2176 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03u 2177 2178 /** 2179 * @format 1HH 2180 * @param subevent_code 2181 * @param acl_handle 2182 * @param sco_handle 2183 */ 2184 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04u 2185 2186 /** 2187 * @format 1H1 2188 * @param subevent_code 2189 * @param acl_handle 2190 * @param status 0 == OK 2191 */ 2192 #define HFP_SUBEVENT_COMPLETE 0x05u 2193 2194 /** 2195 * @format 1H111T 2196 * @param subevent_code 2197 * @param acl_handle 2198 * @param indicator_index 2199 * @param indicator_min_range 2200 * @param indicator_max_range 2201 * @param indicator_name 2202 */ 2203 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06u 2204 2205 /** 2206 * @format 1H1111111T 2207 * @param subevent_code 2208 * @param acl_handle 2209 * @param indicator_index 2210 * @param indicator_status 2211 * @param indicator_min_range 2212 * @param indicator_max_range 2213 * @param indicator_mandatory 2214 * @param indicator_enabled 2215 * @param indicator_status_changed 2216 * @param indicator_name 2217 */ 2218 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07u 2219 2220 /** 2221 * @format 1H11T 2222 * @param subevent_code 2223 * @param acl_handle 2224 * @param network_operator_mode 2225 * @param network_operator_format 2226 * @param network_operator_name 2227 */ 2228 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08u 2229 2230 /** 2231 * @format 1H1 2232 * @param subevent_code 2233 * @param acl_handle 2234 * @param error 2235 */ 2236 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09u 2237 2238 /** 2239 * @format 1H 2240 * @param subevent_code 2241 * @param acl_handle 2242 */ 2243 #define HFP_SUBEVENT_START_RINGING 0x0Au 2244 2245 /** 2246 * @format 1H 2247 * @param subevent_code 2248 * @param acl_handle 2249 */ 2250 #define HFP_SUBEVENT_RING 0x0Bu 2251 2252 /** 2253 * @format 1H 2254 * @param subevent_code 2255 * @param acl_handle 2256 */ 2257 #define HFP_SUBEVENT_STOP_RINGING 0x0Cu 2258 2259 /** 2260 * @format 1HT 2261 * @param subevent_code 2262 * @param acl_handle 2263 * @param number 2264 */ 2265 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0Du 2266 2267 /** 2268 * @format 1H 2269 * @param subevent_code 2270 * @param acl_handle 2271 */ 2272 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0Eu 2273 2274 /** 2275 * @format 1HT 2276 * @param subevent_code 2277 * @param acl_handle 2278 * @param number 2279 */ 2280 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0Fu 2281 2282 /** 2283 * @format 1HT 2284 * @param subevent_code 2285 * @param acl_handle 2286 * @param dtmf code 2287 */ 2288 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10u 2289 2290 /** 2291 * @format 1H 2292 * @param subevent_code 2293 * @param acl_handle 2294 */ 2295 #define HFP_SUBEVENT_CALL_ANSWERED 0x11u 2296 2297 /** 2298 * @format 1H 2299 * @param subevent_code 2300 * @param acl_handle 2301 */ 2302 #define HFP_SUBEVENT_CALL_TERMINATED 0x12u 2303 2304 /** 2305 * @format 1H 2306 * @param subevent_code 2307 * @param acl_handle 2308 */ 2309 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13u 2310 2311 2312 /** 2313 * @format 1H1 2314 * @param subevent_code 2315 * @param acl_handle 2316 * @param gain 2317 */ 2318 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14u 2319 2320 /** 2321 * @format 1H1 2322 * @param subevent_code 2323 * @param acl_handle 2324 * @param gain 2325 */ 2326 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15u 2327 2328 /** 2329 * @format 1H1JVJV 2330 * @param subevent_code 2331 * @param acl_handle 2332 * @param type 2333 * @param number_length 2334 * @param number 2335 * @param alpha_length 2336 * @param alpha 2337 */ 2338 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16u 2339 2340 /** 2341 * @format 1H1JVJV 2342 * @param subevent_code 2343 * @param acl_handle 2344 * @param type 2345 * @param number_length 2346 * @param number 2347 * @param alpha_length 2348 * @param alpha 2349 */ 2350 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17u 2351 2352 /** 2353 * @format 1H111111T 2354 * @param subevent_code 2355 * @param acl_handle 2356 * @param clcc_idx 2357 * @param clcc_dir 2358 * @param clcc_status 2359 * @param clcc_mode 2360 * @param clcc_mpty 2361 * @param bnip_type 2362 * @param bnip_number 2363 */ 2364 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18u 2365 2366 /** 2367 * @format 1H11T 2368 * @param subevent_code 2369 * @param acl_handle 2370 * @param status 2371 * @param bnip_type 2372 * @param bnip_number 2373 */ 2374 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19u 2375 2376 /** 2377 * @format 1HT 2378 * @param subevent_code 2379 * @param acl_handle 2380 * @param value 2381 */ 2382 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1Au 2383 2384 /** 2385 * @format 1HT 2386 * @param subevent_code 2387 * @param acl_handle 2388 * @param command 2389 */ 2390 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1Bu 2391 2392 /** 2393 * @format 1HT 2394 * @param subevent_code 2395 * @param acl_handle 2396 * @param command 2397 */ 2398 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1Cu 2399 2400 /** 2401 * @format 1H1 2402 * @param subevent_code 2403 * @param acl_handle 2404 * @param status 2405 */ 2406 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1Du 2407 2408 /** 2409 * @format 1H11 2410 * @param subevent_code 2411 * @param acl_handle 2412 * @param status 0-success 2413 * @param enhanced 0-legacy, 1-enhanced 2414 */ 2415 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1Eu 2416 2417 /** 2418 * @format 1H1 2419 * @param subevent_code 2420 * @param acl_handle 2421 * @param status 0-success 2422 */ 2423 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1Fu 2424 2425 /** 2426 * @format 1H1 2427 * @param subevent_code 2428 * @param acl_handle 2429 * @param status 2430 */ 2431 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20u 2432 2433 2434 /** 2435 * @format 1H1 2436 * @param subevent_code 2437 * @param acl_handle 2438 * @param status 2439 */ 2440 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21u 2441 2442 /** 2443 * @format 1H1 2444 * @param subevent_code 2445 * @param acl_handle 2446 * @param status 2447 */ 2448 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22u 2449 2450 /** 2451 * @format 1H1 2452 * @param subevent_code 2453 * @param acl_handle 2454 * @param status 2455 */ 2456 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23u 2457 2458 /** 2459 * @format 1H1 2460 * @param subevent_code 2461 * @param acl_handle 2462 * @param status 2463 */ 2464 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24u 2465 2466 2467 /** 2468 * @format 1H211LV 2469 * @param subevent_code 2470 * @param acl_handle 2471 * @param text_id 2472 * @param text_type 2473 * @param text_operation 2474 * @param text_length 2475 * @param text 2476 */ 2477 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25u 2478 2479 /** 2480 * @format 1H1 2481 * @param subevent_code 2482 * @param acl_handle 2483 * @param status 2484 */ 2485 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26u 2486 2487 /** 2488 * @format 1H21 2489 * @param subevent_code 2490 * @param acl_handle 2491 * @param uuid 2492 * @param value 2493 */ 2494 #define HFP_SUBEVENT_HF_INDICATOR 0x27u 2495 2496 /** 2497 * @format 1H2T 2498 * @param subevent_code 2499 * @param acl_handle 2500 * @param command_id 2501 * @param command_string 2502 */ 2503 #define HFP_SUBEVENT_CUSTOM_AT_COMMAND 0x28u 2504 2505 /** 2506 * @format 1H1 2507 * @param subevent_code 2508 * @param acl_handle 2509 * @param status 0 == OK 2510 */ 2511 #define HFP_SUBEVENT_CUSTOM_AT_MESSAGE_SENT 0x29u 2512 2513 /** 2514 * @format 1H1 2515 * @param subevent_code 2516 * @param acl_handle 2517 * @param supported 2518 */ 2519 #define HFP_SUBEVENT_APPLE_EXTENSION_SUPPORTED 0x2Au 2520 2521 /** 2522 * @format 1H221JV 2523 * @param subevent_code 2524 * @param acl_handle 2525 * @param vendor_id 2526 * @param product_id 2527 * @param features 2528 * @param version_len 2529 * @param version 2530 */ 2531 #define HFP_SUBEVENT_APPLE_ACCESSORY_INFORMATION 0x2Bu 2532 2533 /** 2534 * @format 1H1 2535 * @param subevent_code 2536 * @param acl_handle 2537 * @param battery_level range:0..9 2538 */ 2539 #define HFP_SUBEVENT_APPLE_BATTERY_LEVEL 0x2Cu 2540 2541 /** 2542 * @format 1H1 2543 * @param subevent_code 2544 * @param acl_handle 2545 * @param docket 0 = undocked, 1 = docked 2546 */ 2547 #define HFP_SUBEVENT_APPLE_DOCKED_STATE 0x2Du 2548 2549 2550 // ANCS Client 2551 2552 /** 2553 * @format 1H 2554 * @param subevent_code 2555 * @param handle 2556 */ 2557 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0u 2558 2559 /** 2560 * @format 1H2T 2561 * @param subevent_code 2562 * @param handle 2563 * @param attribute_id 2564 * @param text 2565 */ 2566 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1u 2567 2568 /** 2569 * @format 1H 2570 * @param subevent_code 2571 * @param handle 2572 */ 2573 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2u 2574 2575 2576 /** AVDTP Subevent */ 2577 2578 /** 2579 * @format 12111 2580 * @param subevent_code 2581 * @param avdtp_cid 2582 * @param local_seid 2583 * @param is_initiator 2584 * @param signal_identifier 2585 */ 2586 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01u 2587 2588 /** 2589 * @format 12111 2590 * @param subevent_code 2591 * @param avdtp_cid 2592 * @param local_seid 2593 * @param is_initiator 2594 * @param signal_identifier 2595 */ 2596 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02u 2597 2598 /** 2599 * @format 12111 2600 * @param subevent_code 2601 * @param avdtp_cid 2602 * @param local_seid 2603 * @param is_initiator 2604 * @param signal_identifier 2605 */ 2606 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03u 2607 2608 /** 2609 * @format 12B21 2610 * @param subevent_code 2611 * @param avdtp_cid 2612 * @param bd_addr 2613 * @param con_handle 2614 * @param status 0 == OK 2615 */ 2616 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04u 2617 2618 /** 2619 * @format 12 2620 * @param subevent_code 2621 * @param avdtp_cid 2622 */ 2623 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05u 2624 2625 /** 2626 * @format 121111 2627 * @param subevent_code 2628 * @param avdtp_cid 2629 * @param remote_seid 0x01u – 0x3Eu 2630 * @param in_use 0-not in use, 1-in use 2631 * @param media_type 0-audio, 1-video, 2-multimedia 2632 * @param sep_type 0-source, 1-sink 2633 */ 2634 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06u 2635 2636 /** 2637 * @format 12111111111 2638 * @param subevent_code 2639 * @param avdtp_cid 2640 * @param remote_seid 2641 * @param media_type 2642 * @param sampling_frequency_bitmap 2643 * @param channel_mode_bitmap 2644 * @param block_length_bitmap 2645 * @param subbands_bitmap 2646 * @param allocation_method_bitmap 2647 * @param min_bitpool_value 2648 * @param max_bitpool_value 2649 */ 2650 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07u 2651 2652 /** 2653 * @format 12111111112 2654 * @param subevent_code 2655 * @param avdtp_cid 2656 * @param remote_seid 2657 * @param media_type 2658 * @param layer_bitmap 2659 * @param crc 2660 * @param channel_mode_bitmap 2661 * @param media_payload_format 2662 * @param sampling_frequency_bitmap 2663 * @param vbr 2664 * @param bit_rate_index_bitmap 2665 */ 2666 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08u 2667 2668 /** 2669 * @format 121112131 2670 * @param subevent_code 2671 * @param avdtp_cid 2672 * @param remote_seid 2673 * @param media_type 2674 * @param object_type_bitmap 2675 * @param sampling_frequency_bitmap 2676 * @param channels_bitmap 2677 * @param bit_rate 2678 * @param vbr 2679 */ 2680 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09u 2681 2682 /** 2683 * @format 1211111132 2684 * @param subevent_code 2685 * @param avdtp_cid 2686 * @param remote_seid 2687 * @param media_type 2688 * @param version 2689 * @param channel_mode_bitmap 2690 * @param sampling_frequency_bitmap 2691 * @param vbr 2692 * @param bit_rate_index_bitmap 2693 * @param maximum_sul 2694 */ 2695 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0Au 2696 2697 /** 2698 * @format 12112LV 2699 * @param subevent_code 2700 * @param avdtp_cid 2701 * @param remote_seid 2702 * @param media_type 2703 * @param media_codec_type 2704 * @param media_codec_information_len 2705 * @param media_codec_information 2706 */ 2707 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0Bu 2708 2709 2710 /** 2711 * @format 121 2712 * @param subevent_code 2713 * @param avdtp_cid 2714 * @param remote_seid 2715 */ 2716 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0Cu 2717 2718 2719 /** 2720 * @format 121 2721 * @param subevent_code 2722 * @param avdtp_cid 2723 * @param remote_seid 2724 */ 2725 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0Du 2726 2727 2728 /** 2729 * @format 121111 2730 * @param subevent_code 2731 * @param avdtp_cid 2732 * @param remote_seid 2733 * @param recovery_type 2734 * @param maximum_recovery_window_size 2735 * @param maximum_number_media_packets 2736 */ 2737 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0Eu 2738 2739 2740 /** 2741 * @format 1212LV 2742 * @param subevent_code 2743 * @param avdtp_cid 2744 * @param remote_seid 2745 * @param cp_type 2746 * @param cp_type_value_len 2747 * @param cp_type_value 2748 */ 2749 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0Fu 2750 2751 2752 /** 2753 * @format 12111111111 2754 * @param subevent_code 2755 * @param avdtp_cid 2756 * @param remote_seid 2757 * @param fragmentation 2758 * @param transport_identifiers_num 2759 * @param transport_session_identifier_1 2760 * @param transport_session_identifier_2 2761 * @param transport_session_identifier_3 2762 * @param tcid_1 2763 * @param tcid_2 2764 * @param tcid_3 2765 */ 2766 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10u 2767 2768 2769 /** 2770 * @format 121 2771 * @param subevent_code 2772 * @param avdtp_cid 2773 * @param remote_seid 2774 */ 2775 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11u 2776 2777 2778 /** 2779 * @format 121111 2780 * @param subevent_code 2781 * @param avdtp_cid 2782 * @param remote_seid 2783 * @param back_ch 2784 * @param media 2785 * @param recovery 2786 */ 2787 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12u 2788 2789 /** 2790 * @format 121 2791 * @param subevent_code 2792 * @param avdtp_cid 2793 * @param remote_seid 2794 */ 2795 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13u 2796 2797 2798 /** 2799 * @format 12111121111111 2800 * @param subevent_code 2801 * @param avdtp_cid 2802 * @param local_seid 2803 * @param remote_seid 2804 * @param reconfigure 2805 * @param media_type 2806 * @param sampling_frequency 2807 * @param channel_mode 2808 * @param num_channels 2809 * @param block_length 2810 * @param subbands 2811 * @param allocation_method 2812 * @param min_bitpool_value 2813 * @param max_bitpool_value 2814 */ 2815 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14u 2816 2817 /** 2818 * @format 12111111111211 2819 * @param subevent_code 2820 * @param avdtp_cid 2821 * @param local_seid 2822 * @param remote_seid 2823 * @param reconfigure 2824 * @param media_type 2825 * @param layer 2826 * @param crc 2827 * @param channel_mode 2828 * @param num_channels 2829 * @param media_payload_format 2830 * @param sampling_frequency 2831 * @param vbr 2832 * @param bit_rate_index 2833 */ 2834 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15u 2835 2836 /** 2837 * @format 12111113131 2838 * @param subevent_code 2839 * @param avdtp_cid 2840 * @param local_seid 2841 * @param remote_seid 2842 * @param reconfigure 2843 * @param media_type 2844 * @param object_type 2845 * @param sampling_frequency 2846 * @param num_channels 2847 * @param bit_rate 2848 * @param vbr 2849 */ 2850 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16u 2851 2852 /** 2853 * @format 1211111112112 2854 * @param subevent_code 2855 * @param avdtp_cid 2856 * @param local_seid 2857 * @param remote_seid 2858 * @param reconfigure 2859 * @param media_type 2860 * @param version 2861 * @param channel_mode 2862 * @param num_channels 2863 * @param sampling_frequency 2864 * @param vbr 2865 * @param bit_rate_index 2866 * @param maximum_sul 2867 */ 2868 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17u 2869 2870 /** 2871 * @format 1211112LV 2872 * @param subevent_code 2873 * @param avdtp_cid 2874 * @param local_seid 2875 * @param remote_seid 2876 * @param reconfigure 2877 * @param media_type 2878 * @param media_codec_type 2879 * @param media_codec_information_len 2880 * @param media_codec_information 2881 */ 2882 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18u 2883 2884 /** 2885 * @format 12B111 2886 * @param subevent_code 2887 * @param avdtp_cid 2888 * @param bd_addr 2889 * @param local_seid 2890 * @param remote_seid 2891 * @param status 0 == OK 2892 */ 2893 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19u 2894 2895 /** 2896 * @format 121 2897 * @param subevent_code 2898 * @param avdtp_cid 2899 * @param local_seid 2900 */ 2901 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1Au 2902 2903 /** 2904 * @format 1212 2905 * @param subevent_code 2906 * @param avdtp_cid 2907 * @param local_seid 2908 * @param sequence_number 2909 */ 2910 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1Bu 2911 2912 2913 /** 2914 * @format 12 2915 * @param subevent_code 2916 * @param avdtp_cid 2917 */ 2918 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1Cu 2919 2920 /** 2921 * @format 1212 2922 * @param subevent_code 2923 * @param avdtp_cid 2924 * @param local_seid 2925 * @param delay_100us 2926 */ 2927 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1Du 2928 2929 2930 /** A2DP Subevent */ 2931 /* Stream goes through following states: 2932 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2933 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2934 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2935 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2936 2937 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2938 START can come only after the stream is OPENED, and indicates that media transfer is started. 2939 SUSPEND is optional, it pauses the stream. 2940 */ 2941 2942 /** 2943 * @format 121 Sent only by A2DP source. 2944 * @param subevent_code 2945 * @param a2dp_cid 2946 * @param local_seid 2947 */ 2948 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01u 2949 2950 /** 2951 * @format 12111121111111 2952 * @param subevent_code 2953 * @param a2dp_cid 2954 * @param local_seid 2955 * @param remote_seid 2956 * @param reconfigure 2957 * @param media_type 2958 * @param sampling_frequency 2959 * @param channel_mode 2960 * @param num_channels 2961 * @param block_length 2962 * @param subbands 2963 * @param allocation_method 2964 * @param min_bitpool_value 2965 * @param max_bitpool_value 2966 */ 2967 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02u 2968 2969 /** 2970 * @format 12111111111211 2971 * @param subevent_code 2972 * @param a2dp_cid 2973 * @param local_seid 2974 * @param remote_seid 2975 * @param reconfigure 2976 * @param media_type 2977 * @param layer 2978 * @param crc 2979 * @param channel_mode 2980 * @param num_channels 2981 * @param media_payload_format 2982 * @param sampling_frequency 2983 * @param vbr 2984 * @param bit_rate_index 2985 */ 2986 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03u 2987 2988 /** 2989 * @format 12111113131 2990 * @param subevent_code 2991 * @param a2dp_cid 2992 * @param local_seid 2993 * @param remote_seid 2994 * @param reconfigure 2995 * @param media_type 2996 * @param object_type 2997 * @param sampling_frequency 2998 * @param num_channels 2999 * @param bit_rate 3000 * @param vbr 3001 */ 3002 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04u 3003 3004 /** 3005 * @format 1211111112112 3006 * @param subevent_code 3007 * @param a2dp_cid 3008 * @param local_seid 3009 * @param remote_seid 3010 * @param reconfigure 3011 * @param media_type 3012 * @param version 3013 * @param channel_mode 3014 * @param num_channels 3015 * @param sampling_frequency 3016 * @param vbr 3017 * @param bit_rate_index 3018 * @param maximum_sul 3019 */ 3020 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05u 3021 3022 /** 3023 * @format 1211112LV 3024 * @param subevent_code 3025 * @param a2dp_cid 3026 * @param local_seid 3027 * @param remote_seid 3028 * @param reconfigure 3029 * @param media_type 3030 * @param media_codec_type 3031 * @param media_codec_information_len 3032 * @param media_codec_information 3033 */ 3034 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06u 3035 3036 /** 3037 * @format 12B111 Stream is opened but not started. 3038 * @param subevent_code 3039 * @param a2dp_cid 3040 * @param bd_addr 3041 * @param local_seid 3042 * @param remote_seid 3043 * @param status 3044 */ 3045 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07u 3046 3047 /** 3048 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 3049 * @param subevent_code 3050 * @param a2dp_cid 3051 * @param local_seid 3052 */ 3053 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08u 3054 3055 /** 3056 * @format 121 Indicates that media transfer is started. 3057 * @param subevent_code 3058 * @param a2dp_cid 3059 * @param local_seid 3060 */ 3061 #define A2DP_SUBEVENT_STREAM_STARTED 0x09u 3062 3063 /** 3064 * @format 121 Stream is paused. 3065 * @param subevent_code 3066 * @param a2dp_cid 3067 * @param local_seid 3068 */ 3069 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0Au 3070 3071 /** 3072 * @format 121 Stream is stopped or aborted. 3073 * @param subevent_code 3074 * @param a2dp_cid 3075 * @param local_seid 3076 */ 3077 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0Bu 3078 3079 /** 3080 * @format 121 Stream is released. 3081 * @param subevent_code 3082 * @param a2dp_cid 3083 * @param local_seid 3084 */ 3085 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0Cu 3086 3087 /** 3088 * @format 1211 3089 * @param subevent_code 3090 * @param a2dp_cid 3091 * @param local_seid 3092 * @param signal_identifier 3093 */ 3094 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0Du 3095 3096 /** 3097 * @format 12111 3098 * @param subevent_code 3099 * @param a2dp_cid 3100 * @param local_seid 3101 * @param is_initiator 3102 * @param signal_identifier 3103 */ 3104 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0Eu 3105 3106 /** 3107 * @format 12B21 3108 * @param subevent_code 3109 * @param a2dp_cid 3110 * @param bd_addr 3111 * @param con_handle 3112 * @param status 0 == OK 3113 */ 3114 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0Fu 3115 3116 /** 3117 * @format 12 Signaling channel is released. 3118 * @param subevent_code 3119 * @param a2dp_cid 3120 */ 3121 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10u 3122 3123 /** 3124 * @format 1211 Stream was reconfigured 3125 * @param subevent_code 3126 * @param a2dp_cid 3127 * @param local_seid 3128 * @param status 3129 */ 3130 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12u 3131 3132 /** 3133 * @format 12111111111 3134 * @param subevent_code 3135 * @param a2dp_cid 3136 * @param remote_seid 3137 * @param media_type 3138 * @param sampling_frequency_bitmap 3139 * @param channel_mode_bitmap 3140 * @param block_length_bitmap 3141 * @param subbands_bitmap 3142 * @param allocation_method_bitmap 3143 * @param min_bitpool_value 3144 * @param max_bitpool_value 3145 */ 3146 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13u 3147 3148 /** 3149 * @format 12111111112 3150 * @param subevent_code 3151 * @param a2dp_cid 3152 * @param remote_seid 3153 * @param media_type 3154 * @param layer_bitmap 3155 * @param crc 3156 * @param channel_mode_bitmap 3157 * @param media_payload_format 3158 * @param sampling_frequency_bitmap 3159 * @param vbr 3160 * @param bit_rate_index_bitmap 3161 */ 3162 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14u 3163 3164 /** 3165 * @format 121112131 3166 * @param subevent_code 3167 * @param a2dp_cid 3168 * @param remote_seid 3169 * @param media_type 3170 * @param object_type_bitmap 3171 * @param sampling_frequency_bitmap 3172 * @param channels_bitmap 3173 * @param bit_rate 3174 * @param vbr 3175 */ 3176 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15u 3177 3178 /** 3179 * @format 1211111132 3180 * @param subevent_code 3181 * @param a2dp_cid 3182 * @param remote_seid 3183 * @param media_type 3184 * @param version 3185 * @param channel_mode_bitmap 3186 * @param sampling_frequency_bitmap 3187 * @param vbr 3188 * @param bit_rate_index_bitmap 3189 * @param maximum_sul 3190 */ 3191 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16u 3192 3193 /** 3194 * @format 12112LV 3195 * @param subevent_code 3196 * @param a2dp_cid 3197 * @param remote_seid 3198 * @param media_type 3199 * @param media_codec_type 3200 * @param media_codec_information_len 3201 * @param media_codec_information 3202 */ 3203 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17u 3204 3205 /** 3206 * @format 121 3207 * @param subevent_code 3208 * @param a2dp_cid 3209 * @param remote_seid 3210 */ 3211 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18u 3212 3213 3214 /** 3215 * @format 1212 3216 * @param subevent_code 3217 * @param a2dp_cid 3218 * @param local_seid 3219 * @param delay_100us 3220 */ 3221 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19u 3222 3223 /** 3224 * @format 121 3225 * @param subevent_code 3226 * @param a2dp_cid 3227 * @param remote_seid 3228 */ 3229 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1Au 3230 3231 /** 3232 * @format 12 3233 * @param subevent_code 3234 * @param a2dp_cid 3235 */ 3236 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1Bu 3237 3238 3239 /** AVRCP Subevent */ 3240 3241 /** 3242 * @format 1211 3243 * @param subevent_code 3244 * @param avrcp_cid 3245 * @param command_type 3246 * @param play_status 3247 */ 3248 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01u 3249 3250 /** 3251 * @format 121 3252 * @param subevent_code 3253 * @param avrcp_cid 3254 * @param command_type 3255 */ 3256 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02u 3257 3258 /** 3259 * @format 121 3260 * @param subevent_code 3261 * @param avrcp_cid 3262 * @param command_type 3263 */ 3264 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03u 3265 3266 /** 3267 * @format 121 3268 * @param subevent_code 3269 * @param avrcp_cid 3270 * @param command_type 3271 */ 3272 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04u 3273 3274 /** 3275 * @format 1214 3276 * @param subevent_code 3277 * @param avrcp_cid 3278 * @param command_type 3279 * @param playback_position If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response. 3280 */ 3281 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05u 3282 3283 /** 3284 * @format 1211 3285 * @param subevent_code 3286 * @param avrcp_cid 3287 * @param command_type 3288 * @param battery_status see avrcp_battery_status_t 3289 */ 3290 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06u 3291 3292 /** 3293 * @format 1211 3294 * @param subevent_code 3295 * @param avrcp_cid 3296 * @param command_type 3297 * @param system_status see avrcp_system_status_t 3298 */ 3299 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07u 3300 3301 3302 // Recquires 1 byte for num_attributes, followed by num_attributes tuples [attribute_id(1), value_id(1)], see avrcp_player_application_setting_attribute_id_t 3303 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08u 3304 3305 /** 3306 * @format 121 3307 * @param subevent_code 3308 * @param avrcp_cid 3309 * @param command_type 3310 */ 3311 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09u 3312 3313 /** 3314 * @format 121 3315 * @param subevent_code 3316 * @param avrcp_cid 3317 * @param command_type 3318 */ 3319 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0Au 3320 3321 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu, -- The Addressed Player has been changed, see 6.9.2. 3322 3323 /** 3324 * @format 1212 3325 * @param subevent_code 3326 * @param avrcp_cid 3327 * @param command_type 3328 * @param uid_counter of the currently browsed player 3329 */ 3330 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0Cu 3331 3332 /** 3333 * @format 1211 3334 * @param subevent_code 3335 * @param avrcp_cid 3336 * @param command_type 3337 * @param absolute_volume 3338 */ 3339 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0Du 3340 3341 3342 /** 3343 * @format 1211 3344 * @param subevent_code 3345 * @param avrcp_cid 3346 * @param command_type 3347 * @param absolute_volume 3348 */ 3349 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10u 3350 3351 /** 3352 * @format 12111 3353 * @param subevent_code 3354 * @param avrcp_cid 3355 * @param status 3356 * @param enabled 1 enabled, 0 disabled 3357 * @param event_id 3358 */ 3359 #define AVRCP_SUBEVENT_NOTIFICATION_STATE 0x11u 3360 3361 /** 3362 * @format 112B2 3363 * @param subevent_code 3364 * @param status 0 == OK 3365 * @param avrcp_cid 3366 * @param bd_addr 3367 * @param con_handle 3368 */ 3369 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12u 3370 3371 /** 3372 * @format 12 3373 * @param subevent_code 3374 * @param avrcp_cid 3375 */ 3376 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13u 3377 3378 /** 3379 * @format 12111 3380 * @param subevent_code 3381 * @param avrcp_cid 3382 * @param command_type 3383 * @param repeat_mode 3384 * @param shuffle_mode 3385 */ 3386 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14u 3387 3388 /** 3389 * @format 121441 3390 * @param subevent_code 3391 * @param avrcp_cid 3392 * @param command_type 3393 * @param song_length 3394 * @param song_position 3395 * @param play_status 3396 */ 3397 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15u 3398 3399 /** 3400 * @format 1211 3401 * @param subevent_code 3402 * @param avrcp_cid 3403 * @param command_type 3404 * @param operation_id 3405 */ 3406 #define AVRCP_SUBEVENT_OPERATION_START 0x16u 3407 3408 /** 3409 * @format 1211 3410 * @param subevent_code 3411 * @param avrcp_cid 3412 * @param command_type 3413 * @param operation_id 3414 */ 3415 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17u 3416 3417 /** 3418 * @format 121 3419 * @param subevent_code 3420 * @param avrcp_cid 3421 * @param command_type 3422 */ 3423 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18u 3424 3425 /** 3426 * @format 12 3427 * @param subevent_code 3428 * @param avrcp_cid 3429 */ 3430 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x19u 3431 3432 /** 3433 * @format 121111 3434 * @param subevent_code 3435 * @param avrcp_cid 3436 * @param operation_id 3437 * @param button_pressed 3438 * @param operands_length 3439 * @param operand 3440 */ 3441 #define AVRCP_SUBEVENT_OPERATION 0x1Au 3442 3443 /** 3444 * @format 1211 3445 * @param subevent_code 3446 * @param avrcp_cid 3447 * @param command_type 3448 * @param track 3449 */ 3450 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1Bu 3451 3452 /** 3453 * @format 1211 3454 * @param subevent_code 3455 * @param avrcp_cid 3456 * @param command_type 3457 * @param total_tracks 3458 */ 3459 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1Cu 3460 3461 /** 3462 * @format 1214 3463 * @param subevent_code 3464 * @param avrcp_cid 3465 * @param command_type 3466 * @param song_length in ms 3467 */ 3468 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1Du 3469 3470 /** 3471 * @format 121JV 3472 * @param subevent_code 3473 * @param avrcp_cid 3474 * @param command_type 3475 * @param value_len 3476 * @param value 3477 */ 3478 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x1Eu 3479 3480 /* 3481 * @format 121JV 3482 * @param subevent_code 3483 * @param avrcp_cid 3484 * @param command_type 3485 * @param value_len 3486 * @param value 3487 */ 3488 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x1Fu 3489 3490 /* 3491 * @format 121JV 3492 * @param subevent_code 3493 * @param avrcp_cid 3494 * @param command_type 3495 * @param value_len 3496 * @param value 3497 */ 3498 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x20u 3499 3500 /* 3501 * @format 121JV 3502 * @param subevent_code 3503 * @param avrcp_cid 3504 * @param command_type 3505 * @param value_len 3506 * @param value 3507 */ 3508 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u 3509 3510 /* 3511 * @format 121JV 3512 * @param subevent_code 3513 * @param avrcp_cid 3514 * @param command_type 3515 * @param value_len 3516 * @param value 3517 */ 3518 #define AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO 0x22u 3519 3520 /* 3521 * @format 1211 3522 * @param subevent_code 3523 * @param avrcp_cid 3524 * @param command_type 3525 * @param status 3526 */ 3527 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x23u 3528 3529 /** 3530 * @format 1214 3531 * @param subevent_code 3532 * @param avrcp_cid 3533 * @param command_type 3534 * @param playback_position_ms 3535 */ 3536 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x24u 3537 3538 /* 3539 * @format 12111 3540 * @param subevent_code 3541 * @param avrcp_cid 3542 * @param command_type 3543 * @param status 3544 * @param event_id 3545 */ 3546 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x25u 3547 /* 3548 * @format 1211 3549 * @param subevent_code 3550 * @param avrcp_cid 3551 * @param command_type 3552 * @param status 3553 */ 3554 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x26u 3555 3556 /* 3557 * @format 12113 3558 * @param subevent_code 3559 * @param avrcp_cid 3560 * @param command_type 3561 * @param status 3562 * @param company_id 3563 */ 3564 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x27u 3565 /* 3566 * @format 1211 3567 * @param subevent_code 3568 * @param avrcp_cid 3569 * @param command_type 3570 * @param status 3571 */ 3572 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x28u 3573 3574 /** 3575 * @format 1211LV 3576 * @param subevent_code 3577 * @param avrcp_cid 3578 * @param command_type 3579 * @param pdu_id 3580 * @param params_len 3581 * @param params 3582 */ 3583 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x29u 3584 3585 3586 /** 3587 * @format 1B2 3588 * @param subevent_code 3589 * @param bd_addr 3590 * @param browsing_cid 3591 */ 3592 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30u 3593 3594 /** 3595 * @format 11B2 3596 * @param subevent_code 3597 * @param status 0 == OK 3598 * @param bd_addr 3599 * @param browsing_cid 3600 */ 3601 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31u 3602 3603 /** 3604 * @format 12 3605 * @param subevent_code 3606 * @param browsing_cid 3607 */ 3608 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32u 3609 3610 /** 3611 * @format 12211 3612 * @param subevent_code 3613 * @param browsing_cid 3614 * @param uid_counter 3615 * @param browsing_status 3616 * @param bluetooth_status 3617 */ 3618 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33u 3619 3620 /** 3621 * @format 121444 3622 * @param subevent_code 3623 * @param browsing_cid 3624 * @param scope 3625 * @param start_item 3626 * @param end_item 3627 * @param attr_bitmap 3628 */ 3629 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34u 3630 3631 /** 3632 * @format 121 3633 * @param subevent_code 3634 * @param browsing_cid 3635 * @param scope 3636 */ 3637 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35u 3638 3639 /** 3640 * @format 122 3641 * @param subevent_code 3642 * @param browsing_cid 3643 * @param player_id 3644 */ 3645 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u 3646 3647 /** 3648 * @format 11B22 3649 * @param subevent_code 3650 * @param status 0 == OK 3651 * @param bd_addr 3652 * @param avrcp_cid 3653 * @param cover_art_cid 3654 */ 3655 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED 0x37u 3656 3657 /** 3658 * @format 121 3659 * @param subevent_code 3660 * @param cover_art_cid 3661 * @param status 3662 */ 3663 #define AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE 0x38u 3664 3665 /** 3666 * @format 12 3667 * @param subevent_code 3668 * @param cover_art_cid 3669 */ 3670 #define AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED 0x39u 3671 3672 /** 3673 * @format 12BH 3674 * @param subevent_code 3675 * @param goep_cid 3676 * @param address 3677 * @param handle 3678 */ 3679 #define GOEP_SUBEVENT_INCOMING_CONNECTION 0x01u 3680 3681 /** 3682 * @format 121BH1 3683 * @param subevent_code 3684 * @param goep_cid 3685 * @param status 3686 * @param bd_addr 3687 * @param con_handle 3688 * @param incoming 3689 */ 3690 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x02u 3691 3692 /** 3693 * @format 12 3694 * @param subevent_code 3695 * @param goep_cid 3696 */ 3697 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x03u 3698 3699 /** 3700 * @format 12 3701 * @param subevent_code 3702 * @param goep_cid 3703 */ 3704 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x04u 3705 3706 /** 3707 * @format 121BH1 3708 * @param subevent_code 3709 * @param pbap_cid 3710 * @param status 3711 * @param bd_addr 3712 * @param con_handle 3713 * @param incoming 3714 */ 3715 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01u 3716 3717 /** 3718 * @format 12 3719 * @param subevent_code 3720 * @param goep_cid 3721 */ 3722 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02u 3723 3724 /** 3725 * @format 121 3726 * @param subevent_code 3727 * @param goep_cid 3728 * @param status 3729 */ 3730 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03u 3731 3732 /** 3733 * @format 1212 3734 * @param subevent_code 3735 * @param goep_cid 3736 * @param status 3737 * @param phonebook_size 3738 */ 3739 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04u 3740 3741 /** 3742 * @format 1211 3743 * @param subevent_code 3744 * @param goep_cid 3745 * @param user_id_required 3746 * @param full_access 3747 */ 3748 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05u 3749 3750 /** 3751 * @format 12JVJV 3752 * @param subevent_code 3753 * @param goep_cid 3754 * @param name_len 3755 * @param name 3756 * @param handle_len 3757 * @param handle 3758 */ 3759 #define PBAP_SUBEVENT_CARD_RESULT 0x06u 3760 3761 /** 3762 * @format 121 3763 * @param subevent_code 3764 * @param goep_cid 3765 * @param phonebook 3766 */ 3767 #define PBAP_SUBEVENT_RESET_MISSED_CALLS 0x0Au 3768 3769 /** 3770 * @format 12411 3771 * @param subevent_code 3772 * @param goep_cid 3773 * @param vcard_selector 3774 * @param vcard_selector_operator 3775 * @param phonebook 3776 */ 3777 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE 0x0Bu 3778 3779 /** 3780 * @format 1244122411 3781 * @param subevent_code 3782 * @param goep_cid 3783 * @param continuation - value provided by caller of pbap_server_send_pull_response 3784 * @param property_selector 3785 * @param format 3786 * @param max_list_count 0xffff for unlimited 3787 * @param list_start_offset 3788 * @param vcard_selector 3789 * @param vcard_selector_operator 3790 * @param phonebook 3791 */ 3792 #define PBAP_SUBEVENT_PULL_PHONEBOOK 0x0Cu 3793 3794 /** 3795 * @format 124122411JV1 3796 * @param subevent_code 3797 * @param goep_cid 3798 * @param continuation - value provided by caller of pbap_server_send_pull_response 3799 * @param order 3800 * @param max_list_count 0xffff for unlimited 3801 * @param list_start_offset 3802 * @param vcard_selector 3803 * @param vcard_selector_operator 3804 * @param search_property 3805 * @param search_value_len 3806 * @param search_value 3807 * @param phonebook 3808 */ 3809 #define PBAP_SUBEVENT_PULL_VCARD_LISTING 0x0Du 3810 3811 /** 3812 * @format 124411T 3813 * @param subevent_code 3814 * @param goep_cid 3815 * @param continuation - value provided by caller of pbap_server_send_pull_response 3816 * @param property_selector 3817 * @param format 3818 * @param phonebook 3819 * @param name 3820 */ 3821 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY 0x0Eu 3822 3823 3824 // HID Meta Event Group 3825 3826 /** 3827 * @format 12BH 3828 * @param subevent_code 3829 * @param hid_cid 3830 * @param address 3831 * @param handle 3832 */ 3833 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01u 3834 3835 /** 3836 * @format 121BH1 3837 * @param subevent_code 3838 * @param hid_cid 3839 * @param status 3840 * @param bd_addr 3841 * @param con_handle 3842 * @param incoming 3843 */ 3844 #define HID_SUBEVENT_CONNECTION_OPENED 0x02u 3845 3846 /** 3847 * @format 12 3848 * @param subevent_code 3849 * @param hid_cid 3850 */ 3851 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03u 3852 3853 /** 3854 * @format 12 3855 * @param subevent_code 3856 * @param hid_cid 3857 */ 3858 #define HID_SUBEVENT_CAN_SEND_NOW 0x04u 3859 3860 /** 3861 * @format 12 3862 * @param subevent_code 3863 * @param hid_cid 3864 */ 3865 #define HID_SUBEVENT_SUSPEND 0x05u 3866 3867 /** 3868 * @format 12 3869 * @param subevent_code 3870 * @param hid_cid 3871 */ 3872 #define HID_SUBEVENT_EXIT_SUSPEND 0x06u 3873 3874 /** 3875 * @format 12 3876 * @param subevent_code 3877 * @param hid_cid 3878 */ 3879 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07u 3880 3881 /** 3882 * @format 121LV 3883 * @param subevent_code 3884 * @param hid_cid 3885 * @param handshake_status 3886 * @param report_len 3887 * @param report 3888 */ 3889 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08u 3890 3891 /** 3892 * @format 121 3893 * @param subevent_code 3894 * @param hid_cid 3895 * @param handshake_status 3896 */ 3897 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09u 3898 3899 /** 3900 * @format 1211 3901 * @param subevent_code 3902 * @param hid_cid 3903 * @param handshake_status 3904 * @param protocol_mode 3905 */ 3906 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0Au 3907 3908 /** 3909 * @format 1211 3910 * @param subevent_code 3911 * @param hid_cid 3912 * @param handshake_status 3913 * @param protocol_mode 3914 */ 3915 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0Bu 3916 3917 /** 3918 * @format 12LV 3919 * @param subevent_code 3920 * @param hid_cid 3921 * @param report_len 3922 * @param report 3923 */ 3924 #define HID_SUBEVENT_REPORT 0x0Cu 3925 3926 /** 3927 * @format 121 3928 * @param subevent_code 3929 * @param hid_cid 3930 * @param status 3931 */ 3932 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0Du 3933 3934 /** 3935 * @format 1222 3936 * @param subevent_code 3937 * @param hid_cid 3938 * @param host_max_latency 3939 * @param host_min_timeout 3940 */ 3941 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0Eu 3942 3943 // HIDS Meta Event Group 3944 3945 /** 3946 * @format 12 3947 * @param subevent_code 3948 * @param con_handle 3949 */ 3950 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01u 3951 3952 /** 3953 * @format 121 3954 * @param subevent_code 3955 * @param con_handle 3956 * @param protocol_mode 3957 */ 3958 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02u 3959 3960 /** 3961 * @format 121 3962 * @param subevent_code 3963 * @param con_handle 3964 * @param enable 3965 */ 3966 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03u 3967 3968 /** 3969 * @format 121 3970 * @param subevent_code 3971 * @param con_handle 3972 * @param enable 3973 */ 3974 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04u 3975 3976 /** 3977 * @format 1211 3978 * @param subevent_code 3979 * @param con_handle 3980 * @param report_id 3981 * @param enable 3982 */ 3983 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05u 3984 3985 /** 3986 * @format 1211 3987 * @param subevent_code 3988 * @param con_handle 3989 * @param report_id 3990 * @param enable 3991 */ 3992 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06u 3993 3994 /** 3995 * @format 1211 3996 * @param subevent_code 3997 * @param con_handle 3998 * @param report_id 3999 * @param enable 4000 */ 4001 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07u 4002 4003 /** 4004 * @format 12 4005 * @param subevent_code 4006 * @param con_handle 4007 */ 4008 #define HIDS_SUBEVENT_SUSPEND 0x08u 4009 4010 /** 4011 * @format 12 4012 * @param subevent_code 4013 * @param con_handle 4014 */ 4015 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09u 4016 4017 /** 4018 * @format 1211JV 4019 * @param subevent_code 4020 * @param con_handle 4021 * @param report_id 4022 * @param report_type 4023 * @param report_length 4024 * @param report_data 4025 */ 4026 #define HIDS_SUBEVENT_SET_REPORT 0x0au 4027 4028 /** 4029 * @format 1211 4030 * @param subevent_code 4031 * @param con_handle 4032 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 4033 * @param is_enhanced 4034 */ 4035 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01u 4036 4037 /** 4038 * @format 12 4039 * @param subevent_code 4040 * @param con_handle 4041 */ 4042 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02u 4043 4044 /** 4045 * @format 12 4046 * @param subevent_code 4047 * @param con_handle 4048 */ 4049 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03u 4050 4051 /** 4052 * @format 12111 4053 * @param subevent_code 4054 * @param hids_cid 4055 * @param status 4056 * @param num_instances 4057 * @param poll_bitmap 4058 */ 4059 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04u 4060 4061 /** 4062 * @format 12111 4063 * @param subevent_code 4064 * @param hids_cid 4065 * @param service_index 4066 * @param att_status see ATT errors in bluetooth.h 4067 * @param level 4068 */ 4069 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05u 4070 4071 /** 4072 * @format 12 4073 * @param subevent_code 4074 * @param service_id 4075 */ 4076 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_START 0x06u 4077 4078 /** 4079 * @format 12 4080 * @param subevent_code 4081 * @param service_id 4082 */ 4083 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL_BROADCAST_STOP 0x07u 4084 4085 /** 4086 * @format 1H1 4087 * @param subevent_code 4088 * @param con_handle 4089 * @param att_status 4090 */ 4091 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x08u 4092 4093 /** 4094 * @format 1H1T 4095 * @param subevent_code 4096 * @param con_handle 4097 * @param att_status 4098 * @param value 4099 */ 4100 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x09u 4101 4102 /** 4103 * @format 1H1T 4104 * @param subevent_code 4105 * @param con_handle 4106 * @param att_status 4107 * @param value 4108 */ 4109 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x0Au 4110 4111 /** 4112 * @format 1H1T 4113 * @param subevent_code 4114 * @param con_handle 4115 * @param att_status 4116 * @param value 4117 */ 4118 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x0Bu 4119 4120 /** 4121 * @format 1H1T 4122 * @param subevent_code 4123 * @param con_handle 4124 * @param att_status 4125 * @param value 4126 */ 4127 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0Cu 4128 4129 /** 4130 * @format 1H1T 4131 * @param subevent_code 4132 * @param con_handle 4133 * @param att_status 4134 * @param value 4135 */ 4136 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0Du 4137 4138 /** 4139 * @format 1H1T 4140 * @param subevent_code 4141 * @param con_handle 4142 * @param att_status 4143 * @param value 4144 */ 4145 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0Eu 4146 4147 /** 4148 * @format 1H1413 4149 * @param subevent_code 4150 * @param con_handle 4151 * @param att_status 4152 * @param manufacturer_id_low 4153 * @param manufacturer_id_high 4154 * @param organizationally_unique_id 4155 */ 4156 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0Fu 4157 4158 /** 4159 * @format 1H122 4160 * @param subevent_code 4161 * @param con_handle 4162 * @param att_status 4163 * @param value_a 4164 * @param value_b 4165 */ 4166 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x10u 4167 4168 /** 4169 * @format 1H11222 4170 * @param subevent_code 4171 * @param con_handle 4172 * @param att_status 4173 * @param vendor_source_id 4174 * @param vendor_id 4175 * @param product_id 4176 * @param product_version 4177 */ 4178 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x11u 4179 4180 /** 4181 * @format 1H1TTTT 4182 * @param subevent_code 4183 * @param con_handle 4184 * @param att_status 4185 * @param label 4186 * @param device_id 4187 * @param issuer 4188 * @param authority 4189 */ 4190 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_UDI_FOR_MEDICAL_DEVICES 0x12u 4191 4192 /** 4193 * @format 1H1 4194 * @param subevent_code 4195 * @param con_handle 4196 * @param status 4197 */ 4198 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x13u 4199 4200 /** 4201 * @format 1H 4202 * @param subevent_code 4203 * @param con_handle 4204 */ 4205 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_DISCONNECTED 0x14u 4206 4207 /** 4208 * @format 1H 4209 * @param subevent_code 4210 * @param con_handle 4211 */ 4212 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x15u 4213 4214 /** 4215 * @format 1H 4216 * @param subevent_code 4217 * @param con_handle 4218 */ 4219 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x16u 4220 4221 /** 4222 * @format 12111 4223 * @param subevent_code 4224 * @param hids_cid 4225 * @param status 4226 * @param protocol_mode 4227 * @param num_instances 4228 */ 4229 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x17u 4230 4231 /** 4232 * @format 12 4233 * @param subevent_code 4234 * @param hids_cid 4235 */ 4236 #define GATTSERVICE_SUBEVENT_HID_SERVICE_DISCONNECTED 0x18u 4237 4238 /** 4239 * @format 1211LV 4240 * @param subevent_code 4241 * @param hids_cid 4242 * @param service_index 4243 * @param report_id 4244 * @param report_len 4245 * @param report 4246 */ 4247 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x19u 4248 4249 /** 4250 * @format 1212111 4251 * @param subevent_code 4252 * @param hids_cid 4253 * @param service_index 4254 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 4255 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 4256 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 4257 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 4258 */ 4259 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x1Au 4260 4261 /** 4262 * @format 1211 4263 * @param subevent_code 4264 * @param hids_cid 4265 * @param service_index 4266 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 4267 */ 4268 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x1Bu 4269 4270 /** 4271 * @format 121 4272 * @param subevent_code 4273 * @param hids_cid 4274 * @param configuration 4275 */ 4276 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x1Cu 4277 4278 /** 4279 * @format 1211 4280 * @param subevent_code 4281 * @param hids_cid 4282 * @param service_index 4283 * @param report_id 4284 */ 4285 #define GATTSERVICE_SUBEVENT_HID_REPORT_WRITTEN 0x1Du 4286 4287 /** 4288 * @format 1H22 4289 * @param subevent_code 4290 * @param con_handle 4291 * @param max_scan_interval 4292 * @param min_scan_window 4293 */ 4294 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x1Eu 4295 4296 /** 4297 * @format 1H22 4298 * @param subevent_code 4299 * @param con_handle 4300 * @param attribute_handle_start 4301 * @param attribute_handle_end 4302 */ 4303 #define GATTSERVICE_SUBEVENT_GATT_SERVICE_CHANGED 0x1Fu 4304 4305 /** 4306 * @format 1HK 4307 * @param subevent_code 4308 * @param con_handle 4309 * @param database_hash 4310 */ 4311 #define GATTSERVICE_SUBEVENT_GATT_DATABASE_HASH 0x20u 4312 4313 /** 4314 * @format 1H211 4315 * @param subevent_code 4316 * @param con_handle 4317 * @param cid 4318 * @param num_included_services 4319 * @param status 4320 */ 4321 #define GATTSERVICE_SUBEVENT_CLIENT_CONNECTED 0x21u 4322 4323 /** 4324 * @format 1H2 4325 * @param subevent_code 4326 * @param con_handle 4327 * @param cid 4328 */ 4329 #define GATTSERVICE_SUBEVENT_CLIENT_DISCONNECTED 0x22u 4330 4331 /** 4332 * @format 1H21 4333 * @param subevent_code 4334 * @param con_handle 4335 * @param lls_cid 4336 * @param status 4337 */ 4338 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_CONNECTED 0x23u 4339 4340 /** 4341 * @format 12 4342 * @param subevent_code 4343 * @param lls_cid 4344 */ 4345 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_DISCONNECTED 0x24u 4346 4347 /** 4348 * @format 1221 4349 * @param subevent_code 4350 * @param lls_cid 4351 * @param characteristic_uuid 4352 * @param att_status 4353 */ 4354 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_WRITE_DONE 0x25u 4355 4356 /** 4357 * @format 12 4358 * @param subevent_code 4359 * @param lls_cid 4360 */ 4361 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_START_ALERTING 0x26u 4362 4363 /** 4364 * @format 121 4365 * @param subevent_code 4366 * @param lls_cid 4367 * @param timeout 4368 */ 4369 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_STOP_ALERTING 0x27u 4370 4371 /** 4372 * @format 121 4373 * @param subevent_code 4374 * @param lls_cid 4375 * @param value 4376 */ 4377 #define GATTSERVICE_SUBEVENT_LLS_CLIENT_ALERT_LEVEL 0x28u 4378 4379 /** 4380 * @format 1H21 4381 * @param subevent_code 4382 * @param con_handle 4383 * @param ias_cid 4384 * @param status 4385 */ 4386 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_CONNECTED 0x29u 4387 4388 /** 4389 * @format 12 4390 * @param subevent_code 4391 * @param ias_cid 4392 */ 4393 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_DISCONNECTED 0x2Au 4394 4395 /** 4396 * @format 12 4397 * @param subevent_code 4398 * @param ias_cid 4399 */ 4400 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_START_ALERTING 0x2Bu 4401 4402 /** 4403 * @format 121 4404 * @param subevent_code 4405 * @param ias_cid 4406 * @param timeout 4407 */ 4408 #define GATTSERVICE_SUBEVENT_IAS_CLIENT_STOP_ALERTING 0x2Cu 4409 4410 /** 4411 * @format 1H21 4412 * @param subevent_code 4413 * @param con_handle 4414 * @param tpxs_cid 4415 * @param status 4416 */ 4417 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_CONNECTED 0x2Du 4418 4419 /** 4420 * @format 12 4421 * @param subevent_code 4422 * @param tpxs_cid 4423 */ 4424 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_DISCONNECTED 0x2Eu 4425 4426 /** 4427 * @format 121 4428 * @param subevent_code 4429 * @param tpxs_cid 4430 * @param value 4431 */ 4432 #define GATTSERVICE_SUBEVENT_TXPS_CLIENT_TX_POWER_LEVEL 0x2Fu 4433 4434 /** 4435 * @format 11 4436 * @param subevent_code 4437 * @param alert_level 4438 */ 4439 #define GATTSERVICE_SUBEVENT_LLS_SERVER_START_ALERTING 0x30u 4440 4441 /** 4442 * @format 111 4443 * @param subevent_code 4444 * @param alert_level 4445 * @param timeout 4446 */ 4447 #define GATTSERVICE_SUBEVENT_LLS_SERVER_STOP_ALERTING 0x31u 4448 4449 /** 4450 * @format 11 4451 * @param subevent_code 4452 * @param alert_level 4453 */ 4454 #define GATTSERVICE_SUBEVENT_IAS_SERVER_START_ALERTING 0x32u 4455 4456 /** 4457 * @format 111 4458 * @param subevent_code 4459 * @param alert_level 4460 * @param timeout 4461 */ 4462 #define GATTSERVICE_SUBEVENT_IAS_SERVER_STOP_ALERTING 0x33u 4463 4464 4465 4466 // LE Audio 4467 4468 /** 4469 * @format 1H1 4470 * @param subevent_code 4471 * @param con_handle 4472 * @param status 4473 */ 4474 #define LEAUDIO_SUBEVENT_BASS_SERVER_CONNECTED 0x01u 4475 4476 /** 4477 * @format 1H 4478 * @param subevent_code 4479 * @param con_handle 4480 */ 4481 #define LEAUDIO_SUBEVENT_BASS_SERVER_DISCONNECTED 0x02u 4482 4483 /** 4484 * @format 1H 4485 * @param subevent_code 4486 * @param con_handle 4487 */ 4488 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STOPPED 0x03u 4489 4490 /** 4491 * @format 1H 4492 * @param subevent_code 4493 * @param con_handle 4494 */ 4495 #define LEAUDIO_SUBEVENT_BASS_SERVER_SCAN_STARTED 0x04u 4496 4497 /** 4498 * @format 1H1K 4499 * @param subevent_code 4500 * @param con_handle 4501 * @param source_id 4502 * @param broadcast_code 4503 */ 4504 #define LEAUDIO_SUBEVENT_BASS_SERVER_BROADCAST_CODE 0x05u 4505 4506 /** 4507 * @format 1H11 4508 * @param subevent_code 4509 * @param con_handle 4510 * @param source_id 4511 * @param pa_sync 4512 */ 4513 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_ADDED 0x06u 4514 4515 /** 4516 * @format 1H11 4517 * @param subevent_code 4518 * @param con_handle 4519 * @param source_id 4520 * @param pa_sync 4521 */ 4522 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_MODIFIED 0x07u 4523 4524 /** 4525 * @format 1H11 4526 * @param subevent_code 4527 * @param con_handle 4528 * @param source_id 4529 * @param pa_sync 4530 */ 4531 #define LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_DELETED 0x08u 4532 4533 /** 4534 * @format 1H21 4535 * @param subevent_code 4536 * @param con_handle 4537 * @param bass_cid 4538 * @param status 4539 */ 4540 #define LEAUDIO_SUBEVENT_BASS_CLIENT_CONNECTED 0x09u 4541 4542 /** 4543 * @format 12 4544 * @param subevent_code 4545 * @param bass_cid 4546 */ 4547 #define LEAUDIO_SUBEVENT_BASS_CLIENT_DISCONNECTED 0x0Au 4548 4549 /** 4550 * @format 1211 4551 * @param subevent_code 4552 * @param bass_cid 4553 * @param status 4554 * @param opcode 4555 */ 4556 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE 0x0Bu 4557 4558 /** 4559 * @format 1211B1311P1 4560 * @param subevent_code 4561 * @param bass_cid 4562 * @param source_id 4563 * @param source_address_type 4564 * @param source_address 4565 * @param source_adv_sid 4566 * @param broadcast_id 4567 * @param pa_sync_state 4568 * @param big_encryption 4569 * @param bad_code 4570 * @param subgroups_num 4571 */ 4572 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_BASE 0x0Cu 4573 4574 /** 4575 * @format 1214122JV3JV1JV2JV2JV 4576 * @param subevent_code 4577 * @param bass_cid 4578 * @param source_id 4579 * @param bis_sync_state 4580 * @param metadata_mask 4581 * @param preferred_audio_contexts_mask 4582 * @param streaming_audio_contexts_mask 4583 * @param program_info_length 4584 * @param program_info 4585 * @param language_code 4586 * @param ccids_num 4587 * @param ccids 4588 * @param parental_rating 4589 * @param program_info_uri_length 4590 * @param program_info_uri 4591 * @param extended_metadata_type 4592 * @param extended_metadata_value_length 4593 * @param extended_metadata_value 4594 * @param vendor_specific_metadata_type 4595 * @param vendor_specific_metadata_value_length 4596 * @param vendor_specific_metadata_value 4597 */ 4598 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP 0x0Du 4599 4600 /** 4601 * @format 121 4602 * @param subevent_code 4603 * @param bass_cid 4604 * @param source_id 4605 */ 4606 #define LEAUDIO_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE 0x0Eu 4607 4608 /** 4609 * @format 12111 4610 * @param subevent_code 4611 * @param bass_cid 4612 * @param status 4613 * @param opcode 4614 * @param source_id 4615 */ 4616 #define LEAUDIO_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE 0x0Fu 4617 4618 4619 // MESH Meta Event Group 4620 4621 /** 4622 * @format 1 4623 * @param subevent_code 4624 */ 4625 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01u 4626 4627 /** 4628 * @format 11 4629 * @param subevent_code 4630 * @param status 4631 */ 4632 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02u 4633 4634 /** 4635 * @format 1121 4636 * @param subevent_code 4637 * @param status 4638 * @param pb_transport_cid 4639 * @param pb_type 4640 */ 4641 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03u 4642 4643 /** 4644 * @format 112 4645 * @param subevent_code 4646 * @param pb_transport_cid 4647 * @param reason 4648 */ 4649 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04u 4650 4651 /** 4652 * @format 121 4653 * @param subevent_code 4654 * @param pb_transport_cid 4655 * @param attention_time in seconds 4656 */ 4657 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10u 4658 4659 /** 4660 * Device Role 4661 * @format 12 4662 * @param subevent_code 4663 * @param pb_transport_cid 4664 */ 4665 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11u 4666 4667 /** 4668 * Device Role 4669 * @format 12 4670 * @param subevent_code 4671 * @param pb_transport_cid 4672 */ 4673 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12u 4674 4675 /** 4676 * Device Role 4677 * @format 12 4678 * @param subevent_code 4679 * @param pb_transport_cid 4680 */ 4681 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13u 4682 4683 /** 4684 * Device Role 4685 * @format 124 4686 * @param subevent_code 4687 * @param pb_transport_cid 4688 * @param output_oob number 4689 */ 4690 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15u 4691 4692 /** 4693 * Device Role 4694 * @format 12 4695 * @param subevent_code 4696 * @param pb_transport_cid 4697 */ 4698 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16u 4699 4700 /** 4701 * Provisioner Role 4702 * @format 12 4703 * @param subevent_code 4704 * @param pb_transport_cid 4705 */ 4706 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17u 4707 4708 /** 4709 * Provisioner Role 4710 * @format 12 4711 * @param subevent_code 4712 * @param pb_transport_cid 4713 */ 4714 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18u 4715 4716 /** 4717 * Provisioner Role 4718 * @format 12 4719 * @param subevent_code 4720 * @param pb_transport_cid 4721 */ 4722 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19u 4723 4724 /** 4725 * Provisioner Role 4726 * @format 124 4727 * @param subevent_code 4728 * @param pb_transport_cid 4729 * @param output_oob number 4730 */ 4731 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1au 4732 4733 /** 4734 * Provisioner Role 4735 * @format 12 4736 * @param subevent_code 4737 * @param pb_transport_cid 4738 */ 4739 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1bu 4740 4741 /** 4742 * Provisioner Role 4743 * @format 1212111212 4744 * @param subevent_code 4745 * @param pb_transport_cid 4746 * @param num_elements 4747 * @param algorithms 4748 * @param public_key 4749 * @param static_oob_type 4750 * @param output_oob_size 4751 * @param output_oob_action 4752 * @param input_oob_size 4753 * @param input_oob_action 4754 */ 4755 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1cu 4756 4757 /** 4758 * @format 12 4759 * @param subevent_code 4760 * @param pb_transport_cid 4761 */ 4762 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1du 4763 4764 /** 4765 * @format 11 4766 * @param subevent_code 4767 * @param attention_time in seconds 4768 */ 4769 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1eu 4770 4771 /** 4772 * @format 1H 4773 * @param subevent_code 4774 * @param con_handle 4775 */ 4776 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20u 4777 4778 /** 4779 * @format 1H 4780 * @param subevent_code 4781 * @param con_handle 4782 */ 4783 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21u 4784 4785 /** 4786 * @format 1H 4787 * @param subevent_code 4788 * @param con_handle 4789 */ 4790 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22u 4791 4792 /** 4793 * @format 1H 4794 * @param subevent_code 4795 * @param con_handle 4796 */ 4797 #define MESH_SUBEVENT_MESSAGE_SENT 0x23u 4798 4799 /** 4800 * @format 114411 4801 * @param subevent_code 4802 * @param element_index 4803 * @param model_identifier 4804 * @param state_identifier 4805 * @param reason 4806 * @param value 4807 */ 4808 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24u 4809 4810 /** 4811 * @format 114412 4812 * @param subevent_code 4813 * @param element_index 4814 * @param model_identifier 4815 * @param state_identifier 4816 * @param reason 4817 * @param value 4818 */ 4819 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25u 4820 4821 // Mesh Client Events 4822 /** 4823 * @format 11442 4824 * @param subevent_code 4825 * @param element_index 4826 * @param model_identifier 4827 * @param opcode 4828 * @param dest 4829 */ 4830 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30u 4831 4832 /** 4833 * @format 121114 4834 * @param subevent_code 4835 * @param dest 4836 * @param status 4837 * @param present_value 4838 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4839 * @param remaining_time_ms 4840 */ 4841 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31u 4842 4843 /** 4844 * @format 121224 4845 * @param subevent_code 4846 * @param dest 4847 * @param status 4848 * @param present_value 4849 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4850 * @param remaining_time_ms 4851 */ 4852 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32u 4853 4854 /** 4855 * @format 1222211 4856 * @param subevent_code 4857 * @param dest 4858 * @param netkey_index 4859 * @param appkey_index 4860 * @param company_id 4861 * @param test_id 4862 * @param acknowledged 4863 */ 4864 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33u 4865 4866 /** 4867 * @format 11 4868 * @param subevent_code 4869 * @param element_index 4870 */ 4871 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34u 4872 4873 /** 4874 * @format 1211 4875 * @param subevent_code 4876 * @param dest 4877 * @param status 4878 * @param transition_time_gdtt 4879 */ 4880 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35u 4881 4882 /** 4883 * @format 1211 4884 * @param subevent_code 4885 * @param dest 4886 * @param foundation_status 4887 * @param secure_network_beacon_state 4888 */ 4889 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36u 4890 4891 // Composition Data has variable of element descriptions, with two lists of model lists 4892 // Use .. getters to access data 4893 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37u 4894 4895 /** 4896 * @format 1211 4897 * @param subevent_code 4898 * @param dest 4899 * @param foundation_status 4900 * @param default_ttl 4901 */ 4902 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38u 4903 4904 /** 4905 * @format 1211 4906 * @param subevent_code 4907 * @param dest 4908 * @param foundation_status 4909 * @param gatt_proxy_state 4910 */ 4911 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39u 4912 4913 /** 4914 * @format 121111 4915 * @param subevent_code 4916 * @param dest 4917 * @param foundation_status 4918 * @param relay 4919 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 4920 * @param retransmit_interval_ms retransmission interval in ms 4921 */ 4922 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40u 4923 4924 4925 /** 4926 * @format 12122111114 4927 * @param subevent_code 4928 * @param dest element_address 4929 * @param foundation_status 4930 * @param publish_address 4931 * @param appkey_index 4932 * @param credential_flag 4933 * @param publish_ttl 4934 * @param publish_period 4935 * @param publish_retransmit_count 4936 * @param publish_retransmit_interval_steps 4937 * @param model_identifier 4938 */ 4939 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41u 4940 4941 /** 4942 * @format 12124 4943 * @param subevent_code 4944 * @param dest 4945 * @param foundation_status 4946 * @param address 4947 * @param model_identifier 4948 */ 4949 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42u 4950 4951 /** 4952 * @format 1214112 4953 * @param subevent_code 4954 * @param dest 4955 * @param foundation_status 4956 * @param model_identifier 4957 * @param num_subscription_addresses 4958 * @param subscription_address_pos 4959 * @param subscription_address_item 4960 */ 4961 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43u 4962 4963 4964 /** 4965 * @format 121 4966 * @param subevent_code 4967 * @param dest 4968 * @param foundation_status 4969 */ 4970 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44u 4971 4972 /** 4973 * @format 121112 4974 * @param subevent_code 4975 * @param dest 4976 * @param foundation_status 4977 * @param num_netkey_indexes 4978 * @param netkey_index_pos 4979 * @param netkey_index_item 4980 */ 4981 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45u 4982 4983 /** 4984 * @format 12122 4985 * @param subevent_code 4986 * @param dest 4987 * @param foundation_status 4988 * @param netkey_index_item 4989 * @param appkey_index_item 4990 */ 4991 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46u 4992 4993 /** 4994 * @format 12121122 4995 * @param subevent_code 4996 * @param dest 4997 * @param foundation_status 4998 * @param netkey_index 4999 * @param num_appkey_indexes 5000 * @param appkey_index_pos 5001 * @param netkey_index_item 5002 * @param appkey_index_item 5003 */ 5004 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47u 5005 5006 /** 5007 * @format 12121 5008 * @param subevent_code 5009 * @param dest 5010 * @param foundation_status 5011 * @param netkey_index_item 5012 * @param identity_status 5013 */ 5014 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48u 5015 5016 /** 5017 * @format 12124 5018 * @param subevent_code 5019 * @param dest 5020 * @param foundation_status 5021 * @param appkey_index 5022 * @param model_identifier 5023 */ 5024 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49u 5025 5026 /** 5027 * @format 1214112 5028 * @param subevent_code 5029 * @param dest 5030 * @param foundation_status 5031 * @param model_id 5032 * @param num_appkey_indexes 5033 * @param appkey_index_pos 5034 * @param appkey_index_item 5035 */ 5036 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50u 5037 5038 /** 5039 * @format 121 5040 * @param subevent_code 5041 * @param dest 5042 * @param foundation_status 5043 */ 5044 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51u 5045 5046 /** 5047 * @format 1211 5048 * @param subevent_code 5049 * @param dest 5050 * @param foundation_status 5051 * @param friend_state 5052 */ 5053 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52u 5054 5055 /** 5056 * @format 12121 5057 * @param subevent_code 5058 * @param dest 5059 * @param foundation_status 5060 * @param netkey_index 5061 * @param phase 5062 */ 5063 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53u 5064 5065 /** 5066 * @format 121222122 5067 * @param subevent_code 5068 * @param dest 5069 * @param foundation_status 5070 * @param heartbeat_destination 5071 * @param count_S 5072 * @param period_S 5073 * @param ttl 5074 * @param features 5075 * @param netkey_index 5076 */ 5077 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54u 5078 5079 /** 5080 * @format 121222211 5081 * @param subevent_code 5082 * @param dest 5083 * @param foundation_status 5084 * @param heartbeat_destination 5085 * @param heartbeat_source 5086 * @param count_S 5087 * @param period_S 5088 * @param min_hops 5089 * @param max_hops 5090 */ 5091 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55u 5092 5093 /** 5094 * @format 12123 5095 * @param subevent_code 5096 * @param dest 5097 * @param foundation_status 5098 * @param lpn_address 5099 * @param poll_timeout 5100 */ 5101 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56u 5102 5103 /** 5104 * @format 12112 5105 * @param subevent_code 5106 * @param dest 5107 * @param foundation_status 5108 * @param transmit_count 5109 * @param transmit_interval_steps_ms 5110 */ 5111 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57u 5112 5113 5114 #endif 5115