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