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 MATTHIAS 24 * RINGWALD 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 * btstack-defines.h 40 * 41 * BTstack definitions, events, and error codes */ 42 43 #ifndef BTSTACK_DEFINES_H 44 #define BTSTACK_DEFINES_H 45 46 #include <stdint.h> 47 #include "btstack_linked_list.h" 48 49 50 // UNUSED macro 51 #ifndef UNUSED 52 #define UNUSED(x) (void)(sizeof(x)) 53 #endif 54 55 56 #if !defined(__cplusplus) 57 58 // 59 // Check for C99 60 // see: https://sourceforge.net/p/predef/wiki/Standards/ 61 // 62 #if defined(__STDC__) 63 # if defined(__STDC_VERSION__) 64 # if (__STDC_VERSION__ >= 199901L) 65 # define PREDEF_STANDARD_C_1999 66 # endif 67 # endif 68 #endif 69 70 // define boolean type - required for MISRA-C 2012 Essential Type System 71 #ifdef PREDEF_STANDARD_C_1999 72 // use <stdbool.h> if C99 or higher 73 #include <stdbool.h> 74 #else 75 // backport for pre-c99 compilers 76 #define bool unsigned char 77 #define false 0 78 #define true 1 79 #endif 80 81 #endif 82 83 // TYPES 84 85 // packet handler 86 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); 87 88 // packet callback supporting multiple registrations 89 typedef struct { 90 btstack_linked_item_t item; 91 btstack_packet_handler_t callback; 92 } btstack_packet_callback_registration_t; 93 94 // context callback supporting multiple registrations 95 typedef struct { 96 btstack_linked_item_t * item; 97 void (*callback)(void * context); 98 void * context; 99 } btstack_context_callback_registration_t; 100 101 /** 102 * @brief 128 bit key used with AES128 in Security Manager 103 */ 104 typedef uint8_t sm_key_t[16]; 105 106 // DEFINES 107 108 // hci con handles (12 bit): 0x0000..0x0fff 109 #define HCI_CON_HANDLE_INVALID 0xffff 110 111 112 #define DAEMON_EVENT_PACKET 0x05 113 114 // L2CAP data 115 #define L2CAP_DATA_PACKET 0x06 116 117 // RFCOMM data 118 #define RFCOMM_DATA_PACKET 0x07 119 120 // Attribute protocol data 121 #define ATT_DATA_PACKET 0x08 122 123 // Security Manager protocol data 124 #define SM_DATA_PACKET 0x09 125 126 // SDP query result - only used by daemon 127 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k) 128 #define SDP_CLIENT_PACKET 0x0a 129 130 // BNEP data 131 #define BNEP_DATA_PACKET 0x0b 132 133 // Unicast Connectionless Data 134 #define UCD_DATA_PACKET 0x0c 135 136 // GOEP data 137 #define GOEP_DATA_PACKET 0x0d 138 139 // PBAP data 140 #define PBAP_DATA_PACKET 0x0e 141 142 // AVRCP browsing data 143 #define AVRCP_BROWSING_DATA_PACKET 0x0f 144 145 // MAP data 146 #define MAP_DATA_PACKET 0x10 147 148 // Mesh Provisioning PDU 149 #define PROVISIONING_DATA_PACKET 0x11 150 151 // Mesh Proxy PDU 152 #define MESH_PROXY_DATA_PACKET 0x11 153 154 // Mesh Network PDU 155 #define MESH_NETWORK_PACKET 0x12 156 157 // Mesh Network PDU 158 #define MESH_BEACON_PACKET 0x13 159 160 // debug log messages 161 #define LOG_MESSAGE_PACKET 0xfc 162 163 164 // DAEMON COMMANDS 165 166 #define OGF_BTSTACK 0x3d 167 168 // cmds for BTstack 169 // get state: @returns HCI_STATE 170 #define BTSTACK_GET_STATE 0x01 171 172 // set power mode: param HCI_POWER_MODE 173 #define BTSTACK_SET_POWER_MODE 0x02 174 175 // set capture mode: param on 176 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03 177 178 // get BTstack version 179 #define BTSTACK_GET_VERSION 0x04 180 181 // get system Bluetooth state 182 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05 183 184 // set system Bluetooth state 185 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06 186 187 // enable inquiry scan for this client 188 #define BTSTACK_SET_DISCOVERABLE 0x07 189 190 // set global Bluetooth state 191 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08 192 193 // create l2cap channel: param bd_addr(48), psm (16) 194 #define L2CAP_CREATE_CHANNEL 0x20 195 196 // disconnect l2cap disconnect, param channel(16), reason(8) 197 #define L2CAP_DISCONNECT 0x21 198 199 // register l2cap service: param psm(16), mtu (16) 200 #define L2CAP_REGISTER_SERVICE 0x22 201 202 // unregister l2cap disconnect, param psm(16) 203 #define L2CAP_UNREGISTER_SERVICE 0x23 204 205 // accept connection param bd_addr(48), dest cid (16) 206 #define L2CAP_ACCEPT_CONNECTION 0x24 207 208 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 209 #define L2CAP_DECLINE_CONNECTION 0x25 210 211 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 212 #define L2CAP_CREATE_CHANNEL_MTU 0x26 213 214 // register SDP Service Record: service record (size) 215 #define SDP_REGISTER_SERVICE_RECORD 0x30 216 217 // unregister SDP Service Record 218 #define SDP_UNREGISTER_SERVICE_RECORD 0x31 219 220 // Get remote RFCOMM services 221 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32 222 223 // Get remote SDP services 224 #define SDP_CLIENT_QUERY_SERVICES 0x33 225 226 // RFCOMM "HCI" Commands 227 #define RFCOMM_CREATE_CHANNEL 0x40 228 #define RFCOMM_DISCONNECT 0x41 229 #define RFCOMM_REGISTER_SERVICE 0x42 230 #define RFCOMM_UNREGISTER_SERVICE 0x43 231 #define RFCOMM_ACCEPT_CONNECTION 0x44 232 #define RFCOMM_DECLINE_CONNECTION 0x45 233 #define RFCOMM_PERSISTENT_CHANNEL 0x46 234 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47 235 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48 236 #define RFCOMM_GRANT_CREDITS 0x49 237 238 // GAP Classic 0x50 239 #define GAP_DISCONNECT 0x50 240 241 // GAP LE 0x60 242 #define GAP_LE_SCAN_START 0x60 243 #define GAP_LE_SCAN_STOP 0x61 244 #define GAP_LE_CONNECT 0x62 245 #define GAP_LE_CONNECT_CANCEL 0x63 246 #define GAP_LE_SET_SCAN_PARAMETERS 0x64 247 248 // GATT (Client) 0x70 249 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70 250 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71 251 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72 252 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73 253 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74 254 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75 255 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76 256 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77 257 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78 258 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79 259 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7A 260 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7B 261 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7C 262 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7D 263 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7E 264 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7F 265 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80 266 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81 267 #define GATT_GET_MTU 0x82 268 269 // SM 0x90 270 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90 271 #define SM_SET_IO_CAPABILITIES 0x92 272 #define SM_BONDING_DECLINE 0x93 273 #define SM_JUST_WORKS_CONFIRM 0x94 274 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95 275 #define SM_PASSKEY_INPUT 0x96 276 277 // ATT 278 279 // .. 280 // Internal properties reuse some GATT Characteristic Properties fields 281 #define ATT_DB_VERSION 0x01 282 283 // EVENTS 284 285 // Events from host controller to host 286 287 /** 288 * @format 1 289 * @param status 290 */ 291 #define HCI_EVENT_INQUIRY_COMPLETE 0x01 292 293 /** 294 * @format 1B11132 295 * @param num_responses 296 * @param bd_addr 297 * @param page_scan_repetition_mode 298 * @param reserved1 299 * @param reserved2 300 * @param class_of_device 301 * @param clock_offset 302 */ 303 #define HCI_EVENT_INQUIRY_RESULT 0x02 304 305 /** 306 * @format 12B11 307 * @param status 308 * @param connection_handle 309 * @param bd_addr 310 * @param link_type 311 * @param encryption_enabled 312 */ 313 #define HCI_EVENT_CONNECTION_COMPLETE 0x03 314 /** 315 * @format B31 316 * @param bd_addr 317 * @param class_of_device 318 * @param link_type 319 */ 320 #define HCI_EVENT_CONNECTION_REQUEST 0x04 321 /** 322 * @format 121 323 * @param status 324 * @param connection_handle 325 * @param reason 326 */ 327 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05 328 /** 329 * @format 12 330 * @param status 331 * @param connection_handle 332 */ 333 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06 334 335 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead 336 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE 337 338 /** 339 * @format 1BN 340 * @param status 341 * @param bd_addr 342 * @param remote_name 343 */ 344 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07 345 /** 346 * @format 121 347 * @param status 348 * @param connection_handle 349 * @param encryption_enabled 350 */ 351 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08 352 /** 353 * @format 12 354 * @param status 355 * @param connection_handle 356 */ 357 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09 358 /** 359 * @format 121 360 * @param status 361 * @param connection_handle 362 * @param key_flag 363 */ 364 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0A 365 366 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0B 367 368 /** 369 * @format 12122 370 * @param status 371 * @param connection_handle 372 * @param version 373 * @param manufacturer_name 374 * @param subversion 375 */ 376 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C 377 378 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0D 379 380 /** 381 * @format 12R 382 * @param num_hci_command_packets 383 * @param command_opcode 384 * @param return_parameters 385 */ 386 #define HCI_EVENT_COMMAND_COMPLETE 0x0E 387 /** 388 * @format 112 389 * @param status 390 * @param num_hci_command_packets 391 * @param command_opcode 392 */ 393 #define HCI_EVENT_COMMAND_STATUS 0x0F 394 395 /** 396 * @format 1 397 * @param hardware_code 398 */ 399 #define HCI_EVENT_HARDWARE_ERROR 0x10 400 401 #define HCI_EVENT_FLUSH_OCCURRED 0x11 402 403 /** 404 * @format 1B1 405 * @param status 406 * @param bd_addr 407 * @param role 408 */ 409 #define HCI_EVENT_ROLE_CHANGE 0x12 410 411 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 412 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13 413 414 /** 415 * @format 1H12 416 * @param status 417 * @param handle 418 * @param mode 419 * @param interval 420 */ 421 #define HCI_EVENT_MODE_CHANGE 0x14 422 423 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 424 #define HCI_EVENT_RETURN_LINK_KEYS 0x15 425 426 /** 427 * @format B 428 * @param bd_addr 429 */ 430 #define HCI_EVENT_PIN_CODE_REQUEST 0x16 431 432 /** 433 * @format B 434 * @param bd_addr 435 */ 436 #define HCI_EVENT_LINK_KEY_REQUEST 0x17 437 438 // TODO: bd_addr B, link_key 16octets, key_type 1 439 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18 440 441 /** 442 * @format 1 443 * @param link_type 444 */ 445 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1A 446 447 /** 448 * @format H1 449 * @param handle 450 * @param lmp_max_slots 451 */ 452 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1B 453 454 /** 455 * @format 1H2 456 * @param status 457 * @param handle 458 * @param clock_offset 459 */ 460 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1C 461 462 /** 463 * @format 1H2 464 * @param status 465 * @param handle 466 * @param packet_types 467 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 468 */ 469 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1D 470 471 /** 472 * @format 1B11321 473 * @param num_responses 474 * @param bd_addr 475 * @param page_scan_repetition_mode 476 * @param reserved 477 * @param class_of_device 478 * @param clock_offset 479 * @param rssi 480 */ 481 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22 482 483 /** 484 * @format 1HB111221 485 * @param status 486 * @param handle 487 * @param bd_addr 488 * @param link_type 489 * @param transmission_interval 490 * @param retransmission_interval 491 * @param rx_packet_length 492 * @param tx_packet_length 493 * @param air_mode 494 */ 495 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2C 496 497 // TODO: serialize extended_inquiry_response and provide parser 498 /** 499 * @format 1B11321 500 * @param num_responses 501 * @param bd_addr 502 * @param page_scan_repetition_mode 503 * @param reserved 504 * @param class_of_device 505 * @param clock_offset 506 * @param rssi 507 */ 508 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2F 509 510 /** 511 * @format 1H 512 * @param status 513 * @param handle 514 */ 515 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30 516 517 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31 518 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32 519 520 /** 521 * @format B4 522 * @param bd_addr 523 * @param numeric_value 524 */ 525 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33 526 527 /** 528 * @format B 529 * @param bd_addr 530 */ 531 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34 532 533 /** 534 * @format B 535 * @param bd_addr 536 */ 537 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35 538 539 /** 540 * @format 1B 541 * @param status 542 * @param bd_addr 543 */ 544 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36 545 546 #define HCI_EVENT_LE_META 0x3E 547 548 // last used HCI_EVENT in 2.1 is 0x3d 549 // last used HCI_EVENT in 4.1 is 0x57 550 551 #define HCI_EVENT_VENDOR_SPECIFIC 0xFF 552 553 /** 554 * @format 11H11B2221 555 * @param subevent_code 556 * @param status 557 * @param connection_handle 558 * @param role 559 * @param peer_address_type 560 * @param peer_address 561 * @param conn_interval 562 * @param conn_latency 563 * @param supervision_timeout 564 * @param master_clock_accuracy 565 */ 566 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01 567 568 // array of advertisements, not handled by event accessor generator 569 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02 570 571 /** 572 * @format 11H222 573 * @param subevent_code 574 * @param status 575 * @param connection_handle 576 * @param conn_interval 577 * @param conn_latency 578 * @param supervision_timeout 579 */ 580 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03 581 582 /** 583 * @format 1HD2 584 * @param subevent_code 585 * @param connection_handle 586 * @param random_number 587 * @param encryption_diversifier 588 */ 589 #define HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 0x04 590 591 /** 592 * @format 1HD2 593 * @param subevent_code 594 * @param connection_handle 595 * @param random_number 596 * @param encryption_diversifier 597 */ 598 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05 599 600 /** 601 * @format 1H2222 602 * @param subevent_code 603 * @param connection_handle 604 * @param interval_min 605 * @param interval_max 606 * @param latency 607 * @param timeout 608 */ 609 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06 610 611 /** 612 * @format 1H2222 613 * @param subevent_code 614 * @param connection_handle 615 * @param max_tx_octets 616 * @param max_tx_time 617 * @param max_rx_octets 618 * @param max_rx_time 619 */ 620 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07 621 622 /** 623 * @format 11QQ 624 * @param subevent_code 625 * @param status 626 * @param dhkey_x x coordinate of P256 public key 627 * @param dhkey_y y coordinate of P256 public key 628 */ 629 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08 630 /** 631 * @format 11Q 632 * @param subevent_code 633 * @param status 634 * @param dhkey Diffie-Hellman key 635 */ 636 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09 637 638 /** 639 * @format 11H11BBB2221 640 * @param subevent_code 641 * @param status 642 * @param connection_handle 643 * @param role 644 * @param peer_address_type 645 * @param perr_addresss 646 * @param local_resolvable_private_addres 647 * @param peer_resolvable_private_addres 648 * @param conn_interval 649 * @param conn_latency 650 * @param supervision_timeout 651 * @param master_clock_accuracy 652 */ 653 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 0x0A 654 655 // array of advertisements, not handled by event accessor generator 656 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0B 657 658 659 /** 660 * @format 1 661 * @param state 662 */ 663 #define BTSTACK_EVENT_STATE 0x60 664 665 /** 666 * @format 1 667 * @param number_connections 668 */ 669 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61 670 671 /** 672 * @format 673 */ 674 #define BTSTACK_EVENT_POWERON_FAILED 0x62 675 676 /** 677 * @format 1 678 * @param discoverable 679 */ 680 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 681 682 // Daemon Events 683 684 /** 685 * @format 112 686 * @param major 687 * @param minor 688 @ @param revision 689 */ 690 #define DAEMON_EVENT_VERSION 0x63 691 692 // data: system bluetooth on/off (bool) 693 /** 694 * @format 1 695 * param system_bluetooth_enabled 696 */ 697 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 698 699 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 700 701 /* 702 * @format 1BT 703 * @param status == 0 to match read_remote_name_request 704 * @param address 705 * @param name 706 */ 707 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 708 709 // internal - data: event(8) 710 #define DAEMON_EVENT_CONNECTION_OPENED 0x67 711 712 // internal - data: event(8) 713 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68 714 715 // data: event(8), len(8), local_cid(16), credits(8) 716 #define DAEMON_EVENT_L2CAP_CREDITS 0x74 717 718 /** 719 * @format 12 720 * @param status 721 * @param psm 722 */ 723 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75 724 725 /** 726 * @format 21 727 * @param rfcomm_cid 728 * @param credits 729 */ 730 #define DAEMON_EVENT_RFCOMM_CREDITS 0x84 731 732 /** 733 * @format 11 734 * @param status 735 * @param channel_id 736 */ 737 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85 738 739 /** 740 * @format 11 741 * @param status 742 * @param server_channel_id 743 */ 744 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86 745 746 /** 747 * @format 14 748 * @param status 749 * @param service_record_handle 750 */ 751 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90 752 753 754 755 // additional HCI events 756 757 /** 758 * @brief Indicates HCI transport enters/exits Sleep mode 759 * @format 1 760 * @param active 761 */ 762 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69 763 764 /** 765 * @brief Outgoing packet 766 */ 767 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6E 768 769 /** 770 * @format B 771 * @param handle 772 */ 773 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F 774 775 776 // L2CAP EVENTS 777 778 /** 779 * @format 1BH222222111 780 * @param status 781 * @param address 782 * @param handle 783 * @param psm 784 * @param local_cid 785 * @param remote_cid 786 * @param local_mtu 787 * @param remote_mtu 788 * @param flush_timeout 789 * @param incoming 790 * @param mode 791 * @param fcs 792 */ 793 #define L2CAP_EVENT_CHANNEL_OPENED 0x70 794 795 /* 796 * @format 2 797 * @param local_cid 798 */ 799 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71 800 801 /** 802 * @format BH222 803 * @param address 804 * @param handle 805 * @param psm 806 * @param local_cid 807 * @param remote_cid 808 */ 809 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72 810 811 // ?? 812 // data: event(8), len(8), handle(16) 813 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73 814 815 /** 816 * @format H2222 817 * @param handle 818 * @param interval_min 819 * @param interval_max 820 * @param latencey 821 * @param timeout_multiplier 822 */ 823 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76 824 825 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 826 /** 827 * @format H2 828 * @param handle 829 * @param result 830 */ 831 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77 832 833 /** 834 * @format 2 835 * @param local_cid 836 */ 837 #define L2CAP_EVENT_CAN_SEND_NOW 0x78 838 839 // LE Data Channels 840 841 /** 842 * @format 1BH2222 843 * @param address_type 844 * @param address 845 * @param handle 846 * @param psm 847 * @param local_cid 848 * @param remote_cid 849 * @param remote_mtu 850 */ 851 #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 852 853 /** 854 * @format 11BH122222 855 * @param status 856 * @param address_type 857 * @param address 858 * @param handle 859 * @param incoming 860 * @param psm 861 * @param local_cid 862 * @param remote_cid 863 * @param local_mtu 864 * @param remote_mtu 865 */ 866 #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 867 868 /* 869 * @format 2 870 * @param local_cid 871 */ 872 #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 873 874 /* 875 * @format 2 876 * @param local_cid 877 */ 878 #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 879 880 /* 881 * @format 2 882 * @param local_cid 883 */ 884 #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 885 886 /* 887 * @format 2 888 * @param local_cid 889 */ 890 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7e 891 892 893 // RFCOMM EVENTS 894 895 /** 896 * @format 1B21221 897 * @param status 898 * @param bd_addr 899 * @param con_handle 900 * @param server_channel 901 * @param rfcomm_cid 902 * @param max_frame_size 903 * @param incoming 904 */ 905 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 906 907 /** 908 * @format 2 909 * @param rfcomm_cid 910 */ 911 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 912 913 /** 914 * @format B12 915 * @param bd_addr 916 * @param server_channel 917 * @param rfcomm_cid 918 */ 919 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 920 921 /** 922 * @format 21 923 * @param rfcomm_cid 924 * @param line_status 925 */ 926 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 927 928 /** 929 * @format 21 930 * @param rfcomm_cid 931 * @param modem_status 932 */ 933 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 934 935 /** 936 * TODO: format for variable data 2? 937 * param rfcomm_cid 938 * param rpn_data 939 */ 940 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 941 942 /** 943 * @format 2 944 * @param rfcomm_cid 945 */ 946 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 947 948 949 /** 950 * @format 1 951 * @param status 952 */ 953 #define SDP_EVENT_QUERY_COMPLETE 0x91 954 955 /** 956 * @format 1T 957 * @param rfcomm_channel 958 * @param name 959 */ 960 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 961 962 /** 963 * @format 22221 964 * @param record_id 965 * @param attribute_id 966 * @param attribute_length 967 * @param data_offset 968 * @param data 969 */ 970 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 971 972 /** 973 * @format 22LV 974 * @param record_id 975 * @param attribute_id 976 * @param attribute_length 977 * @param attribute_value 978 */ 979 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 980 981 /** 982 * @format 224 983 * @param total_count 984 * @param record_index 985 * @param record_handle 986 * @note Not provided by daemon, only used for internal testing 987 */ 988 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 989 990 /** 991 * @format H1 992 * @param handle 993 * @param att_status see ATT errors in bluetooth.h 994 */ 995 #define GATT_EVENT_QUERY_COMPLETE 0xA0 996 997 /** 998 * @format HX 999 * @param handle 1000 * @param service 1001 */ 1002 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 1003 1004 /** 1005 * @format HY 1006 * @param handle 1007 * @param characteristic 1008 */ 1009 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 1010 1011 /** 1012 * @format H2X 1013 * @param handle 1014 * @param include_handle 1015 * @param service 1016 */ 1017 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 1018 1019 /** 1020 * @format HZ 1021 * @param handle 1022 * @param characteristic_descriptor 1023 */ 1024 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 1025 1026 /** 1027 * @format H2LV 1028 * @param handle 1029 * @param value_handle 1030 * @param value_length 1031 * @param value 1032 */ 1033 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 1034 1035 /** 1036 * @format H22LV 1037 * @param handle 1038 * @param value_handle 1039 * @param value_offset 1040 * @param value_length 1041 * @param value 1042 */ 1043 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 1044 1045 /** 1046 * @format H2LV 1047 * @param handle 1048 * @param value_handle 1049 * @param value_length 1050 * @param value 1051 */ 1052 #define GATT_EVENT_NOTIFICATION 0xA7 1053 1054 /** 1055 * @format H2LV 1056 * @param handle 1057 * @param value_handle 1058 * @param value_length 1059 * @param value 1060 */ 1061 #define GATT_EVENT_INDICATION 0xA8 1062 1063 /** 1064 * @format H2LV 1065 * @param handle 1066 * @param descriptor_handle 1067 * @param descriptor_length 1068 * @param descriptor 1069 */ 1070 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 1071 1072 /** 1073 * @format H2LV 1074 * @param handle 1075 * @param descriptor_offset 1076 * @param descriptor_length 1077 * @param descriptor 1078 */ 1079 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 1080 1081 /** 1082 * @format H2 1083 * @param handle 1084 * @param MTU 1085 */ 1086 #define GATT_EVENT_MTU 0xAB 1087 1088 /** 1089 * @format H 1090 * @param handle 1091 */ 1092 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xAC 1093 1094 /** 1095 * @format 1BH 1096 * @param address_type 1097 * @param address 1098 * @param handle 1099 */ 1100 #define ATT_EVENT_CONNECTED 0xB3 1101 1102 /** 1103 * @format H 1104 * @param handle 1105 */ 1106 #define ATT_EVENT_DISCONNECTED 0xB4 1107 1108 /** 1109 * @format H2 1110 * @param handle 1111 * @param MTU 1112 */ 1113 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 1114 1115 /** 1116 * @format 1H2 1117 * @param status 1118 * @param conn_handle 1119 * @param attribute_handle 1120 */ 1121 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 1122 1123 /** 1124 * @format 1125 */ 1126 #define ATT_EVENT_CAN_SEND_NOW 0xB7 1127 1128 // TODO: daemon only event 1129 1130 /** 1131 * @format 12 1132 * @param status 1133 * @param service_uuid 1134 */ 1135 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 1136 1137 /** 1138 * @format 12222BH 1139 * @param status 1140 * @param bnep_cid 1141 * @param source_uuid 1142 * @param destination_uuid 1143 * @param mtu 1144 * @param remote_address 1145 * @param con_handle 1146 */ 1147 #define BNEP_EVENT_CHANNEL_OPENED 0xC1 1148 1149 /** 1150 * @format 222B 1151 * @param bnep_cid 1152 * @param source_uuid 1153 * @param destination_uuid 1154 * @param remote_address 1155 */ 1156 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 1157 1158 /** 1159 * @format 222B1 1160 * @param bnep_cid 1161 * @param source_uuid 1162 * @param destination_uuid 1163 * @param remote_address 1164 * @param channel_state 1165 */ 1166 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 1167 1168 /** 1169 * @format 222B 1170 * @param bnep_cid 1171 * @param source_uuid 1172 * @param destination_uuid 1173 * @param remote_address 1174 */ 1175 #define BNEP_EVENT_CAN_SEND_NOW 0xC4 1176 1177 /** 1178 * @format H1B 1179 * @param handle 1180 * @param addr_type 1181 * @param address 1182 */ 1183 #define SM_EVENT_JUST_WORKS_REQUEST 0xD0 1184 1185 /** 1186 * @format H1B 1187 * @param handle 1188 * @param addr_type 1189 * @param address 1190 */ 1191 #define SM_EVENT_JUST_WORKS_CANCEL 0xD1 1192 1193 /** 1194 * @format H1B4 1195 * @param handle 1196 * @param addr_type 1197 * @param address 1198 * @param passkey 1199 */ 1200 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xD2 1201 1202 /** 1203 * @format H1B 1204 * @param handle 1205 * @param addr_type 1206 * @param address 1207 */ 1208 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xD3 1209 1210 /** 1211 * @format H1B 1212 * @param handle 1213 * @param addr_type 1214 * @param address 1215 */ 1216 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xD4 1217 1218 /** 1219 * @format H1B 1220 * @param handle 1221 * @param addr_type 1222 * @param address 1223 */ 1224 #define SM_EVENT_PASSKEY_INPUT_CANCEL 0xD5 1225 1226 /** 1227 * @format H1B4 1228 * @param handle 1229 * @param addr_type 1230 * @param address 1231 * @param passkey 1232 */ 1233 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xD6 1234 1235 /** 1236 * @format H1B 1237 * @param handle 1238 * @param addr_type 1239 * @param address 1240 */ 1241 #define SM_EVENT_NUMERIC_COMPARISON_CANCEL 0xD7 1242 1243 /** 1244 * @format H1B 1245 * @param handle 1246 * @param addr_type 1247 * @param address 1248 */ 1249 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xD8 1250 1251 /** 1252 * @format H1B 1253 * @param handle 1254 * @param addr_type 1255 * @param address 1256 */ 1257 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xD9 1258 1259 /** 1260 * @brief Identify resolving succeeded 1261 * 1262 * @format H1B1B2 1263 * @param handle 1264 * @param addr_type 1265 * @param address 1266 * @param identity_addr_type 1267 * @param identity_address 1268 * @param index 1269 * 1270 */ 1271 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xDA 1272 1273 /** 1274 * @format H1B 1275 * @param handle 1276 * @param addr_type 1277 * @param address 1278 */ 1279 #define SM_EVENT_AUTHORIZATION_REQUEST 0xDB 1280 1281 /** 1282 * @format H1B1 1283 * @param handle 1284 * @param addr_type 1285 * @param address 1286 * @param authorization_result 1287 */ 1288 #define SM_EVENT_AUTHORIZATION_RESULT 0xDC 1289 1290 /** 1291 * @format H1 1292 * @param handle 1293 * @param action see SM_KEYPRESS_* 1294 */ 1295 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xDD 1296 1297 /** 1298 * @brief Emitted during pairing to inform app about address used as identity 1299 * 1300 * @format H1B1B2 1301 * @param handle 1302 * @param addr_type 1303 * @param address 1304 * @param identity_addr_type 1305 * @param identity_address 1306 * @param index 1307 */ 1308 #define SM_EVENT_IDENTITY_CREATED 0xDE 1309 1310 /** 1311 * @brief Emitted to inform app that pairing is complete. Possible status values: 1312 * ERROR_CODE_SUCCESS -> pairing success 1313 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1314 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1315 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1316 * 1317 * @format H1B11 1318 * @param handle 1319 * @param addr_type 1320 * @param address 1321 * @param status 1322 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1323 */ 1324 #define SM_EVENT_PAIRING_COMPLETE 0xDF 1325 1326 1327 // GAP 1328 1329 /** 1330 * @format H1 1331 * @param handle 1332 * @param security_level 1333 */ 1334 #define GAP_EVENT_SECURITY_LEVEL 0xE0 1335 1336 /** 1337 * @format 1B 1338 * @param status 1339 * @param address 1340 */ 1341 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xE1 1342 1343 /** 1344 * @format 11B1JV 1345 * @param advertising_event_type 1346 * @param address_type 1347 * @param address 1348 * @param rssi 1349 * @param data_length 1350 * @param data 1351 */ 1352 #define GAP_EVENT_ADVERTISING_REPORT 0xE2 1353 1354 /** 1355 * @format B132111JV 1356 * @param bd_addr 1357 * @param page_scan_repetition_mode 1358 * @param class_of_device 1359 * @param clock_offset 1360 * @param rssi_available 1361 * @param rssi 1362 * @param name_available 1363 * @param name_len 1364 * @param name 1365 */ 1366 #define GAP_EVENT_INQUIRY_RESULT 0xE3 1367 1368 /** 1369 * @format 1 1370 * @param status 1371 */ 1372 #define GAP_EVENT_INQUIRY_COMPLETE 0xE4 1373 1374 /** 1375 * @format H1 1376 * @param con_handle 1377 * @param rssi (signed integer -127..127) 1378 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1379 * @note LE: rssi is absolute dBm 1380 */ 1381 #define GAP_EVENT_RSSI_MEASUREMENT 0xE5 1382 1383 // Meta Events, see below for sub events 1384 #define HCI_EVENT_HSP_META 0xE8 1385 #define HCI_EVENT_HFP_META 0xE9 1386 #define HCI_EVENT_ANCS_META 0xEA 1387 #define HCI_EVENT_AVDTP_META 0xEB 1388 #define HCI_EVENT_AVRCP_META 0xEC 1389 #define HCI_EVENT_GOEP_META 0xED 1390 #define HCI_EVENT_PBAP_META 0xEE 1391 #define HCI_EVENT_HID_META 0xEF 1392 #define HCI_EVENT_A2DP_META 0xF0 1393 #define HCI_EVENT_HIDS_META 0xF1 1394 #define HCI_EVENT_GATTSERVICE_META 0xF2 1395 #define HCI_EVENT_BIP_META 0xF3 1396 #define HCI_EVENT_MAP_META 0xF4 1397 #define HCI_EVENT_MESH_META 0xF5 1398 1399 // Potential other meta groups 1400 // #define HCI_EVENT_BNEP_META 0xxx 1401 // #define HCI_EVENT_GAP_META 0xxx 1402 // #define HCI_EVENT_GATT_META 0xxx 1403 // #define HCI_EVENT_PAN_META 0xxx 1404 // #define HCI_EVENT_SDP_META 0xxx 1405 // #define HCI_EVENT_SM_META 0xxx 1406 1407 1408 /** HSP Subevent */ 1409 1410 /** 1411 * @format 11 1412 * @param subevent_code 1413 * @param status 0 == OK 1414 */ 1415 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1416 1417 /** 1418 * @format 11 1419 * @param subevent_code 1420 * @param status 0 == OK 1421 */ 1422 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1423 1424 1425 /** 1426 * @format 11H 1427 * @param subevent_code 1428 * @param status 0 == OK 1429 * @param handle 1430 */ 1431 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1432 1433 /** 1434 * @format 11 1435 * @param subevent_code 1436 * @param status 0 == OK 1437 */ 1438 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1439 1440 /** 1441 * @format 1 1442 * @param subevent_code 1443 */ 1444 #define HSP_SUBEVENT_RING 0x05 1445 1446 /** 1447 * @format 11 1448 * @param subevent_code 1449 * @param gain Valid range: [0,15] 1450 */ 1451 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1452 1453 /** 1454 * @format 11 1455 * @param subevent_code 1456 * @param gain Valid range: [0,15] 1457 */ 1458 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1459 1460 /** 1461 * @format 1JV 1462 * @param subevent_code 1463 * @param value_length 1464 * @param value 1465 */ 1466 #define HSP_SUBEVENT_HS_COMMAND 0x08 1467 1468 /** 1469 * @format 1JV 1470 * @param subevent_code 1471 * @param value_length 1472 * @param value 1473 */ 1474 #define HSP_SUBEVENT_AG_INDICATION 0x09 1475 1476 1477 /** HFP Subevent */ 1478 1479 /** 1480 * @format 11HB 1481 * @param subevent_code 1482 * @param status 0 == OK 1483 * @param con_handle 1484 * @param bd_addr 1485 */ 1486 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1487 1488 /** 1489 * @format 1 1490 * @param subevent_code 1491 */ 1492 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1493 1494 /** 1495 * @format 11HB1 1496 * @param subevent_code 1497 * @param status 0 == OK 1498 * @param handle 1499 * @param bd_addr 1500 * @param negotiated_codec 1501 */ 1502 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1503 1504 /** 1505 * @format 1 1506 * @param subevent_code 1507 */ 1508 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1509 1510 /** 1511 * @format 11 1512 * @param subevent_code 1513 * @param status 0 == OK 1514 */ 1515 #define HFP_SUBEVENT_COMPLETE 0x05 1516 1517 /** 1518 * @format 11111111T 1519 * @param subevent_code 1520 * @param indicator_index 1521 * @param indicator_status 1522 * @param indicator_min_range 1523 * @param indicator_max_range 1524 * @param indicator_mandatory 1525 * @param indicator_enabled 1526 * @param indicator_status_changed 1527 * @param indicator_name 1528 */ 1529 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x06 1530 1531 /** 1532 * @format 111T 1533 * @param subevent_code 1534 * @param network_operator_mode 1535 * @param network_operator_format 1536 * @param network_operator_name 1537 */ 1538 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x07 1539 1540 /** 1541 * @format 11 1542 * @param subevent_code 1543 * @param error 1544 */ 1545 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x08 1546 1547 /** 1548 * @format 1 1549 * @param subevent_code 1550 */ 1551 #define HFP_SUBEVENT_START_RINGINIG 0x0A 1552 1553 /** 1554 * @format 1 1555 * @param subevent_code 1556 */ 1557 #define HFP_SUBEVENT_STOP_RINGINIG 0x0B 1558 1559 /** 1560 * @format 1 1561 * @param subevent_code 1562 */ 1563 #define HFP_SUBEVENT_CALL_TERMINATED 0x0C 1564 1565 /** 1566 * @format 1T 1567 * @param subevent_code 1568 * @param number 1569 */ 1570 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1571 1572 /** 1573 * @format 1 1574 * @param subevent_code 1575 */ 1576 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1577 1578 /** 1579 * @format 1T 1580 * @param subevent_code 1581 * @param number 1582 */ 1583 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1584 1585 /** 1586 * @format 1T 1587 * @param subevent_code 1588 * @param dtmf code 1589 */ 1590 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1591 1592 /** 1593 * @format 1 1594 * @param subevent_code 1595 */ 1596 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1597 1598 /** 1599 * @format 1 1600 * @param subevent_code 1601 */ 1602 #define HFP_SUBEVENT_CONFERENCE_CALL 0x12 1603 1604 /** 1605 * @format 1 1606 * @param subevent_code 1607 */ 1608 #define HFP_SUBEVENT_RING 0x13 1609 1610 /** 1611 * @format 111 1612 * @param subevent_code 1613 * @param status 1614 * @param gain 1615 */ 1616 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1617 1618 /** 1619 * @format 111 1620 * @param subevent_code 1621 * @param status 1622 * @param gain 1623 */ 1624 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1625 1626 /** 1627 * @format 11T 1628 * @param subevent_code 1629 * @param type 1630 * @param number 1631 */ 1632 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1633 1634 /** 1635 * @format 11T 1636 * @param subevent_code 1637 * @param type 1638 * @param number 1639 */ 1640 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1641 1642 /** 1643 * @format 1111111T 1644 * @param subevent_code 1645 * @param clcc_idx 1646 * @param clcc_dir 1647 * @param clcc_status 1648 * @param clcc_mode 1649 * @param clcc_mpty 1650 * @param bnip_type 1651 * @param bnip_number 1652 */ 1653 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1654 1655 /** 1656 * @format 111T 1657 * @param subevent_code 1658 * @param status 1659 * @param bnip_type 1660 * @param bnip_number 1661 */ 1662 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1663 1664 /** 1665 * @format 1T 1666 * @param subevent_code 1667 * @param value 1668 */ 1669 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1670 1671 // ANCS Client 1672 1673 /** 1674 * @format 1H 1675 * @param subevent_code 1676 * @param handle 1677 */ 1678 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1679 1680 /** 1681 * @format 1H2T 1682 * @param subevent_code 1683 * @param handle 1684 * @param attribute_id 1685 * @param text 1686 */ 1687 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1688 1689 /** 1690 * @format 1H 1691 * @param subevent_code 1692 * @param handle 1693 */ 1694 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1695 1696 1697 /** AVDTP Subevent */ 1698 1699 /** 1700 * @format 1211 1701 * @param subevent_code 1702 * @param avdtp_cid 1703 * @param local_seid 1704 * @param signal_identifier 1705 */ 1706 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1707 1708 /** 1709 * @format 1211 1710 * @param subevent_code 1711 * @param avdtp_cid 1712 * @param local_seid 1713 * @param signal_identifier 1714 */ 1715 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1716 1717 /** 1718 * @format 1211 1719 * @param subevent_code 1720 * @param avdtp_cid 1721 * @param local_seid 1722 * @param signal_identifier 1723 */ 1724 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1725 1726 /** 1727 * @format 12B1 1728 * @param subevent_code 1729 * @param avdtp_cid 1730 * @param bd_addr 1731 * @param status 0 == OK 1732 */ 1733 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1734 1735 /** 1736 * @format 12 1737 * @param subevent_code 1738 * @param avdtp_cid 1739 */ 1740 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1741 1742 /** 1743 * @format 121111 1744 * @param subevent_code 1745 * @param avdtp_cid 1746 * @param remote_seid 0x01 – 0x3E 1747 * @param in_use 0-not in use, 1-in use 1748 * @param media_type 0-audio, 1-video, 2-multimedia 1749 * @param sep_type 0-source, 1-sink 1750 */ 1751 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1752 1753 /** 1754 * @format 121111111111 1755 * @param subevent_code 1756 * @param avdtp_cid 1757 * @param local_seid 1758 * @param remote_seid 1759 * @param media_type 1760 * @param sampling_frequency_bitmap 1761 * @param channel_mode_bitmap 1762 * @param block_length_bitmap 1763 * @param subbands_bitmap 1764 * @param allocation_method_bitmap 1765 * @param min_bitpool_value 1766 * @param max_bitpool_value 1767 */ 1768 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1769 1770 /** 1771 * @format 121112LV 1772 * @param subevent_code 1773 * @param avdtp_cid 1774 * @param local_seid 1775 * @param remote_seid 1776 * @param media_type 1777 * @param media_codec_type 1778 * @param media_codec_information_len 1779 * @param media_codec_information 1780 */ 1781 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x08 1782 1783 1784 /** 1785 * @format 1211 1786 * @param subevent_code 1787 * @param avdtp_cid 1788 * @param local_seid 1789 * @param remote_seid 1790 */ 1791 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x09 1792 1793 1794 /** 1795 * @format 1211 1796 * @param subevent_code 1797 * @param avdtp_cid 1798 * @param local_seid 1799 * @param remote_seid 1800 */ 1801 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0A 1802 1803 1804 /** 1805 * @format 1211111 1806 * @param subevent_code 1807 * @param avdtp_cid 1808 * @param local_seid 1809 * @param remote_seid 1810 * @param recovery_type 1811 * @param maximum_recovery_window_size 1812 * @param maximum_number_media_packets 1813 */ 1814 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0B 1815 1816 1817 /** 1818 * @format 12112LV 1819 * @param subevent_code 1820 * @param avdtp_cid 1821 * @param local_seid 1822 * @param remote_seid 1823 * @param cp_type 1824 * @param cp_type_value_len 1825 * @param cp_type_value 1826 */ 1827 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0C 1828 1829 1830 /** 1831 * @format 121111111111 1832 * @param subevent_code 1833 * @param avdtp_cid 1834 * @param local_seid 1835 * @param remote_seid 1836 * @param fragmentation 1837 * @param transport_identifiers_num 1838 * @param transport_session_identifier_1 1839 * @param transport_session_identifier_2 1840 * @param transport_session_identifier_3 1841 * @param tcid_1 1842 * @param tcid_2 1843 * @param tcid_3 1844 */ 1845 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x0D 1846 1847 1848 /** 1849 * @format 1211 1850 * @param subevent_code 1851 * @param avdtp_cid 1852 * @param local_seid 1853 * @param remote_seid 1854 */ 1855 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 1856 1857 1858 /** 1859 * @format 1211111 1860 * @param subevent_code 1861 * @param avdtp_cid 1862 * @param local_seid 1863 * @param remote_seid 1864 * @param back_ch 1865 * @param media 1866 * @param recovery 1867 */ 1868 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x0F 1869 1870 1871 /** 1872 * @format 12111121111111 1873 * @param subevent_code 1874 * @param avdtp_cid 1875 * @param local_seid 1876 * @param remote_seid 1877 * @param reconfigure 1878 * @param media_type 1879 * @param sampling_frequency 1880 * @param channel_mode 1881 * @param num_channels 1882 * @param block_length 1883 * @param subbands 1884 * @param allocation_method 1885 * @param min_bitpool_value 1886 * @param max_bitpool_value 1887 */ 1888 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x10 1889 1890 /** 1891 * @format 1211112LV 1892 * @param subevent_code 1893 * @param avdtp_cid 1894 * @param local_seid 1895 * @param remote_seid 1896 * @param reconfigure 1897 * @param media_type 1898 * @param media_codec_type 1899 * @param media_codec_information_len 1900 * @param media_codec_information 1901 */ 1902 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x11 1903 1904 /** 1905 * @format 12B111 1906 * @param subevent_code 1907 * @param avdtp_cid 1908 * @param bd_addr 1909 * @param local_seid 1910 * @param remote_seid 1911 * @param status 0 == OK 1912 */ 1913 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x12 1914 1915 /** 1916 * @format 121 1917 * @param subevent_code 1918 * @param avdtp_cid 1919 * @param local_seid 1920 */ 1921 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x13 1922 1923 /** 1924 * @format 1212 1925 * @param subevent_code 1926 * @param avdtp_cid 1927 * @param local_seid 1928 * @param sequence_number 1929 */ 1930 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x14 1931 1932 /** 1933 * @format 1211 1934 * @param subevent_code 1935 * @param avdtp_cid 1936 * @param local_seid 1937 * @param remote_seid 1938 */ 1939 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x15 1940 1941 1942 /** 1943 * @format 12 1944 * @param subevent_code 1945 * @param avdtp_cid 1946 */ 1947 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x16 1948 1949 /** 1950 * @format 1212 1951 * @param subevent_code 1952 * @param avdtp_cid 1953 * @param local_seid 1954 * @param delay_100us 1955 */ 1956 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17 1957 1958 /** A2DP Subevent */ 1959 /* Stream goes through following states: 1960 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 1961 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 1962 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 1963 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 1964 1965 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 1966 START can come only after the stream is OPENED, and indicates that media transfer is started. 1967 SUSPEND is optional, it pauses the stream. 1968 */ 1969 1970 /** 1971 * @format 121 Sent only by A2DP source. 1972 * @param subevent_code 1973 * @param a2dp_cid 1974 * @param local_seid 1975 */ 1976 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 1977 1978 /** 1979 * @format 12111121111111 1980 * @param subevent_code 1981 * @param a2dp_cid 1982 * @param int_seid 1983 * @param acp_seid 1984 * @param reconfigure 1985 * @param media_type 1986 * @param sampling_frequency 1987 * @param channel_mode 1988 * @param num_channels 1989 * @param block_length 1990 * @param subbands 1991 * @param allocation_method 1992 * @param min_bitpool_value 1993 * @param max_bitpool_value 1994 */ 1995 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 1996 1997 /** 1998 * @format 1211112LV 1999 * @param subevent_code 2000 * @param a2dp_cid 2001 * @param int_seid 2002 * @param acp_seid 2003 * @param reconfigure 2004 * @param media_type 2005 * @param media_codec_type 2006 * @param media_codec_information_len 2007 * @param media_codec_information 2008 */ 2009 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x03 2010 2011 /** 2012 * @format 12B111 Stream is opened byt not started. 2013 * @param subevent_code 2014 * @param a2dp_cid 2015 * @param bd_addr 2016 * @param local_seid 2017 * @param remote_seid 2018 * @param status 2019 */ 2020 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x04 2021 2022 /** 2023 * @format 121 Indicates that media transfer is started. 2024 * @param subevent_code 2025 * @param a2dp_cid 2026 * @param local_seid 2027 */ 2028 #define A2DP_SUBEVENT_STREAM_STARTED 0x05 2029 2030 /** 2031 * @format 121 Stream is paused. 2032 * @param subevent_code 2033 * @param a2dp_cid 2034 * @param local_seid 2035 */ 2036 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x06 2037 2038 /** 2039 * @format 121 Stream is stoped or aborted. 2040 * @param subevent_code 2041 * @param a2dp_cid 2042 * @param local_seid 2043 */ 2044 #define A2DP_SUBEVENT_STREAM_STOPPED 0x07 2045 2046 /** 2047 * @format 121 Stream is released. 2048 * @param subevent_code 2049 * @param a2dp_cid 2050 * @param local_seid 2051 */ 2052 #define A2DP_SUBEVENT_STREAM_RELEASED 0x08 2053 2054 /** 2055 * @format 1211 2056 * @param subevent_code 2057 * @param a2dp_cid 2058 * @param local_seid 2059 * @param signal_identifier 2060 */ 2061 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x09 2062 2063 /** 2064 * @format 1211 2065 * @param subevent_code 2066 * @param a2dp_cid 2067 * @param local_seid 2068 * @param signal_identifier 2069 */ 2070 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0A 2071 2072 /** 2073 * @format 12B1 2074 * @param subevent_code 2075 * @param a2dp_cid 2076 * @param bd_addr 2077 * @param status 0 == OK 2078 */ 2079 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0B 2080 2081 /** 2082 * @format 12 Signaling channel is released. 2083 * @param subevent_code 2084 * @param a2dp_cid 2085 */ 2086 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0C 2087 2088 /** 2089 * @format 1211 Stream was reconfigured 2090 * @param subevent_code 2091 * @param a2dp_cid 2092 * @param local_seid 2093 * @param status 2094 */ 2095 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x0D 2096 2097 /** 2098 * @format 1211 2099 * @param subevent_code 2100 * @param avdtp_cid 2101 * @param local_seid 2102 * @param remote_seid 2103 */ 2104 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 2105 2106 2107 /** 2108 * @format 1212 2109 * @param subevent_code 2110 * @param avdtp_cid 2111 * @param local_seid 2112 * @param delay_100us 2113 */ 2114 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x0F 2115 2116 /** 2117 * @format 1211 2118 * @param subevent_code 2119 * @param avdtp_cid 2120 * @param local_seid 2121 * @param remote_seid 2122 */ 2123 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x10 2124 2125 /** AVRCP Subevent */ 2126 2127 /** 2128 * @format 11B2 2129 * @param subevent_code 2130 * @param status 0 == OK 2131 * @param bd_addr 2132 * @param avrcp_cid 2133 */ 2134 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x01 2135 2136 /** 2137 * @format 12 2138 * @param subevent_code 2139 * @param avrcp_cid 2140 */ 2141 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x02 2142 2143 /** 2144 * @format 12111 2145 * @param subevent_code 2146 * @param avrcp_cid 2147 * @param command_type 2148 * @param repeat_mode 2149 * @param shuffle_mode 2150 */ 2151 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x03 2152 2153 /** 2154 * @format 121441 2155 * @param subevent_code 2156 * @param avrcp_cid 2157 * @param command_type 2158 * @param song_length 2159 * @param song_position 2160 * @param play_status 2161 */ 2162 #define AVRCP_SUBEVENT_PLAY_STATUS 0x04 2163 2164 /** 2165 * @format 1211 2166 * @param subevent_code 2167 * @param avrcp_cid 2168 * @param command_type 2169 * @param play_status 2170 */ 2171 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x05 2172 2173 /** 2174 * @format 121 2175 * @param subevent_code 2176 * @param avrcp_cid 2177 * @param command_type 2178 */ 2179 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x06 2180 2181 /** 2182 * @format 121 2183 * @param subevent_code 2184 * @param avrcp_cid 2185 * @param command_type 2186 */ 2187 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x07 2188 2189 /** 2190 * @format 121 2191 * @param subevent_code 2192 * @param avrcp_cid 2193 * @param command_type 2194 */ 2195 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x08 2196 2197 /** 2198 * @format 1211 2199 * @param subevent_code 2200 * @param avrcp_cid 2201 * @param command_type 2202 * @param absolute_volume 2203 */ 2204 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x09 2205 2206 /** 2207 * @format 1211 2208 * @param subevent_code 2209 * @param avrcp_cid 2210 * @param command_type 2211 * @param absolute_volume 2212 */ 2213 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x0A 2214 2215 /** 2216 * @format 1211 2217 * @param subevent_code 2218 * @param avrcp_cid 2219 * @param command_type 2220 * @param notification_id 2221 */ 2222 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x0B 2223 2224 /** 2225 * @format 1211 2226 * @param subevent_code 2227 * @param avrcp_cid 2228 * @param command_type 2229 * @param operation_id 2230 */ 2231 #define AVRCP_SUBEVENT_OPERATION_START 0x0C 2232 2233 /** 2234 * @format 1211 2235 * @param subevent_code 2236 * @param avrcp_cid 2237 * @param command_type 2238 * @param operation_id 2239 */ 2240 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x0D 2241 2242 /** 2243 * @format 121 2244 * @param subevent_code 2245 * @param avrcp_cid 2246 * @param command_type 2247 */ 2248 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x0E 2249 2250 /** 2251 * @format 12 2252 * @param subevent_code 2253 * @param avrcp_cid 2254 */ 2255 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x0F 2256 2257 /** 2258 * @format 12 2259 * @param subevent_code 2260 * @param avrcp_cid 2261 */ 2262 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x10 2263 2264 /** 2265 * @format 12 2266 * @param subevent_code 2267 * @param avrcp_cid 2268 */ 2269 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x11 2270 2271 /** 2272 * @format 12111 2273 * @param subevent_code 2274 * @param avrcp_cid 2275 * @param operation_id 2276 * @param operands_length 2277 * @param operand 2278 */ 2279 #define AVRCP_SUBEVENT_OPERATION 0x12 2280 2281 /** 2282 * @format 1211 2283 * @param subevent_code 2284 * @param avrcp_cid 2285 * @param command_type 2286 * @param track 2287 */ 2288 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x13 2289 2290 /** 2291 * @format 1211 2292 * @param subevent_code 2293 * @param avrcp_cid 2294 * @param command_type 2295 * @param total_tracks 2296 */ 2297 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x14 2298 2299 /** 2300 * @format 1214 2301 * @param subevent_code 2302 * @param avrcp_cid 2303 * @param command_type 2304 * @param song_length in ms 2305 */ 2306 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x15 2307 2308 /** 2309 * @format 121JV 2310 * @param subevent_code 2311 * @param avrcp_cid 2312 * @param command_type 2313 * @param value_len 2314 * @param value 2315 */ 2316 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x16 2317 2318 /* 2319 * @format 121JV 2320 * @param subevent_code 2321 * @param avrcp_cid 2322 * @param command_type 2323 * @param value_len 2324 * @param value 2325 */ 2326 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x17 2327 2328 /* 2329 * @format 121JV 2330 * @param subevent_code 2331 * @param avrcp_cid 2332 * @param command_type 2333 * @param value_len 2334 * @param value 2335 */ 2336 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x18 2337 2338 /* 2339 * @format 121JV 2340 * @param subevent_code 2341 * @param avrcp_cid 2342 * @param command_type 2343 * @param value_len 2344 * @param value 2345 */ 2346 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x19 2347 2348 /* 2349 * @format 1211 2350 * @param subevent_code 2351 * @param avrcp_cid 2352 * @param command_type 2353 * @param status 2354 */ 2355 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x1A 2356 2357 /** 2358 * @format 1B2 2359 * @param subevent_code 2360 * @param bd_addr 2361 * @param browsing_cid 2362 */ 2363 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x1B 2364 2365 /** 2366 * @format 11B2 2367 * @param subevent_code 2368 * @param status 0 == OK 2369 * @param bd_addr 2370 * @param browsing_cid 2371 */ 2372 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x1C 2373 2374 /** 2375 * @format 12 2376 * @param subevent_code 2377 * @param browsing_cid 2378 */ 2379 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x1D 2380 2381 /** 2382 * @format 12211 2383 * @param subevent_code 2384 * @param browsing_cid 2385 * @param uid_counter 2386 * @param browsing_status 2387 * @param bluetooth_status 2388 */ 2389 #define AVRCP_SUBEVENT_BROWSING_DONE 0x1E 2390 2391 /** 2392 * @format 1214 2393 * @param subevent_code 2394 * @param browsing_cid 2395 * @param scope 2396 * @param attr_bitmap 2397 */ 2398 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x1F 2399 2400 /** 2401 * @format 121 2402 * @param subevent_code 2403 * @param browsing_cid 2404 * @param scope 2405 */ 2406 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x20 2407 2408 /** 2409 * @format 1214 2410 * @param subevent_code 2411 * @param avrcp_cid 2412 * @param command_type 2413 * @param playback_position_ms 2414 */ 2415 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x21 2416 2417 2418 /** 2419 * @format 121BH1 2420 * @param subevent_code 2421 * @param goep_cid 2422 * @param status 2423 * @param bd_addr 2424 * @param con_handle 2425 * @param incoming 2426 */ 2427 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2428 2429 /** 2430 * @format 12 2431 * @param subevent_code 2432 * @param goep_cid 2433 */ 2434 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2435 2436 /** 2437 * @format 12 2438 * @param subevent_code 2439 * @param goep_cid 2440 */ 2441 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2442 2443 /** 2444 * @format 121BH1 2445 * @param subevent_code 2446 * @param pbap_cid 2447 * @param status 2448 * @param bd_addr 2449 * @param con_handle 2450 * @param incoming 2451 */ 2452 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2453 2454 /** 2455 * @format 12 2456 * @param subevent_code 2457 * @param goep_cid 2458 */ 2459 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 2460 2461 /** 2462 * @format 121 2463 * @param subevent_code 2464 * @param goep_cid 2465 * @param status 2466 */ 2467 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 2468 2469 /** 2470 * @format 1212 2471 * @param subevent_code 2472 * @param goep_cid 2473 * @param status 2474 * @param phoneboook_size 2475 */ 2476 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 2477 2478 /** 2479 * @format 1211 2480 * @param subevent_code 2481 * @param goep_cid 2482 * @param user_id_required 2483 * @param full_access 2484 */ 2485 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 2486 2487 /** 2488 * @format 12JVJV 2489 * @param subevent_code 2490 * @param goep_cid 2491 * @param name_len 2492 * @param name 2493 * @param handle_len 2494 * @param handle 2495 */ 2496 #define PBAP_SUBEVENT_CARD_RESULT 0x06 2497 2498 2499 // HID Meta Event Group 2500 2501 /** 2502 * @format 121BH1 2503 * @param subevent_code 2504 * @param hid_cid 2505 * @param status 2506 * @param bd_addr 2507 * @param con_handle 2508 * @param incoming 2509 */ 2510 #define HID_SUBEVENT_CONNECTION_OPENED 0x01 2511 2512 /** 2513 * @format 12 2514 * @param subevent_code 2515 * @param hid_cid 2516 */ 2517 #define HID_SUBEVENT_CONNECTION_CLOSED 0x02 2518 2519 /** 2520 * @format 12 2521 * @param subevent_code 2522 * @param hid_cid 2523 */ 2524 #define HID_SUBEVENT_CAN_SEND_NOW 0x03 2525 2526 /** 2527 * @format 12 2528 * @param subevent_code 2529 * @param con_handle 2530 */ 2531 #define HID_SUBEVENT_SUSPEND 0x04 2532 2533 /** 2534 * @format 12 2535 * @param subevent_code 2536 * @param con_handle 2537 */ 2538 #define HID_SUBEVENT_EXIT_SUSPEND 0x05 2539 2540 2541 // HIDS Meta Event Group 2542 2543 /** 2544 * @format 12 2545 * @param subevent_code 2546 * @param con_handle 2547 */ 2548 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 2549 2550 /** 2551 * @format 121 2552 * @param subevent_code 2553 * @param con_handle 2554 * @param protocol_mode 2555 */ 2556 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 2557 2558 /** 2559 * @format 121 2560 * @param subevent_code 2561 * @param con_handle 2562 * @param enable 2563 */ 2564 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 2565 2566 /** 2567 * @format 121 2568 * @param subevent_code 2569 * @param con_handle 2570 * @param enable 2571 */ 2572 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 2573 2574 /** 2575 * @format 121 2576 * @param subevent_code 2577 * @param con_handle 2578 * @param enable 2579 */ 2580 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 2581 2582 /** 2583 * @format 121 2584 * @param subevent_code 2585 * @param con_handle 2586 * @param enable 2587 */ 2588 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 2589 2590 /** 2591 * @format 121 2592 * @param subevent_code 2593 * @param con_handle 2594 * @param enable 2595 */ 2596 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 2597 2598 /** 2599 * @format 12 2600 * @param subevent_code 2601 * @param con_handle 2602 */ 2603 #define HIDS_SUBEVENT_SUSPEND 0x08 2604 2605 /** 2606 * @format 12 2607 * @param subevent_code 2608 * @param con_handle 2609 */ 2610 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 2611 2612 /** 2613 * @format 1211 2614 * @param subevent_code 2615 * @param con_handle 2616 * @param measurement_type // 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 2617 * @param is_enhanced 2618 */ 2619 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 2620 2621 /** 2622 * @format 12 2623 * @param subevent_code 2624 * @param con_handle 2625 */ 2626 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 2627 2628 /** 2629 * @format 12 2630 * @param subevent_code 2631 * @param con_handle 2632 */ 2633 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 2634 2635 2636 // MAP Meta Event Group 2637 2638 /** 2639 * @format 121BH1 2640 * @param subevent_code 2641 * @param map_cid 2642 * @param status 2643 * @param bd_addr 2644 * @param con_handle 2645 * @param incoming 2646 */ 2647 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 2648 2649 /** 2650 * @format 12 2651 * @param subevent_code 2652 * @param map_cid 2653 */ 2654 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 2655 2656 /** 2657 * @format 121 2658 * @param subevent_code 2659 * @param map_cid 2660 * @param status 2661 */ 2662 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 2663 2664 2665 /** 2666 * @format 12LV 2667 * @param subevent_code 2668 * @param map_cid 2669 * @param name_len 2670 * @param name 2671 */ 2672 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 2673 2674 /** 2675 * @format 12D 2676 * @param subevent_code 2677 * @param map_cid 2678 * @param handle 2679 2680 */ 2681 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 2682 2683 /** 2684 * @format 12 2685 * @param subevent_code 2686 * @param map_cid 2687 */ 2688 #define MAP_SUBEVENT_PARSING_DONE 0x06 2689 2690 2691 // MESH Meta Event Group 2692 2693 /** 2694 * @format 1 2695 * @param subevent_code 2696 */ 2697 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 2698 2699 /** 2700 * @format 11 2701 * @param subevent_code 2702 * @param status 2703 */ 2704 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 2705 2706 /** 2707 * @format 1121 2708 * @param subevent_code 2709 * @param status 2710 * @param pb_transport_cid 2711 * @param pb_type 2712 */ 2713 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 2714 2715 /** 2716 * @format 112 2717 * @param subevent_code 2718 * @param pb_transport_cid 2719 * @param reason 2720 */ 2721 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 2722 2723 /** 2724 * @format 121 2725 * @param subevent_code 2726 * @param pb_transport_cid 2727 * @param attention_time in seconds 2728 */ 2729 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 2730 2731 /** 2732 * Device Role 2733 * @format 12 2734 * @param subevent_code 2735 * @param pb_transport_cid 2736 */ 2737 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 2738 2739 /** 2740 * Device Role 2741 * @format 12 2742 * @param subevent_code 2743 * @param pb_transport_cid 2744 */ 2745 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 2746 2747 /** 2748 * Device Role 2749 * @format 12 2750 * @param subevent_code 2751 * @param pb_transport_cid 2752 */ 2753 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 2754 2755 /** 2756 * Device Role 2757 * @format 124 2758 * @param subevent_code 2759 * @param pb_transport_cid 2760 * @param output_oob number 2761 */ 2762 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 2763 2764 /** 2765 * Device Role 2766 * @format 12 2767 * @param subevent_code 2768 * @param pb_transport_cid 2769 */ 2770 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 2771 2772 /** 2773 * Provisioner Role 2774 * @format 12 2775 * @param subevent_code 2776 * @param pb_transport_cid 2777 */ 2778 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 2779 2780 /** 2781 * Provisioner Role 2782 * @format 12 2783 * @param subevent_code 2784 * @param pb_transport_cid 2785 */ 2786 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 2787 2788 /** 2789 * Provisioner Role 2790 * @format 12 2791 * @param subevent_code 2792 * @param pb_transport_cid 2793 */ 2794 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 2795 2796 /** 2797 * Provisioner Role 2798 * @format 124 2799 * @param subevent_code 2800 * @param pb_transport_cid 2801 * @param output_oob number 2802 */ 2803 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 2804 2805 /** 2806 * Provisioner Role 2807 * @format 12 2808 * @param subevent_code 2809 * @param pb_transport_cid 2810 */ 2811 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 2812 2813 /** 2814 * Provisioner Role 2815 * @format 1212111212 2816 * @param subevent_code 2817 * @param pb_transport_cid 2818 * @param num_elements 2819 * @param algorithms 2820 * @param public_key 2821 * @param static_oob_type 2822 * @param output_oob_size 2823 * @param output_oob_action 2824 * @param input_oob_size 2825 * @param input_oob_action 2826 */ 2827 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 2828 2829 /** 2830 * @format 12 2831 * @param subevent_code 2832 * @param pb_transport_cid 2833 */ 2834 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 2835 2836 /** 2837 * @format 11 2838 * @param subevent_code 2839 * @param attention_time in seconds 2840 */ 2841 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 2842 2843 /** 2844 * @format 11H 2845 * @param subevent_code 2846 * @param status 2847 * @param con_handle 2848 */ 2849 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 2850 2851 /** 2852 * @format 1H 2853 * @param subevent_code 2854 * @param con_handle 2855 */ 2856 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 2857 2858 /** 2859 * @format 1H 2860 * @param subevent_code 2861 * @param con_handle 2862 */ 2863 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 2864 2865 /** 2866 * @format 1H 2867 * @param subevent_code 2868 * @param con_handle 2869 */ 2870 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 2871 2872 /** 2873 * @format 114411 2874 * @param subevent_code 2875 * @param element_index 2876 * @param model_identifier 2877 * @param state_identifier 2878 * @param reason 2879 * @param value 2880 */ 2881 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 2882 2883 /** 2884 * @format 114412 2885 * @param subevent_code 2886 * @param element_index 2887 * @param model_identifier 2888 * @param state_identifier 2889 * @param reason 2890 * @param value 2891 */ 2892 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 2893 2894 // Mesh Client Events 2895 /** 2896 * @format 11442 2897 * @param subevent_code 2898 * @param element_index 2899 * @param model_identifier 2900 * @param opcode 2901 * @param dest 2902 */ 2903 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 2904 2905 /** 2906 * @format 114114 2907 * @param subevent_code 2908 * @param element_index 2909 * @param model_identifier 2910 * @param present_value 2911 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2912 * @param remaining_time_ms 2913 */ 2914 #define MESH_SUBEVENT_GENERIC_ON_OFF_STATUS 0x31 2915 2916 /** 2917 * @format 114224 2918 * @param subevent_code 2919 * @param element_index 2920 * @param model_identifier 2921 * @param present_value 2922 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2923 * @param remaining_time_ms 2924 */ 2925 #define MESH_SUBEVENT_GENERIC_LEVEL_STATUS 0x32 2926 2927 /** 2928 * @format 1222211 2929 * @param subevent_code 2930 * @param dest 2931 * @param netkey_index 2932 * @param appkey_index 2933 * @param company_id 2934 * @param test_id 2935 * @param acknowledged 2936 */ 2937 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33 2938 2939 /** 2940 * @format 11 2941 * @param subevent_code 2942 * @param element_index 2943 */ 2944 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34 2945 2946 #endif 2947