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