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