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