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 H1B1 1562 * @param handle 1563 * @param addr_type 1564 * @param address 1565 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1566 */ 1567 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8u 1568 1569 /** 1570 * @format H1B14 1571 * @param handle 1572 * @param addr_type 1573 * @param address 1574 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1575 * @param passkey 1576 */ 1577 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9u 1578 1579 /** 1580 * @format H1B 1581 * @param handle 1582 * @param addr_type 1583 * @param address 1584 */ 1585 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCAu 1586 1587 /** 1588 * @format H1B1 1589 * @param handle 1590 * @param addr_type 1591 * @param address 1592 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1593 */ 1594 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCBu 1595 1596 /** 1597 * @format H1B14 1598 * @param handle 1599 * @param addr_type 1600 * @param address 1601 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1602 * @param passkey 1603 */ 1604 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCCu 1605 1606 /** 1607 * @format H1B 1608 * @param handle 1609 * @param addr_type 1610 * @param address 1611 */ 1612 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCDu 1613 1614 /** 1615 * @format H1B 1616 * @param handle 1617 * @param addr_type 1618 * @param address 1619 */ 1620 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCEu 1621 1622 /** 1623 * @brief Identify resolving succeeded 1624 * 1625 * @format H1B1B2 1626 * @param handle 1627 * @param addr_type 1628 * @param address 1629 * @param identity_addr_type 1630 * @param identity_address 1631 * @param index 1632 * 1633 */ 1634 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCFu 1635 1636 /** 1637 * @format H1B 1638 * @param handle 1639 * @param addr_type 1640 * @param address 1641 */ 1642 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0u 1643 1644 /** 1645 * @format H1B1 1646 * @param handle 1647 * @param addr_type 1648 * @param address 1649 * @param authorization_result 1650 */ 1651 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1u 1652 1653 /** 1654 * @format H1 1655 * @param handle 1656 * @param action see SM_KEYPRESS_* 1657 */ 1658 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2u 1659 1660 /** 1661 * @brief Emitted during pairing to inform app about address used as identity 1662 * 1663 * @format H1B1B2 1664 * @param handle 1665 * @param addr_type 1666 * @param address 1667 * @param identity_addr_type 1668 * @param identity_address 1669 * @param index 1670 */ 1671 #define SM_EVENT_IDENTITY_CREATED 0xD3u 1672 1673 /** 1674 * @brief Emitted to inform app that pairing has started. 1675 * @format H1B 1676 * @param handle 1677 * @param addr_type 1678 * @param address 1679 */ 1680 #define SM_EVENT_PAIRING_STARTED 0xD4u 1681 1682 /** 1683 * @brief Emitted to inform app that pairing is complete. Possible status values: 1684 * ERROR_CODE_SUCCESS -> pairing success 1685 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1686 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1687 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1688 * 1689 * @format H1B11 1690 * @param handle 1691 * @param addr_type 1692 * @param address 1693 * @param status 1694 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1695 */ 1696 #define SM_EVENT_PAIRING_COMPLETE 0xD5u 1697 1698 1699 /** 1700 * @brief Proactive Authentication for bonded devices started. 1701 * @format H1B 1702 * @param handle 1703 * @param addr_type 1704 * @param address 1705 */ 1706 #define SM_EVENT_REENCRYPTION_STARTED 0xD6u 1707 1708 /** 1709 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1710 * ERROR_CODE_SUCCESS -> connection secure 1711 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1712 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1713 * @format H1B1 1714 * @param handle 1715 * @param addr_type 1716 * @param address 1717 * @param status 1718 */ 1719 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7u 1720 1721 // GAP 1722 1723 /** 1724 * @format H1 1725 * @param handle 1726 * @param security_level 1727 */ 1728 #define GAP_EVENT_SECURITY_LEVEL 0xD8u 1729 1730 /** 1731 * @format 1B 1732 * @param status 1733 * @param address 1734 */ 1735 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9u 1736 1737 /** 1738 * @format 11B1JV 1739 * @param advertising_event_type 1740 * @param address_type 1741 * @param address 1742 * @param rssi 1743 * @param data_length 1744 * @param data 1745 */ 1746 #define GAP_EVENT_ADVERTISING_REPORT 0xDAu 1747 1748 /** 1749 * @format 21B1111121BJV 1750 * @param advertising_event_type 1751 * @param address_type 1752 * @param address 1753 * @param primary_phy 1754 * @param secondary_phy 1755 * @param advertising_sid 1756 * @param tx_power 1757 * @param rssi 1758 * @param periodic_advertising_interval 1759 * @param direct_address_type 1760 * @param direct_address 1761 * @param data_length 1762 * @param data 1763 */ 1764 #define GAP_EVENT_EXTENDED_ADVERTISING_REPORT 0xDBu 1765 1766 /** 1767 * @format B13211122221JV 1768 * @param bd_addr 1769 * @param page_scan_repetition_mode 1770 * @param class_of_device 1771 * @param clock_offset 1772 * @param rssi_available 1773 * @param rssi 1774 * @param device_id_available 1775 * @param device_id_vendor_id_source 1776 * @param device_id_vendor_id 1777 * @param device_id_product_id 1778 * @param device_id_version 1779 * @param name_available 1780 * @param name_len 1781 * @param name 1782 */ 1783 #define GAP_EVENT_INQUIRY_RESULT 0xDCu 1784 1785 /** 1786 * @format 1 1787 * @param status 1788 */ 1789 #define GAP_EVENT_INQUIRY_COMPLETE 0xDDu 1790 1791 /** 1792 * @format H1 1793 * @param con_handle 1794 * @param rssi (signed integer -127..127) 1795 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1796 * @note LE: rssi is absolute dBm 1797 */ 1798 #define GAP_EVENT_RSSI_MEASUREMENT 0xDEu 1799 1800 /** 1801 * @format 1KKKK 1802 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1803 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1804 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1805 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1806 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1807 */ 1808 #define GAP_EVENT_LOCAL_OOB_DATA 0xDFu 1809 1810 1811 /** 1812 * @format HB11 1813 * @param con_handle 1814 * @param bd_addr 1815 * @param ssp 1816 * @param initiator 1817 */ 1818 #define GAP_EVENT_PAIRING_STARTED 0xE0u 1819 1820 /** 1821 * @format HB1 1822 * @param con_handle 1823 * @param bd_addr 1824 * @param status 1825 */ 1826 #define GAP_EVENT_PAIRING_COMPLETE 0xE1u 1827 1828 // Meta Events, see below for sub events 1829 #define HCI_EVENT_META_GAP 0xE7u 1830 #define HCI_EVENT_HSP_META 0xE8u 1831 #define HCI_EVENT_HFP_META 0xE9u 1832 #define HCI_EVENT_ANCS_META 0xEAu 1833 #define HCI_EVENT_AVDTP_META 0xEBu 1834 #define HCI_EVENT_AVRCP_META 0xECu 1835 #define HCI_EVENT_GOEP_META 0xEDu 1836 #define HCI_EVENT_PBAP_META 0xEEu 1837 #define HCI_EVENT_HID_META 0xEFu 1838 #define HCI_EVENT_A2DP_META 0xF0u 1839 #define HCI_EVENT_HIDS_META 0xF1u 1840 #define HCI_EVENT_GATTSERVICE_META 0xF2u 1841 #define HCI_EVENT_BIP_META 0xF3u 1842 #define HCI_EVENT_MAP_META 0xF4u 1843 #define HCI_EVENT_MESH_META 0xF5u 1844 1845 // Potential other meta groups 1846 // #define HCI_EVENT_BNEP_META 0xxx 1847 // #define HCI_EVENT_GAP_META 0xxx 1848 // #define HCI_EVENT_GATT_META 0xxx 1849 // #define HCI_EVENT_PAN_META 0xxx 1850 // #define HCI_EVENT_SDP_META 0xxx 1851 // #define HCI_EVENT_SM_META 0xxx 1852 1853 /** GAP Subevent */ 1854 1855 1856 /** 1857 * @format 1111 1858 * @param subevent_code 1859 * @param advertisement_handle 1860 * @param status 1861 * @param selected_tx_power 1862 */ 1863 #define GAP_SUBEVENT_ADVERTISING_SET_INSTALLED 0x00u 1864 1865 /** 1866 * @format 11 1867 * @param subevent_code 1868 * @param advertisement_handle 1869 */ 1870 #define GAP_SUBEVENT_ADVERTISING_SET_REMOVED 0x01u 1871 1872 1873 /** HSP Subevent */ 1874 1875 /** 1876 * @format 1H1B 1877 * @param subevent_code 1878 * @param acl_handle 1879 * @param status 0 == OK 1880 * @param bd_addr 1881 */ 1882 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01u 1883 1884 /** 1885 * @format 1H 1886 * @param subevent_code 1887 * @param acl_handle 1888 */ 1889 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02u 1890 1891 /** 1892 * @format 1H1H 1893 * @param subevent_code 1894 * @param acl_handle 1895 * @param status 0 == OK 1896 * @param sco_handle 1897 */ 1898 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03u 1899 1900 /** 1901 * @format 1HH 1902 * @param subevent_code 1903 * @param acl_handle 1904 * @param sco_handle 1905 */ 1906 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04u 1907 1908 /** 1909 * @format 1H 1910 * @param subevent_code 1911 * @param acl_handle 1912 */ 1913 #define HSP_SUBEVENT_RING 0x05u 1914 1915 /** 1916 * @format 1H1 1917 * @param subevent_code 1918 * @param acl_handle 1919 * @param gain Valid range: [0,15] 1920 */ 1921 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06u 1922 1923 /** 1924 * @format 1H1 1925 * @param subevent_code 1926 * @param acl_handle 1927 * @param gain Valid range: [0,15] 1928 */ 1929 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07u 1930 1931 /** 1932 * @format 1HJV 1933 * @param subevent_code 1934 * @param acl_handle 1935 * @param value_length 1936 * @param value 1937 */ 1938 #define HSP_SUBEVENT_HS_COMMAND 0x08u 1939 1940 /** 1941 * @format 1HJV 1942 * @param subevent_code 1943 * @param acl_handle 1944 * @param value_length 1945 * @param value 1946 */ 1947 #define HSP_SUBEVENT_AG_INDICATION 0x09u 1948 1949 /** 1950 * @format 1H 1951 * @param subevent_code 1952 * @param acl_handle 1953 */ 1954 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0au 1955 1956 /** HFP Subevent */ 1957 1958 /** 1959 * @format 1H1B 1960 * @param subevent_code 1961 * @param acl_handle 1962 * @param status 0 == OK 1963 * @param bd_addr 1964 */ 1965 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01u 1966 1967 /** 1968 * @format 1H 1969 * @param subevent_code 1970 * @param acl_handle 1971 */ 1972 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02u 1973 1974 /** 1975 * @format 1H1HB1 1976 * @param subevent_code 1977 * @param acl_handle 1978 * @param status 0 == OK 1979 * @param sco_handle 1980 * @param bd_addr 1981 * @param negotiated_codec 1982 */ 1983 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03u 1984 1985 /** 1986 * @format 1HH 1987 * @param subevent_code 1988 * @param acl_handle 1989 * @param sco_handle 1990 */ 1991 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04u 1992 1993 /** 1994 * @format 1H1 1995 * @param subevent_code 1996 * @param acl_handle 1997 * @param status 0 == OK 1998 */ 1999 #define HFP_SUBEVENT_COMPLETE 0x05u 2000 2001 /** 2002 * @format 1H111T 2003 * @param subevent_code 2004 * @param acl_handle 2005 * @param indicator_index 2006 * @param indicator_min_range 2007 * @param indicator_max_range 2008 * @param indicator_name 2009 */ 2010 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06u 2011 2012 /** 2013 * @format 1H1111111T 2014 * @param subevent_code 2015 * @param acl_handle 2016 * @param indicator_index 2017 * @param indicator_status 2018 * @param indicator_min_range 2019 * @param indicator_max_range 2020 * @param indicator_mandatory 2021 * @param indicator_enabled 2022 * @param indicator_status_changed 2023 * @param indicator_name 2024 */ 2025 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07u 2026 2027 /** 2028 * @format 1H11T 2029 * @param subevent_code 2030 * @param acl_handle 2031 * @param network_operator_mode 2032 * @param network_operator_format 2033 * @param network_operator_name 2034 */ 2035 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08u 2036 2037 /** 2038 * @format 1H1 2039 * @param subevent_code 2040 * @param acl_handle 2041 * @param error 2042 */ 2043 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09u 2044 2045 /** 2046 * @format 1H 2047 * @param subevent_code 2048 * @param acl_handle 2049 */ 2050 #define HFP_SUBEVENT_START_RINGING 0x0Au 2051 2052 /** 2053 * @format 1H 2054 * @param subevent_code 2055 * @param acl_handle 2056 */ 2057 #define HFP_SUBEVENT_RING 0x0Bu 2058 2059 /** 2060 * @format 1H 2061 * @param subevent_code 2062 * @param acl_handle 2063 */ 2064 #define HFP_SUBEVENT_STOP_RINGING 0x0Cu 2065 2066 /** 2067 * @format 1HT 2068 * @param subevent_code 2069 * @param acl_handle 2070 * @param number 2071 */ 2072 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0Du 2073 2074 /** 2075 * @format 1H 2076 * @param subevent_code 2077 * @param acl_handle 2078 */ 2079 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0Eu 2080 2081 /** 2082 * @format 1HT 2083 * @param subevent_code 2084 * @param acl_handle 2085 * @param number 2086 */ 2087 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0Fu 2088 2089 /** 2090 * @format 1HT 2091 * @param subevent_code 2092 * @param acl_handle 2093 * @param dtmf code 2094 */ 2095 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10u 2096 2097 /** 2098 * @format 1H 2099 * @param subevent_code 2100 * @param acl_handle 2101 */ 2102 #define HFP_SUBEVENT_CALL_ANSWERED 0x11u 2103 2104 /** 2105 * @format 1H 2106 * @param subevent_code 2107 * @param acl_handle 2108 */ 2109 #define HFP_SUBEVENT_CALL_TERMINATED 0x12u 2110 2111 /** 2112 * @format 1H 2113 * @param subevent_code 2114 * @param acl_handle 2115 */ 2116 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13u 2117 2118 2119 /** 2120 * @format 1H1 2121 * @param subevent_code 2122 * @param acl_handle 2123 * @param gain 2124 */ 2125 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14u 2126 2127 /** 2128 * @format 1H1 2129 * @param subevent_code 2130 * @param acl_handle 2131 * @param gain 2132 */ 2133 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15u 2134 2135 /** 2136 * @format 1H1JVJV 2137 * @param subevent_code 2138 * @param acl_handle 2139 * @param type 2140 * @param number_length 2141 * @param number 2142 * @param alpha_length 2143 * @param alpha 2144 */ 2145 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16u 2146 2147 /** 2148 * @format 1H1JVJV 2149 * @param subevent_code 2150 * @param acl_handle 2151 * @param type 2152 * @param number_length 2153 * @param number 2154 * @param alpha_length 2155 * @param alpha 2156 */ 2157 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17u 2158 2159 /** 2160 * @format 1H111111T 2161 * @param subevent_code 2162 * @param acl_handle 2163 * @param clcc_idx 2164 * @param clcc_dir 2165 * @param clcc_status 2166 * @param clcc_mode 2167 * @param clcc_mpty 2168 * @param bnip_type 2169 * @param bnip_number 2170 */ 2171 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18u 2172 2173 /** 2174 * @format 1H11T 2175 * @param subevent_code 2176 * @param acl_handle 2177 * @param status 2178 * @param bnip_type 2179 * @param bnip_number 2180 */ 2181 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19u 2182 2183 /** 2184 * @format 1HT 2185 * @param subevent_code 2186 * @param acl_handle 2187 * @param value 2188 */ 2189 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1Au 2190 2191 /** 2192 * @format 1HT 2193 * @param subevent_code 2194 * @param acl_handle 2195 * @param command 2196 */ 2197 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1Bu 2198 2199 /** 2200 * @format 1HT 2201 * @param subevent_code 2202 * @param acl_handle 2203 * @param command 2204 */ 2205 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1Cu 2206 2207 /** 2208 * @format 1H1 2209 * @param subevent_code 2210 * @param acl_handle 2211 * @param status 2212 */ 2213 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1Du 2214 2215 /** 2216 * @format 1H11 2217 * @param subevent_code 2218 * @param acl_handle 2219 * @param status // 0-success 2220 * @param enhanced // 0-legacy, 1-enhanced 2221 */ 2222 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1Eu 2223 2224 /** 2225 * @format 1H1 2226 * @param subevent_code 2227 * @param acl_handle 2228 * @param status // 0-success 2229 */ 2230 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1Fu 2231 2232 /** 2233 * @format 1H1 2234 * @param subevent_code 2235 * @param acl_handle 2236 * @param status 2237 */ 2238 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20u 2239 2240 2241 /** 2242 * @format 1H1 2243 * @param subevent_code 2244 * @param acl_handle 2245 * @param status 2246 */ 2247 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21u 2248 2249 /** 2250 * @format 1H1 2251 * @param subevent_code 2252 * @param acl_handle 2253 * @param status 2254 */ 2255 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22u 2256 2257 /** 2258 * @format 1H1 2259 * @param subevent_code 2260 * @param acl_handle 2261 * @param status 2262 */ 2263 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23u 2264 2265 /** 2266 * @format 1H1 2267 * @param subevent_code 2268 * @param acl_handle 2269 * @param status 2270 */ 2271 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24u 2272 2273 2274 /** 2275 * @format 1H211LV 2276 * @param subevent_code 2277 * @param acl_handle 2278 * @param text_id 2279 * @param text_type 2280 * @param text_operation 2281 * @param text_length 2282 * @param text 2283 */ 2284 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25u 2285 2286 /** 2287 * @format 1H1 2288 * @param subevent_code 2289 * @param acl_handle 2290 * @param status 2291 */ 2292 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26u 2293 2294 /** 2295 * @format 1H21 2296 * @param subevent_code 2297 * @param acl_handle 2298 * @param uuid 2299 * @param value 2300 */ 2301 #define HFP_SUBEVENT_HF_INDICATOR 0x27u 2302 2303 2304 // ANCS Client 2305 2306 /** 2307 * @format 1H 2308 * @param subevent_code 2309 * @param handle 2310 */ 2311 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0u 2312 2313 /** 2314 * @format 1H2T 2315 * @param subevent_code 2316 * @param handle 2317 * @param attribute_id 2318 * @param text 2319 */ 2320 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1u 2321 2322 /** 2323 * @format 1H 2324 * @param subevent_code 2325 * @param handle 2326 */ 2327 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2u 2328 2329 2330 /** AVDTP Subevent */ 2331 2332 /** 2333 * @format 12111 2334 * @param subevent_code 2335 * @param avdtp_cid 2336 * @param local_seid 2337 * @param is_initiator 2338 * @param signal_identifier 2339 */ 2340 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01u 2341 2342 /** 2343 * @format 12111 2344 * @param subevent_code 2345 * @param avdtp_cid 2346 * @param local_seid 2347 * @param is_initiator 2348 * @param signal_identifier 2349 */ 2350 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02u 2351 2352 /** 2353 * @format 12111 2354 * @param subevent_code 2355 * @param avdtp_cid 2356 * @param local_seid 2357 * @param is_initiator 2358 * @param signal_identifier 2359 */ 2360 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03u 2361 2362 /** 2363 * @format 12B21 2364 * @param subevent_code 2365 * @param avdtp_cid 2366 * @param bd_addr 2367 * @param con_handle 2368 * @param status 0 == OK 2369 */ 2370 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04u 2371 2372 /** 2373 * @format 12 2374 * @param subevent_code 2375 * @param avdtp_cid 2376 */ 2377 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05u 2378 2379 /** 2380 * @format 121111 2381 * @param subevent_code 2382 * @param avdtp_cid 2383 * @param remote_seid 0x01u – 0x3Eu 2384 * @param in_use 0-not in use, 1-in use 2385 * @param media_type 0-audio, 1-video, 2-multimedia 2386 * @param sep_type 0-source, 1-sink 2387 */ 2388 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06u 2389 2390 /** 2391 * @format 12111111111 2392 * @param subevent_code 2393 * @param avdtp_cid 2394 * @param remote_seid 2395 * @param media_type 2396 * @param sampling_frequency_bitmap 2397 * @param channel_mode_bitmap 2398 * @param block_length_bitmap 2399 * @param subbands_bitmap 2400 * @param allocation_method_bitmap 2401 * @param min_bitpool_value 2402 * @param max_bitpool_value 2403 */ 2404 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07u 2405 2406 /** 2407 * @format 12111111112 2408 * @param subevent_code 2409 * @param avdtp_cid 2410 * @param remote_seid 2411 * @param media_type 2412 * @param layer_bitmap 2413 * @param crc 2414 * @param channel_mode_bitmap 2415 * @param media_payload_format 2416 * @param sampling_frequency_bitmap 2417 * @param vbr 2418 * @param bit_rate_index_bitmap 2419 */ 2420 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08u 2421 2422 /** 2423 * @format 121112131 2424 * @param subevent_code 2425 * @param avdtp_cid 2426 * @param remote_seid 2427 * @param media_type 2428 * @param object_type_bitmap 2429 * @param sampling_frequency_bitmap 2430 * @param channels_bitmap 2431 * @param bit_rate 2432 * @param vbr 2433 */ 2434 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09u 2435 2436 /** 2437 * @format 1211111132 2438 * @param subevent_code 2439 * @param avdtp_cid 2440 * @param remote_seid 2441 * @param media_type 2442 * @param version 2443 * @param channel_mode_bitmap 2444 * @param sampling_frequency_bitmap 2445 * @param vbr 2446 * @param bit_rate_index_bitmap 2447 * @param maximum_sul 2448 */ 2449 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0Au 2450 2451 /** 2452 * @format 12112LV 2453 * @param subevent_code 2454 * @param avdtp_cid 2455 * @param remote_seid 2456 * @param media_type 2457 * @param media_codec_type 2458 * @param media_codec_information_len 2459 * @param media_codec_information 2460 */ 2461 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0Bu 2462 2463 2464 /** 2465 * @format 121 2466 * @param subevent_code 2467 * @param avdtp_cid 2468 * @param remote_seid 2469 */ 2470 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0Cu 2471 2472 2473 /** 2474 * @format 121 2475 * @param subevent_code 2476 * @param avdtp_cid 2477 * @param remote_seid 2478 */ 2479 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0Du 2480 2481 2482 /** 2483 * @format 121111 2484 * @param subevent_code 2485 * @param avdtp_cid 2486 * @param remote_seid 2487 * @param recovery_type 2488 * @param maximum_recovery_window_size 2489 * @param maximum_number_media_packets 2490 */ 2491 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0Eu 2492 2493 2494 /** 2495 * @format 1212LV 2496 * @param subevent_code 2497 * @param avdtp_cid 2498 * @param remote_seid 2499 * @param cp_type 2500 * @param cp_type_value_len 2501 * @param cp_type_value 2502 */ 2503 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0Fu 2504 2505 2506 /** 2507 * @format 12111111111 2508 * @param subevent_code 2509 * @param avdtp_cid 2510 * @param remote_seid 2511 * @param fragmentation 2512 * @param transport_identifiers_num 2513 * @param transport_session_identifier_1 2514 * @param transport_session_identifier_2 2515 * @param transport_session_identifier_3 2516 * @param tcid_1 2517 * @param tcid_2 2518 * @param tcid_3 2519 */ 2520 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10u 2521 2522 2523 /** 2524 * @format 121 2525 * @param subevent_code 2526 * @param avdtp_cid 2527 * @param remote_seid 2528 */ 2529 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11u 2530 2531 2532 /** 2533 * @format 121111 2534 * @param subevent_code 2535 * @param avdtp_cid 2536 * @param remote_seid 2537 * @param back_ch 2538 * @param media 2539 * @param recovery 2540 */ 2541 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12u 2542 2543 /** 2544 * @format 121 2545 * @param subevent_code 2546 * @param avdtp_cid 2547 * @param remote_seid 2548 */ 2549 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13u 2550 2551 2552 /** 2553 * @format 12111121111111 2554 * @param subevent_code 2555 * @param avdtp_cid 2556 * @param local_seid 2557 * @param remote_seid 2558 * @param reconfigure 2559 * @param media_type 2560 * @param sampling_frequency 2561 * @param channel_mode 2562 * @param num_channels 2563 * @param block_length 2564 * @param subbands 2565 * @param allocation_method 2566 * @param min_bitpool_value 2567 * @param max_bitpool_value 2568 */ 2569 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14u 2570 2571 /** 2572 * @format 12111111111211 2573 * @param subevent_code 2574 * @param avdtp_cid 2575 * @param local_seid 2576 * @param remote_seid 2577 * @param reconfigure 2578 * @param media_type 2579 * @param layer 2580 * @param crc 2581 * @param channel_mode 2582 * @param num_channels 2583 * @param media_payload_format 2584 * @param sampling_frequency 2585 * @param vbr 2586 * @param bit_rate_index 2587 */ 2588 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15u 2589 2590 /** 2591 * @format 12111113131 2592 * @param subevent_code 2593 * @param avdtp_cid 2594 * @param local_seid 2595 * @param remote_seid 2596 * @param reconfigure 2597 * @param media_type 2598 * @param object_type 2599 * @param sampling_frequency 2600 * @param num_channels 2601 * @param bit_rate 2602 * @param vbr 2603 */ 2604 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16u 2605 2606 /** 2607 * @format 1211111112112 2608 * @param subevent_code 2609 * @param avdtp_cid 2610 * @param local_seid 2611 * @param remote_seid 2612 * @param reconfigure 2613 * @param media_type 2614 * @param version 2615 * @param channel_mode 2616 * @param num_channels 2617 * @param sampling_frequency 2618 * @param vbr 2619 * @param bit_rate_index 2620 * @param maximum_sul 2621 */ 2622 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17u 2623 2624 /** 2625 * @format 1211112LV 2626 * @param subevent_code 2627 * @param avdtp_cid 2628 * @param local_seid 2629 * @param remote_seid 2630 * @param reconfigure 2631 * @param media_type 2632 * @param media_codec_type 2633 * @param media_codec_information_len 2634 * @param media_codec_information 2635 */ 2636 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18u 2637 2638 /** 2639 * @format 12B111 2640 * @param subevent_code 2641 * @param avdtp_cid 2642 * @param bd_addr 2643 * @param local_seid 2644 * @param remote_seid 2645 * @param status 0 == OK 2646 */ 2647 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19u 2648 2649 /** 2650 * @format 121 2651 * @param subevent_code 2652 * @param avdtp_cid 2653 * @param local_seid 2654 */ 2655 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1Au 2656 2657 /** 2658 * @format 1212 2659 * @param subevent_code 2660 * @param avdtp_cid 2661 * @param local_seid 2662 * @param sequence_number 2663 */ 2664 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1Bu 2665 2666 2667 /** 2668 * @format 12 2669 * @param subevent_code 2670 * @param avdtp_cid 2671 */ 2672 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1Cu 2673 2674 /** 2675 * @format 1212 2676 * @param subevent_code 2677 * @param avdtp_cid 2678 * @param local_seid 2679 * @param delay_100us 2680 */ 2681 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1Du 2682 2683 2684 /** A2DP Subevent */ 2685 /* Stream goes through following states: 2686 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2687 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2688 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2689 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2690 2691 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2692 START can come only after the stream is OPENED, and indicates that media transfer is started. 2693 SUSPEND is optional, it pauses the stream. 2694 */ 2695 2696 /** 2697 * @format 121 Sent only by A2DP source. 2698 * @param subevent_code 2699 * @param a2dp_cid 2700 * @param local_seid 2701 */ 2702 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01u 2703 2704 /** 2705 * @format 12111121111111 2706 * @param subevent_code 2707 * @param a2dp_cid 2708 * @param local_seid 2709 * @param remote_seid 2710 * @param reconfigure 2711 * @param media_type 2712 * @param sampling_frequency 2713 * @param channel_mode 2714 * @param num_channels 2715 * @param block_length 2716 * @param subbands 2717 * @param allocation_method 2718 * @param min_bitpool_value 2719 * @param max_bitpool_value 2720 */ 2721 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02u 2722 2723 /** 2724 * @format 12111111111211 2725 * @param subevent_code 2726 * @param a2dp_cid 2727 * @param local_seid 2728 * @param remote_seid 2729 * @param reconfigure 2730 * @param media_type 2731 * @param layer 2732 * @param crc 2733 * @param channel_mode 2734 * @param num_channels 2735 * @param media_payload_format 2736 * @param sampling_frequency 2737 * @param vbr 2738 * @param bit_rate_index 2739 */ 2740 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03u 2741 2742 /** 2743 * @format 12111113131 2744 * @param subevent_code 2745 * @param a2dp_cid 2746 * @param local_seid 2747 * @param remote_seid 2748 * @param reconfigure 2749 * @param media_type 2750 * @param object_type 2751 * @param sampling_frequency 2752 * @param num_channels 2753 * @param bit_rate 2754 * @param vbr 2755 */ 2756 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04u 2757 2758 /** 2759 * @format 1211111112112 2760 * @param subevent_code 2761 * @param a2dp_cid 2762 * @param local_seid 2763 * @param remote_seid 2764 * @param reconfigure 2765 * @param media_type 2766 * @param version 2767 * @param channel_mode 2768 * @param num_channels 2769 * @param sampling_frequency 2770 * @param vbr 2771 * @param bit_rate_index 2772 * @param maximum_sul 2773 */ 2774 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05u 2775 2776 /** 2777 * @format 1211112LV 2778 * @param subevent_code 2779 * @param a2dp_cid 2780 * @param local_seid 2781 * @param remote_seid 2782 * @param reconfigure 2783 * @param media_type 2784 * @param media_codec_type 2785 * @param media_codec_information_len 2786 * @param media_codec_information 2787 */ 2788 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06u 2789 2790 /** 2791 * @format 12B111 Stream is opened but not started. 2792 * @param subevent_code 2793 * @param a2dp_cid 2794 * @param bd_addr 2795 * @param local_seid 2796 * @param remote_seid 2797 * @param status 2798 */ 2799 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07u 2800 2801 /** 2802 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 2803 * @param subevent_code 2804 * @param a2dp_cid 2805 * @param local_seid 2806 */ 2807 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08u 2808 2809 /** 2810 * @format 121 Indicates that media transfer is started. 2811 * @param subevent_code 2812 * @param a2dp_cid 2813 * @param local_seid 2814 */ 2815 #define A2DP_SUBEVENT_STREAM_STARTED 0x09u 2816 2817 /** 2818 * @format 121 Stream is paused. 2819 * @param subevent_code 2820 * @param a2dp_cid 2821 * @param local_seid 2822 */ 2823 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0Au 2824 2825 /** 2826 * @format 121 Stream is stopped or aborted. 2827 * @param subevent_code 2828 * @param a2dp_cid 2829 * @param local_seid 2830 */ 2831 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0Bu 2832 2833 /** 2834 * @format 121 Stream is released. 2835 * @param subevent_code 2836 * @param a2dp_cid 2837 * @param local_seid 2838 */ 2839 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0Cu 2840 2841 /** 2842 * @format 1211 2843 * @param subevent_code 2844 * @param a2dp_cid 2845 * @param local_seid 2846 * @param signal_identifier 2847 */ 2848 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0Du 2849 2850 /** 2851 * @format 12111 2852 * @param subevent_code 2853 * @param a2dp_cid 2854 * @param local_seid 2855 * @param is_initiator 2856 * @param signal_identifier 2857 */ 2858 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0Eu 2859 2860 /** 2861 * @format 12B21 2862 * @param subevent_code 2863 * @param a2dp_cid 2864 * @param bd_addr 2865 * @param con_handle 2866 * @param status 0 == OK 2867 */ 2868 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0Fu 2869 2870 /** 2871 * @format 12 Signaling channel is released. 2872 * @param subevent_code 2873 * @param a2dp_cid 2874 */ 2875 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10u 2876 2877 /** 2878 * @format 1211 Stream was reconfigured 2879 * @param subevent_code 2880 * @param a2dp_cid 2881 * @param local_seid 2882 * @param status 2883 */ 2884 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12u 2885 2886 /** 2887 * @format 12111111111 2888 * @param subevent_code 2889 * @param a2dp_cid 2890 * @param remote_seid 2891 * @param media_type 2892 * @param sampling_frequency_bitmap 2893 * @param channel_mode_bitmap 2894 * @param block_length_bitmap 2895 * @param subbands_bitmap 2896 * @param allocation_method_bitmap 2897 * @param min_bitpool_value 2898 * @param max_bitpool_value 2899 */ 2900 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13u 2901 2902 /** 2903 * @format 12111111112 2904 * @param subevent_code 2905 * @param a2dp_cid 2906 * @param remote_seid 2907 * @param media_type 2908 * @param layer_bitmap 2909 * @param crc 2910 * @param channel_mode_bitmap 2911 * @param media_payload_format 2912 * @param sampling_frequency_bitmap 2913 * @param vbr 2914 * @param bit_rate_index_bitmap 2915 */ 2916 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14u 2917 2918 /** 2919 * @format 121112131 2920 * @param subevent_code 2921 * @param a2dp_cid 2922 * @param remote_seid 2923 * @param media_type 2924 * @param object_type_bitmap 2925 * @param sampling_frequency_bitmap 2926 * @param channels_bitmap 2927 * @param bit_rate 2928 * @param vbr 2929 */ 2930 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15u 2931 2932 /** 2933 * @format 1211111132 2934 * @param subevent_code 2935 * @param a2dp_cid 2936 * @param remote_seid 2937 * @param media_type 2938 * @param version 2939 * @param channel_mode_bitmap 2940 * @param sampling_frequency_bitmap 2941 * @param vbr 2942 * @param bit_rate_index_bitmap 2943 * @param maximum_sul 2944 */ 2945 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16u 2946 2947 /** 2948 * @format 12112LV 2949 * @param subevent_code 2950 * @param a2dp_cid 2951 * @param remote_seid 2952 * @param media_type 2953 * @param media_codec_type 2954 * @param media_codec_information_len 2955 * @param media_codec_information 2956 */ 2957 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17u 2958 2959 /** 2960 * @format 121 2961 * @param subevent_code 2962 * @param a2dp_cid 2963 * @param remote_seid 2964 */ 2965 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18u 2966 2967 2968 /** 2969 * @format 1212 2970 * @param subevent_code 2971 * @param a2dp_cid 2972 * @param local_seid 2973 * @param delay_100us 2974 */ 2975 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19u 2976 2977 /** 2978 * @format 121 2979 * @param subevent_code 2980 * @param a2dp_cid 2981 * @param remote_seid 2982 */ 2983 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1Au 2984 2985 /** 2986 * @format 12 2987 * @param subevent_code 2988 * @param a2dp_cid 2989 */ 2990 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1Bu 2991 2992 2993 /** AVRCP Subevent */ 2994 2995 /** 2996 * @format 1211 2997 * @param subevent_code 2998 * @param avrcp_cid 2999 * @param command_type 3000 * @param play_status 3001 */ 3002 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01u 3003 3004 /** 3005 * @format 121 3006 * @param subevent_code 3007 * @param avrcp_cid 3008 * @param command_type 3009 */ 3010 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02u 3011 3012 /** 3013 * @format 121 3014 * @param subevent_code 3015 * @param avrcp_cid 3016 * @param command_type 3017 */ 3018 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03u 3019 3020 /** 3021 * @format 121 3022 * @param subevent_code 3023 * @param avrcp_cid 3024 * @param command_type 3025 */ 3026 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04u 3027 3028 /** 3029 * @format 1214 3030 * @param subevent_code 3031 * @param avrcp_cid 3032 * @param command_type 3033 * @param playback_position If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response. 3034 */ 3035 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05u 3036 3037 /** 3038 * @format 1211 3039 * @param subevent_code 3040 * @param avrcp_cid 3041 * @param command_type 3042 * @param battery_status see avrcp_battery_status_t 3043 */ 3044 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06u 3045 3046 /** 3047 * @format 1211 3048 * @param subevent_code 3049 * @param avrcp_cid 3050 * @param command_type 3051 * @param system_status see avrcp_system_status_t 3052 */ 3053 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07u 3054 3055 3056 // 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 3057 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08u 3058 3059 /** 3060 * @format 121 3061 * @param subevent_code 3062 * @param avrcp_cid 3063 * @param command_type 3064 */ 3065 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09u 3066 3067 /** 3068 * @format 121 3069 * @param subevent_code 3070 * @param avrcp_cid 3071 * @param command_type 3072 */ 3073 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0Au 3074 3075 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu, -- The Addressed Player has been changed, see 6.9.2. 3076 3077 /** 3078 * @format 1212 3079 * @param subevent_code 3080 * @param avrcp_cid 3081 * @param command_type 3082 * @param uid_counter of the currently browsed player 3083 */ 3084 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0Cu 3085 3086 /** 3087 * @format 1211 3088 * @param subevent_code 3089 * @param avrcp_cid 3090 * @param command_type 3091 * @param absolute_volume 3092 */ 3093 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0Du 3094 3095 3096 /** 3097 * @format 1211 3098 * @param subevent_code 3099 * @param avrcp_cid 3100 * @param command_type 3101 * @param absolute_volume 3102 */ 3103 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10u 3104 3105 /** 3106 * @format 12111 3107 * @param subevent_code 3108 * @param avrcp_cid 3109 * @param status 3110 * @param enabled // 1 enabled, 0 disabled 3111 * @param event_id 3112 */ 3113 #define AVRCP_SUBEVENT_NOTIFICATION_STATE 0x11u 3114 3115 /** 3116 * @format 112B2 3117 * @param subevent_code 3118 * @param status 0 == OK 3119 * @param avrcp_cid 3120 * @param bd_addr 3121 * @param con_handle 3122 */ 3123 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12u 3124 3125 /** 3126 * @format 12 3127 * @param subevent_code 3128 * @param avrcp_cid 3129 */ 3130 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13u 3131 3132 /** 3133 * @format 12111 3134 * @param subevent_code 3135 * @param avrcp_cid 3136 * @param command_type 3137 * @param repeat_mode 3138 * @param shuffle_mode 3139 */ 3140 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14u 3141 3142 /** 3143 * @format 121441 3144 * @param subevent_code 3145 * @param avrcp_cid 3146 * @param command_type 3147 * @param song_length 3148 * @param song_position 3149 * @param play_status 3150 */ 3151 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15u 3152 3153 /** 3154 * @format 1211 3155 * @param subevent_code 3156 * @param avrcp_cid 3157 * @param command_type 3158 * @param operation_id 3159 */ 3160 #define AVRCP_SUBEVENT_OPERATION_START 0x16u 3161 3162 /** 3163 * @format 1211 3164 * @param subevent_code 3165 * @param avrcp_cid 3166 * @param command_type 3167 * @param operation_id 3168 */ 3169 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17u 3170 3171 /** 3172 * @format 121 3173 * @param subevent_code 3174 * @param avrcp_cid 3175 * @param command_type 3176 */ 3177 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18u 3178 3179 /** 3180 * @format 12 3181 * @param subevent_code 3182 * @param avrcp_cid 3183 */ 3184 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x19u 3185 3186 /** 3187 * @format 121111 3188 * @param subevent_code 3189 * @param avrcp_cid 3190 * @param operation_id 3191 * @param button_pressed 3192 * @param operands_length 3193 * @param operand 3194 */ 3195 #define AVRCP_SUBEVENT_OPERATION 0x1Au 3196 3197 /** 3198 * @format 1211 3199 * @param subevent_code 3200 * @param avrcp_cid 3201 * @param command_type 3202 * @param track 3203 */ 3204 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1Bu 3205 3206 /** 3207 * @format 1211 3208 * @param subevent_code 3209 * @param avrcp_cid 3210 * @param command_type 3211 * @param total_tracks 3212 */ 3213 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1Cu 3214 3215 /** 3216 * @format 1214 3217 * @param subevent_code 3218 * @param avrcp_cid 3219 * @param command_type 3220 * @param song_length in ms 3221 */ 3222 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1Du 3223 3224 /** 3225 * @format 121JV 3226 * @param subevent_code 3227 * @param avrcp_cid 3228 * @param command_type 3229 * @param value_len 3230 * @param value 3231 */ 3232 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x1Eu 3233 3234 /* 3235 * @format 121JV 3236 * @param subevent_code 3237 * @param avrcp_cid 3238 * @param command_type 3239 * @param value_len 3240 * @param value 3241 */ 3242 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x1Fu 3243 3244 /* 3245 * @format 121JV 3246 * @param subevent_code 3247 * @param avrcp_cid 3248 * @param command_type 3249 * @param value_len 3250 * @param value 3251 */ 3252 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x20u 3253 3254 /* 3255 * @format 121JV 3256 * @param subevent_code 3257 * @param avrcp_cid 3258 * @param command_type 3259 * @param value_len 3260 * @param value 3261 */ 3262 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u 3263 3264 /* 3265 * @format 1211 3266 * @param subevent_code 3267 * @param avrcp_cid 3268 * @param command_type 3269 * @param status 3270 */ 3271 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x22u 3272 3273 /** 3274 * @format 1214 3275 * @param subevent_code 3276 * @param avrcp_cid 3277 * @param command_type 3278 * @param playback_position_ms 3279 */ 3280 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x23u 3281 3282 /* 3283 * @format 12111 3284 * @param subevent_code 3285 * @param avrcp_cid 3286 * @param command_type 3287 * @param status 3288 * @param event_id 3289 */ 3290 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x24u 3291 /* 3292 * @format 1211 3293 * @param subevent_code 3294 * @param avrcp_cid 3295 * @param command_type 3296 * @param status 3297 */ 3298 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x25u 3299 3300 /* 3301 * @format 12113 3302 * @param subevent_code 3303 * @param avrcp_cid 3304 * @param command_type 3305 * @param status 3306 * @param company_id 3307 */ 3308 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x26u 3309 /* 3310 * @format 1211 3311 * @param subevent_code 3312 * @param avrcp_cid 3313 * @param command_type 3314 * @param status 3315 */ 3316 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x27u 3317 3318 /** 3319 * @format 1211LV 3320 * @param subevent_code 3321 * @param avrcp_cid 3322 * @param command_type 3323 * @param pdu_id 3324 * @param params_len 3325 * @param params 3326 */ 3327 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x28u 3328 3329 3330 /** 3331 * @format 1B2 3332 * @param subevent_code 3333 * @param bd_addr 3334 * @param browsing_cid 3335 */ 3336 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30u 3337 3338 /** 3339 * @format 11B2 3340 * @param subevent_code 3341 * @param status 0 == OK 3342 * @param bd_addr 3343 * @param browsing_cid 3344 */ 3345 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31u 3346 3347 /** 3348 * @format 12 3349 * @param subevent_code 3350 * @param browsing_cid 3351 */ 3352 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32u 3353 3354 /** 3355 * @format 12211 3356 * @param subevent_code 3357 * @param browsing_cid 3358 * @param uid_counter 3359 * @param browsing_status 3360 * @param bluetooth_status 3361 */ 3362 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33u 3363 3364 /** 3365 * @format 1214 3366 * @param subevent_code 3367 * @param browsing_cid 3368 * @param scope 3369 * @param attr_bitmap 3370 */ 3371 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34u 3372 3373 /** 3374 * @format 121 3375 * @param subevent_code 3376 * @param browsing_cid 3377 * @param scope 3378 */ 3379 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35u 3380 3381 /** 3382 * @format 122 3383 * @param subevent_code 3384 * @param browsing_cid 3385 * @param player_id 3386 */ 3387 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u 3388 3389 3390 /** 3391 * @format 12BH 3392 * @param subevent_code 3393 * @param goep_cid 3394 * @param address 3395 * @param handle 3396 */ 3397 #define GOEP_SUBEVENT_INCOMING_CONNECTION 0x01u 3398 3399 /** 3400 * @format 121BH1 3401 * @param subevent_code 3402 * @param goep_cid 3403 * @param status 3404 * @param bd_addr 3405 * @param con_handle 3406 * @param incoming 3407 */ 3408 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x02u 3409 3410 /** 3411 * @format 12 3412 * @param subevent_code 3413 * @param goep_cid 3414 */ 3415 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x03u 3416 3417 /** 3418 * @format 12 3419 * @param subevent_code 3420 * @param goep_cid 3421 */ 3422 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x04u 3423 3424 /** 3425 * @format 121BH1 3426 * @param subevent_code 3427 * @param pbap_cid 3428 * @param status 3429 * @param bd_addr 3430 * @param con_handle 3431 * @param incoming 3432 */ 3433 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01u 3434 3435 /** 3436 * @format 12 3437 * @param subevent_code 3438 * @param goep_cid 3439 */ 3440 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02u 3441 3442 /** 3443 * @format 121 3444 * @param subevent_code 3445 * @param goep_cid 3446 * @param status 3447 */ 3448 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03u 3449 3450 /** 3451 * @format 1212 3452 * @param subevent_code 3453 * @param goep_cid 3454 * @param status 3455 * @param phonebook_size 3456 */ 3457 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04u 3458 3459 /** 3460 * @format 1211 3461 * @param subevent_code 3462 * @param goep_cid 3463 * @param user_id_required 3464 * @param full_access 3465 */ 3466 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05u 3467 3468 /** 3469 * @format 12JVJV 3470 * @param subevent_code 3471 * @param goep_cid 3472 * @param name_len 3473 * @param name 3474 * @param handle_len 3475 * @param handle 3476 */ 3477 #define PBAP_SUBEVENT_CARD_RESULT 0x06u 3478 3479 3480 // HID Meta Event Group 3481 3482 /** 3483 * @format 12BH 3484 * @param subevent_code 3485 * @param hid_cid 3486 * @param address 3487 * @param handle 3488 */ 3489 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01u 3490 3491 /** 3492 * @format 121BH1 3493 * @param subevent_code 3494 * @param hid_cid 3495 * @param status 3496 * @param bd_addr 3497 * @param con_handle 3498 * @param incoming 3499 */ 3500 #define HID_SUBEVENT_CONNECTION_OPENED 0x02u 3501 3502 /** 3503 * @format 12 3504 * @param subevent_code 3505 * @param hid_cid 3506 */ 3507 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03u 3508 3509 /** 3510 * @format 12 3511 * @param subevent_code 3512 * @param hid_cid 3513 */ 3514 #define HID_SUBEVENT_CAN_SEND_NOW 0x04u 3515 3516 /** 3517 * @format 12 3518 * @param subevent_code 3519 * @param hid_cid 3520 */ 3521 #define HID_SUBEVENT_SUSPEND 0x05u 3522 3523 /** 3524 * @format 12 3525 * @param subevent_code 3526 * @param hid_cid 3527 */ 3528 #define HID_SUBEVENT_EXIT_SUSPEND 0x06u 3529 3530 /** 3531 * @format 12 3532 * @param subevent_code 3533 * @param hid_cid 3534 */ 3535 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07u 3536 3537 /** 3538 * @format 121LV 3539 * @param subevent_code 3540 * @param hid_cid 3541 * @param handshake_status 3542 * @param report_len 3543 * @param report 3544 */ 3545 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08u 3546 3547 /** 3548 * @format 121 3549 * @param subevent_code 3550 * @param hid_cid 3551 * @param handshake_status 3552 */ 3553 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09u 3554 3555 /** 3556 * @format 1211 3557 * @param subevent_code 3558 * @param hid_cid 3559 * @param handshake_status 3560 * @param protocol_mode 3561 */ 3562 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0Au 3563 3564 /** 3565 * @format 1211 3566 * @param subevent_code 3567 * @param hid_cid 3568 * @param handshake_status 3569 * @param protocol_mode 3570 */ 3571 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0Bu 3572 3573 /** 3574 * @format 12LV 3575 * @param subevent_code 3576 * @param hid_cid 3577 * @param report_len 3578 * @param report 3579 */ 3580 #define HID_SUBEVENT_REPORT 0x0Cu 3581 3582 /** 3583 * @format 121 3584 * @param subevent_code 3585 * @param hid_cid 3586 * @param status 3587 */ 3588 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0Du 3589 3590 /** 3591 * @format 1222 3592 * @param subevent_code 3593 * @param hid_cid 3594 * @param host_max_latency 3595 * @param host_min_timeout 3596 */ 3597 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0Eu 3598 3599 // HIDS Meta Event Group 3600 3601 /** 3602 * @format 12 3603 * @param subevent_code 3604 * @param con_handle 3605 */ 3606 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01u 3607 3608 /** 3609 * @format 121 3610 * @param subevent_code 3611 * @param con_handle 3612 * @param protocol_mode 3613 */ 3614 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02u 3615 3616 /** 3617 * @format 121 3618 * @param subevent_code 3619 * @param con_handle 3620 * @param enable 3621 */ 3622 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03u 3623 3624 /** 3625 * @format 121 3626 * @param subevent_code 3627 * @param con_handle 3628 * @param enable 3629 */ 3630 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04u 3631 3632 /** 3633 * @format 121 3634 * @param subevent_code 3635 * @param con_handle 3636 * @param enable 3637 */ 3638 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05u 3639 3640 /** 3641 * @format 121 3642 * @param subevent_code 3643 * @param con_handle 3644 * @param enable 3645 */ 3646 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06u 3647 3648 /** 3649 * @format 121 3650 * @param subevent_code 3651 * @param con_handle 3652 * @param enable 3653 */ 3654 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07u 3655 3656 /** 3657 * @format 12 3658 * @param subevent_code 3659 * @param con_handle 3660 */ 3661 #define HIDS_SUBEVENT_SUSPEND 0x08u 3662 3663 /** 3664 * @format 12 3665 * @param subevent_code 3666 * @param con_handle 3667 */ 3668 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09u 3669 3670 /** 3671 * @format 1211 3672 * @param subevent_code 3673 * @param con_handle 3674 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 3675 * @param is_enhanced 3676 */ 3677 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01u 3678 3679 /** 3680 * @format 12 3681 * @param subevent_code 3682 * @param con_handle 3683 */ 3684 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02u 3685 3686 /** 3687 * @format 12 3688 * @param subevent_code 3689 * @param con_handle 3690 */ 3691 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03u 3692 3693 /** 3694 * @format 12111 3695 * @param subevent_code 3696 * @param hids_cid 3697 * @param status 3698 * @param num_instances 3699 * @param poll_bitmap 3700 */ 3701 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04u 3702 3703 /** 3704 * @format 12111 3705 * @param subevent_code 3706 * @param hids_cid 3707 * @param sevice_index 3708 * @param att_status see ATT errors in bluetooth.h 3709 * @param level 3710 */ 3711 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05u 3712 3713 /** 3714 * @format 1H1 3715 * @param subevent_code 3716 * @param con_handle 3717 * @param att_status 3718 */ 3719 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x06u 3720 3721 /** 3722 * @format 1H1T 3723 * @param subevent_code 3724 * @param con_handle 3725 * @param att_status 3726 * @param value 3727 */ 3728 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x07u 3729 3730 /** 3731 * @format 1H1T 3732 * @param subevent_code 3733 * @param con_handle 3734 * @param att_status 3735 * @param value 3736 */ 3737 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x08u 3738 3739 /** 3740 * @format 1H1T 3741 * @param subevent_code 3742 * @param con_handle 3743 * @param att_status 3744 * @param value 3745 */ 3746 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x09u 3747 3748 /** 3749 * @format 1H1T 3750 * @param subevent_code 3751 * @param con_handle 3752 * @param att_status 3753 * @param value 3754 */ 3755 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0Au 3756 3757 /** 3758 * @format 1H1T 3759 * @param subevent_code 3760 * @param con_handle 3761 * @param att_status 3762 * @param value 3763 */ 3764 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0Bu 3765 3766 /** 3767 * @format 1H1T 3768 * @param subevent_code 3769 * @param con_handle 3770 * @param att_status 3771 * @param value 3772 */ 3773 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0Cu 3774 3775 /** 3776 * @format 1H1413 3777 * @param subevent_code 3778 * @param con_handle 3779 * @param att_status 3780 * @param manufacturer_id_low 3781 * @param manufacturer_id_high 3782 * @param organizationally_unique_id 3783 */ 3784 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0Du 3785 3786 /** 3787 * @format 1H122 3788 * @param subevent_code 3789 * @param con_handle 3790 * @param att_status 3791 * @param value_a 3792 * @param value_b 3793 */ 3794 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x0Eu 3795 3796 /** 3797 * @format 1H11222 3798 * @param subevent_code 3799 * @param con_handle 3800 * @param att_status 3801 * @param vendor_source_id 3802 * @param vendor_id 3803 * @param product_id 3804 * @param product_version 3805 */ 3806 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x0Fu 3807 3808 /** 3809 * @format 1H1 3810 * @param subevent_code 3811 * @param con_handle 3812 * @param att_status 3813 */ 3814 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x10u 3815 3816 /** 3817 * @format 1H 3818 * @param subevent_code 3819 * @param con_handle 3820 */ 3821 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x11u 3822 3823 /** 3824 * @format 1H 3825 * @param subevent_code 3826 * @param con_handle 3827 */ 3828 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x12u 3829 3830 /** 3831 * @format 12111 3832 * @param subevent_code 3833 * @param hids_cid 3834 * @param status 3835 * @param protocol_mode 3836 * @param num_instances 3837 */ 3838 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x13u 3839 3840 /** 3841 * @format 1211LV 3842 * @param subevent_code 3843 * @param hids_cid 3844 * @param service_index 3845 * @param report_id 3846 * @param report_len 3847 * @param report 3848 */ 3849 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x14u 3850 3851 /** 3852 * @format 1212111 3853 * @param subevent_code 3854 * @param hids_cid 3855 * @param service_index 3856 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 3857 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 3858 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 3859 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 3860 */ 3861 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x15u 3862 3863 /** 3864 * @format 1211 3865 * @param subevent_code 3866 * @param hids_cid 3867 * @param service_index 3868 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 3869 */ 3870 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x16u 3871 3872 /** 3873 * @format 121 3874 * @param subevent_code 3875 * @param hids_cid 3876 * @param configuration 3877 */ 3878 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x17u 3879 3880 /** 3881 * @format 1H22 3882 * @param subevent_code 3883 * @param con_handle 3884 * @param max_scan_interval 3885 * @param min_scan_window 3886 */ 3887 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x18u 3888 3889 // LE Audio 3890 3891 /** 3892 * @format 121 3893 * @param subevent_code 3894 * @param hids_cid 3895 * @param status 3896 */ 3897 #define GATTSERVICE_SUBEVENT_MICS_CONNECTED 0x19u 3898 3899 /** 3900 * @format 1211 3901 * @param subevent_code 3902 * @param cid 3903 * @param status 3904 * @param state 3905 */ 3906 #define GATTSERVICE_SUBEVENT_REMOTE_MICS_MUTE 0x1Au 3907 3908 /** 3909 * @format 121 3910 * @param subevent_code 3911 * @param con_handle 3912 * @param state 3913 */ 3914 #define GATTSERVICE_SUBEVENT_LOCAL_MICS_MUTE 0x1Bu 3915 3916 /** 3917 * @format 1211 3918 * @param subevent_code 3919 * @param con_handle 3920 * @param index 3921 * @param state 3922 */ 3923 #define GATTSERVICE_SUBEVENT_AICS_MUTE_MODE 0x1Cu 3924 3925 /** 3926 * @format 1211 3927 * @param subevent_code 3928 * @param con_handle 3929 * @param index 3930 * @param state 3931 */ 3932 #define GATTSERVICE_SUBEVENT_AICS_GAIN_MODE 0x1Du 3933 3934 /** 3935 * @format 1211 3936 * @param subevent_code 3937 * @param con_handle 3938 * @param index 3939 * @param gain_db 3940 */ 3941 #define GATTSERVICE_SUBEVENT_AICS_GAIN_CHANGED 0x1Eu 3942 3943 /** 3944 * @format 121JV 3945 * @param subevent_code 3946 * @param con_handle 3947 * @param index 3948 * @param description_len 3949 * @param description 3950 */ 3951 #define GATTSERVICE_SUBEVENT_AICS_AUDIO_INPUT_DESC_CHANGED 0x20u 3952 3953 /** 3954 * @format 1212 3955 * @param subevent_code 3956 * @param con_handle 3957 * @param index 3958 * @param volume_offset 3959 */ 3960 #define GATTSERVICE_SUBEVENT_VOCS_VOLUME_OFFSET 0x21u 3961 3962 /** 3963 * @format 1214 3964 * @param subevent_code 3965 * @param con_handle 3966 * @param index 3967 * @param audio_location 3968 */ 3969 #define GATTSERVICE_SUBEVENT_VOCS_AUDIO_LOCATION 0x22u 3970 3971 /** 3972 * @format 121JV 3973 * @param subevent_code 3974 * @param con_handle 3975 * @param index 3976 * @param description_len 3977 * @param description 3978 */ 3979 #define GATTSERVICE_SUBEVENT_VOCS_AUDIO_OUTPUT_DESC_CHANGED 0x23u 3980 3981 /** 3982 * @format 12111 3983 * @param subevent_code 3984 * @param con_handle 3985 * @param volume_setting 3986 * @param volume_change_step 3987 * @param mute 3988 */ 3989 #define GATTSERVICE_SUBEVENT_VCS_VOLUME_STATE 0x24u 3990 3991 /** 3992 * @format 121 3993 * @param subevent_code 3994 * @param con_handle 3995 * @param flags 3996 */ 3997 #define GATTSERVICE_SUBEVENT_VCS_VOLUME_FLAGS 0x25u 3998 3999 4000 // MAP Meta Event Group 4001 4002 /** 4003 * @format 121BH1 4004 * @param subevent_code 4005 * @param map_cid 4006 * @param status 4007 * @param bd_addr 4008 * @param con_handle 4009 * @param incoming 4010 */ 4011 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01u 4012 4013 /** 4014 * @format 12 4015 * @param subevent_code 4016 * @param map_cid 4017 */ 4018 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02u 4019 4020 /** 4021 * @format 121 4022 * @param subevent_code 4023 * @param map_cid 4024 * @param status 4025 */ 4026 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03u 4027 4028 4029 /** 4030 * @format 12LV 4031 * @param subevent_code 4032 * @param map_cid 4033 * @param name_len 4034 * @param name 4035 */ 4036 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04u 4037 4038 /** 4039 * @format 12D 4040 * @param subevent_code 4041 * @param map_cid 4042 * @param handle 4043 4044 */ 4045 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05u 4046 4047 /** 4048 * @format 12 4049 * @param subevent_code 4050 * @param map_cid 4051 */ 4052 #define MAP_SUBEVENT_PARSING_DONE 0x06u 4053 4054 4055 // MESH Meta Event Group 4056 4057 /** 4058 * @format 1 4059 * @param subevent_code 4060 */ 4061 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01u 4062 4063 /** 4064 * @format 11 4065 * @param subevent_code 4066 * @param status 4067 */ 4068 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02u 4069 4070 /** 4071 * @format 1121 4072 * @param subevent_code 4073 * @param status 4074 * @param pb_transport_cid 4075 * @param pb_type 4076 */ 4077 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03u 4078 4079 /** 4080 * @format 112 4081 * @param subevent_code 4082 * @param pb_transport_cid 4083 * @param reason 4084 */ 4085 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04u 4086 4087 /** 4088 * @format 121 4089 * @param subevent_code 4090 * @param pb_transport_cid 4091 * @param attention_time in seconds 4092 */ 4093 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10u 4094 4095 /** 4096 * Device Role 4097 * @format 12 4098 * @param subevent_code 4099 * @param pb_transport_cid 4100 */ 4101 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11u 4102 4103 /** 4104 * Device Role 4105 * @format 12 4106 * @param subevent_code 4107 * @param pb_transport_cid 4108 */ 4109 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12u 4110 4111 /** 4112 * Device Role 4113 * @format 12 4114 * @param subevent_code 4115 * @param pb_transport_cid 4116 */ 4117 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13u 4118 4119 /** 4120 * Device Role 4121 * @format 124 4122 * @param subevent_code 4123 * @param pb_transport_cid 4124 * @param output_oob number 4125 */ 4126 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15u 4127 4128 /** 4129 * Device Role 4130 * @format 12 4131 * @param subevent_code 4132 * @param pb_transport_cid 4133 */ 4134 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16u 4135 4136 /** 4137 * Provisioner Role 4138 * @format 12 4139 * @param subevent_code 4140 * @param pb_transport_cid 4141 */ 4142 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17u 4143 4144 /** 4145 * Provisioner Role 4146 * @format 12 4147 * @param subevent_code 4148 * @param pb_transport_cid 4149 */ 4150 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18u 4151 4152 /** 4153 * Provisioner Role 4154 * @format 12 4155 * @param subevent_code 4156 * @param pb_transport_cid 4157 */ 4158 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19u 4159 4160 /** 4161 * Provisioner Role 4162 * @format 124 4163 * @param subevent_code 4164 * @param pb_transport_cid 4165 * @param output_oob number 4166 */ 4167 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1au 4168 4169 /** 4170 * Provisioner Role 4171 * @format 12 4172 * @param subevent_code 4173 * @param pb_transport_cid 4174 */ 4175 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1bu 4176 4177 /** 4178 * Provisioner Role 4179 * @format 1212111212 4180 * @param subevent_code 4181 * @param pb_transport_cid 4182 * @param num_elements 4183 * @param algorithms 4184 * @param public_key 4185 * @param static_oob_type 4186 * @param output_oob_size 4187 * @param output_oob_action 4188 * @param input_oob_size 4189 * @param input_oob_action 4190 */ 4191 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1cu 4192 4193 /** 4194 * @format 12 4195 * @param subevent_code 4196 * @param pb_transport_cid 4197 */ 4198 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1du 4199 4200 /** 4201 * @format 11 4202 * @param subevent_code 4203 * @param attention_time in seconds 4204 */ 4205 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1eu 4206 4207 /** 4208 * @format 1H 4209 * @param subevent_code 4210 * @param con_handle 4211 */ 4212 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20u 4213 4214 /** 4215 * @format 1H 4216 * @param subevent_code 4217 * @param con_handle 4218 */ 4219 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21u 4220 4221 /** 4222 * @format 1H 4223 * @param subevent_code 4224 * @param con_handle 4225 */ 4226 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22u 4227 4228 /** 4229 * @format 1H 4230 * @param subevent_code 4231 * @param con_handle 4232 */ 4233 #define MESH_SUBEVENT_MESSAGE_SENT 0x23u 4234 4235 /** 4236 * @format 114411 4237 * @param subevent_code 4238 * @param element_index 4239 * @param model_identifier 4240 * @param state_identifier 4241 * @param reason 4242 * @param value 4243 */ 4244 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24u 4245 4246 /** 4247 * @format 114412 4248 * @param subevent_code 4249 * @param element_index 4250 * @param model_identifier 4251 * @param state_identifier 4252 * @param reason 4253 * @param value 4254 */ 4255 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25u 4256 4257 // Mesh Client Events 4258 /** 4259 * @format 11442 4260 * @param subevent_code 4261 * @param element_index 4262 * @param model_identifier 4263 * @param opcode 4264 * @param dest 4265 */ 4266 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30u 4267 4268 /** 4269 * @format 121114 4270 * @param subevent_code 4271 * @param dest 4272 * @param status 4273 * @param present_value 4274 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4275 * @param remaining_time_ms 4276 */ 4277 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31u 4278 4279 /** 4280 * @format 121224 4281 * @param subevent_code 4282 * @param dest 4283 * @param status 4284 * @param present_value 4285 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4286 * @param remaining_time_ms 4287 */ 4288 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32u 4289 4290 /** 4291 * @format 1222211 4292 * @param subevent_code 4293 * @param dest 4294 * @param netkey_index 4295 * @param appkey_index 4296 * @param company_id 4297 * @param test_id 4298 * @param acknowledged 4299 */ 4300 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33u 4301 4302 /** 4303 * @format 11 4304 * @param subevent_code 4305 * @param element_index 4306 */ 4307 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34u 4308 4309 /** 4310 * @format 1211 4311 * @param subevent_code 4312 * @param dest 4313 * @param status 4314 * @param transition_time_gdtt 4315 */ 4316 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35u 4317 4318 /** 4319 * @format 1211 4320 * @param subevent_code 4321 * @param dest 4322 * @param foundation_status 4323 * @param secure_network_beacon_state 4324 */ 4325 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36u 4326 4327 // Composition Data has variable of element descriptions, with two lists of model lists 4328 // Use .. getters to access data 4329 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37u 4330 4331 /** 4332 * @format 1211 4333 * @param subevent_code 4334 * @param dest 4335 * @param foundation_status 4336 * @param default_ttl 4337 */ 4338 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38u 4339 4340 /** 4341 * @format 1211 4342 * @param subevent_code 4343 * @param dest 4344 * @param foundation_status 4345 * @param gatt_proxy_state 4346 */ 4347 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39u 4348 4349 /** 4350 * @format 121111 4351 * @param subevent_code 4352 * @param dest 4353 * @param foundation_status 4354 * @param relay 4355 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 4356 * @param retransmit_interval_ms retransmission interval in ms 4357 */ 4358 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40u 4359 4360 4361 /** 4362 * @format 12122111114 4363 * @param subevent_code 4364 * @param dest element_address 4365 * @param foundation_status 4366 * @param publish_address 4367 * @param appkey_index 4368 * @param credential_flag 4369 * @param publish_ttl 4370 * @param publish_period 4371 * @param publish_retransmit_count 4372 * @param publish_retransmit_interval_steps 4373 * @param model_identifier 4374 */ 4375 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41u 4376 4377 /** 4378 * @format 12124 4379 * @param subevent_code 4380 * @param dest 4381 * @param foundation_status 4382 * @param address 4383 * @param model_identifier 4384 */ 4385 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42u 4386 4387 /** 4388 * @format 1214112 4389 * @param subevent_code 4390 * @param dest 4391 * @param foundation_status 4392 * @param model_identifier 4393 * @param num_subscription_addresses 4394 * @param subscription_address_pos 4395 * @param subscription_address_item 4396 */ 4397 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43u 4398 4399 4400 /** 4401 * @format 121 4402 * @param subevent_code 4403 * @param dest 4404 * @param foundation_status 4405 */ 4406 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44u 4407 4408 /** 4409 * @format 121112 4410 * @param subevent_code 4411 * @param dest 4412 * @param foundation_status 4413 * @param num_netkey_indexes 4414 * @param netkey_index_pos 4415 * @param netkey_index_item 4416 */ 4417 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45u 4418 4419 /** 4420 * @format 12122 4421 * @param subevent_code 4422 * @param dest 4423 * @param foundation_status 4424 * @param netkey_index_item 4425 * @param appkey_index_item 4426 */ 4427 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46u 4428 4429 /** 4430 * @format 12121122 4431 * @param subevent_code 4432 * @param dest 4433 * @param foundation_status 4434 * @param netkey_index 4435 * @param num_appkey_indexes 4436 * @param appkey_index_pos 4437 * @param netkey_index_item 4438 * @param appkey_index_item 4439 */ 4440 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47u 4441 4442 /** 4443 * @format 12121 4444 * @param subevent_code 4445 * @param dest 4446 * @param foundation_status 4447 * @param netkey_index_item 4448 * @param identity_status 4449 */ 4450 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48u 4451 4452 /** 4453 * @format 12124 4454 * @param subevent_code 4455 * @param dest 4456 * @param foundation_status 4457 * @param appkey_index 4458 * @param model_identifier 4459 */ 4460 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49u 4461 4462 /** 4463 * @format 1214112 4464 * @param subevent_code 4465 * @param dest 4466 * @param foundation_status 4467 * @param model_id 4468 * @param num_appkey_indexes 4469 * @param appkey_index_pos 4470 * @param appkey_index_item 4471 */ 4472 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50u 4473 4474 /** 4475 * @format 121 4476 * @param subevent_code 4477 * @param dest 4478 * @param foundation_status 4479 */ 4480 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51u 4481 4482 /** 4483 * @format 1211 4484 * @param subevent_code 4485 * @param dest 4486 * @param foundation_status 4487 * @param friend_state 4488 */ 4489 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52u 4490 4491 /** 4492 * @format 12121 4493 * @param subevent_code 4494 * @param dest 4495 * @param foundation_status 4496 * @param netkey_index 4497 * @param phase 4498 */ 4499 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53u 4500 4501 /** 4502 * @format 121222122 4503 * @param subevent_code 4504 * @param dest 4505 * @param foundation_status 4506 * @param heartbeat_destination 4507 * @param count_S 4508 * @param period_S 4509 * @param ttl 4510 * @param features 4511 * @param netkey_index 4512 */ 4513 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54u 4514 4515 /** 4516 * @format 121222211 4517 * @param subevent_code 4518 * @param dest 4519 * @param foundation_status 4520 * @param heartbeat_destination 4521 * @param heartbeat_source 4522 * @param count_S 4523 * @param period_S 4524 * @param min_hops 4525 * @param max_hops 4526 */ 4527 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55u 4528 4529 /** 4530 * @format 12123 4531 * @param subevent_code 4532 * @param dest 4533 * @param foundation_status 4534 * @param lpn_address 4535 * @param poll_timeout 4536 */ 4537 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56u 4538 4539 /** 4540 * @format 12112 4541 * @param subevent_code 4542 * @param dest 4543 * @param foundation_status 4544 * @param transmit_count 4545 * @param transmit_interval_steps_ms 4546 */ 4547 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57u 4548 4549 4550 #endif 4551