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