1 /* 2 * Copyright (C) 2016 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 /* 40 * btstack_event.h 41 * 42 * @brief BTstack event getter/setter 43 * @note Don't edit - generated by tool/btstack_event_generator.py 44 * 45 */ 46 47 #ifndef __BTSTACK_EVENT_H 48 #define __BTSTACK_EVENT_H 49 50 #if defined __cplusplus 51 extern "C" { 52 #endif 53 54 #include "btstack_util.h" 55 #include <stdint.h> 56 57 #ifdef ENABLE_BLE 58 #include "ble/gatt_client.h" 59 #endif 60 61 /* API_START */ 62 63 /** 64 * @brief Get event type 65 * @param event 66 * @return type of event 67 */ 68 static inline uint8_t hci_event_packet_get_type(const uint8_t * event){ 69 return event[0]; 70 } 71 72 /*** 73 * @brief Get subevent code for ancs event 74 * @param event packet 75 * @return subevent_code 76 */ 77 static inline uint8_t hci_event_ancs_meta_get_subevent_code(const uint8_t * event){ 78 return event[2]; 79 } 80 /*** 81 * @brief Get subevent code for avdtp event 82 * @param event packet 83 * @return subevent_code 84 */ 85 static inline uint8_t hci_event_avdtp_meta_get_subevent_code(const uint8_t * event){ 86 return event[2]; 87 } 88 /*** 89 * @brief Get subevent code for a2dp event 90 * @param event packet 91 * @return subevent_code 92 */ 93 static inline uint8_t hci_event_a2dp_meta_get_subevent_code(const uint8_t * event){ 94 return event[2]; 95 } 96 /*** 97 * @brief Get subevent code for avrcp event 98 * @param event packet 99 * @return subevent_code 100 */ 101 static inline uint8_t hci_event_avrcp_meta_get_subevent_code(const uint8_t * event){ 102 return event[2]; 103 } 104 /*** 105 * @brief Get subevent code for goep event 106 * @param event packet 107 * @return subevent_code 108 */ 109 static inline uint8_t hci_event_goep_meta_get_subevent_code(const uint8_t * event){ 110 return event[2]; 111 } 112 /*** 113 * @brief Get subevent code for hfp event 114 * @param event packet 115 * @return subevent_code 116 */ 117 static inline uint8_t hci_event_hfp_meta_get_subevent_code(const uint8_t * event){ 118 return event[2]; 119 } 120 /*** 121 * @brief Get subevent code for hsp event 122 * @param event packet 123 * @return subevent_code 124 */ 125 static inline uint8_t hci_event_hsp_meta_get_subevent_code(const uint8_t * event){ 126 return event[2]; 127 } 128 /*** 129 * @brief Get subevent code for pbap event 130 * @param event packet 131 * @return subevent_code 132 */ 133 static inline uint8_t hci_event_pbap_meta_get_subevent_code(const uint8_t * event){ 134 return event[2]; 135 } 136 /*** 137 * @brief Get subevent code for le event 138 * @param event packet 139 * @return subevent_code 140 */ 141 static inline uint8_t hci_event_le_meta_get_subevent_code(const uint8_t * event){ 142 return event[2]; 143 } 144 /*** 145 * @brief Get subevent code for hid event 146 * @param event packet 147 * @return subevent_code 148 */ 149 static inline uint8_t hci_event_hid_meta_get_subevent_code(const uint8_t * event){ 150 return event[2]; 151 } 152 /*** 153 * @brief Get subevent code for hids event 154 * @param event packet 155 * @return subevent_code 156 */ 157 static inline uint8_t hci_event_hids_meta_get_subevent_code(const uint8_t * event){ 158 return event[2]; 159 } 160 /** 161 * @brief Get field status from event HCI_EVENT_INQUIRY_COMPLETE 162 * @param event packet 163 * @return status 164 * @note: btstack_type 1 165 */ 166 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){ 167 return event[2]; 168 } 169 170 /** 171 * @brief Get field num_responses from event HCI_EVENT_INQUIRY_RESULT 172 * @param event packet 173 * @return num_responses 174 * @note: btstack_type 1 175 */ 176 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){ 177 return event[2]; 178 } 179 /** 180 * @brief Get field bd_addr from event HCI_EVENT_INQUIRY_RESULT 181 * @param event packet 182 * @param Pointer to storage for bd_addr 183 * @note: btstack_type B 184 */ 185 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 186 reverse_bd_addr(&event[3], bd_addr); 187 } 188 /** 189 * @brief Get field page_scan_repetition_mode from event HCI_EVENT_INQUIRY_RESULT 190 * @param event packet 191 * @return page_scan_repetition_mode 192 * @note: btstack_type 1 193 */ 194 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 195 return event[9]; 196 } 197 /** 198 * @brief Get field reserved1 from event HCI_EVENT_INQUIRY_RESULT 199 * @param event packet 200 * @return reserved1 201 * @note: btstack_type 1 202 */ 203 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){ 204 return event[10]; 205 } 206 /** 207 * @brief Get field reserved2 from event HCI_EVENT_INQUIRY_RESULT 208 * @param event packet 209 * @return reserved2 210 * @note: btstack_type 1 211 */ 212 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){ 213 return event[11]; 214 } 215 /** 216 * @brief Get field class_of_device from event HCI_EVENT_INQUIRY_RESULT 217 * @param event packet 218 * @return class_of_device 219 * @note: btstack_type 3 220 */ 221 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){ 222 return little_endian_read_24(event, 12); 223 } 224 /** 225 * @brief Get field clock_offset from event HCI_EVENT_INQUIRY_RESULT 226 * @param event packet 227 * @return clock_offset 228 * @note: btstack_type 2 229 */ 230 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){ 231 return little_endian_read_16(event, 15); 232 } 233 234 /** 235 * @brief Get field status from event HCI_EVENT_CONNECTION_COMPLETE 236 * @param event packet 237 * @return status 238 * @note: btstack_type 1 239 */ 240 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){ 241 return event[2]; 242 } 243 /** 244 * @brief Get field connection_handle from event HCI_EVENT_CONNECTION_COMPLETE 245 * @param event packet 246 * @return connection_handle 247 * @note: btstack_type 2 248 */ 249 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){ 250 return little_endian_read_16(event, 3); 251 } 252 /** 253 * @brief Get field bd_addr from event HCI_EVENT_CONNECTION_COMPLETE 254 * @param event packet 255 * @param Pointer to storage for bd_addr 256 * @note: btstack_type B 257 */ 258 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 259 reverse_bd_addr(&event[5], bd_addr); 260 } 261 /** 262 * @brief Get field link_type from event HCI_EVENT_CONNECTION_COMPLETE 263 * @param event packet 264 * @return link_type 265 * @note: btstack_type 1 266 */ 267 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){ 268 return event[11]; 269 } 270 /** 271 * @brief Get field encryption_enabled from event HCI_EVENT_CONNECTION_COMPLETE 272 * @param event packet 273 * @return encryption_enabled 274 * @note: btstack_type 1 275 */ 276 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){ 277 return event[12]; 278 } 279 280 /** 281 * @brief Get field bd_addr from event HCI_EVENT_CONNECTION_REQUEST 282 * @param event packet 283 * @param Pointer to storage for bd_addr 284 * @note: btstack_type B 285 */ 286 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 287 reverse_bd_addr(&event[2], bd_addr); 288 } 289 /** 290 * @brief Get field class_of_device from event HCI_EVENT_CONNECTION_REQUEST 291 * @param event packet 292 * @return class_of_device 293 * @note: btstack_type 3 294 */ 295 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){ 296 return little_endian_read_24(event, 8); 297 } 298 /** 299 * @brief Get field link_type from event HCI_EVENT_CONNECTION_REQUEST 300 * @param event packet 301 * @return link_type 302 * @note: btstack_type 1 303 */ 304 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){ 305 return event[11]; 306 } 307 308 /** 309 * @brief Get field status from event HCI_EVENT_DISCONNECTION_COMPLETE 310 * @param event packet 311 * @return status 312 * @note: btstack_type 1 313 */ 314 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){ 315 return event[2]; 316 } 317 /** 318 * @brief Get field connection_handle from event HCI_EVENT_DISCONNECTION_COMPLETE 319 * @param event packet 320 * @return connection_handle 321 * @note: btstack_type 2 322 */ 323 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){ 324 return little_endian_read_16(event, 3); 325 } 326 /** 327 * @brief Get field reason from event HCI_EVENT_DISCONNECTION_COMPLETE 328 * @param event packet 329 * @return reason 330 * @note: btstack_type 1 331 */ 332 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){ 333 return event[5]; 334 } 335 336 /** 337 * @brief Get field status from event HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT 338 * @param event packet 339 * @return status 340 * @note: btstack_type 1 341 */ 342 static inline uint8_t hci_event_authentication_complete_event_get_status(const uint8_t * event){ 343 return event[2]; 344 } 345 /** 346 * @brief Get field connection_handle from event HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT 347 * @param event packet 348 * @return connection_handle 349 * @note: btstack_type 2 350 */ 351 static inline uint16_t hci_event_authentication_complete_event_get_connection_handle(const uint8_t * event){ 352 return little_endian_read_16(event, 3); 353 } 354 355 /** 356 * @brief Get field status from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 357 * @param event packet 358 * @return status 359 * @note: btstack_type 1 360 */ 361 static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){ 362 return event[2]; 363 } 364 /** 365 * @brief Get field bd_addr from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 366 * @param event packet 367 * @param Pointer to storage for bd_addr 368 * @note: btstack_type B 369 */ 370 static inline void hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 371 reverse_bd_addr(&event[3], bd_addr); 372 } 373 /** 374 * @brief Get field remote_name from event HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 375 * @param event packet 376 * @return remote_name 377 * @note: btstack_type N 378 */ 379 static inline const char * hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){ 380 return (const char *) &event[9]; 381 } 382 383 /** 384 * @brief Get field status from event HCI_EVENT_ENCRYPTION_CHANGE 385 * @param event packet 386 * @return status 387 * @note: btstack_type 1 388 */ 389 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){ 390 return event[2]; 391 } 392 /** 393 * @brief Get field connection_handle from event HCI_EVENT_ENCRYPTION_CHANGE 394 * @param event packet 395 * @return connection_handle 396 * @note: btstack_type 2 397 */ 398 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){ 399 return little_endian_read_16(event, 3); 400 } 401 /** 402 * @brief Get field encryption_enabled from event HCI_EVENT_ENCRYPTION_CHANGE 403 * @param event packet 404 * @return encryption_enabled 405 * @note: btstack_type 1 406 */ 407 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){ 408 return event[5]; 409 } 410 411 /** 412 * @brief Get field status from event HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 413 * @param event packet 414 * @return status 415 * @note: btstack_type 1 416 */ 417 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){ 418 return event[2]; 419 } 420 /** 421 * @brief Get field connection_handle from event HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 422 * @param event packet 423 * @return connection_handle 424 * @note: btstack_type 2 425 */ 426 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){ 427 return little_endian_read_16(event, 3); 428 } 429 430 /** 431 * @brief Get field status from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE 432 * @param event packet 433 * @return status 434 * @note: btstack_type 1 435 */ 436 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){ 437 return event[2]; 438 } 439 /** 440 * @brief Get field connection_handle from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE 441 * @param event packet 442 * @return connection_handle 443 * @note: btstack_type 2 444 */ 445 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){ 446 return little_endian_read_16(event, 3); 447 } 448 /** 449 * @brief Get field key_flag from event HCI_EVENT_MASTER_LINK_KEY_COMPLETE 450 * @param event packet 451 * @return key_flag 452 * @note: btstack_type 1 453 */ 454 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){ 455 return event[5]; 456 } 457 458 /** 459 * @brief Get field num_hci_command_packets from event HCI_EVENT_COMMAND_COMPLETE 460 * @param event packet 461 * @return num_hci_command_packets 462 * @note: btstack_type 1 463 */ 464 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){ 465 return event[2]; 466 } 467 /** 468 * @brief Get field command_opcode from event HCI_EVENT_COMMAND_COMPLETE 469 * @param event packet 470 * @return command_opcode 471 * @note: btstack_type 2 472 */ 473 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){ 474 return little_endian_read_16(event, 3); 475 } 476 /** 477 * @brief Get field return_parameters from event HCI_EVENT_COMMAND_COMPLETE 478 * @param event packet 479 * @return return_parameters 480 * @note: btstack_type R 481 */ 482 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){ 483 return &event[5]; 484 } 485 486 /** 487 * @brief Get field status from event HCI_EVENT_COMMAND_STATUS 488 * @param event packet 489 * @return status 490 * @note: btstack_type 1 491 */ 492 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){ 493 return event[2]; 494 } 495 /** 496 * @brief Get field num_hci_command_packets from event HCI_EVENT_COMMAND_STATUS 497 * @param event packet 498 * @return num_hci_command_packets 499 * @note: btstack_type 1 500 */ 501 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){ 502 return event[3]; 503 } 504 /** 505 * @brief Get field command_opcode from event HCI_EVENT_COMMAND_STATUS 506 * @param event packet 507 * @return command_opcode 508 * @note: btstack_type 2 509 */ 510 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){ 511 return little_endian_read_16(event, 4); 512 } 513 514 /** 515 * @brief Get field hardware_code from event HCI_EVENT_HARDWARE_ERROR 516 * @param event packet 517 * @return hardware_code 518 * @note: btstack_type 1 519 */ 520 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){ 521 return event[2]; 522 } 523 524 /** 525 * @brief Get field status from event HCI_EVENT_ROLE_CHANGE 526 * @param event packet 527 * @return status 528 * @note: btstack_type 1 529 */ 530 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){ 531 return event[2]; 532 } 533 /** 534 * @brief Get field bd_addr from event HCI_EVENT_ROLE_CHANGE 535 * @param event packet 536 * @param Pointer to storage for bd_addr 537 * @note: btstack_type B 538 */ 539 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 540 reverse_bd_addr(&event[3], bd_addr); 541 } 542 /** 543 * @brief Get field role from event HCI_EVENT_ROLE_CHANGE 544 * @param event packet 545 * @return role 546 * @note: btstack_type 1 547 */ 548 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){ 549 return event[9]; 550 } 551 552 /** 553 * @brief Get field status from event HCI_EVENT_MODE_CHANGE_EVENT 554 * @param event packet 555 * @return status 556 * @note: btstack_type 1 557 */ 558 static inline uint8_t hci_event_mode_change_event_get_status(const uint8_t * event){ 559 return event[2]; 560 } 561 /** 562 * @brief Get field handle from event HCI_EVENT_MODE_CHANGE_EVENT 563 * @param event packet 564 * @return handle 565 * @note: btstack_type H 566 */ 567 static inline hci_con_handle_t hci_event_mode_change_event_get_handle(const uint8_t * event){ 568 return little_endian_read_16(event, 3); 569 } 570 /** 571 * @brief Get field mode from event HCI_EVENT_MODE_CHANGE_EVENT 572 * @param event packet 573 * @return mode 574 * @note: btstack_type 1 575 */ 576 static inline uint8_t hci_event_mode_change_event_get_mode(const uint8_t * event){ 577 return event[5]; 578 } 579 /** 580 * @brief Get field interval from event HCI_EVENT_MODE_CHANGE_EVENT 581 * @param event packet 582 * @return interval 583 * @note: btstack_type 2 584 */ 585 static inline uint16_t hci_event_mode_change_event_get_interval(const uint8_t * event){ 586 return little_endian_read_16(event, 6); 587 } 588 589 /** 590 * @brief Get field bd_addr from event HCI_EVENT_PIN_CODE_REQUEST 591 * @param event packet 592 * @param Pointer to storage for bd_addr 593 * @note: btstack_type B 594 */ 595 static inline void hci_event_pin_code_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 596 reverse_bd_addr(&event[2], bd_addr); 597 } 598 599 /** 600 * @brief Get field bd_addr from event HCI_EVENT_LINK_KEY_REQUEST 601 * @param event packet 602 * @param Pointer to storage for bd_addr 603 * @note: btstack_type B 604 */ 605 static inline void hci_event_link_key_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 606 reverse_bd_addr(&event[2], bd_addr); 607 } 608 609 /** 610 * @brief Get field link_type from event HCI_EVENT_DATA_BUFFER_OVERFLOW 611 * @param event packet 612 * @return link_type 613 * @note: btstack_type 1 614 */ 615 static inline uint8_t hci_event_data_buffer_overflow_get_link_type(const uint8_t * event){ 616 return event[2]; 617 } 618 619 /** 620 * @brief Get field handle from event HCI_EVENT_MAX_SLOTS_CHANGED 621 * @param event packet 622 * @return handle 623 * @note: btstack_type H 624 */ 625 static inline hci_con_handle_t hci_event_max_slots_changed_get_handle(const uint8_t * event){ 626 return little_endian_read_16(event, 2); 627 } 628 /** 629 * @brief Get field lmp_max_slots from event HCI_EVENT_MAX_SLOTS_CHANGED 630 * @param event packet 631 * @return lmp_max_slots 632 * @note: btstack_type 1 633 */ 634 static inline uint8_t hci_event_max_slots_changed_get_lmp_max_slots(const uint8_t * event){ 635 return event[4]; 636 } 637 638 /** 639 * @brief Get field status from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 640 * @param event packet 641 * @return status 642 * @note: btstack_type 1 643 */ 644 static inline uint8_t hci_event_read_clock_offset_complete_get_status(const uint8_t * event){ 645 return event[2]; 646 } 647 /** 648 * @brief Get field handle from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 649 * @param event packet 650 * @return handle 651 * @note: btstack_type H 652 */ 653 static inline hci_con_handle_t hci_event_read_clock_offset_complete_get_handle(const uint8_t * event){ 654 return little_endian_read_16(event, 3); 655 } 656 /** 657 * @brief Get field clock_offset from event HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 658 * @param event packet 659 * @return clock_offset 660 * @note: btstack_type 2 661 */ 662 static inline uint16_t hci_event_read_clock_offset_complete_get_clock_offset(const uint8_t * event){ 663 return little_endian_read_16(event, 5); 664 } 665 666 /** 667 * @brief Get field status from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 668 * @param event packet 669 * @return status 670 * @note: btstack_type 1 671 */ 672 static inline uint8_t hci_event_connection_packet_type_changed_get_status(const uint8_t * event){ 673 return event[2]; 674 } 675 /** 676 * @brief Get field handle from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 677 * @param event packet 678 * @return handle 679 * @note: btstack_type H 680 */ 681 static inline hci_con_handle_t hci_event_connection_packet_type_changed_get_handle(const uint8_t * event){ 682 return little_endian_read_16(event, 3); 683 } 684 /** 685 * @brief Get field packet_types from event HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 686 * @param event packet 687 * @return packet_types 688 * @note: btstack_type 2 689 */ 690 static inline uint16_t hci_event_connection_packet_type_changed_get_packet_types(const uint8_t * event){ 691 return little_endian_read_16(event, 5); 692 } 693 694 /** 695 * @brief Get field num_responses from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 696 * @param event packet 697 * @return num_responses 698 * @note: btstack_type 1 699 */ 700 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){ 701 return event[2]; 702 } 703 /** 704 * @brief Get field bd_addr from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 705 * @param event packet 706 * @param Pointer to storage for bd_addr 707 * @note: btstack_type B 708 */ 709 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 710 reverse_bd_addr(&event[3], bd_addr); 711 } 712 /** 713 * @brief Get field page_scan_repetition_mode from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 714 * @param event packet 715 * @return page_scan_repetition_mode 716 * @note: btstack_type 1 717 */ 718 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){ 719 return event[9]; 720 } 721 /** 722 * @brief Get field reserved from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 723 * @param event packet 724 * @return reserved 725 * @note: btstack_type 1 726 */ 727 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){ 728 return event[10]; 729 } 730 /** 731 * @brief Get field class_of_device from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 732 * @param event packet 733 * @return class_of_device 734 * @note: btstack_type 3 735 */ 736 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){ 737 return little_endian_read_24(event, 11); 738 } 739 /** 740 * @brief Get field clock_offset from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 741 * @param event packet 742 * @return clock_offset 743 * @note: btstack_type 2 744 */ 745 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){ 746 return little_endian_read_16(event, 14); 747 } 748 /** 749 * @brief Get field rssi from event HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 750 * @param event packet 751 * @return rssi 752 * @note: btstack_type 1 753 */ 754 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){ 755 return event[16]; 756 } 757 758 /** 759 * @brief Get field status from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 760 * @param event packet 761 * @return status 762 * @note: btstack_type 1 763 */ 764 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){ 765 return event[2]; 766 } 767 /** 768 * @brief Get field handle from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 769 * @param event packet 770 * @return handle 771 * @note: btstack_type H 772 */ 773 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){ 774 return little_endian_read_16(event, 3); 775 } 776 /** 777 * @brief Get field bd_addr from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 778 * @param event packet 779 * @param Pointer to storage for bd_addr 780 * @note: btstack_type B 781 */ 782 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 783 reverse_bd_addr(&event[5], bd_addr); 784 } 785 /** 786 * @brief Get field link_type from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 787 * @param event packet 788 * @return link_type 789 * @note: btstack_type 1 790 */ 791 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){ 792 return event[11]; 793 } 794 /** 795 * @brief Get field transmission_interval from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 796 * @param event packet 797 * @return transmission_interval 798 * @note: btstack_type 1 799 */ 800 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){ 801 return event[12]; 802 } 803 /** 804 * @brief Get field retransmission_interval from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 805 * @param event packet 806 * @return retransmission_interval 807 * @note: btstack_type 1 808 */ 809 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){ 810 return event[13]; 811 } 812 /** 813 * @brief Get field rx_packet_length from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 814 * @param event packet 815 * @return rx_packet_length 816 * @note: btstack_type 2 817 */ 818 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){ 819 return little_endian_read_16(event, 14); 820 } 821 /** 822 * @brief Get field tx_packet_length from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 823 * @param event packet 824 * @return tx_packet_length 825 * @note: btstack_type 2 826 */ 827 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){ 828 return little_endian_read_16(event, 16); 829 } 830 /** 831 * @brief Get field air_mode from event HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 832 * @param event packet 833 * @return air_mode 834 * @note: btstack_type 1 835 */ 836 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){ 837 return event[18]; 838 } 839 840 /** 841 * @brief Get field num_responses from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 842 * @param event packet 843 * @return num_responses 844 * @note: btstack_type 1 845 */ 846 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){ 847 return event[2]; 848 } 849 /** 850 * @brief Get field bd_addr from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 851 * @param event packet 852 * @param Pointer to storage for bd_addr 853 * @note: btstack_type B 854 */ 855 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 856 reverse_bd_addr(&event[3], bd_addr); 857 } 858 /** 859 * @brief Get field page_scan_repetition_mode from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 860 * @param event packet 861 * @return page_scan_repetition_mode 862 * @note: btstack_type 1 863 */ 864 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){ 865 return event[9]; 866 } 867 /** 868 * @brief Get field reserved from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 869 * @param event packet 870 * @return reserved 871 * @note: btstack_type 1 872 */ 873 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){ 874 return event[10]; 875 } 876 /** 877 * @brief Get field class_of_device from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 878 * @param event packet 879 * @return class_of_device 880 * @note: btstack_type 3 881 */ 882 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){ 883 return little_endian_read_24(event, 11); 884 } 885 /** 886 * @brief Get field clock_offset from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 887 * @param event packet 888 * @return clock_offset 889 * @note: btstack_type 2 890 */ 891 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){ 892 return little_endian_read_16(event, 14); 893 } 894 /** 895 * @brief Get field rssi from event HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 896 * @param event packet 897 * @return rssi 898 * @note: btstack_type 1 899 */ 900 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){ 901 return event[16]; 902 } 903 904 /** 905 * @brief Get field status from event HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 906 * @param event packet 907 * @return status 908 * @note: btstack_type 1 909 */ 910 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){ 911 return event[2]; 912 } 913 /** 914 * @brief Get field handle from event HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 915 * @param event packet 916 * @return handle 917 * @note: btstack_type H 918 */ 919 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){ 920 return little_endian_read_16(event, 3); 921 } 922 923 /** 924 * @brief Get field bd_addr from event HCI_EVENT_USER_CONFIRMATION_REQUEST 925 * @param event packet 926 * @param Pointer to storage for bd_addr 927 * @note: btstack_type B 928 */ 929 static inline void hci_event_user_confirmation_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 930 reverse_bd_addr(&event[2], bd_addr); 931 } 932 /** 933 * @brief Get field numeric_value from event HCI_EVENT_USER_CONFIRMATION_REQUEST 934 * @param event packet 935 * @return numeric_value 936 * @note: btstack_type 4 937 */ 938 static inline uint32_t hci_event_user_confirmation_request_get_numeric_value(const uint8_t * event){ 939 return little_endian_read_32(event, 8); 940 } 941 942 /** 943 * @brief Get field bd_addr from event HCI_EVENT_USER_PASSKEY_REQUEST 944 * @param event packet 945 * @param Pointer to storage for bd_addr 946 * @note: btstack_type B 947 */ 948 static inline void hci_event_user_passkey_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 949 reverse_bd_addr(&event[2], bd_addr); 950 } 951 952 /** 953 * @brief Get field bd_addr from event HCI_EVENT_REMOTE_OOB_DATA_REQUEST 954 * @param event packet 955 * @param Pointer to storage for bd_addr 956 * @note: btstack_type B 957 */ 958 static inline void hci_event_remote_oob_data_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 959 reverse_bd_addr(&event[2], bd_addr); 960 } 961 962 /** 963 * @brief Get field status from event HCI_EVENT_SIMPLE_PAIRING_COMPLETE 964 * @param event packet 965 * @return status 966 * @note: btstack_type 1 967 */ 968 static inline uint8_t hci_event_simple_pairing_complete_get_status(const uint8_t * event){ 969 return event[2]; 970 } 971 /** 972 * @brief Get field bd_addr from event HCI_EVENT_SIMPLE_PAIRING_COMPLETE 973 * @param event packet 974 * @param Pointer to storage for bd_addr 975 * @note: btstack_type B 976 */ 977 static inline void hci_event_simple_pairing_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 978 reverse_bd_addr(&event[3], bd_addr); 979 } 980 981 /** 982 * @brief Get field state from event BTSTACK_EVENT_STATE 983 * @param event packet 984 * @return state 985 * @note: btstack_type 1 986 */ 987 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){ 988 return event[2]; 989 } 990 991 /** 992 * @brief Get field number_connections from event BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 993 * @param event packet 994 * @return number_connections 995 * @note: btstack_type 1 996 */ 997 static inline uint8_t btstack_event_nr_connections_changed_get_number_connections(const uint8_t * event){ 998 return event[2]; 999 } 1000 1001 1002 /** 1003 * @brief Get field discoverable from event BTSTACK_EVENT_DISCOVERABLE_ENABLED 1004 * @param event packet 1005 * @return discoverable 1006 * @note: btstack_type 1 1007 */ 1008 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){ 1009 return event[2]; 1010 } 1011 1012 /** 1013 * @brief Get field active from event HCI_EVENT_TRANSPORT_SLEEP_MODE 1014 * @param event packet 1015 * @return active 1016 * @note: btstack_type 1 1017 */ 1018 static inline uint8_t hci_event_transport_sleep_mode_get_active(const uint8_t * event){ 1019 return event[2]; 1020 } 1021 1022 /** 1023 * @brief Get field handle from event HCI_EVENT_SCO_CAN_SEND_NOW 1024 * @param event packet 1025 * @param Pointer to storage for handle 1026 * @note: btstack_type B 1027 */ 1028 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){ 1029 reverse_bd_addr(&event[2], handle); 1030 } 1031 1032 /** 1033 * @brief Get field status from event L2CAP_EVENT_CHANNEL_OPENED 1034 * @param event packet 1035 * @return status 1036 * @note: btstack_type 1 1037 */ 1038 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 1039 return event[2]; 1040 } 1041 /** 1042 * @brief Get field address from event L2CAP_EVENT_CHANNEL_OPENED 1043 * @param event packet 1044 * @param Pointer to storage for address 1045 * @note: btstack_type B 1046 */ 1047 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 1048 reverse_bd_addr(&event[3], address); 1049 } 1050 /** 1051 * @brief Get field handle from event L2CAP_EVENT_CHANNEL_OPENED 1052 * @param event packet 1053 * @return handle 1054 * @note: btstack_type H 1055 */ 1056 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 1057 return little_endian_read_16(event, 9); 1058 } 1059 /** 1060 * @brief Get field psm from event L2CAP_EVENT_CHANNEL_OPENED 1061 * @param event packet 1062 * @return psm 1063 * @note: btstack_type 2 1064 */ 1065 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 1066 return little_endian_read_16(event, 11); 1067 } 1068 /** 1069 * @brief Get field local_cid from event L2CAP_EVENT_CHANNEL_OPENED 1070 * @param event packet 1071 * @return local_cid 1072 * @note: btstack_type 2 1073 */ 1074 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 1075 return little_endian_read_16(event, 13); 1076 } 1077 /** 1078 * @brief Get field remote_cid from event L2CAP_EVENT_CHANNEL_OPENED 1079 * @param event packet 1080 * @return remote_cid 1081 * @note: btstack_type 2 1082 */ 1083 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 1084 return little_endian_read_16(event, 15); 1085 } 1086 /** 1087 * @brief Get field local_mtu from event L2CAP_EVENT_CHANNEL_OPENED 1088 * @param event packet 1089 * @return local_mtu 1090 * @note: btstack_type 2 1091 */ 1092 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 1093 return little_endian_read_16(event, 17); 1094 } 1095 /** 1096 * @brief Get field remote_mtu from event L2CAP_EVENT_CHANNEL_OPENED 1097 * @param event packet 1098 * @return remote_mtu 1099 * @note: btstack_type 2 1100 */ 1101 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 1102 return little_endian_read_16(event, 19); 1103 } 1104 /** 1105 * @brief Get field flush_timeout from event L2CAP_EVENT_CHANNEL_OPENED 1106 * @param event packet 1107 * @return flush_timeout 1108 * @note: btstack_type 2 1109 */ 1110 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 1111 return little_endian_read_16(event, 21); 1112 } 1113 /** 1114 * @brief Get field incoming from event L2CAP_EVENT_CHANNEL_OPENED 1115 * @param event packet 1116 * @return incoming 1117 * @note: btstack_type 1 1118 */ 1119 static inline uint8_t l2cap_event_channel_opened_get_incoming(const uint8_t * event){ 1120 return event[23]; 1121 } 1122 1123 /** 1124 * @brief Get field local_cid from event L2CAP_EVENT_CHANNEL_CLOSED 1125 * @param event packet 1126 * @return local_cid 1127 * @note: btstack_type 2 1128 */ 1129 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 1130 return little_endian_read_16(event, 2); 1131 } 1132 1133 /** 1134 * @brief Get field address from event L2CAP_EVENT_INCOMING_CONNECTION 1135 * @param event packet 1136 * @param Pointer to storage for address 1137 * @note: btstack_type B 1138 */ 1139 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 1140 reverse_bd_addr(&event[2], address); 1141 } 1142 /** 1143 * @brief Get field handle from event L2CAP_EVENT_INCOMING_CONNECTION 1144 * @param event packet 1145 * @return handle 1146 * @note: btstack_type H 1147 */ 1148 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 1149 return little_endian_read_16(event, 8); 1150 } 1151 /** 1152 * @brief Get field psm from event L2CAP_EVENT_INCOMING_CONNECTION 1153 * @param event packet 1154 * @return psm 1155 * @note: btstack_type 2 1156 */ 1157 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 1158 return little_endian_read_16(event, 10); 1159 } 1160 /** 1161 * @brief Get field local_cid from event L2CAP_EVENT_INCOMING_CONNECTION 1162 * @param event packet 1163 * @return local_cid 1164 * @note: btstack_type 2 1165 */ 1166 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 1167 return little_endian_read_16(event, 12); 1168 } 1169 /** 1170 * @brief Get field remote_cid from event L2CAP_EVENT_INCOMING_CONNECTION 1171 * @param event packet 1172 * @return remote_cid 1173 * @note: btstack_type 2 1174 */ 1175 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 1176 return little_endian_read_16(event, 14); 1177 } 1178 1179 /** 1180 * @brief Get field handle from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1181 * @param event packet 1182 * @return handle 1183 * @note: btstack_type H 1184 */ 1185 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 1186 return little_endian_read_16(event, 2); 1187 } 1188 /** 1189 * @brief Get field interval_min from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1190 * @param event packet 1191 * @return interval_min 1192 * @note: btstack_type 2 1193 */ 1194 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 1195 return little_endian_read_16(event, 4); 1196 } 1197 /** 1198 * @brief Get field interval_max from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1199 * @param event packet 1200 * @return interval_max 1201 * @note: btstack_type 2 1202 */ 1203 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 1204 return little_endian_read_16(event, 6); 1205 } 1206 /** 1207 * @brief Get field latencey from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1208 * @param event packet 1209 * @return latencey 1210 * @note: btstack_type 2 1211 */ 1212 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 1213 return little_endian_read_16(event, 8); 1214 } 1215 /** 1216 * @brief Get field timeout_multiplier from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 1217 * @param event packet 1218 * @return timeout_multiplier 1219 * @note: btstack_type 2 1220 */ 1221 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 1222 return little_endian_read_16(event, 10); 1223 } 1224 1225 /** 1226 * @brief Get field handle from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 1227 * @param event packet 1228 * @return handle 1229 * @note: btstack_type H 1230 */ 1231 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 1232 return little_endian_read_16(event, 2); 1233 } 1234 /** 1235 * @brief Get field result from event L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 1236 * @param event packet 1237 * @return result 1238 * @note: btstack_type 2 1239 */ 1240 static inline uint16_t l2cap_event_connection_parameter_update_response_get_result(const uint8_t * event){ 1241 return little_endian_read_16(event, 4); 1242 } 1243 1244 /** 1245 * @brief Get field local_cid from event L2CAP_EVENT_CAN_SEND_NOW 1246 * @param event packet 1247 * @return local_cid 1248 * @note: btstack_type 2 1249 */ 1250 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 1251 return little_endian_read_16(event, 2); 1252 } 1253 1254 /** 1255 * @brief Get field address_type from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1256 * @param event packet 1257 * @return address_type 1258 * @note: btstack_type 1 1259 */ 1260 static inline uint8_t l2cap_event_le_incoming_connection_get_address_type(const uint8_t * event){ 1261 return event[2]; 1262 } 1263 /** 1264 * @brief Get field address from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1265 * @param event packet 1266 * @param Pointer to storage for address 1267 * @note: btstack_type B 1268 */ 1269 static inline void l2cap_event_le_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 1270 reverse_bd_addr(&event[3], address); 1271 } 1272 /** 1273 * @brief Get field handle from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1274 * @param event packet 1275 * @return handle 1276 * @note: btstack_type H 1277 */ 1278 static inline hci_con_handle_t l2cap_event_le_incoming_connection_get_handle(const uint8_t * event){ 1279 return little_endian_read_16(event, 9); 1280 } 1281 /** 1282 * @brief Get field psm from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1283 * @param event packet 1284 * @return psm 1285 * @note: btstack_type 2 1286 */ 1287 static inline uint16_t l2cap_event_le_incoming_connection_get_psm(const uint8_t * event){ 1288 return little_endian_read_16(event, 11); 1289 } 1290 /** 1291 * @brief Get field local_cid from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1292 * @param event packet 1293 * @return local_cid 1294 * @note: btstack_type 2 1295 */ 1296 static inline uint16_t l2cap_event_le_incoming_connection_get_local_cid(const uint8_t * event){ 1297 return little_endian_read_16(event, 13); 1298 } 1299 /** 1300 * @brief Get field remote_cid from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1301 * @param event packet 1302 * @return remote_cid 1303 * @note: btstack_type 2 1304 */ 1305 static inline uint16_t l2cap_event_le_incoming_connection_get_remote_cid(const uint8_t * event){ 1306 return little_endian_read_16(event, 15); 1307 } 1308 /** 1309 * @brief Get field remote_mtu from event L2CAP_EVENT_LE_INCOMING_CONNECTION 1310 * @param event packet 1311 * @return remote_mtu 1312 * @note: btstack_type 2 1313 */ 1314 static inline uint16_t l2cap_event_le_incoming_connection_get_remote_mtu(const uint8_t * event){ 1315 return little_endian_read_16(event, 17); 1316 } 1317 1318 /** 1319 * @brief Get field status from event L2CAP_EVENT_LE_CHANNEL_OPENED 1320 * @param event packet 1321 * @return status 1322 * @note: btstack_type 1 1323 */ 1324 static inline uint8_t l2cap_event_le_channel_opened_get_status(const uint8_t * event){ 1325 return event[2]; 1326 } 1327 /** 1328 * @brief Get field address_type from event L2CAP_EVENT_LE_CHANNEL_OPENED 1329 * @param event packet 1330 * @return address_type 1331 * @note: btstack_type 1 1332 */ 1333 static inline uint8_t l2cap_event_le_channel_opened_get_address_type(const uint8_t * event){ 1334 return event[3]; 1335 } 1336 /** 1337 * @brief Get field address from event L2CAP_EVENT_LE_CHANNEL_OPENED 1338 * @param event packet 1339 * @param Pointer to storage for address 1340 * @note: btstack_type B 1341 */ 1342 static inline void l2cap_event_le_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 1343 reverse_bd_addr(&event[4], address); 1344 } 1345 /** 1346 * @brief Get field handle from event L2CAP_EVENT_LE_CHANNEL_OPENED 1347 * @param event packet 1348 * @return handle 1349 * @note: btstack_type H 1350 */ 1351 static inline hci_con_handle_t l2cap_event_le_channel_opened_get_handle(const uint8_t * event){ 1352 return little_endian_read_16(event, 10); 1353 } 1354 /** 1355 * @brief Get field incoming from event L2CAP_EVENT_LE_CHANNEL_OPENED 1356 * @param event packet 1357 * @return incoming 1358 * @note: btstack_type 1 1359 */ 1360 static inline uint8_t l2cap_event_le_channel_opened_get_incoming(const uint8_t * event){ 1361 return event[12]; 1362 } 1363 /** 1364 * @brief Get field psm from event L2CAP_EVENT_LE_CHANNEL_OPENED 1365 * @param event packet 1366 * @return psm 1367 * @note: btstack_type 2 1368 */ 1369 static inline uint16_t l2cap_event_le_channel_opened_get_psm(const uint8_t * event){ 1370 return little_endian_read_16(event, 13); 1371 } 1372 /** 1373 * @brief Get field local_cid from event L2CAP_EVENT_LE_CHANNEL_OPENED 1374 * @param event packet 1375 * @return local_cid 1376 * @note: btstack_type 2 1377 */ 1378 static inline uint16_t l2cap_event_le_channel_opened_get_local_cid(const uint8_t * event){ 1379 return little_endian_read_16(event, 15); 1380 } 1381 /** 1382 * @brief Get field remote_cid from event L2CAP_EVENT_LE_CHANNEL_OPENED 1383 * @param event packet 1384 * @return remote_cid 1385 * @note: btstack_type 2 1386 */ 1387 static inline uint16_t l2cap_event_le_channel_opened_get_remote_cid(const uint8_t * event){ 1388 return little_endian_read_16(event, 17); 1389 } 1390 /** 1391 * @brief Get field local_mtu from event L2CAP_EVENT_LE_CHANNEL_OPENED 1392 * @param event packet 1393 * @return local_mtu 1394 * @note: btstack_type 2 1395 */ 1396 static inline uint16_t l2cap_event_le_channel_opened_get_local_mtu(const uint8_t * event){ 1397 return little_endian_read_16(event, 19); 1398 } 1399 /** 1400 * @brief Get field remote_mtu from event L2CAP_EVENT_LE_CHANNEL_OPENED 1401 * @param event packet 1402 * @return remote_mtu 1403 * @note: btstack_type 2 1404 */ 1405 static inline uint16_t l2cap_event_le_channel_opened_get_remote_mtu(const uint8_t * event){ 1406 return little_endian_read_16(event, 21); 1407 } 1408 1409 /** 1410 * @brief Get field local_cid from event L2CAP_EVENT_LE_CHANNEL_CLOSED 1411 * @param event packet 1412 * @return local_cid 1413 * @note: btstack_type 2 1414 */ 1415 static inline uint16_t l2cap_event_le_channel_closed_get_local_cid(const uint8_t * event){ 1416 return little_endian_read_16(event, 2); 1417 } 1418 1419 /** 1420 * @brief Get field local_cid from event L2CAP_EVENT_LE_CAN_SEND_NOW 1421 * @param event packet 1422 * @return local_cid 1423 * @note: btstack_type 2 1424 */ 1425 static inline uint16_t l2cap_event_le_can_send_now_get_local_cid(const uint8_t * event){ 1426 return little_endian_read_16(event, 2); 1427 } 1428 1429 /** 1430 * @brief Get field local_cid from event L2CAP_EVENT_LE_PACKET_SENT 1431 * @param event packet 1432 * @return local_cid 1433 * @note: btstack_type 2 1434 */ 1435 static inline uint16_t l2cap_event_le_packet_sent_get_local_cid(const uint8_t * event){ 1436 return little_endian_read_16(event, 2); 1437 } 1438 1439 /** 1440 * @brief Get field status from event RFCOMM_EVENT_CHANNEL_OPENED 1441 * @param event packet 1442 * @return status 1443 * @note: btstack_type 1 1444 */ 1445 static inline uint8_t rfcomm_event_channel_opened_get_status(const uint8_t * event){ 1446 return event[2]; 1447 } 1448 /** 1449 * @brief Get field bd_addr from event RFCOMM_EVENT_CHANNEL_OPENED 1450 * @param event packet 1451 * @param Pointer to storage for bd_addr 1452 * @note: btstack_type B 1453 */ 1454 static inline void rfcomm_event_channel_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1455 reverse_bd_addr(&event[3], bd_addr); 1456 } 1457 /** 1458 * @brief Get field con_handle from event RFCOMM_EVENT_CHANNEL_OPENED 1459 * @param event packet 1460 * @return con_handle 1461 * @note: btstack_type 2 1462 */ 1463 static inline uint16_t rfcomm_event_channel_opened_get_con_handle(const uint8_t * event){ 1464 return little_endian_read_16(event, 9); 1465 } 1466 /** 1467 * @brief Get field server_channel from event RFCOMM_EVENT_CHANNEL_OPENED 1468 * @param event packet 1469 * @return server_channel 1470 * @note: btstack_type 1 1471 */ 1472 static inline uint8_t rfcomm_event_channel_opened_get_server_channel(const uint8_t * event){ 1473 return event[11]; 1474 } 1475 /** 1476 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CHANNEL_OPENED 1477 * @param event packet 1478 * @return rfcomm_cid 1479 * @note: btstack_type 2 1480 */ 1481 static inline uint16_t rfcomm_event_channel_opened_get_rfcomm_cid(const uint8_t * event){ 1482 return little_endian_read_16(event, 12); 1483 } 1484 /** 1485 * @brief Get field max_frame_size from event RFCOMM_EVENT_CHANNEL_OPENED 1486 * @param event packet 1487 * @return max_frame_size 1488 * @note: btstack_type 2 1489 */ 1490 static inline uint16_t rfcomm_event_channel_opened_get_max_frame_size(const uint8_t * event){ 1491 return little_endian_read_16(event, 14); 1492 } 1493 /** 1494 * @brief Get field incoming from event RFCOMM_EVENT_CHANNEL_OPENED 1495 * @param event packet 1496 * @return incoming 1497 * @note: btstack_type 1 1498 */ 1499 static inline uint8_t rfcomm_event_channel_opened_get_incoming(const uint8_t * event){ 1500 return event[16]; 1501 } 1502 1503 /** 1504 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CHANNEL_CLOSED 1505 * @param event packet 1506 * @return rfcomm_cid 1507 * @note: btstack_type 2 1508 */ 1509 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 1510 return little_endian_read_16(event, 2); 1511 } 1512 1513 /** 1514 * @brief Get field bd_addr from event RFCOMM_EVENT_INCOMING_CONNECTION 1515 * @param event packet 1516 * @param Pointer to storage for bd_addr 1517 * @note: btstack_type B 1518 */ 1519 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1520 reverse_bd_addr(&event[2], bd_addr); 1521 } 1522 /** 1523 * @brief Get field server_channel from event RFCOMM_EVENT_INCOMING_CONNECTION 1524 * @param event packet 1525 * @return server_channel 1526 * @note: btstack_type 1 1527 */ 1528 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 1529 return event[8]; 1530 } 1531 /** 1532 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_INCOMING_CONNECTION 1533 * @param event packet 1534 * @return rfcomm_cid 1535 * @note: btstack_type 2 1536 */ 1537 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 1538 return little_endian_read_16(event, 9); 1539 } 1540 1541 /** 1542 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_REMOTE_LINE_STATUS 1543 * @param event packet 1544 * @return rfcomm_cid 1545 * @note: btstack_type 2 1546 */ 1547 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 1548 return little_endian_read_16(event, 2); 1549 } 1550 /** 1551 * @brief Get field line_status from event RFCOMM_EVENT_REMOTE_LINE_STATUS 1552 * @param event packet 1553 * @return line_status 1554 * @note: btstack_type 1 1555 */ 1556 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 1557 return event[4]; 1558 } 1559 1560 /** 1561 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_REMOTE_MODEM_STATUS 1562 * @param event packet 1563 * @return rfcomm_cid 1564 * @note: btstack_type 2 1565 */ 1566 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 1567 return little_endian_read_16(event, 2); 1568 } 1569 /** 1570 * @brief Get field modem_status from event RFCOMM_EVENT_REMOTE_MODEM_STATUS 1571 * @param event packet 1572 * @return modem_status 1573 * @note: btstack_type 1 1574 */ 1575 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 1576 return event[4]; 1577 } 1578 1579 /** 1580 * @brief Get field rfcomm_cid from event RFCOMM_EVENT_CAN_SEND_NOW 1581 * @param event packet 1582 * @return rfcomm_cid 1583 * @note: btstack_type 2 1584 */ 1585 static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t * event){ 1586 return little_endian_read_16(event, 2); 1587 } 1588 1589 /** 1590 * @brief Get field status from event SDP_EVENT_QUERY_COMPLETE 1591 * @param event packet 1592 * @return status 1593 * @note: btstack_type 1 1594 */ 1595 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 1596 return event[2]; 1597 } 1598 1599 /** 1600 * @brief Get field rfcomm_channel from event SDP_EVENT_QUERY_RFCOMM_SERVICE 1601 * @param event packet 1602 * @return rfcomm_channel 1603 * @note: btstack_type 1 1604 */ 1605 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 1606 return event[2]; 1607 } 1608 /** 1609 * @brief Get field name from event SDP_EVENT_QUERY_RFCOMM_SERVICE 1610 * @param event packet 1611 * @return name 1612 * @note: btstack_type T 1613 */ 1614 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 1615 return (const char *) &event[3]; 1616 } 1617 1618 /** 1619 * @brief Get field record_id from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1620 * @param event packet 1621 * @return record_id 1622 * @note: btstack_type 2 1623 */ 1624 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 1625 return little_endian_read_16(event, 2); 1626 } 1627 /** 1628 * @brief Get field attribute_id from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1629 * @param event packet 1630 * @return attribute_id 1631 * @note: btstack_type 2 1632 */ 1633 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 1634 return little_endian_read_16(event, 4); 1635 } 1636 /** 1637 * @brief Get field attribute_length from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1638 * @param event packet 1639 * @return attribute_length 1640 * @note: btstack_type 2 1641 */ 1642 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 1643 return little_endian_read_16(event, 6); 1644 } 1645 /** 1646 * @brief Get field data_offset from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1647 * @param event packet 1648 * @return data_offset 1649 * @note: btstack_type 2 1650 */ 1651 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 1652 return little_endian_read_16(event, 8); 1653 } 1654 /** 1655 * @brief Get field data from event SDP_EVENT_QUERY_ATTRIBUTE_BYTE 1656 * @param event packet 1657 * @return data 1658 * @note: btstack_type 1 1659 */ 1660 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 1661 return event[10]; 1662 } 1663 1664 /** 1665 * @brief Get field record_id from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1666 * @param event packet 1667 * @return record_id 1668 * @note: btstack_type 2 1669 */ 1670 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 1671 return little_endian_read_16(event, 2); 1672 } 1673 /** 1674 * @brief Get field attribute_id from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1675 * @param event packet 1676 * @return attribute_id 1677 * @note: btstack_type 2 1678 */ 1679 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 1680 return little_endian_read_16(event, 4); 1681 } 1682 /** 1683 * @brief Get field attribute_length from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1684 * @param event packet 1685 * @return attribute_length 1686 * @note: btstack_type L 1687 */ 1688 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 1689 return little_endian_read_16(event, 6); 1690 } 1691 /** 1692 * @brief Get field attribute_value from event SDP_EVENT_QUERY_ATTRIBUTE_VALUE 1693 * @param event packet 1694 * @return attribute_value 1695 * @note: btstack_type V 1696 */ 1697 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 1698 return &event[8]; 1699 } 1700 1701 /** 1702 * @brief Get field total_count from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 1703 * @param event packet 1704 * @return total_count 1705 * @note: btstack_type 2 1706 */ 1707 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 1708 return little_endian_read_16(event, 2); 1709 } 1710 /** 1711 * @brief Get field record_index from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 1712 * @param event packet 1713 * @return record_index 1714 * @note: btstack_type 2 1715 */ 1716 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 1717 return little_endian_read_16(event, 4); 1718 } 1719 /** 1720 * @brief Get field record_handle from event SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 1721 * @param event packet 1722 * @return record_handle 1723 * @note: btstack_type 4 1724 */ 1725 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 1726 return little_endian_read_32(event, 6); 1727 } 1728 1729 #ifdef ENABLE_BLE 1730 /** 1731 * @brief Get field handle from event GATT_EVENT_QUERY_COMPLETE 1732 * @param event packet 1733 * @return handle 1734 * @note: btstack_type H 1735 */ 1736 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 1737 return little_endian_read_16(event, 2); 1738 } 1739 /** 1740 * @brief Get field status from event GATT_EVENT_QUERY_COMPLETE 1741 * @param event packet 1742 * @return status 1743 * @note: btstack_type 1 1744 */ 1745 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 1746 return event[4]; 1747 } 1748 #endif 1749 1750 #ifdef ENABLE_BLE 1751 /** 1752 * @brief Get field handle from event GATT_EVENT_SERVICE_QUERY_RESULT 1753 * @param event packet 1754 * @return handle 1755 * @note: btstack_type H 1756 */ 1757 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 1758 return little_endian_read_16(event, 2); 1759 } 1760 /** 1761 * @brief Get field service from event GATT_EVENT_SERVICE_QUERY_RESULT 1762 * @param event packet 1763 * @param Pointer to storage for service 1764 * @note: btstack_type X 1765 */ 1766 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1767 gatt_client_deserialize_service(event, 4, service); 1768 } 1769 #endif 1770 1771 #ifdef ENABLE_BLE 1772 /** 1773 * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 1774 * @param event packet 1775 * @return handle 1776 * @note: btstack_type H 1777 */ 1778 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 1779 return little_endian_read_16(event, 2); 1780 } 1781 /** 1782 * @brief Get field characteristic from event GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 1783 * @param event packet 1784 * @param Pointer to storage for characteristic 1785 * @note: btstack_type Y 1786 */ 1787 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 1788 gatt_client_deserialize_characteristic(event, 4, characteristic); 1789 } 1790 #endif 1791 1792 #ifdef ENABLE_BLE 1793 /** 1794 * @brief Get field handle from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 1795 * @param event packet 1796 * @return handle 1797 * @note: btstack_type H 1798 */ 1799 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 1800 return little_endian_read_16(event, 2); 1801 } 1802 /** 1803 * @brief Get field include_handle from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 1804 * @param event packet 1805 * @return include_handle 1806 * @note: btstack_type 2 1807 */ 1808 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 1809 return little_endian_read_16(event, 4); 1810 } 1811 /** 1812 * @brief Get field service from event GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 1813 * @param event packet 1814 * @param Pointer to storage for service 1815 * @note: btstack_type X 1816 */ 1817 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1818 gatt_client_deserialize_service(event, 6, service); 1819 } 1820 #endif 1821 1822 #ifdef ENABLE_BLE 1823 /** 1824 * @brief Get field handle from event GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 1825 * @param event packet 1826 * @return handle 1827 * @note: btstack_type H 1828 */ 1829 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 1830 return little_endian_read_16(event, 2); 1831 } 1832 /** 1833 * @brief Get field characteristic_descriptor from event GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 1834 * @param event packet 1835 * @param Pointer to storage for characteristic_descriptor 1836 * @note: btstack_type Z 1837 */ 1838 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 1839 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 1840 } 1841 #endif 1842 1843 #ifdef ENABLE_BLE 1844 /** 1845 * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1846 * @param event packet 1847 * @return handle 1848 * @note: btstack_type H 1849 */ 1850 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 1851 return little_endian_read_16(event, 2); 1852 } 1853 /** 1854 * @brief Get field value_handle from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1855 * @param event packet 1856 * @return value_handle 1857 * @note: btstack_type 2 1858 */ 1859 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1860 return little_endian_read_16(event, 4); 1861 } 1862 /** 1863 * @brief Get field value_length from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1864 * @param event packet 1865 * @return value_length 1866 * @note: btstack_type L 1867 */ 1868 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1869 return little_endian_read_16(event, 6); 1870 } 1871 /** 1872 * @brief Get field value from event GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 1873 * @param event packet 1874 * @return value 1875 * @note: btstack_type V 1876 */ 1877 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 1878 return &event[8]; 1879 } 1880 #endif 1881 1882 #ifdef ENABLE_BLE 1883 /** 1884 * @brief Get field handle from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1885 * @param event packet 1886 * @return handle 1887 * @note: btstack_type H 1888 */ 1889 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 1890 return little_endian_read_16(event, 2); 1891 } 1892 /** 1893 * @brief Get field value_handle from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1894 * @param event packet 1895 * @return value_handle 1896 * @note: btstack_type 2 1897 */ 1898 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1899 return little_endian_read_16(event, 4); 1900 } 1901 /** 1902 * @brief Get field value_offset from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1903 * @param event packet 1904 * @return value_offset 1905 * @note: btstack_type 2 1906 */ 1907 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 1908 return little_endian_read_16(event, 6); 1909 } 1910 /** 1911 * @brief Get field value_length from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1912 * @param event packet 1913 * @return value_length 1914 * @note: btstack_type L 1915 */ 1916 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1917 return little_endian_read_16(event, 8); 1918 } 1919 /** 1920 * @brief Get field value from event GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 1921 * @param event packet 1922 * @return value 1923 * @note: btstack_type V 1924 */ 1925 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 1926 return &event[10]; 1927 } 1928 #endif 1929 1930 #ifdef ENABLE_BLE 1931 /** 1932 * @brief Get field handle from event GATT_EVENT_NOTIFICATION 1933 * @param event packet 1934 * @return handle 1935 * @note: btstack_type H 1936 */ 1937 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 1938 return little_endian_read_16(event, 2); 1939 } 1940 /** 1941 * @brief Get field value_handle from event GATT_EVENT_NOTIFICATION 1942 * @param event packet 1943 * @return value_handle 1944 * @note: btstack_type 2 1945 */ 1946 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 1947 return little_endian_read_16(event, 4); 1948 } 1949 /** 1950 * @brief Get field value_length from event GATT_EVENT_NOTIFICATION 1951 * @param event packet 1952 * @return value_length 1953 * @note: btstack_type L 1954 */ 1955 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 1956 return little_endian_read_16(event, 6); 1957 } 1958 /** 1959 * @brief Get field value from event GATT_EVENT_NOTIFICATION 1960 * @param event packet 1961 * @return value 1962 * @note: btstack_type V 1963 */ 1964 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 1965 return &event[8]; 1966 } 1967 #endif 1968 1969 #ifdef ENABLE_BLE 1970 /** 1971 * @brief Get field handle from event GATT_EVENT_INDICATION 1972 * @param event packet 1973 * @return handle 1974 * @note: btstack_type H 1975 */ 1976 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 1977 return little_endian_read_16(event, 2); 1978 } 1979 /** 1980 * @brief Get field value_handle from event GATT_EVENT_INDICATION 1981 * @param event packet 1982 * @return value_handle 1983 * @note: btstack_type 2 1984 */ 1985 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 1986 return little_endian_read_16(event, 4); 1987 } 1988 /** 1989 * @brief Get field value_length from event GATT_EVENT_INDICATION 1990 * @param event packet 1991 * @return value_length 1992 * @note: btstack_type L 1993 */ 1994 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 1995 return little_endian_read_16(event, 6); 1996 } 1997 /** 1998 * @brief Get field value from event GATT_EVENT_INDICATION 1999 * @param event packet 2000 * @return value 2001 * @note: btstack_type V 2002 */ 2003 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 2004 return &event[8]; 2005 } 2006 #endif 2007 2008 #ifdef ENABLE_BLE 2009 /** 2010 * @brief Get field handle from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2011 * @param event packet 2012 * @return handle 2013 * @note: btstack_type H 2014 */ 2015 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 2016 return little_endian_read_16(event, 2); 2017 } 2018 /** 2019 * @brief Get field descriptor_handle from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2020 * @param event packet 2021 * @return descriptor_handle 2022 * @note: btstack_type 2 2023 */ 2024 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 2025 return little_endian_read_16(event, 4); 2026 } 2027 /** 2028 * @brief Get field descriptor_length from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2029 * @param event packet 2030 * @return descriptor_length 2031 * @note: btstack_type L 2032 */ 2033 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 2034 return little_endian_read_16(event, 6); 2035 } 2036 /** 2037 * @brief Get field descriptor from event GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2038 * @param event packet 2039 * @return descriptor 2040 * @note: btstack_type V 2041 */ 2042 static inline const uint8_t * gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 2043 return &event[8]; 2044 } 2045 #endif 2046 2047 #ifdef ENABLE_BLE 2048 /** 2049 * @brief Get field handle from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2050 * @param event packet 2051 * @return handle 2052 * @note: btstack_type H 2053 */ 2054 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 2055 return little_endian_read_16(event, 2); 2056 } 2057 /** 2058 * @brief Get field descriptor_offset from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2059 * @param event packet 2060 * @return descriptor_offset 2061 * @note: btstack_type 2 2062 */ 2063 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 2064 return little_endian_read_16(event, 4); 2065 } 2066 /** 2067 * @brief Get field descriptor_length from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2068 * @param event packet 2069 * @return descriptor_length 2070 * @note: btstack_type L 2071 */ 2072 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 2073 return little_endian_read_16(event, 6); 2074 } 2075 /** 2076 * @brief Get field descriptor from event GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 2077 * @param event packet 2078 * @return descriptor 2079 * @note: btstack_type V 2080 */ 2081 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 2082 return &event[8]; 2083 } 2084 #endif 2085 2086 #ifdef ENABLE_BLE 2087 /** 2088 * @brief Get field handle from event GATT_EVENT_MTU 2089 * @param event packet 2090 * @return handle 2091 * @note: btstack_type H 2092 */ 2093 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 2094 return little_endian_read_16(event, 2); 2095 } 2096 /** 2097 * @brief Get field MTU from event GATT_EVENT_MTU 2098 * @param event packet 2099 * @return MTU 2100 * @note: btstack_type 2 2101 */ 2102 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 2103 return little_endian_read_16(event, 4); 2104 } 2105 #endif 2106 2107 #ifdef ENABLE_BLE 2108 /** 2109 * @brief Get field handle from event GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 2110 * @param event packet 2111 * @return handle 2112 * @note: btstack_type H 2113 */ 2114 static inline hci_con_handle_t gatt_event_can_write_without_response_get_handle(const uint8_t * event){ 2115 return little_endian_read_16(event, 2); 2116 } 2117 #endif 2118 2119 /** 2120 * @brief Get field handle from event ATT_EVENT_MTU_EXCHANGE_COMPLETE 2121 * @param event packet 2122 * @return handle 2123 * @note: btstack_type H 2124 */ 2125 static inline hci_con_handle_t att_event_mtu_exchange_complete_get_handle(const uint8_t * event){ 2126 return little_endian_read_16(event, 2); 2127 } 2128 /** 2129 * @brief Get field MTU from event ATT_EVENT_MTU_EXCHANGE_COMPLETE 2130 * @param event packet 2131 * @return MTU 2132 * @note: btstack_type 2 2133 */ 2134 static inline uint16_t att_event_mtu_exchange_complete_get_MTU(const uint8_t * event){ 2135 return little_endian_read_16(event, 4); 2136 } 2137 2138 /** 2139 * @brief Get field status from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 2140 * @param event packet 2141 * @return status 2142 * @note: btstack_type 1 2143 */ 2144 static inline uint8_t att_event_handle_value_indication_complete_get_status(const uint8_t * event){ 2145 return event[2]; 2146 } 2147 /** 2148 * @brief Get field conn_handle from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 2149 * @param event packet 2150 * @return conn_handle 2151 * @note: btstack_type H 2152 */ 2153 static inline hci_con_handle_t att_event_handle_value_indication_complete_get_conn_handle(const uint8_t * event){ 2154 return little_endian_read_16(event, 3); 2155 } 2156 /** 2157 * @brief Get field attribute_handle from event ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 2158 * @param event packet 2159 * @return attribute_handle 2160 * @note: btstack_type 2 2161 */ 2162 static inline uint16_t att_event_handle_value_indication_complete_get_attribute_handle(const uint8_t * event){ 2163 return little_endian_read_16(event, 5); 2164 } 2165 2166 2167 /** 2168 * @brief Get field status from event BNEP_EVENT_SERVICE_REGISTERED 2169 * @param event packet 2170 * @return status 2171 * @note: btstack_type 1 2172 */ 2173 static inline uint8_t bnep_event_service_registered_get_status(const uint8_t * event){ 2174 return event[2]; 2175 } 2176 /** 2177 * @brief Get field service_uuid from event BNEP_EVENT_SERVICE_REGISTERED 2178 * @param event packet 2179 * @return service_uuid 2180 * @note: btstack_type 2 2181 */ 2182 static inline uint16_t bnep_event_service_registered_get_service_uuid(const uint8_t * event){ 2183 return little_endian_read_16(event, 3); 2184 } 2185 2186 /** 2187 * @brief Get field status from event BNEP_EVENT_CHANNEL_OPENED 2188 * @param event packet 2189 * @return status 2190 * @note: btstack_type 1 2191 */ 2192 static inline uint8_t bnep_event_channel_opened_get_status(const uint8_t * event){ 2193 return event[2]; 2194 } 2195 /** 2196 * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_OPENED 2197 * @param event packet 2198 * @return bnep_cid 2199 * @note: btstack_type 2 2200 */ 2201 static inline uint16_t bnep_event_channel_opened_get_bnep_cid(const uint8_t * event){ 2202 return little_endian_read_16(event, 3); 2203 } 2204 /** 2205 * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_OPENED 2206 * @param event packet 2207 * @return source_uuid 2208 * @note: btstack_type 2 2209 */ 2210 static inline uint16_t bnep_event_channel_opened_get_source_uuid(const uint8_t * event){ 2211 return little_endian_read_16(event, 5); 2212 } 2213 /** 2214 * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_OPENED 2215 * @param event packet 2216 * @return destination_uuid 2217 * @note: btstack_type 2 2218 */ 2219 static inline uint16_t bnep_event_channel_opened_get_destination_uuid(const uint8_t * event){ 2220 return little_endian_read_16(event, 7); 2221 } 2222 /** 2223 * @brief Get field mtu from event BNEP_EVENT_CHANNEL_OPENED 2224 * @param event packet 2225 * @return mtu 2226 * @note: btstack_type 2 2227 */ 2228 static inline uint16_t bnep_event_channel_opened_get_mtu(const uint8_t * event){ 2229 return little_endian_read_16(event, 9); 2230 } 2231 /** 2232 * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_OPENED 2233 * @param event packet 2234 * @param Pointer to storage for remote_address 2235 * @note: btstack_type B 2236 */ 2237 static inline void bnep_event_channel_opened_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2238 reverse_bd_addr(&event[11], remote_address); 2239 } 2240 2241 /** 2242 * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_CLOSED 2243 * @param event packet 2244 * @return bnep_cid 2245 * @note: btstack_type 2 2246 */ 2247 static inline uint16_t bnep_event_channel_closed_get_bnep_cid(const uint8_t * event){ 2248 return little_endian_read_16(event, 2); 2249 } 2250 /** 2251 * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_CLOSED 2252 * @param event packet 2253 * @return source_uuid 2254 * @note: btstack_type 2 2255 */ 2256 static inline uint16_t bnep_event_channel_closed_get_source_uuid(const uint8_t * event){ 2257 return little_endian_read_16(event, 4); 2258 } 2259 /** 2260 * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_CLOSED 2261 * @param event packet 2262 * @return destination_uuid 2263 * @note: btstack_type 2 2264 */ 2265 static inline uint16_t bnep_event_channel_closed_get_destination_uuid(const uint8_t * event){ 2266 return little_endian_read_16(event, 6); 2267 } 2268 /** 2269 * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_CLOSED 2270 * @param event packet 2271 * @param Pointer to storage for remote_address 2272 * @note: btstack_type B 2273 */ 2274 static inline void bnep_event_channel_closed_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2275 reverse_bd_addr(&event[8], remote_address); 2276 } 2277 2278 /** 2279 * @brief Get field bnep_cid from event BNEP_EVENT_CHANNEL_TIMEOUT 2280 * @param event packet 2281 * @return bnep_cid 2282 * @note: btstack_type 2 2283 */ 2284 static inline uint16_t bnep_event_channel_timeout_get_bnep_cid(const uint8_t * event){ 2285 return little_endian_read_16(event, 2); 2286 } 2287 /** 2288 * @brief Get field source_uuid from event BNEP_EVENT_CHANNEL_TIMEOUT 2289 * @param event packet 2290 * @return source_uuid 2291 * @note: btstack_type 2 2292 */ 2293 static inline uint16_t bnep_event_channel_timeout_get_source_uuid(const uint8_t * event){ 2294 return little_endian_read_16(event, 4); 2295 } 2296 /** 2297 * @brief Get field destination_uuid from event BNEP_EVENT_CHANNEL_TIMEOUT 2298 * @param event packet 2299 * @return destination_uuid 2300 * @note: btstack_type 2 2301 */ 2302 static inline uint16_t bnep_event_channel_timeout_get_destination_uuid(const uint8_t * event){ 2303 return little_endian_read_16(event, 6); 2304 } 2305 /** 2306 * @brief Get field remote_address from event BNEP_EVENT_CHANNEL_TIMEOUT 2307 * @param event packet 2308 * @param Pointer to storage for remote_address 2309 * @note: btstack_type B 2310 */ 2311 static inline void bnep_event_channel_timeout_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2312 reverse_bd_addr(&event[8], remote_address); 2313 } 2314 /** 2315 * @brief Get field channel_state from event BNEP_EVENT_CHANNEL_TIMEOUT 2316 * @param event packet 2317 * @return channel_state 2318 * @note: btstack_type 1 2319 */ 2320 static inline uint8_t bnep_event_channel_timeout_get_channel_state(const uint8_t * event){ 2321 return event[14]; 2322 } 2323 2324 /** 2325 * @brief Get field bnep_cid from event BNEP_EVENT_CAN_SEND_NOW 2326 * @param event packet 2327 * @return bnep_cid 2328 * @note: btstack_type 2 2329 */ 2330 static inline uint16_t bnep_event_can_send_now_get_bnep_cid(const uint8_t * event){ 2331 return little_endian_read_16(event, 2); 2332 } 2333 /** 2334 * @brief Get field source_uuid from event BNEP_EVENT_CAN_SEND_NOW 2335 * @param event packet 2336 * @return source_uuid 2337 * @note: btstack_type 2 2338 */ 2339 static inline uint16_t bnep_event_can_send_now_get_source_uuid(const uint8_t * event){ 2340 return little_endian_read_16(event, 4); 2341 } 2342 /** 2343 * @brief Get field destination_uuid from event BNEP_EVENT_CAN_SEND_NOW 2344 * @param event packet 2345 * @return destination_uuid 2346 * @note: btstack_type 2 2347 */ 2348 static inline uint16_t bnep_event_can_send_now_get_destination_uuid(const uint8_t * event){ 2349 return little_endian_read_16(event, 6); 2350 } 2351 /** 2352 * @brief Get field remote_address from event BNEP_EVENT_CAN_SEND_NOW 2353 * @param event packet 2354 * @param Pointer to storage for remote_address 2355 * @note: btstack_type B 2356 */ 2357 static inline void bnep_event_can_send_now_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 2358 reverse_bd_addr(&event[8], remote_address); 2359 } 2360 2361 #ifdef ENABLE_BLE 2362 /** 2363 * @brief Get field handle from event SM_EVENT_JUST_WORKS_REQUEST 2364 * @param event packet 2365 * @return handle 2366 * @note: btstack_type H 2367 */ 2368 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 2369 return little_endian_read_16(event, 2); 2370 } 2371 /** 2372 * @brief Get field addr_type from event SM_EVENT_JUST_WORKS_REQUEST 2373 * @param event packet 2374 * @return addr_type 2375 * @note: btstack_type 1 2376 */ 2377 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 2378 return event[4]; 2379 } 2380 /** 2381 * @brief Get field address from event SM_EVENT_JUST_WORKS_REQUEST 2382 * @param event packet 2383 * @param Pointer to storage for address 2384 * @note: btstack_type B 2385 */ 2386 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 2387 reverse_bd_addr(&event[5], address); 2388 } 2389 #endif 2390 2391 #ifdef ENABLE_BLE 2392 /** 2393 * @brief Get field handle from event SM_EVENT_JUST_WORKS_CANCEL 2394 * @param event packet 2395 * @return handle 2396 * @note: btstack_type H 2397 */ 2398 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 2399 return little_endian_read_16(event, 2); 2400 } 2401 /** 2402 * @brief Get field addr_type from event SM_EVENT_JUST_WORKS_CANCEL 2403 * @param event packet 2404 * @return addr_type 2405 * @note: btstack_type 1 2406 */ 2407 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 2408 return event[4]; 2409 } 2410 /** 2411 * @brief Get field address from event SM_EVENT_JUST_WORKS_CANCEL 2412 * @param event packet 2413 * @param Pointer to storage for address 2414 * @note: btstack_type B 2415 */ 2416 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2417 reverse_bd_addr(&event[5], address); 2418 } 2419 #endif 2420 2421 #ifdef ENABLE_BLE 2422 /** 2423 * @brief Get field handle from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2424 * @param event packet 2425 * @return handle 2426 * @note: btstack_type H 2427 */ 2428 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 2429 return little_endian_read_16(event, 2); 2430 } 2431 /** 2432 * @brief Get field addr_type from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2433 * @param event packet 2434 * @return addr_type 2435 * @note: btstack_type 1 2436 */ 2437 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 2438 return event[4]; 2439 } 2440 /** 2441 * @brief Get field address from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2442 * @param event packet 2443 * @param Pointer to storage for address 2444 * @note: btstack_type B 2445 */ 2446 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 2447 reverse_bd_addr(&event[5], address); 2448 } 2449 /** 2450 * @brief Get field passkey from event SM_EVENT_PASSKEY_DISPLAY_NUMBER 2451 * @param event packet 2452 * @return passkey 2453 * @note: btstack_type 4 2454 */ 2455 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 2456 return little_endian_read_32(event, 11); 2457 } 2458 #endif 2459 2460 #ifdef ENABLE_BLE 2461 /** 2462 * @brief Get field handle from event SM_EVENT_PASSKEY_DISPLAY_CANCEL 2463 * @param event packet 2464 * @return handle 2465 * @note: btstack_type H 2466 */ 2467 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 2468 return little_endian_read_16(event, 2); 2469 } 2470 /** 2471 * @brief Get field addr_type from event SM_EVENT_PASSKEY_DISPLAY_CANCEL 2472 * @param event packet 2473 * @return addr_type 2474 * @note: btstack_type 1 2475 */ 2476 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 2477 return event[4]; 2478 } 2479 /** 2480 * @brief Get field address from event SM_EVENT_PASSKEY_DISPLAY_CANCEL 2481 * @param event packet 2482 * @param Pointer to storage for address 2483 * @note: btstack_type B 2484 */ 2485 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2486 reverse_bd_addr(&event[5], address); 2487 } 2488 #endif 2489 2490 #ifdef ENABLE_BLE 2491 /** 2492 * @brief Get field handle from event SM_EVENT_PASSKEY_INPUT_NUMBER 2493 * @param event packet 2494 * @return handle 2495 * @note: btstack_type H 2496 */ 2497 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 2498 return little_endian_read_16(event, 2); 2499 } 2500 /** 2501 * @brief Get field addr_type from event SM_EVENT_PASSKEY_INPUT_NUMBER 2502 * @param event packet 2503 * @return addr_type 2504 * @note: btstack_type 1 2505 */ 2506 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 2507 return event[4]; 2508 } 2509 /** 2510 * @brief Get field address from event SM_EVENT_PASSKEY_INPUT_NUMBER 2511 * @param event packet 2512 * @param Pointer to storage for address 2513 * @note: btstack_type B 2514 */ 2515 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 2516 reverse_bd_addr(&event[5], address); 2517 } 2518 #endif 2519 2520 #ifdef ENABLE_BLE 2521 /** 2522 * @brief Get field handle from event SM_EVENT_PASSKEY_INPUT_CANCEL 2523 * @param event packet 2524 * @return handle 2525 * @note: btstack_type H 2526 */ 2527 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 2528 return little_endian_read_16(event, 2); 2529 } 2530 /** 2531 * @brief Get field addr_type from event SM_EVENT_PASSKEY_INPUT_CANCEL 2532 * @param event packet 2533 * @return addr_type 2534 * @note: btstack_type 1 2535 */ 2536 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 2537 return event[4]; 2538 } 2539 /** 2540 * @brief Get field address from event SM_EVENT_PASSKEY_INPUT_CANCEL 2541 * @param event packet 2542 * @param Pointer to storage for address 2543 * @note: btstack_type B 2544 */ 2545 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2546 reverse_bd_addr(&event[5], address); 2547 } 2548 #endif 2549 2550 #ifdef ENABLE_BLE 2551 /** 2552 * @brief Get field handle from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2553 * @param event packet 2554 * @return handle 2555 * @note: btstack_type H 2556 */ 2557 static inline hci_con_handle_t sm_event_numeric_comparison_request_get_handle(const uint8_t * event){ 2558 return little_endian_read_16(event, 2); 2559 } 2560 /** 2561 * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2562 * @param event packet 2563 * @return addr_type 2564 * @note: btstack_type 1 2565 */ 2566 static inline uint8_t sm_event_numeric_comparison_request_get_addr_type(const uint8_t * event){ 2567 return event[4]; 2568 } 2569 /** 2570 * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2571 * @param event packet 2572 * @param Pointer to storage for address 2573 * @note: btstack_type B 2574 */ 2575 static inline void sm_event_numeric_comparison_request_get_address(const uint8_t * event, bd_addr_t address){ 2576 reverse_bd_addr(&event[5], address); 2577 } 2578 /** 2579 * @brief Get field passkey from event SM_EVENT_NUMERIC_COMPARISON_REQUEST 2580 * @param event packet 2581 * @return passkey 2582 * @note: btstack_type 4 2583 */ 2584 static inline uint32_t sm_event_numeric_comparison_request_get_passkey(const uint8_t * event){ 2585 return little_endian_read_32(event, 11); 2586 } 2587 #endif 2588 2589 #ifdef ENABLE_BLE 2590 /** 2591 * @brief Get field handle from event SM_EVENT_NUMERIC_COMPARISON_CANCEL 2592 * @param event packet 2593 * @return handle 2594 * @note: btstack_type H 2595 */ 2596 static inline hci_con_handle_t sm_event_numeric_comparison_cancel_get_handle(const uint8_t * event){ 2597 return little_endian_read_16(event, 2); 2598 } 2599 /** 2600 * @brief Get field addr_type from event SM_EVENT_NUMERIC_COMPARISON_CANCEL 2601 * @param event packet 2602 * @return addr_type 2603 * @note: btstack_type 1 2604 */ 2605 static inline uint8_t sm_event_numeric_comparison_cancel_get_addr_type(const uint8_t * event){ 2606 return event[4]; 2607 } 2608 /** 2609 * @brief Get field address from event SM_EVENT_NUMERIC_COMPARISON_CANCEL 2610 * @param event packet 2611 * @param Pointer to storage for address 2612 * @note: btstack_type B 2613 */ 2614 static inline void sm_event_numeric_comparison_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2615 reverse_bd_addr(&event[5], address); 2616 } 2617 #endif 2618 2619 #ifdef ENABLE_BLE 2620 /** 2621 * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_STARTED 2622 * @param event packet 2623 * @return handle 2624 * @note: btstack_type H 2625 */ 2626 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 2627 return little_endian_read_16(event, 2); 2628 } 2629 /** 2630 * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_STARTED 2631 * @param event packet 2632 * @return addr_type 2633 * @note: btstack_type 1 2634 */ 2635 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 2636 return event[4]; 2637 } 2638 /** 2639 * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_STARTED 2640 * @param event packet 2641 * @param Pointer to storage for address 2642 * @note: btstack_type B 2643 */ 2644 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 2645 reverse_bd_addr(&event[5], address); 2646 } 2647 #endif 2648 2649 #ifdef ENABLE_BLE 2650 /** 2651 * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_FAILED 2652 * @param event packet 2653 * @return handle 2654 * @note: btstack_type H 2655 */ 2656 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 2657 return little_endian_read_16(event, 2); 2658 } 2659 /** 2660 * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_FAILED 2661 * @param event packet 2662 * @return addr_type 2663 * @note: btstack_type 1 2664 */ 2665 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 2666 return event[4]; 2667 } 2668 /** 2669 * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_FAILED 2670 * @param event packet 2671 * @param Pointer to storage for address 2672 * @note: btstack_type B 2673 */ 2674 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 2675 reverse_bd_addr(&event[5], address); 2676 } 2677 #endif 2678 2679 #ifdef ENABLE_BLE 2680 /** 2681 * @brief Get field handle from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2682 * @param event packet 2683 * @return handle 2684 * @note: btstack_type H 2685 */ 2686 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 2687 return little_endian_read_16(event, 2); 2688 } 2689 /** 2690 * @brief Get field addr_type from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2691 * @param event packet 2692 * @return addr_type 2693 * @note: btstack_type 1 2694 */ 2695 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 2696 return event[4]; 2697 } 2698 /** 2699 * @brief Get field address from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2700 * @param event packet 2701 * @param Pointer to storage for address 2702 * @note: btstack_type B 2703 */ 2704 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 2705 reverse_bd_addr(&event[5], address); 2706 } 2707 /** 2708 * @brief Get field identity_addr_type from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2709 * @param event packet 2710 * @return identity_addr_type 2711 * @note: btstack_type 1 2712 */ 2713 static inline uint8_t sm_event_identity_resolving_succeeded_get_identity_addr_type(const uint8_t * event){ 2714 return event[11]; 2715 } 2716 /** 2717 * @brief Get field identity_address from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2718 * @param event packet 2719 * @param Pointer to storage for identity_address 2720 * @note: btstack_type B 2721 */ 2722 static inline void sm_event_identity_resolving_succeeded_get_identity_address(const uint8_t * event, bd_addr_t identity_address){ 2723 reverse_bd_addr(&event[12], identity_address); 2724 } 2725 /** 2726 * @brief Get field index from event SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 2727 * @param event packet 2728 * @return index 2729 * @note: btstack_type 2 2730 */ 2731 static inline uint16_t sm_event_identity_resolving_succeeded_get_index(const uint8_t * event){ 2732 return little_endian_read_16(event, 18); 2733 } 2734 #endif 2735 2736 #ifdef ENABLE_BLE 2737 /** 2738 * @brief Get field handle from event SM_EVENT_AUTHORIZATION_REQUEST 2739 * @param event packet 2740 * @return handle 2741 * @note: btstack_type H 2742 */ 2743 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 2744 return little_endian_read_16(event, 2); 2745 } 2746 /** 2747 * @brief Get field addr_type from event SM_EVENT_AUTHORIZATION_REQUEST 2748 * @param event packet 2749 * @return addr_type 2750 * @note: btstack_type 1 2751 */ 2752 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 2753 return event[4]; 2754 } 2755 /** 2756 * @brief Get field address from event SM_EVENT_AUTHORIZATION_REQUEST 2757 * @param event packet 2758 * @param Pointer to storage for address 2759 * @note: btstack_type B 2760 */ 2761 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 2762 reverse_bd_addr(&event[5], address); 2763 } 2764 #endif 2765 2766 #ifdef ENABLE_BLE 2767 /** 2768 * @brief Get field handle from event SM_EVENT_AUTHORIZATION_RESULT 2769 * @param event packet 2770 * @return handle 2771 * @note: btstack_type H 2772 */ 2773 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 2774 return little_endian_read_16(event, 2); 2775 } 2776 /** 2777 * @brief Get field addr_type from event SM_EVENT_AUTHORIZATION_RESULT 2778 * @param event packet 2779 * @return addr_type 2780 * @note: btstack_type 1 2781 */ 2782 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 2783 return event[4]; 2784 } 2785 /** 2786 * @brief Get field address from event SM_EVENT_AUTHORIZATION_RESULT 2787 * @param event packet 2788 * @param Pointer to storage for address 2789 * @note: btstack_type B 2790 */ 2791 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 2792 reverse_bd_addr(&event[5], address); 2793 } 2794 /** 2795 * @brief Get field authorization_result from event SM_EVENT_AUTHORIZATION_RESULT 2796 * @param event packet 2797 * @return authorization_result 2798 * @note: btstack_type 1 2799 */ 2800 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 2801 return event[11]; 2802 } 2803 #endif 2804 2805 #ifdef ENABLE_BLE 2806 /** 2807 * @brief Get field handle from event SM_EVENT_KEYPRESS_NOTIFICATION 2808 * @param event packet 2809 * @return handle 2810 * @note: btstack_type H 2811 */ 2812 static inline hci_con_handle_t sm_event_keypress_notification_get_handle(const uint8_t * event){ 2813 return little_endian_read_16(event, 2); 2814 } 2815 /** 2816 * @brief Get field action from event SM_EVENT_KEYPRESS_NOTIFICATION 2817 * @param event packet 2818 * @return action 2819 * @note: btstack_type 1 2820 */ 2821 static inline uint8_t sm_event_keypress_notification_get_action(const uint8_t * event){ 2822 return event[4]; 2823 } 2824 #endif 2825 2826 #ifdef ENABLE_BLE 2827 /** 2828 * @brief Get field handle from event SM_EVENT_IDENTITY_CREATED 2829 * @param event packet 2830 * @return handle 2831 * @note: btstack_type H 2832 */ 2833 static inline hci_con_handle_t sm_event_identity_created_get_handle(const uint8_t * event){ 2834 return little_endian_read_16(event, 2); 2835 } 2836 /** 2837 * @brief Get field addr_type from event SM_EVENT_IDENTITY_CREATED 2838 * @param event packet 2839 * @return addr_type 2840 * @note: btstack_type 1 2841 */ 2842 static inline uint8_t sm_event_identity_created_get_addr_type(const uint8_t * event){ 2843 return event[4]; 2844 } 2845 /** 2846 * @brief Get field address from event SM_EVENT_IDENTITY_CREATED 2847 * @param event packet 2848 * @param Pointer to storage for address 2849 * @note: btstack_type B 2850 */ 2851 static inline void sm_event_identity_created_get_address(const uint8_t * event, bd_addr_t address){ 2852 reverse_bd_addr(&event[5], address); 2853 } 2854 /** 2855 * @brief Get field identity_addr_type from event SM_EVENT_IDENTITY_CREATED 2856 * @param event packet 2857 * @return identity_addr_type 2858 * @note: btstack_type 1 2859 */ 2860 static inline uint8_t sm_event_identity_created_get_identity_addr_type(const uint8_t * event){ 2861 return event[11]; 2862 } 2863 /** 2864 * @brief Get field identity_address from event SM_EVENT_IDENTITY_CREATED 2865 * @param event packet 2866 * @param Pointer to storage for identity_address 2867 * @note: btstack_type B 2868 */ 2869 static inline void sm_event_identity_created_get_identity_address(const uint8_t * event, bd_addr_t identity_address){ 2870 reverse_bd_addr(&event[12], identity_address); 2871 } 2872 /** 2873 * @brief Get field index from event SM_EVENT_IDENTITY_CREATED 2874 * @param event packet 2875 * @return index 2876 * @note: btstack_type 1 2877 */ 2878 static inline uint8_t sm_event_identity_created_get_index(const uint8_t * event){ 2879 return event[18]; 2880 } 2881 #endif 2882 2883 #ifdef ENABLE_BLE 2884 /** 2885 * @brief Get field handle from event SM_EVENT_PAIRING_COMPLETE 2886 * @param event packet 2887 * @return handle 2888 * @note: btstack_type H 2889 */ 2890 static inline hci_con_handle_t sm_event_pairing_complete_get_handle(const uint8_t * event){ 2891 return little_endian_read_16(event, 2); 2892 } 2893 /** 2894 * @brief Get field addr_type from event SM_EVENT_PAIRING_COMPLETE 2895 * @param event packet 2896 * @return addr_type 2897 * @note: btstack_type 1 2898 */ 2899 static inline uint8_t sm_event_pairing_complete_get_addr_type(const uint8_t * event){ 2900 return event[4]; 2901 } 2902 /** 2903 * @brief Get field address from event SM_EVENT_PAIRING_COMPLETE 2904 * @param event packet 2905 * @param Pointer to storage for address 2906 * @note: btstack_type B 2907 */ 2908 static inline void sm_event_pairing_complete_get_address(const uint8_t * event, bd_addr_t address){ 2909 reverse_bd_addr(&event[5], address); 2910 } 2911 /** 2912 * @brief Get field status from event SM_EVENT_PAIRING_COMPLETE 2913 * @param event packet 2914 * @return status 2915 * @note: btstack_type 1 2916 */ 2917 static inline uint8_t sm_event_pairing_complete_get_status(const uint8_t * event){ 2918 return event[11]; 2919 } 2920 /** 2921 * @brief Get field reason from event SM_EVENT_PAIRING_COMPLETE 2922 * @param event packet 2923 * @return reason 2924 * @note: btstack_type 1 2925 */ 2926 static inline uint8_t sm_event_pairing_complete_get_reason(const uint8_t * event){ 2927 return event[12]; 2928 } 2929 #endif 2930 2931 /** 2932 * @brief Get field handle from event GAP_EVENT_SECURITY_LEVEL 2933 * @param event packet 2934 * @return handle 2935 * @note: btstack_type H 2936 */ 2937 static inline hci_con_handle_t gap_event_security_level_get_handle(const uint8_t * event){ 2938 return little_endian_read_16(event, 2); 2939 } 2940 /** 2941 * @brief Get field security_level from event GAP_EVENT_SECURITY_LEVEL 2942 * @param event packet 2943 * @return security_level 2944 * @note: btstack_type 1 2945 */ 2946 static inline uint8_t gap_event_security_level_get_security_level(const uint8_t * event){ 2947 return event[4]; 2948 } 2949 2950 /** 2951 * @brief Get field status from event GAP_EVENT_DEDICATED_BONDING_COMPLETED 2952 * @param event packet 2953 * @return status 2954 * @note: btstack_type 1 2955 */ 2956 static inline uint8_t gap_event_dedicated_bonding_completed_get_status(const uint8_t * event){ 2957 return event[2]; 2958 } 2959 /** 2960 * @brief Get field address from event GAP_EVENT_DEDICATED_BONDING_COMPLETED 2961 * @param event packet 2962 * @param Pointer to storage for address 2963 * @note: btstack_type B 2964 */ 2965 static inline void gap_event_dedicated_bonding_completed_get_address(const uint8_t * event, bd_addr_t address){ 2966 reverse_bd_addr(&event[3], address); 2967 } 2968 2969 /** 2970 * @brief Get field advertising_event_type from event GAP_EVENT_ADVERTISING_REPORT 2971 * @param event packet 2972 * @return advertising_event_type 2973 * @note: btstack_type 1 2974 */ 2975 static inline uint8_t gap_event_advertising_report_get_advertising_event_type(const uint8_t * event){ 2976 return event[2]; 2977 } 2978 /** 2979 * @brief Get field address_type from event GAP_EVENT_ADVERTISING_REPORT 2980 * @param event packet 2981 * @return address_type 2982 * @note: btstack_type 1 2983 */ 2984 static inline uint8_t gap_event_advertising_report_get_address_type(const uint8_t * event){ 2985 return event[3]; 2986 } 2987 /** 2988 * @brief Get field address from event GAP_EVENT_ADVERTISING_REPORT 2989 * @param event packet 2990 * @param Pointer to storage for address 2991 * @note: btstack_type B 2992 */ 2993 static inline void gap_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){ 2994 reverse_bd_addr(&event[4], address); 2995 } 2996 /** 2997 * @brief Get field rssi from event GAP_EVENT_ADVERTISING_REPORT 2998 * @param event packet 2999 * @return rssi 3000 * @note: btstack_type 1 3001 */ 3002 static inline uint8_t gap_event_advertising_report_get_rssi(const uint8_t * event){ 3003 return event[10]; 3004 } 3005 /** 3006 * @brief Get field data_length from event GAP_EVENT_ADVERTISING_REPORT 3007 * @param event packet 3008 * @return data_length 3009 * @note: btstack_type J 3010 */ 3011 static inline int gap_event_advertising_report_get_data_length(const uint8_t * event){ 3012 return event[11]; 3013 } 3014 /** 3015 * @brief Get field data from event GAP_EVENT_ADVERTISING_REPORT 3016 * @param event packet 3017 * @return data 3018 * @note: btstack_type V 3019 */ 3020 static inline const uint8_t * gap_event_advertising_report_get_data(const uint8_t * event){ 3021 return &event[12]; 3022 } 3023 3024 /** 3025 * @brief Get field bd_addr from event GAP_EVENT_INQUIRY_RESULT 3026 * @param event packet 3027 * @param Pointer to storage for bd_addr 3028 * @note: btstack_type B 3029 */ 3030 static inline void gap_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 3031 reverse_bd_addr(&event[2], bd_addr); 3032 } 3033 /** 3034 * @brief Get field page_scan_repetition_mode from event GAP_EVENT_INQUIRY_RESULT 3035 * @param event packet 3036 * @return page_scan_repetition_mode 3037 * @note: btstack_type 1 3038 */ 3039 static inline uint8_t gap_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 3040 return event[8]; 3041 } 3042 /** 3043 * @brief Get field class_of_device from event GAP_EVENT_INQUIRY_RESULT 3044 * @param event packet 3045 * @return class_of_device 3046 * @note: btstack_type 3 3047 */ 3048 static inline uint32_t gap_event_inquiry_result_get_class_of_device(const uint8_t * event){ 3049 return little_endian_read_24(event, 9); 3050 } 3051 /** 3052 * @brief Get field clock_offset from event GAP_EVENT_INQUIRY_RESULT 3053 * @param event packet 3054 * @return clock_offset 3055 * @note: btstack_type 2 3056 */ 3057 static inline uint16_t gap_event_inquiry_result_get_clock_offset(const uint8_t * event){ 3058 return little_endian_read_16(event, 12); 3059 } 3060 /** 3061 * @brief Get field rssi_available from event GAP_EVENT_INQUIRY_RESULT 3062 * @param event packet 3063 * @return rssi_available 3064 * @note: btstack_type 1 3065 */ 3066 static inline uint8_t gap_event_inquiry_result_get_rssi_available(const uint8_t * event){ 3067 return event[14]; 3068 } 3069 /** 3070 * @brief Get field rssi from event GAP_EVENT_INQUIRY_RESULT 3071 * @param event packet 3072 * @return rssi 3073 * @note: btstack_type 1 3074 */ 3075 static inline uint8_t gap_event_inquiry_result_get_rssi(const uint8_t * event){ 3076 return event[15]; 3077 } 3078 /** 3079 * @brief Get field name_available from event GAP_EVENT_INQUIRY_RESULT 3080 * @param event packet 3081 * @return name_available 3082 * @note: btstack_type 1 3083 */ 3084 static inline uint8_t gap_event_inquiry_result_get_name_available(const uint8_t * event){ 3085 return event[16]; 3086 } 3087 /** 3088 * @brief Get field name_len from event GAP_EVENT_INQUIRY_RESULT 3089 * @param event packet 3090 * @return name_len 3091 * @note: btstack_type J 3092 */ 3093 static inline int gap_event_inquiry_result_get_name_len(const uint8_t * event){ 3094 return event[17]; 3095 } 3096 /** 3097 * @brief Get field name from event GAP_EVENT_INQUIRY_RESULT 3098 * @param event packet 3099 * @return name 3100 * @note: btstack_type V 3101 */ 3102 static inline const uint8_t * gap_event_inquiry_result_get_name(const uint8_t * event){ 3103 return &event[18]; 3104 } 3105 3106 /** 3107 * @brief Get field status from event GAP_EVENT_INQUIRY_COMPLETE 3108 * @param event packet 3109 * @return status 3110 * @note: btstack_type 1 3111 */ 3112 static inline uint8_t gap_event_inquiry_complete_get_status(const uint8_t * event){ 3113 return event[2]; 3114 } 3115 3116 /** 3117 * @brief Get field status from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3118 * @param event packet 3119 * @return status 3120 * @note: btstack_type 1 3121 */ 3122 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){ 3123 return event[3]; 3124 } 3125 /** 3126 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3127 * @param event packet 3128 * @return connection_handle 3129 * @note: btstack_type H 3130 */ 3131 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){ 3132 return little_endian_read_16(event, 4); 3133 } 3134 /** 3135 * @brief Get field role from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3136 * @param event packet 3137 * @return role 3138 * @note: btstack_type 1 3139 */ 3140 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){ 3141 return event[6]; 3142 } 3143 /** 3144 * @brief Get field peer_address_type from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3145 * @param event packet 3146 * @return peer_address_type 3147 * @note: btstack_type 1 3148 */ 3149 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){ 3150 return event[7]; 3151 } 3152 /** 3153 * @brief Get field peer_address from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3154 * @param event packet 3155 * @param Pointer to storage for peer_address 3156 * @note: btstack_type B 3157 */ 3158 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){ 3159 reverse_bd_addr(&event[8], peer_address); 3160 } 3161 /** 3162 * @brief Get field conn_interval from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3163 * @param event packet 3164 * @return conn_interval 3165 * @note: btstack_type 2 3166 */ 3167 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){ 3168 return little_endian_read_16(event, 14); 3169 } 3170 /** 3171 * @brief Get field conn_latency from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3172 * @param event packet 3173 * @return conn_latency 3174 * @note: btstack_type 2 3175 */ 3176 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){ 3177 return little_endian_read_16(event, 16); 3178 } 3179 /** 3180 * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3181 * @param event packet 3182 * @return supervision_timeout 3183 * @note: btstack_type 2 3184 */ 3185 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){ 3186 return little_endian_read_16(event, 18); 3187 } 3188 /** 3189 * @brief Get field master_clock_accuracy from event HCI_SUBEVENT_LE_CONNECTION_COMPLETE 3190 * @param event packet 3191 * @return master_clock_accuracy 3192 * @note: btstack_type 1 3193 */ 3194 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 3195 return event[20]; 3196 } 3197 3198 /** 3199 * @brief Get field status from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3200 * @param event packet 3201 * @return status 3202 * @note: btstack_type 1 3203 */ 3204 static inline uint8_t hci_subevent_le_connection_update_complete_get_status(const uint8_t * event){ 3205 return event[3]; 3206 } 3207 /** 3208 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3209 * @param event packet 3210 * @return connection_handle 3211 * @note: btstack_type H 3212 */ 3213 static inline hci_con_handle_t hci_subevent_le_connection_update_complete_get_connection_handle(const uint8_t * event){ 3214 return little_endian_read_16(event, 4); 3215 } 3216 /** 3217 * @brief Get field conn_interval from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3218 * @param event packet 3219 * @return conn_interval 3220 * @note: btstack_type 2 3221 */ 3222 static inline uint16_t hci_subevent_le_connection_update_complete_get_conn_interval(const uint8_t * event){ 3223 return little_endian_read_16(event, 6); 3224 } 3225 /** 3226 * @brief Get field conn_latency from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3227 * @param event packet 3228 * @return conn_latency 3229 * @note: btstack_type 2 3230 */ 3231 static inline uint16_t hci_subevent_le_connection_update_complete_get_conn_latency(const uint8_t * event){ 3232 return little_endian_read_16(event, 8); 3233 } 3234 /** 3235 * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 3236 * @param event packet 3237 * @return supervision_timeout 3238 * @note: btstack_type 2 3239 */ 3240 static inline uint16_t hci_subevent_le_connection_update_complete_get_supervision_timeout(const uint8_t * event){ 3241 return little_endian_read_16(event, 10); 3242 } 3243 3244 /** 3245 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 3246 * @param event packet 3247 * @return connection_handle 3248 * @note: btstack_type H 3249 */ 3250 static inline hci_con_handle_t hci_subevent_le_read_remote_used_features_complete_get_connection_handle(const uint8_t * event){ 3251 return little_endian_read_16(event, 3); 3252 } 3253 /** 3254 * @brief Get field random_number from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 3255 * @param event packet 3256 * @return random_number 3257 * @note: btstack_type D 3258 */ 3259 static inline const uint8_t * hci_subevent_le_read_remote_used_features_complete_get_random_number(const uint8_t * event){ 3260 return (const uint8_t *) &event[5]; 3261 } 3262 /** 3263 * @brief Get field encryption_diversifier from event HCI_SUBEVENT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 3264 * @param event packet 3265 * @return encryption_diversifier 3266 * @note: btstack_type 2 3267 */ 3268 static inline uint16_t hci_subevent_le_read_remote_used_features_complete_get_encryption_diversifier(const uint8_t * event){ 3269 return little_endian_read_16(event, 13); 3270 } 3271 3272 /** 3273 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 3274 * @param event packet 3275 * @return connection_handle 3276 * @note: btstack_type H 3277 */ 3278 static inline hci_con_handle_t hci_subevent_le_long_term_key_request_get_connection_handle(const uint8_t * event){ 3279 return little_endian_read_16(event, 3); 3280 } 3281 /** 3282 * @brief Get field random_number from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 3283 * @param event packet 3284 * @return random_number 3285 * @note: btstack_type D 3286 */ 3287 static inline const uint8_t * hci_subevent_le_long_term_key_request_get_random_number(const uint8_t * event){ 3288 return (const uint8_t *) &event[5]; 3289 } 3290 /** 3291 * @brief Get field encryption_diversifier from event HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 3292 * @param event packet 3293 * @return encryption_diversifier 3294 * @note: btstack_type 2 3295 */ 3296 static inline uint16_t hci_subevent_le_long_term_key_request_get_encryption_diversifier(const uint8_t * event){ 3297 return little_endian_read_16(event, 13); 3298 } 3299 3300 /** 3301 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3302 * @param event packet 3303 * @return connection_handle 3304 * @note: btstack_type H 3305 */ 3306 static inline hci_con_handle_t hci_subevent_le_remote_connection_parameter_request_get_connection_handle(const uint8_t * event){ 3307 return little_endian_read_16(event, 3); 3308 } 3309 /** 3310 * @brief Get field interval_min from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3311 * @param event packet 3312 * @return interval_min 3313 * @note: btstack_type 2 3314 */ 3315 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_interval_min(const uint8_t * event){ 3316 return little_endian_read_16(event, 5); 3317 } 3318 /** 3319 * @brief Get field interval_max from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3320 * @param event packet 3321 * @return interval_max 3322 * @note: btstack_type 2 3323 */ 3324 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_interval_max(const uint8_t * event){ 3325 return little_endian_read_16(event, 7); 3326 } 3327 /** 3328 * @brief Get field latency from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3329 * @param event packet 3330 * @return latency 3331 * @note: btstack_type 2 3332 */ 3333 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_latency(const uint8_t * event){ 3334 return little_endian_read_16(event, 9); 3335 } 3336 /** 3337 * @brief Get field timeout from event HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 3338 * @param event packet 3339 * @return timeout 3340 * @note: btstack_type 2 3341 */ 3342 static inline uint16_t hci_subevent_le_remote_connection_parameter_request_get_timeout(const uint8_t * event){ 3343 return little_endian_read_16(event, 11); 3344 } 3345 3346 /** 3347 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3348 * @param event packet 3349 * @return connection_handle 3350 * @note: btstack_type H 3351 */ 3352 static inline hci_con_handle_t hci_subevent_le_data_length_change_get_connection_handle(const uint8_t * event){ 3353 return little_endian_read_16(event, 3); 3354 } 3355 /** 3356 * @brief Get field max_tx_octets from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3357 * @param event packet 3358 * @return max_tx_octets 3359 * @note: btstack_type 2 3360 */ 3361 static inline uint16_t hci_subevent_le_data_length_change_get_max_tx_octets(const uint8_t * event){ 3362 return little_endian_read_16(event, 5); 3363 } 3364 /** 3365 * @brief Get field max_tx_time from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3366 * @param event packet 3367 * @return max_tx_time 3368 * @note: btstack_type 2 3369 */ 3370 static inline uint16_t hci_subevent_le_data_length_change_get_max_tx_time(const uint8_t * event){ 3371 return little_endian_read_16(event, 7); 3372 } 3373 /** 3374 * @brief Get field max_rx_octets from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3375 * @param event packet 3376 * @return max_rx_octets 3377 * @note: btstack_type 2 3378 */ 3379 static inline uint16_t hci_subevent_le_data_length_change_get_max_rx_octets(const uint8_t * event){ 3380 return little_endian_read_16(event, 9); 3381 } 3382 /** 3383 * @brief Get field max_rx_time from event HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 3384 * @param event packet 3385 * @return max_rx_time 3386 * @note: btstack_type 2 3387 */ 3388 static inline uint16_t hci_subevent_le_data_length_change_get_max_rx_time(const uint8_t * event){ 3389 return little_endian_read_16(event, 11); 3390 } 3391 3392 /** 3393 * @brief Get field status from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 3394 * @param event packet 3395 * @return status 3396 * @note: btstack_type 1 3397 */ 3398 static inline uint8_t hci_subevent_le_read_local_p256_public_key_complete_get_status(const uint8_t * event){ 3399 return event[3]; 3400 } 3401 /** 3402 * @brief Get field dhkey_x from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 3403 * @param event packet 3404 * @param Pointer to storage for dhkey_x 3405 * @note: btstack_type Q 3406 */ 3407 static inline void hci_subevent_le_read_local_p256_public_key_complete_get_dhkey_x(const uint8_t * event, uint8_t * dhkey_x){ 3408 reverse_bytes(&event[4], dhkey_x, 32); 3409 } 3410 /** 3411 * @brief Get field dhkey_y from event HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 3412 * @param event packet 3413 * @param Pointer to storage for dhkey_y 3414 * @note: btstack_type Q 3415 */ 3416 static inline void hci_subevent_le_read_local_p256_public_key_complete_get_dhkey_y(const uint8_t * event, uint8_t * dhkey_y){ 3417 reverse_bytes(&event[36], dhkey_y, 32); 3418 } 3419 3420 /** 3421 * @brief Get field status from event HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 3422 * @param event packet 3423 * @return status 3424 * @note: btstack_type 1 3425 */ 3426 static inline uint8_t hci_subevent_le_generate_dhkey_complete_get_status(const uint8_t * event){ 3427 return event[3]; 3428 } 3429 /** 3430 * @brief Get field dhkey from event HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 3431 * @param event packet 3432 * @param Pointer to storage for dhkey 3433 * @note: btstack_type Q 3434 */ 3435 static inline void hci_subevent_le_generate_dhkey_complete_get_dhkey(const uint8_t * event, uint8_t * dhkey){ 3436 reverse_bytes(&event[4], dhkey, 32); 3437 } 3438 3439 /** 3440 * @brief Get field status from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3441 * @param event packet 3442 * @return status 3443 * @note: btstack_type 1 3444 */ 3445 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_status(const uint8_t * event){ 3446 return event[3]; 3447 } 3448 /** 3449 * @brief Get field connection_handle from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3450 * @param event packet 3451 * @return connection_handle 3452 * @note: btstack_type H 3453 */ 3454 static inline hci_con_handle_t hci_subevent_le_enhanced_connection_complete_get_connection_handle(const uint8_t * event){ 3455 return little_endian_read_16(event, 4); 3456 } 3457 /** 3458 * @brief Get field role from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3459 * @param event packet 3460 * @return role 3461 * @note: btstack_type 1 3462 */ 3463 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_role(const uint8_t * event){ 3464 return event[6]; 3465 } 3466 /** 3467 * @brief Get field peer_address_type from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3468 * @param event packet 3469 * @return peer_address_type 3470 * @note: btstack_type 1 3471 */ 3472 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_peer_address_type(const uint8_t * event){ 3473 return event[7]; 3474 } 3475 /** 3476 * @brief Get field perr_addresss from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3477 * @param event packet 3478 * @param Pointer to storage for perr_addresss 3479 * @note: btstack_type B 3480 */ 3481 static inline void hci_subevent_le_enhanced_connection_complete_get_perr_addresss(const uint8_t * event, bd_addr_t perr_addresss){ 3482 reverse_bd_addr(&event[8], perr_addresss); 3483 } 3484 /** 3485 * @brief Get field local_resolvable_private_addres from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3486 * @param event packet 3487 * @param Pointer to storage for local_resolvable_private_addres 3488 * @note: btstack_type B 3489 */ 3490 static inline void hci_subevent_le_enhanced_connection_complete_get_local_resolvable_private_addres(const uint8_t * event, bd_addr_t local_resolvable_private_addres){ 3491 reverse_bd_addr(&event[14], local_resolvable_private_addres); 3492 } 3493 /** 3494 * @brief Get field peer_resolvable_private_addres from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3495 * @param event packet 3496 * @param Pointer to storage for peer_resolvable_private_addres 3497 * @note: btstack_type B 3498 */ 3499 static inline void hci_subevent_le_enhanced_connection_complete_get_peer_resolvable_private_addres(const uint8_t * event, bd_addr_t peer_resolvable_private_addres){ 3500 reverse_bd_addr(&event[20], peer_resolvable_private_addres); 3501 } 3502 /** 3503 * @brief Get field conn_interval from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3504 * @param event packet 3505 * @return conn_interval 3506 * @note: btstack_type 2 3507 */ 3508 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_conn_interval(const uint8_t * event){ 3509 return little_endian_read_16(event, 26); 3510 } 3511 /** 3512 * @brief Get field conn_latency from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3513 * @param event packet 3514 * @return conn_latency 3515 * @note: btstack_type 2 3516 */ 3517 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_conn_latency(const uint8_t * event){ 3518 return little_endian_read_16(event, 28); 3519 } 3520 /** 3521 * @brief Get field supervision_timeout from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3522 * @param event packet 3523 * @return supervision_timeout 3524 * @note: btstack_type 2 3525 */ 3526 static inline uint16_t hci_subevent_le_enhanced_connection_complete_get_supervision_timeout(const uint8_t * event){ 3527 return little_endian_read_16(event, 30); 3528 } 3529 /** 3530 * @brief Get field master_clock_accuracy from event HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 3531 * @param event packet 3532 * @return master_clock_accuracy 3533 * @note: btstack_type 1 3534 */ 3535 static inline uint8_t hci_subevent_le_enhanced_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 3536 return event[32]; 3537 } 3538 3539 /** 3540 * @brief Get field status from event HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 3541 * @param event packet 3542 * @return status 3543 * @note: btstack_type 1 3544 */ 3545 static inline uint8_t hsp_subevent_rfcomm_connection_complete_get_status(const uint8_t * event){ 3546 return event[3]; 3547 } 3548 3549 /** 3550 * @brief Get field status from event HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 3551 * @param event packet 3552 * @return status 3553 * @note: btstack_type 1 3554 */ 3555 static inline uint8_t hsp_subevent_rfcomm_disconnection_complete_get_status(const uint8_t * event){ 3556 return event[3]; 3557 } 3558 3559 /** 3560 * @brief Get field status from event HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 3561 * @param event packet 3562 * @return status 3563 * @note: btstack_type 1 3564 */ 3565 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){ 3566 return event[3]; 3567 } 3568 /** 3569 * @brief Get field handle from event HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 3570 * @param event packet 3571 * @return handle 3572 * @note: btstack_type H 3573 */ 3574 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){ 3575 return little_endian_read_16(event, 4); 3576 } 3577 3578 /** 3579 * @brief Get field status from event HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 3580 * @param event packet 3581 * @return status 3582 * @note: btstack_type 1 3583 */ 3584 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){ 3585 return event[3]; 3586 } 3587 3588 3589 /** 3590 * @brief Get field gain from event HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 3591 * @param event packet 3592 * @return gain 3593 * @note: btstack_type 1 3594 */ 3595 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){ 3596 return event[3]; 3597 } 3598 3599 /** 3600 * @brief Get field gain from event HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 3601 * @param event packet 3602 * @return gain 3603 * @note: btstack_type 1 3604 */ 3605 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){ 3606 return event[3]; 3607 } 3608 3609 /** 3610 * @brief Get field value_length from event HSP_SUBEVENT_HS_COMMAND 3611 * @param event packet 3612 * @return value_length 3613 * @note: btstack_type J 3614 */ 3615 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){ 3616 return event[3]; 3617 } 3618 /** 3619 * @brief Get field value from event HSP_SUBEVENT_HS_COMMAND 3620 * @param event packet 3621 * @return value 3622 * @note: btstack_type V 3623 */ 3624 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){ 3625 return &event[4]; 3626 } 3627 3628 /** 3629 * @brief Get field value_length from event HSP_SUBEVENT_AG_INDICATION 3630 * @param event packet 3631 * @return value_length 3632 * @note: btstack_type J 3633 */ 3634 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){ 3635 return event[3]; 3636 } 3637 /** 3638 * @brief Get field value from event HSP_SUBEVENT_AG_INDICATION 3639 * @param event packet 3640 * @return value 3641 * @note: btstack_type V 3642 */ 3643 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){ 3644 return &event[4]; 3645 } 3646 3647 /** 3648 * @brief Get field status from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 3649 * @param event packet 3650 * @return status 3651 * @note: btstack_type 1 3652 */ 3653 static inline uint8_t hfp_subevent_service_level_connection_established_get_status(const uint8_t * event){ 3654 return event[3]; 3655 } 3656 /** 3657 * @brief Get field con_handle from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 3658 * @param event packet 3659 * @return con_handle 3660 * @note: btstack_type H 3661 */ 3662 static inline hci_con_handle_t hfp_subevent_service_level_connection_established_get_con_handle(const uint8_t * event){ 3663 return little_endian_read_16(event, 4); 3664 } 3665 /** 3666 * @brief Get field bd_addr from event HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 3667 * @param event packet 3668 * @param Pointer to storage for bd_addr 3669 * @note: btstack_type B 3670 */ 3671 static inline void hfp_subevent_service_level_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 3672 reverse_bd_addr(&event[6], bd_addr); 3673 } 3674 3675 3676 /** 3677 * @brief Get field status from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3678 * @param event packet 3679 * @return status 3680 * @note: btstack_type 1 3681 */ 3682 static inline uint8_t hfp_subevent_audio_connection_established_get_status(const uint8_t * event){ 3683 return event[3]; 3684 } 3685 /** 3686 * @brief Get field handle from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3687 * @param event packet 3688 * @return handle 3689 * @note: btstack_type H 3690 */ 3691 static inline hci_con_handle_t hfp_subevent_audio_connection_established_get_handle(const uint8_t * event){ 3692 return little_endian_read_16(event, 4); 3693 } 3694 /** 3695 * @brief Get field bd_addr from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3696 * @param event packet 3697 * @param Pointer to storage for bd_addr 3698 * @note: btstack_type B 3699 */ 3700 static inline void hfp_subevent_audio_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 3701 reverse_bd_addr(&event[6], bd_addr); 3702 } 3703 /** 3704 * @brief Get field negotiated_codec from event HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 3705 * @param event packet 3706 * @return negotiated_codec 3707 * @note: btstack_type 1 3708 */ 3709 static inline uint8_t hfp_subevent_audio_connection_established_get_negotiated_codec(const uint8_t * event){ 3710 return event[12]; 3711 } 3712 3713 3714 /** 3715 * @brief Get field status from event HFP_SUBEVENT_COMPLETE 3716 * @param event packet 3717 * @return status 3718 * @note: btstack_type 1 3719 */ 3720 static inline uint8_t hfp_subevent_complete_get_status(const uint8_t * event){ 3721 return event[3]; 3722 } 3723 3724 /** 3725 * @brief Get field indicator_index from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3726 * @param event packet 3727 * @return indicator_index 3728 * @note: btstack_type 1 3729 */ 3730 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_index(const uint8_t * event){ 3731 return event[3]; 3732 } 3733 /** 3734 * @brief Get field indicator_status from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3735 * @param event packet 3736 * @return indicator_status 3737 * @note: btstack_type 1 3738 */ 3739 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status(const uint8_t * event){ 3740 return event[4]; 3741 } 3742 /** 3743 * @brief Get field indicator_name from event HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 3744 * @param event packet 3745 * @return indicator_name 3746 * @note: btstack_type T 3747 */ 3748 static inline const char * hfp_subevent_ag_indicator_status_changed_get_indicator_name(const uint8_t * event){ 3749 return (const char *) &event[5]; 3750 } 3751 3752 /** 3753 * @brief Get field network_operator_mode from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 3754 * @param event packet 3755 * @return network_operator_mode 3756 * @note: btstack_type 1 3757 */ 3758 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_mode(const uint8_t * event){ 3759 return event[3]; 3760 } 3761 /** 3762 * @brief Get field network_operator_format from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 3763 * @param event packet 3764 * @return network_operator_format 3765 * @note: btstack_type 1 3766 */ 3767 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_format(const uint8_t * event){ 3768 return event[4]; 3769 } 3770 /** 3771 * @brief Get field network_operator_name from event HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 3772 * @param event packet 3773 * @return network_operator_name 3774 * @note: btstack_type T 3775 */ 3776 static inline const char * hfp_subevent_network_operator_changed_get_network_operator_name(const uint8_t * event){ 3777 return (const char *) &event[5]; 3778 } 3779 3780 /** 3781 * @brief Get field error from event HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 3782 * @param event packet 3783 * @return error 3784 * @note: btstack_type 1 3785 */ 3786 static inline uint8_t hfp_subevent_extended_audio_gateway_error_get_error(const uint8_t * event){ 3787 return event[3]; 3788 } 3789 3790 3791 3792 3793 /** 3794 * @brief Get field number from event HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 3795 * @param event packet 3796 * @return number 3797 * @note: btstack_type T 3798 */ 3799 static inline const char * hfp_subevent_place_call_with_number_get_number(const uint8_t * event){ 3800 return (const char *) &event[3]; 3801 } 3802 3803 3804 /** 3805 * @brief Get field number from event HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 3806 * @param event packet 3807 * @return number 3808 * @note: btstack_type T 3809 */ 3810 static inline const char * hfp_subevent_number_for_voice_tag_get_number(const uint8_t * event){ 3811 return (const char *) &event[3]; 3812 } 3813 3814 /** 3815 * @brief Get field dtmf from event HFP_SUBEVENT_TRANSMIT_DTMF_CODES 3816 * @param event packet 3817 * @return dtmf 3818 * @note: btstack_type T 3819 */ 3820 static inline const char * hfp_subevent_transmit_dtmf_codes_get_dtmf(const uint8_t * event){ 3821 return (const char *) &event[3]; 3822 } 3823 3824 3825 3826 3827 /** 3828 * @brief Get field status from event HFP_SUBEVENT_SPEAKER_VOLUME 3829 * @param event packet 3830 * @return status 3831 * @note: btstack_type 1 3832 */ 3833 static inline uint8_t hfp_subevent_speaker_volume_get_status(const uint8_t * event){ 3834 return event[3]; 3835 } 3836 /** 3837 * @brief Get field gain from event HFP_SUBEVENT_SPEAKER_VOLUME 3838 * @param event packet 3839 * @return gain 3840 * @note: btstack_type 1 3841 */ 3842 static inline uint8_t hfp_subevent_speaker_volume_get_gain(const uint8_t * event){ 3843 return event[4]; 3844 } 3845 3846 /** 3847 * @brief Get field status from event HFP_SUBEVENT_MICROPHONE_VOLUME 3848 * @param event packet 3849 * @return status 3850 * @note: btstack_type 1 3851 */ 3852 static inline uint8_t hfp_subevent_microphone_volume_get_status(const uint8_t * event){ 3853 return event[3]; 3854 } 3855 /** 3856 * @brief Get field gain from event HFP_SUBEVENT_MICROPHONE_VOLUME 3857 * @param event packet 3858 * @return gain 3859 * @note: btstack_type 1 3860 */ 3861 static inline uint8_t hfp_subevent_microphone_volume_get_gain(const uint8_t * event){ 3862 return event[4]; 3863 } 3864 3865 /** 3866 * @brief Get field type from event HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 3867 * @param event packet 3868 * @return type 3869 * @note: btstack_type 1 3870 */ 3871 static inline uint8_t hfp_subevent_call_waiting_notification_get_type(const uint8_t * event){ 3872 return event[3]; 3873 } 3874 /** 3875 * @brief Get field number from event HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 3876 * @param event packet 3877 * @return number 3878 * @note: btstack_type T 3879 */ 3880 static inline const char * hfp_subevent_call_waiting_notification_get_number(const uint8_t * event){ 3881 return (const char *) &event[4]; 3882 } 3883 3884 /** 3885 * @brief Get field type from event HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 3886 * @param event packet 3887 * @return type 3888 * @note: btstack_type 1 3889 */ 3890 static inline uint8_t hfp_subevent_calling_line_identification_notification_get_type(const uint8_t * event){ 3891 return event[3]; 3892 } 3893 /** 3894 * @brief Get field number from event HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 3895 * @param event packet 3896 * @return number 3897 * @note: btstack_type T 3898 */ 3899 static inline const char * hfp_subevent_calling_line_identification_notification_get_number(const uint8_t * event){ 3900 return (const char *) &event[4]; 3901 } 3902 3903 /** 3904 * @brief Get field clcc_idx from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3905 * @param event packet 3906 * @return clcc_idx 3907 * @note: btstack_type 1 3908 */ 3909 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_idx(const uint8_t * event){ 3910 return event[3]; 3911 } 3912 /** 3913 * @brief Get field clcc_dir from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3914 * @param event packet 3915 * @return clcc_dir 3916 * @note: btstack_type 1 3917 */ 3918 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_dir(const uint8_t * event){ 3919 return event[4]; 3920 } 3921 /** 3922 * @brief Get field clcc_status from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3923 * @param event packet 3924 * @return clcc_status 3925 * @note: btstack_type 1 3926 */ 3927 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_status(const uint8_t * event){ 3928 return event[5]; 3929 } 3930 /** 3931 * @brief Get field clcc_mpty from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3932 * @param event packet 3933 * @return clcc_mpty 3934 * @note: btstack_type 1 3935 */ 3936 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_mpty(const uint8_t * event){ 3937 return event[6]; 3938 } 3939 /** 3940 * @brief Get field bnip_type from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3941 * @param event packet 3942 * @return bnip_type 3943 * @note: btstack_type 1 3944 */ 3945 static inline uint8_t hfp_subevent_enhanced_call_status_get_bnip_type(const uint8_t * event){ 3946 return event[7]; 3947 } 3948 /** 3949 * @brief Get field bnip_number from event HFP_SUBEVENT_ENHANCED_CALL_STATUS 3950 * @param event packet 3951 * @return bnip_number 3952 * @note: btstack_type T 3953 */ 3954 static inline const char * hfp_subevent_enhanced_call_status_get_bnip_number(const uint8_t * event){ 3955 return (const char *) &event[8]; 3956 } 3957 3958 /** 3959 * @brief Get field status from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 3960 * @param event packet 3961 * @return status 3962 * @note: btstack_type 1 3963 */ 3964 static inline uint8_t hfp_subevent_subscriber_number_information_get_status(const uint8_t * event){ 3965 return event[3]; 3966 } 3967 /** 3968 * @brief Get field bnip_type from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 3969 * @param event packet 3970 * @return bnip_type 3971 * @note: btstack_type 1 3972 */ 3973 static inline uint8_t hfp_subevent_subscriber_number_information_get_bnip_type(const uint8_t * event){ 3974 return event[4]; 3975 } 3976 /** 3977 * @brief Get field bnip_number from event HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 3978 * @param event packet 3979 * @return bnip_number 3980 * @note: btstack_type T 3981 */ 3982 static inline const char * hfp_subevent_subscriber_number_information_get_bnip_number(const uint8_t * event){ 3983 return (const char *) &event[5]; 3984 } 3985 3986 /** 3987 * @brief Get field value from event HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 3988 * @param event packet 3989 * @return value 3990 * @note: btstack_type T 3991 */ 3992 static inline const char * hfp_subevent_response_and_hold_status_get_value(const uint8_t * event){ 3993 return (const char *) &event[3]; 3994 } 3995 3996 #ifdef ENABLE_BLE 3997 /** 3998 * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_CONNECTED 3999 * @param event packet 4000 * @return handle 4001 * @note: btstack_type H 4002 */ 4003 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 4004 return little_endian_read_16(event, 3); 4005 } 4006 #endif 4007 4008 #ifdef ENABLE_BLE 4009 /** 4010 * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_NOTIFICATION 4011 * @param event packet 4012 * @return handle 4013 * @note: btstack_type H 4014 */ 4015 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 4016 return little_endian_read_16(event, 3); 4017 } 4018 /** 4019 * @brief Get field attribute_id from event ANCS_SUBEVENT_CLIENT_NOTIFICATION 4020 * @param event packet 4021 * @return attribute_id 4022 * @note: btstack_type 2 4023 */ 4024 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 4025 return little_endian_read_16(event, 5); 4026 } 4027 /** 4028 * @brief Get field text from event ANCS_SUBEVENT_CLIENT_NOTIFICATION 4029 * @param event packet 4030 * @return text 4031 * @note: btstack_type T 4032 */ 4033 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 4034 return (const char *) &event[7]; 4035 } 4036 #endif 4037 4038 #ifdef ENABLE_BLE 4039 /** 4040 * @brief Get field handle from event ANCS_SUBEVENT_CLIENT_DISCONNECTED 4041 * @param event packet 4042 * @return handle 4043 * @note: btstack_type H 4044 */ 4045 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 4046 return little_endian_read_16(event, 3); 4047 } 4048 #endif 4049 4050 /** 4051 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_ACCEPT 4052 * @param event packet 4053 * @return avdtp_cid 4054 * @note: btstack_type 2 4055 */ 4056 static inline uint16_t avdtp_subevent_signaling_accept_get_avdtp_cid(const uint8_t * event){ 4057 return little_endian_read_16(event, 3); 4058 } 4059 /** 4060 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_ACCEPT 4061 * @param event packet 4062 * @return local_seid 4063 * @note: btstack_type 1 4064 */ 4065 static inline uint8_t avdtp_subevent_signaling_accept_get_local_seid(const uint8_t * event){ 4066 return event[5]; 4067 } 4068 /** 4069 * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_ACCEPT 4070 * @param event packet 4071 * @return signal_identifier 4072 * @note: btstack_type 1 4073 */ 4074 static inline uint8_t avdtp_subevent_signaling_accept_get_signal_identifier(const uint8_t * event){ 4075 return event[6]; 4076 } 4077 4078 /** 4079 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_REJECT 4080 * @param event packet 4081 * @return avdtp_cid 4082 * @note: btstack_type 2 4083 */ 4084 static inline uint16_t avdtp_subevent_signaling_reject_get_avdtp_cid(const uint8_t * event){ 4085 return little_endian_read_16(event, 3); 4086 } 4087 /** 4088 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_REJECT 4089 * @param event packet 4090 * @return local_seid 4091 * @note: btstack_type 1 4092 */ 4093 static inline uint8_t avdtp_subevent_signaling_reject_get_local_seid(const uint8_t * event){ 4094 return event[5]; 4095 } 4096 /** 4097 * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_REJECT 4098 * @param event packet 4099 * @return signal_identifier 4100 * @note: btstack_type 1 4101 */ 4102 static inline uint8_t avdtp_subevent_signaling_reject_get_signal_identifier(const uint8_t * event){ 4103 return event[6]; 4104 } 4105 4106 /** 4107 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 4108 * @param event packet 4109 * @return avdtp_cid 4110 * @note: btstack_type 2 4111 */ 4112 static inline uint16_t avdtp_subevent_signaling_general_reject_get_avdtp_cid(const uint8_t * event){ 4113 return little_endian_read_16(event, 3); 4114 } 4115 /** 4116 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 4117 * @param event packet 4118 * @return local_seid 4119 * @note: btstack_type 1 4120 */ 4121 static inline uint8_t avdtp_subevent_signaling_general_reject_get_local_seid(const uint8_t * event){ 4122 return event[5]; 4123 } 4124 /** 4125 * @brief Get field signal_identifier from event AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 4126 * @param event packet 4127 * @return signal_identifier 4128 * @note: btstack_type 1 4129 */ 4130 static inline uint8_t avdtp_subevent_signaling_general_reject_get_signal_identifier(const uint8_t * event){ 4131 return event[6]; 4132 } 4133 4134 /** 4135 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 4136 * @param event packet 4137 * @return avdtp_cid 4138 * @note: btstack_type 2 4139 */ 4140 static inline uint16_t avdtp_subevent_signaling_connection_established_get_avdtp_cid(const uint8_t * event){ 4141 return little_endian_read_16(event, 3); 4142 } 4143 /** 4144 * @brief Get field bd_addr from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 4145 * @param event packet 4146 * @param Pointer to storage for bd_addr 4147 * @note: btstack_type B 4148 */ 4149 static inline void avdtp_subevent_signaling_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 4150 reverse_bd_addr(&event[5], bd_addr); 4151 } 4152 /** 4153 * @brief Get field status from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 4154 * @param event packet 4155 * @return status 4156 * @note: btstack_type 1 4157 */ 4158 static inline uint8_t avdtp_subevent_signaling_connection_established_get_status(const uint8_t * event){ 4159 return event[11]; 4160 } 4161 4162 /** 4163 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 4164 * @param event packet 4165 * @return avdtp_cid 4166 * @note: btstack_type 2 4167 */ 4168 static inline uint16_t avdtp_subevent_signaling_connection_released_get_avdtp_cid(const uint8_t * event){ 4169 return little_endian_read_16(event, 3); 4170 } 4171 4172 /** 4173 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4174 * @param event packet 4175 * @return avdtp_cid 4176 * @note: btstack_type 2 4177 */ 4178 static inline uint16_t avdtp_subevent_signaling_sep_found_get_avdtp_cid(const uint8_t * event){ 4179 return little_endian_read_16(event, 3); 4180 } 4181 /** 4182 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4183 * @param event packet 4184 * @return remote_seid 4185 * @note: btstack_type 1 4186 */ 4187 static inline uint8_t avdtp_subevent_signaling_sep_found_get_remote_seid(const uint8_t * event){ 4188 return event[5]; 4189 } 4190 /** 4191 * @brief Get field in_use from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4192 * @param event packet 4193 * @return in_use 4194 * @note: btstack_type 1 4195 */ 4196 static inline uint8_t avdtp_subevent_signaling_sep_found_get_in_use(const uint8_t * event){ 4197 return event[6]; 4198 } 4199 /** 4200 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4201 * @param event packet 4202 * @return media_type 4203 * @note: btstack_type 1 4204 */ 4205 static inline uint8_t avdtp_subevent_signaling_sep_found_get_media_type(const uint8_t * event){ 4206 return event[7]; 4207 } 4208 /** 4209 * @brief Get field sep_type from event AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 4210 * @param event packet 4211 * @return sep_type 4212 * @note: btstack_type 1 4213 */ 4214 static inline uint8_t avdtp_subevent_signaling_sep_found_get_sep_type(const uint8_t * event){ 4215 return event[8]; 4216 } 4217 4218 /** 4219 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4220 * @param event packet 4221 * @return avdtp_cid 4222 * @note: btstack_type 2 4223 */ 4224 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_capability_get_avdtp_cid(const uint8_t * event){ 4225 return little_endian_read_16(event, 3); 4226 } 4227 /** 4228 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4229 * @param event packet 4230 * @return local_seid 4231 * @note: btstack_type 1 4232 */ 4233 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_local_seid(const uint8_t * event){ 4234 return event[5]; 4235 } 4236 /** 4237 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4238 * @param event packet 4239 * @return remote_seid 4240 * @note: btstack_type 1 4241 */ 4242 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_remote_seid(const uint8_t * event){ 4243 return event[6]; 4244 } 4245 /** 4246 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4247 * @param event packet 4248 * @return media_type 4249 * @note: btstack_type 1 4250 */ 4251 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_media_type(const uint8_t * event){ 4252 return event[7]; 4253 } 4254 /** 4255 * @brief Get field sampling_frequency_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4256 * @param event packet 4257 * @return sampling_frequency_bitmap 4258 * @note: btstack_type 1 4259 */ 4260 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_sampling_frequency_bitmap(const uint8_t * event){ 4261 return event[8]; 4262 } 4263 /** 4264 * @brief Get field channel_mode_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4265 * @param event packet 4266 * @return channel_mode_bitmap 4267 * @note: btstack_type 1 4268 */ 4269 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_channel_mode_bitmap(const uint8_t * event){ 4270 return event[9]; 4271 } 4272 /** 4273 * @brief Get field block_length_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4274 * @param event packet 4275 * @return block_length_bitmap 4276 * @note: btstack_type 1 4277 */ 4278 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_block_length_bitmap(const uint8_t * event){ 4279 return event[10]; 4280 } 4281 /** 4282 * @brief Get field subbands_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4283 * @param event packet 4284 * @return subbands_bitmap 4285 * @note: btstack_type 1 4286 */ 4287 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_subbands_bitmap(const uint8_t * event){ 4288 return event[11]; 4289 } 4290 /** 4291 * @brief Get field allocation_method_bitmap from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4292 * @param event packet 4293 * @return allocation_method_bitmap 4294 * @note: btstack_type 1 4295 */ 4296 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_allocation_method_bitmap(const uint8_t * event){ 4297 return event[12]; 4298 } 4299 /** 4300 * @brief Get field min_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4301 * @param event packet 4302 * @return min_bitpool_value 4303 * @note: btstack_type 1 4304 */ 4305 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_min_bitpool_value(const uint8_t * event){ 4306 return event[13]; 4307 } 4308 /** 4309 * @brief Get field max_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 4310 * @param event packet 4311 * @return max_bitpool_value 4312 * @note: btstack_type 1 4313 */ 4314 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_capability_get_max_bitpool_value(const uint8_t * event){ 4315 return event[14]; 4316 } 4317 4318 /** 4319 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4320 * @param event packet 4321 * @return avdtp_cid 4322 * @note: btstack_type 2 4323 */ 4324 static inline uint16_t avdtp_subevent_signaling_media_codec_other_capability_get_avdtp_cid(const uint8_t * event){ 4325 return little_endian_read_16(event, 3); 4326 } 4327 /** 4328 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4329 * @param event packet 4330 * @return local_seid 4331 * @note: btstack_type 1 4332 */ 4333 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_local_seid(const uint8_t * event){ 4334 return event[5]; 4335 } 4336 /** 4337 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4338 * @param event packet 4339 * @return remote_seid 4340 * @note: btstack_type 1 4341 */ 4342 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_remote_seid(const uint8_t * event){ 4343 return event[6]; 4344 } 4345 /** 4346 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4347 * @param event packet 4348 * @return media_type 4349 * @note: btstack_type 1 4350 */ 4351 static inline uint8_t avdtp_subevent_signaling_media_codec_other_capability_get_media_type(const uint8_t * event){ 4352 return event[7]; 4353 } 4354 /** 4355 * @brief Get field media_codec_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4356 * @param event packet 4357 * @return media_codec_type 4358 * @note: btstack_type 2 4359 */ 4360 static inline uint16_t avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_type(const uint8_t * event){ 4361 return little_endian_read_16(event, 8); 4362 } 4363 /** 4364 * @brief Get field media_codec_information_len from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4365 * @param event packet 4366 * @return media_codec_information_len 4367 * @note: btstack_type L 4368 */ 4369 static inline int avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_information_len(const uint8_t * event){ 4370 return little_endian_read_16(event, 10); 4371 } 4372 /** 4373 * @brief Get field media_codec_information from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 4374 * @param event packet 4375 * @return media_codec_information 4376 * @note: btstack_type V 4377 */ 4378 static inline const uint8_t * avdtp_subevent_signaling_media_codec_other_capability_get_media_codec_information(const uint8_t * event){ 4379 return &event[12]; 4380 } 4381 4382 /** 4383 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 4384 * @param event packet 4385 * @return avdtp_cid 4386 * @note: btstack_type 2 4387 */ 4388 static inline uint16_t avdtp_subevent_signaling_media_transport_capability_get_avdtp_cid(const uint8_t * event){ 4389 return little_endian_read_16(event, 3); 4390 } 4391 /** 4392 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 4393 * @param event packet 4394 * @return local_seid 4395 * @note: btstack_type 1 4396 */ 4397 static inline uint8_t avdtp_subevent_signaling_media_transport_capability_get_local_seid(const uint8_t * event){ 4398 return event[5]; 4399 } 4400 /** 4401 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 4402 * @param event packet 4403 * @return remote_seid 4404 * @note: btstack_type 1 4405 */ 4406 static inline uint8_t avdtp_subevent_signaling_media_transport_capability_get_remote_seid(const uint8_t * event){ 4407 return event[6]; 4408 } 4409 4410 /** 4411 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 4412 * @param event packet 4413 * @return avdtp_cid 4414 * @note: btstack_type 2 4415 */ 4416 static inline uint16_t avdtp_subevent_signaling_reporting_capability_get_avdtp_cid(const uint8_t * event){ 4417 return little_endian_read_16(event, 3); 4418 } 4419 /** 4420 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 4421 * @param event packet 4422 * @return local_seid 4423 * @note: btstack_type 1 4424 */ 4425 static inline uint8_t avdtp_subevent_signaling_reporting_capability_get_local_seid(const uint8_t * event){ 4426 return event[5]; 4427 } 4428 /** 4429 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 4430 * @param event packet 4431 * @return remote_seid 4432 * @note: btstack_type 1 4433 */ 4434 static inline uint8_t avdtp_subevent_signaling_reporting_capability_get_remote_seid(const uint8_t * event){ 4435 return event[6]; 4436 } 4437 4438 /** 4439 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4440 * @param event packet 4441 * @return avdtp_cid 4442 * @note: btstack_type 2 4443 */ 4444 static inline uint16_t avdtp_subevent_signaling_recovery_capability_get_avdtp_cid(const uint8_t * event){ 4445 return little_endian_read_16(event, 3); 4446 } 4447 /** 4448 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4449 * @param event packet 4450 * @return local_seid 4451 * @note: btstack_type 1 4452 */ 4453 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_local_seid(const uint8_t * event){ 4454 return event[5]; 4455 } 4456 /** 4457 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4458 * @param event packet 4459 * @return remote_seid 4460 * @note: btstack_type 1 4461 */ 4462 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_remote_seid(const uint8_t * event){ 4463 return event[6]; 4464 } 4465 /** 4466 * @brief Get field recovery_type from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4467 * @param event packet 4468 * @return recovery_type 4469 * @note: btstack_type 1 4470 */ 4471 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_recovery_type(const uint8_t * event){ 4472 return event[7]; 4473 } 4474 /** 4475 * @brief Get field maximum_recovery_window_size from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4476 * @param event packet 4477 * @return maximum_recovery_window_size 4478 * @note: btstack_type 1 4479 */ 4480 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_maximum_recovery_window_size(const uint8_t * event){ 4481 return event[8]; 4482 } 4483 /** 4484 * @brief Get field maximum_number_media_packets from event AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 4485 * @param event packet 4486 * @return maximum_number_media_packets 4487 * @note: btstack_type 1 4488 */ 4489 static inline uint8_t avdtp_subevent_signaling_recovery_capability_get_maximum_number_media_packets(const uint8_t * event){ 4490 return event[9]; 4491 } 4492 4493 /** 4494 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4495 * @param event packet 4496 * @return avdtp_cid 4497 * @note: btstack_type 2 4498 */ 4499 static inline uint16_t avdtp_subevent_signaling_content_protection_capability_get_avdtp_cid(const uint8_t * event){ 4500 return little_endian_read_16(event, 3); 4501 } 4502 /** 4503 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4504 * @param event packet 4505 * @return local_seid 4506 * @note: btstack_type 1 4507 */ 4508 static inline uint8_t avdtp_subevent_signaling_content_protection_capability_get_local_seid(const uint8_t * event){ 4509 return event[5]; 4510 } 4511 /** 4512 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4513 * @param event packet 4514 * @return remote_seid 4515 * @note: btstack_type 1 4516 */ 4517 static inline uint8_t avdtp_subevent_signaling_content_protection_capability_get_remote_seid(const uint8_t * event){ 4518 return event[6]; 4519 } 4520 /** 4521 * @brief Get field cp_type from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4522 * @param event packet 4523 * @return cp_type 4524 * @note: btstack_type 2 4525 */ 4526 static inline uint16_t avdtp_subevent_signaling_content_protection_capability_get_cp_type(const uint8_t * event){ 4527 return little_endian_read_16(event, 7); 4528 } 4529 /** 4530 * @brief Get field cp_type_value_len from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4531 * @param event packet 4532 * @return cp_type_value_len 4533 * @note: btstack_type L 4534 */ 4535 static inline int avdtp_subevent_signaling_content_protection_capability_get_cp_type_value_len(const uint8_t * event){ 4536 return little_endian_read_16(event, 9); 4537 } 4538 /** 4539 * @brief Get field cp_type_value from event AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 4540 * @param event packet 4541 * @return cp_type_value 4542 * @note: btstack_type V 4543 */ 4544 static inline const uint8_t * avdtp_subevent_signaling_content_protection_capability_get_cp_type_value(const uint8_t * event){ 4545 return &event[11]; 4546 } 4547 4548 /** 4549 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4550 * @param event packet 4551 * @return avdtp_cid 4552 * @note: btstack_type 2 4553 */ 4554 static inline uint16_t avdtp_subevent_signaling_multiplexing_capability_get_avdtp_cid(const uint8_t * event){ 4555 return little_endian_read_16(event, 3); 4556 } 4557 /** 4558 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4559 * @param event packet 4560 * @return local_seid 4561 * @note: btstack_type 1 4562 */ 4563 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_local_seid(const uint8_t * event){ 4564 return event[5]; 4565 } 4566 /** 4567 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4568 * @param event packet 4569 * @return remote_seid 4570 * @note: btstack_type 1 4571 */ 4572 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_remote_seid(const uint8_t * event){ 4573 return event[6]; 4574 } 4575 /** 4576 * @brief Get field fragmentation from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4577 * @param event packet 4578 * @return fragmentation 4579 * @note: btstack_type 1 4580 */ 4581 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_fragmentation(const uint8_t * event){ 4582 return event[7]; 4583 } 4584 /** 4585 * @brief Get field transport_identifiers_num from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4586 * @param event packet 4587 * @return transport_identifiers_num 4588 * @note: btstack_type 1 4589 */ 4590 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_identifiers_num(const uint8_t * event){ 4591 return event[8]; 4592 } 4593 /** 4594 * @brief Get field transport_session_identifier_1 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4595 * @param event packet 4596 * @return transport_session_identifier_1 4597 * @note: btstack_type 1 4598 */ 4599 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_1(const uint8_t * event){ 4600 return event[9]; 4601 } 4602 /** 4603 * @brief Get field transport_session_identifier_2 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4604 * @param event packet 4605 * @return transport_session_identifier_2 4606 * @note: btstack_type 1 4607 */ 4608 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_2(const uint8_t * event){ 4609 return event[10]; 4610 } 4611 /** 4612 * @brief Get field transport_session_identifier_3 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4613 * @param event packet 4614 * @return transport_session_identifier_3 4615 * @note: btstack_type 1 4616 */ 4617 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_transport_session_identifier_3(const uint8_t * event){ 4618 return event[11]; 4619 } 4620 /** 4621 * @brief Get field tcid_1 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4622 * @param event packet 4623 * @return tcid_1 4624 * @note: btstack_type 1 4625 */ 4626 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_1(const uint8_t * event){ 4627 return event[12]; 4628 } 4629 /** 4630 * @brief Get field tcid_2 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4631 * @param event packet 4632 * @return tcid_2 4633 * @note: btstack_type 1 4634 */ 4635 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_2(const uint8_t * event){ 4636 return event[13]; 4637 } 4638 /** 4639 * @brief Get field tcid_3 from event AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 4640 * @param event packet 4641 * @return tcid_3 4642 * @note: btstack_type 1 4643 */ 4644 static inline uint8_t avdtp_subevent_signaling_multiplexing_capability_get_tcid_3(const uint8_t * event){ 4645 return event[14]; 4646 } 4647 4648 /** 4649 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 4650 * @param event packet 4651 * @return avdtp_cid 4652 * @note: btstack_type 2 4653 */ 4654 static inline uint16_t avdtp_subevent_signaling_delay_reporting_capability_get_avdtp_cid(const uint8_t * event){ 4655 return little_endian_read_16(event, 3); 4656 } 4657 /** 4658 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 4659 * @param event packet 4660 * @return local_seid 4661 * @note: btstack_type 1 4662 */ 4663 static inline uint8_t avdtp_subevent_signaling_delay_reporting_capability_get_local_seid(const uint8_t * event){ 4664 return event[5]; 4665 } 4666 /** 4667 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 4668 * @param event packet 4669 * @return remote_seid 4670 * @note: btstack_type 1 4671 */ 4672 static inline uint8_t avdtp_subevent_signaling_delay_reporting_capability_get_remote_seid(const uint8_t * event){ 4673 return event[6]; 4674 } 4675 4676 /** 4677 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4678 * @param event packet 4679 * @return avdtp_cid 4680 * @note: btstack_type 2 4681 */ 4682 static inline uint16_t avdtp_subevent_signaling_header_compression_capability_get_avdtp_cid(const uint8_t * event){ 4683 return little_endian_read_16(event, 3); 4684 } 4685 /** 4686 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4687 * @param event packet 4688 * @return local_seid 4689 * @note: btstack_type 1 4690 */ 4691 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_local_seid(const uint8_t * event){ 4692 return event[5]; 4693 } 4694 /** 4695 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4696 * @param event packet 4697 * @return remote_seid 4698 * @note: btstack_type 1 4699 */ 4700 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_remote_seid(const uint8_t * event){ 4701 return event[6]; 4702 } 4703 /** 4704 * @brief Get field back_ch from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4705 * @param event packet 4706 * @return back_ch 4707 * @note: btstack_type 1 4708 */ 4709 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_back_ch(const uint8_t * event){ 4710 return event[7]; 4711 } 4712 /** 4713 * @brief Get field media from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4714 * @param event packet 4715 * @return media 4716 * @note: btstack_type 1 4717 */ 4718 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_media(const uint8_t * event){ 4719 return event[8]; 4720 } 4721 /** 4722 * @brief Get field recovery from event AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 4723 * @param event packet 4724 * @return recovery 4725 * @note: btstack_type 1 4726 */ 4727 static inline uint8_t avdtp_subevent_signaling_header_compression_capability_get_recovery(const uint8_t * event){ 4728 return event[9]; 4729 } 4730 4731 /** 4732 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4733 * @param event packet 4734 * @return avdtp_cid 4735 * @note: btstack_type 2 4736 */ 4737 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_avdtp_cid(const uint8_t * event){ 4738 return little_endian_read_16(event, 3); 4739 } 4740 /** 4741 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4742 * @param event packet 4743 * @return local_seid 4744 * @note: btstack_type 1 4745 */ 4746 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_local_seid(const uint8_t * event){ 4747 return event[5]; 4748 } 4749 /** 4750 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4751 * @param event packet 4752 * @return remote_seid 4753 * @note: btstack_type 1 4754 */ 4755 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_remote_seid(const uint8_t * event){ 4756 return event[6]; 4757 } 4758 /** 4759 * @brief Get field reconfigure from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4760 * @param event packet 4761 * @return reconfigure 4762 * @note: btstack_type 1 4763 */ 4764 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_reconfigure(const uint8_t * event){ 4765 return event[7]; 4766 } 4767 /** 4768 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4769 * @param event packet 4770 * @return media_type 4771 * @note: btstack_type 1 4772 */ 4773 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_media_type(const uint8_t * event){ 4774 return event[8]; 4775 } 4776 /** 4777 * @brief Get field sampling_frequency from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4778 * @param event packet 4779 * @return sampling_frequency 4780 * @note: btstack_type 2 4781 */ 4782 static inline uint16_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_sampling_frequency(const uint8_t * event){ 4783 return little_endian_read_16(event, 9); 4784 } 4785 /** 4786 * @brief Get field channel_mode from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4787 * @param event packet 4788 * @return channel_mode 4789 * @note: btstack_type 1 4790 */ 4791 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_channel_mode(const uint8_t * event){ 4792 return event[11]; 4793 } 4794 /** 4795 * @brief Get field num_channels from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4796 * @param event packet 4797 * @return num_channels 4798 * @note: btstack_type 1 4799 */ 4800 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_num_channels(const uint8_t * event){ 4801 return event[12]; 4802 } 4803 /** 4804 * @brief Get field block_length from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4805 * @param event packet 4806 * @return block_length 4807 * @note: btstack_type 1 4808 */ 4809 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_block_length(const uint8_t * event){ 4810 return event[13]; 4811 } 4812 /** 4813 * @brief Get field subbands from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4814 * @param event packet 4815 * @return subbands 4816 * @note: btstack_type 1 4817 */ 4818 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_subbands(const uint8_t * event){ 4819 return event[14]; 4820 } 4821 /** 4822 * @brief Get field allocation_method from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4823 * @param event packet 4824 * @return allocation_method 4825 * @note: btstack_type 1 4826 */ 4827 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_allocation_method(const uint8_t * event){ 4828 return event[15]; 4829 } 4830 /** 4831 * @brief Get field min_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4832 * @param event packet 4833 * @return min_bitpool_value 4834 * @note: btstack_type 1 4835 */ 4836 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_min_bitpool_value(const uint8_t * event){ 4837 return event[16]; 4838 } 4839 /** 4840 * @brief Get field max_bitpool_value from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 4841 * @param event packet 4842 * @return max_bitpool_value 4843 * @note: btstack_type 1 4844 */ 4845 static inline uint8_t avdtp_subevent_signaling_media_codec_sbc_configuration_get_max_bitpool_value(const uint8_t * event){ 4846 return event[17]; 4847 } 4848 4849 /** 4850 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4851 * @param event packet 4852 * @return avdtp_cid 4853 * @note: btstack_type 2 4854 */ 4855 static inline uint16_t avdtp_subevent_signaling_media_codec_other_configuration_get_avdtp_cid(const uint8_t * event){ 4856 return little_endian_read_16(event, 3); 4857 } 4858 /** 4859 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4860 * @param event packet 4861 * @return local_seid 4862 * @note: btstack_type 1 4863 */ 4864 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_local_seid(const uint8_t * event){ 4865 return event[5]; 4866 } 4867 /** 4868 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4869 * @param event packet 4870 * @return remote_seid 4871 * @note: btstack_type 1 4872 */ 4873 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_remote_seid(const uint8_t * event){ 4874 return event[6]; 4875 } 4876 /** 4877 * @brief Get field reconfigure from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4878 * @param event packet 4879 * @return reconfigure 4880 * @note: btstack_type 1 4881 */ 4882 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_reconfigure(const uint8_t * event){ 4883 return event[7]; 4884 } 4885 /** 4886 * @brief Get field media_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4887 * @param event packet 4888 * @return media_type 4889 * @note: btstack_type 1 4890 */ 4891 static inline uint8_t avdtp_subevent_signaling_media_codec_other_configuration_get_media_type(const uint8_t * event){ 4892 return event[8]; 4893 } 4894 /** 4895 * @brief Get field media_codec_type from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4896 * @param event packet 4897 * @return media_codec_type 4898 * @note: btstack_type 2 4899 */ 4900 static inline uint16_t avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_type(const uint8_t * event){ 4901 return little_endian_read_16(event, 9); 4902 } 4903 /** 4904 * @brief Get field media_codec_information_len from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4905 * @param event packet 4906 * @return media_codec_information_len 4907 * @note: btstack_type L 4908 */ 4909 static inline int avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_information_len(const uint8_t * event){ 4910 return little_endian_read_16(event, 11); 4911 } 4912 /** 4913 * @brief Get field media_codec_information from event AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 4914 * @param event packet 4915 * @return media_codec_information 4916 * @note: btstack_type V 4917 */ 4918 static inline const uint8_t * avdtp_subevent_signaling_media_codec_other_configuration_get_media_codec_information(const uint8_t * event){ 4919 return &event[13]; 4920 } 4921 4922 /** 4923 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 4924 * @param event packet 4925 * @return avdtp_cid 4926 * @note: btstack_type 2 4927 */ 4928 static inline uint16_t avdtp_subevent_streaming_connection_established_get_avdtp_cid(const uint8_t * event){ 4929 return little_endian_read_16(event, 3); 4930 } 4931 /** 4932 * @brief Get field bd_addr from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 4933 * @param event packet 4934 * @param Pointer to storage for bd_addr 4935 * @note: btstack_type B 4936 */ 4937 static inline void avdtp_subevent_streaming_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 4938 reverse_bd_addr(&event[5], bd_addr); 4939 } 4940 /** 4941 * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 4942 * @param event packet 4943 * @return local_seid 4944 * @note: btstack_type 1 4945 */ 4946 static inline uint8_t avdtp_subevent_streaming_connection_established_get_local_seid(const uint8_t * event){ 4947 return event[11]; 4948 } 4949 /** 4950 * @brief Get field remote_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 4951 * @param event packet 4952 * @return remote_seid 4953 * @note: btstack_type 1 4954 */ 4955 static inline uint8_t avdtp_subevent_streaming_connection_established_get_remote_seid(const uint8_t * event){ 4956 return event[12]; 4957 } 4958 /** 4959 * @brief Get field status from event AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 4960 * @param event packet 4961 * @return status 4962 * @note: btstack_type 1 4963 */ 4964 static inline uint8_t avdtp_subevent_streaming_connection_established_get_status(const uint8_t * event){ 4965 return event[13]; 4966 } 4967 4968 /** 4969 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 4970 * @param event packet 4971 * @return avdtp_cid 4972 * @note: btstack_type 2 4973 */ 4974 static inline uint16_t avdtp_subevent_streaming_connection_released_get_avdtp_cid(const uint8_t * event){ 4975 return little_endian_read_16(event, 3); 4976 } 4977 /** 4978 * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 4979 * @param event packet 4980 * @return local_seid 4981 * @note: btstack_type 1 4982 */ 4983 static inline uint8_t avdtp_subevent_streaming_connection_released_get_local_seid(const uint8_t * event){ 4984 return event[5]; 4985 } 4986 4987 /** 4988 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 4989 * @param event packet 4990 * @return avdtp_cid 4991 * @note: btstack_type 2 4992 */ 4993 static inline uint16_t avdtp_subevent_streaming_can_send_media_packet_now_get_avdtp_cid(const uint8_t * event){ 4994 return little_endian_read_16(event, 3); 4995 } 4996 /** 4997 * @brief Get field local_seid from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 4998 * @param event packet 4999 * @return local_seid 5000 * @note: btstack_type 1 5001 */ 5002 static inline uint8_t avdtp_subevent_streaming_can_send_media_packet_now_get_local_seid(const uint8_t * event){ 5003 return event[5]; 5004 } 5005 /** 5006 * @brief Get field sequence_number from event AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5007 * @param event packet 5008 * @return sequence_number 5009 * @note: btstack_type 2 5010 */ 5011 static inline uint16_t avdtp_subevent_streaming_can_send_media_packet_now_get_sequence_number(const uint8_t * event){ 5012 return little_endian_read_16(event, 6); 5013 } 5014 5015 /** 5016 * @brief Get field avdtp_cid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 5017 * @param event packet 5018 * @return avdtp_cid 5019 * @note: btstack_type 2 5020 */ 5021 static inline uint16_t avdtp_subevent_signaling_capability_done_get_avdtp_cid(const uint8_t * event){ 5022 return little_endian_read_16(event, 3); 5023 } 5024 /** 5025 * @brief Get field local_seid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 5026 * @param event packet 5027 * @return local_seid 5028 * @note: btstack_type 1 5029 */ 5030 static inline uint8_t avdtp_subevent_signaling_capability_done_get_local_seid(const uint8_t * event){ 5031 return event[5]; 5032 } 5033 /** 5034 * @brief Get field remote_seid from event AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 5035 * @param event packet 5036 * @return remote_seid 5037 * @note: btstack_type 1 5038 */ 5039 static inline uint8_t avdtp_subevent_signaling_capability_done_get_remote_seid(const uint8_t * event){ 5040 return event[6]; 5041 } 5042 5043 /** 5044 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5045 * @param event packet 5046 * @return a2dp_cid 5047 * @note: btstack_type 2 5048 */ 5049 static inline uint16_t a2dp_subevent_streaming_can_send_media_packet_now_get_a2dp_cid(const uint8_t * event){ 5050 return little_endian_read_16(event, 3); 5051 } 5052 /** 5053 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 5054 * @param event packet 5055 * @return local_seid 5056 * @note: btstack_type 1 5057 */ 5058 static inline uint8_t a2dp_subevent_streaming_can_send_media_packet_now_get_local_seid(const uint8_t * event){ 5059 return event[5]; 5060 } 5061 5062 /** 5063 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5064 * @param event packet 5065 * @return a2dp_cid 5066 * @note: btstack_type 2 5067 */ 5068 static inline uint16_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_a2dp_cid(const uint8_t * event){ 5069 return little_endian_read_16(event, 3); 5070 } 5071 /** 5072 * @brief Get field int_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5073 * @param event packet 5074 * @return int_seid 5075 * @note: btstack_type 1 5076 */ 5077 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_int_seid(const uint8_t * event){ 5078 return event[5]; 5079 } 5080 /** 5081 * @brief Get field acp_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5082 * @param event packet 5083 * @return acp_seid 5084 * @note: btstack_type 1 5085 */ 5086 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_acp_seid(const uint8_t * event){ 5087 return event[6]; 5088 } 5089 /** 5090 * @brief Get field reconfigure from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5091 * @param event packet 5092 * @return reconfigure 5093 * @note: btstack_type 1 5094 */ 5095 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_reconfigure(const uint8_t * event){ 5096 return event[7]; 5097 } 5098 /** 5099 * @brief Get field media_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5100 * @param event packet 5101 * @return media_type 5102 * @note: btstack_type 1 5103 */ 5104 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_media_type(const uint8_t * event){ 5105 return event[8]; 5106 } 5107 /** 5108 * @brief Get field sampling_frequency from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5109 * @param event packet 5110 * @return sampling_frequency 5111 * @note: btstack_type 2 5112 */ 5113 static inline uint16_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_sampling_frequency(const uint8_t * event){ 5114 return little_endian_read_16(event, 9); 5115 } 5116 /** 5117 * @brief Get field channel_mode from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5118 * @param event packet 5119 * @return channel_mode 5120 * @note: btstack_type 1 5121 */ 5122 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_channel_mode(const uint8_t * event){ 5123 return event[11]; 5124 } 5125 /** 5126 * @brief Get field num_channels from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5127 * @param event packet 5128 * @return num_channels 5129 * @note: btstack_type 1 5130 */ 5131 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_num_channels(const uint8_t * event){ 5132 return event[12]; 5133 } 5134 /** 5135 * @brief Get field block_length from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5136 * @param event packet 5137 * @return block_length 5138 * @note: btstack_type 1 5139 */ 5140 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_block_length(const uint8_t * event){ 5141 return event[13]; 5142 } 5143 /** 5144 * @brief Get field subbands from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5145 * @param event packet 5146 * @return subbands 5147 * @note: btstack_type 1 5148 */ 5149 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_subbands(const uint8_t * event){ 5150 return event[14]; 5151 } 5152 /** 5153 * @brief Get field allocation_method from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5154 * @param event packet 5155 * @return allocation_method 5156 * @note: btstack_type 1 5157 */ 5158 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_allocation_method(const uint8_t * event){ 5159 return event[15]; 5160 } 5161 /** 5162 * @brief Get field min_bitpool_value from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5163 * @param event packet 5164 * @return min_bitpool_value 5165 * @note: btstack_type 1 5166 */ 5167 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_min_bitpool_value(const uint8_t * event){ 5168 return event[16]; 5169 } 5170 /** 5171 * @brief Get field max_bitpool_value from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 5172 * @param event packet 5173 * @return max_bitpool_value 5174 * @note: btstack_type 1 5175 */ 5176 static inline uint8_t a2dp_subevent_signaling_media_codec_sbc_configuration_get_max_bitpool_value(const uint8_t * event){ 5177 return event[17]; 5178 } 5179 5180 /** 5181 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5182 * @param event packet 5183 * @return a2dp_cid 5184 * @note: btstack_type 2 5185 */ 5186 static inline uint16_t a2dp_subevent_signaling_media_codec_other_configuration_get_a2dp_cid(const uint8_t * event){ 5187 return little_endian_read_16(event, 3); 5188 } 5189 /** 5190 * @brief Get field int_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5191 * @param event packet 5192 * @return int_seid 5193 * @note: btstack_type 1 5194 */ 5195 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_int_seid(const uint8_t * event){ 5196 return event[5]; 5197 } 5198 /** 5199 * @brief Get field acp_seid from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5200 * @param event packet 5201 * @return acp_seid 5202 * @note: btstack_type 1 5203 */ 5204 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_acp_seid(const uint8_t * event){ 5205 return event[6]; 5206 } 5207 /** 5208 * @brief Get field reconfigure from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5209 * @param event packet 5210 * @return reconfigure 5211 * @note: btstack_type 1 5212 */ 5213 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_reconfigure(const uint8_t * event){ 5214 return event[7]; 5215 } 5216 /** 5217 * @brief Get field media_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5218 * @param event packet 5219 * @return media_type 5220 * @note: btstack_type 1 5221 */ 5222 static inline uint8_t a2dp_subevent_signaling_media_codec_other_configuration_get_media_type(const uint8_t * event){ 5223 return event[8]; 5224 } 5225 /** 5226 * @brief Get field media_codec_type from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5227 * @param event packet 5228 * @return media_codec_type 5229 * @note: btstack_type 2 5230 */ 5231 static inline uint16_t a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_type(const uint8_t * event){ 5232 return little_endian_read_16(event, 9); 5233 } 5234 /** 5235 * @brief Get field media_codec_information_len from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5236 * @param event packet 5237 * @return media_codec_information_len 5238 * @note: btstack_type L 5239 */ 5240 static inline int a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_information_len(const uint8_t * event){ 5241 return little_endian_read_16(event, 11); 5242 } 5243 /** 5244 * @brief Get field media_codec_information from event A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 5245 * @param event packet 5246 * @return media_codec_information 5247 * @note: btstack_type V 5248 */ 5249 static inline const uint8_t * a2dp_subevent_signaling_media_codec_other_configuration_get_media_codec_information(const uint8_t * event){ 5250 return &event[13]; 5251 } 5252 5253 /** 5254 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5255 * @param event packet 5256 * @return a2dp_cid 5257 * @note: btstack_type 2 5258 */ 5259 static inline uint16_t a2dp_subevent_stream_established_get_a2dp_cid(const uint8_t * event){ 5260 return little_endian_read_16(event, 3); 5261 } 5262 /** 5263 * @brief Get field bd_addr from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5264 * @param event packet 5265 * @param Pointer to storage for bd_addr 5266 * @note: btstack_type B 5267 */ 5268 static inline void a2dp_subevent_stream_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5269 reverse_bd_addr(&event[5], bd_addr); 5270 } 5271 /** 5272 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5273 * @param event packet 5274 * @return local_seid 5275 * @note: btstack_type 1 5276 */ 5277 static inline uint8_t a2dp_subevent_stream_established_get_local_seid(const uint8_t * event){ 5278 return event[11]; 5279 } 5280 /** 5281 * @brief Get field remote_seid from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5282 * @param event packet 5283 * @return remote_seid 5284 * @note: btstack_type 1 5285 */ 5286 static inline uint8_t a2dp_subevent_stream_established_get_remote_seid(const uint8_t * event){ 5287 return event[12]; 5288 } 5289 /** 5290 * @brief Get field status from event A2DP_SUBEVENT_STREAM_ESTABLISHED 5291 * @param event packet 5292 * @return status 5293 * @note: btstack_type 1 5294 */ 5295 static inline uint8_t a2dp_subevent_stream_established_get_status(const uint8_t * event){ 5296 return event[13]; 5297 } 5298 5299 /** 5300 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_STARTED 5301 * @param event packet 5302 * @return a2dp_cid 5303 * @note: btstack_type 2 5304 */ 5305 static inline uint16_t a2dp_subevent_stream_started_get_a2dp_cid(const uint8_t * event){ 5306 return little_endian_read_16(event, 3); 5307 } 5308 /** 5309 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_STARTED 5310 * @param event packet 5311 * @return local_seid 5312 * @note: btstack_type 1 5313 */ 5314 static inline uint8_t a2dp_subevent_stream_started_get_local_seid(const uint8_t * event){ 5315 return event[5]; 5316 } 5317 5318 /** 5319 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_SUSPENDED 5320 * @param event packet 5321 * @return a2dp_cid 5322 * @note: btstack_type 2 5323 */ 5324 static inline uint16_t a2dp_subevent_stream_suspended_get_a2dp_cid(const uint8_t * event){ 5325 return little_endian_read_16(event, 3); 5326 } 5327 /** 5328 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_SUSPENDED 5329 * @param event packet 5330 * @return local_seid 5331 * @note: btstack_type 1 5332 */ 5333 static inline uint8_t a2dp_subevent_stream_suspended_get_local_seid(const uint8_t * event){ 5334 return event[5]; 5335 } 5336 5337 /** 5338 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_STOPPED 5339 * @param event packet 5340 * @return a2dp_cid 5341 * @note: btstack_type 2 5342 */ 5343 static inline uint16_t a2dp_subevent_stream_stopped_get_a2dp_cid(const uint8_t * event){ 5344 return little_endian_read_16(event, 3); 5345 } 5346 /** 5347 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_STOPPED 5348 * @param event packet 5349 * @return local_seid 5350 * @note: btstack_type 1 5351 */ 5352 static inline uint8_t a2dp_subevent_stream_stopped_get_local_seid(const uint8_t * event){ 5353 return event[5]; 5354 } 5355 5356 /** 5357 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_STREAM_RELEASED 5358 * @param event packet 5359 * @return a2dp_cid 5360 * @note: btstack_type 2 5361 */ 5362 static inline uint16_t a2dp_subevent_stream_released_get_a2dp_cid(const uint8_t * event){ 5363 return little_endian_read_16(event, 3); 5364 } 5365 /** 5366 * @brief Get field local_seid from event A2DP_SUBEVENT_STREAM_RELEASED 5367 * @param event packet 5368 * @return local_seid 5369 * @note: btstack_type 1 5370 */ 5371 static inline uint8_t a2dp_subevent_stream_released_get_local_seid(const uint8_t * event){ 5372 return event[5]; 5373 } 5374 5375 /** 5376 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_COMMAND_ACCEPTED 5377 * @param event packet 5378 * @return a2dp_cid 5379 * @note: btstack_type 2 5380 */ 5381 static inline uint16_t a2dp_subevent_command_accepted_get_a2dp_cid(const uint8_t * event){ 5382 return little_endian_read_16(event, 3); 5383 } 5384 /** 5385 * @brief Get field local_seid from event A2DP_SUBEVENT_COMMAND_ACCEPTED 5386 * @param event packet 5387 * @return local_seid 5388 * @note: btstack_type 1 5389 */ 5390 static inline uint8_t a2dp_subevent_command_accepted_get_local_seid(const uint8_t * event){ 5391 return event[5]; 5392 } 5393 /** 5394 * @brief Get field signal_identifier from event A2DP_SUBEVENT_COMMAND_ACCEPTED 5395 * @param event packet 5396 * @return signal_identifier 5397 * @note: btstack_type 1 5398 */ 5399 static inline uint8_t a2dp_subevent_command_accepted_get_signal_identifier(const uint8_t * event){ 5400 return event[6]; 5401 } 5402 5403 /** 5404 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_COMMAND_REJECTED 5405 * @param event packet 5406 * @return a2dp_cid 5407 * @note: btstack_type 2 5408 */ 5409 static inline uint16_t a2dp_subevent_command_rejected_get_a2dp_cid(const uint8_t * event){ 5410 return little_endian_read_16(event, 3); 5411 } 5412 /** 5413 * @brief Get field local_seid from event A2DP_SUBEVENT_COMMAND_REJECTED 5414 * @param event packet 5415 * @return local_seid 5416 * @note: btstack_type 1 5417 */ 5418 static inline uint8_t a2dp_subevent_command_rejected_get_local_seid(const uint8_t * event){ 5419 return event[5]; 5420 } 5421 /** 5422 * @brief Get field signal_identifier from event A2DP_SUBEVENT_COMMAND_REJECTED 5423 * @param event packet 5424 * @return signal_identifier 5425 * @note: btstack_type 1 5426 */ 5427 static inline uint8_t a2dp_subevent_command_rejected_get_signal_identifier(const uint8_t * event){ 5428 return event[6]; 5429 } 5430 5431 /** 5432 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 5433 * @param event packet 5434 * @return a2dp_cid 5435 * @note: btstack_type 2 5436 */ 5437 static inline uint16_t a2dp_subevent_signaling_connection_established_get_a2dp_cid(const uint8_t * event){ 5438 return little_endian_read_16(event, 3); 5439 } 5440 /** 5441 * @brief Get field bd_addr from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 5442 * @param event packet 5443 * @param Pointer to storage for bd_addr 5444 * @note: btstack_type B 5445 */ 5446 static inline void a2dp_subevent_signaling_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5447 reverse_bd_addr(&event[5], bd_addr); 5448 } 5449 /** 5450 * @brief Get field status from event A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 5451 * @param event packet 5452 * @return status 5453 * @note: btstack_type 1 5454 */ 5455 static inline uint8_t a2dp_subevent_signaling_connection_established_get_status(const uint8_t * event){ 5456 return event[11]; 5457 } 5458 5459 /** 5460 * @brief Get field a2dp_cid from event A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 5461 * @param event packet 5462 * @return a2dp_cid 5463 * @note: btstack_type 2 5464 */ 5465 static inline uint16_t a2dp_subevent_signaling_connection_released_get_a2dp_cid(const uint8_t * event){ 5466 return little_endian_read_16(event, 3); 5467 } 5468 5469 /** 5470 * @brief Get field status from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 5471 * @param event packet 5472 * @return status 5473 * @note: btstack_type 1 5474 */ 5475 static inline uint8_t avrcp_subevent_connection_established_get_status(const uint8_t * event){ 5476 return event[3]; 5477 } 5478 /** 5479 * @brief Get field bd_addr from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 5480 * @param event packet 5481 * @param Pointer to storage for bd_addr 5482 * @note: btstack_type B 5483 */ 5484 static inline void avrcp_subevent_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 5485 reverse_bd_addr(&event[4], bd_addr); 5486 } 5487 /** 5488 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 5489 * @param event packet 5490 * @return avrcp_cid 5491 * @note: btstack_type 2 5492 */ 5493 static inline uint16_t avrcp_subevent_connection_established_get_avrcp_cid(const uint8_t * event){ 5494 return little_endian_read_16(event, 10); 5495 } 5496 5497 /** 5498 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_CONNECTION_RELEASED 5499 * @param event packet 5500 * @return avrcp_cid 5501 * @note: btstack_type 2 5502 */ 5503 static inline uint16_t avrcp_subevent_connection_released_get_avrcp_cid(const uint8_t * event){ 5504 return little_endian_read_16(event, 3); 5505 } 5506 5507 /** 5508 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5509 * @param event packet 5510 * @return avrcp_cid 5511 * @note: btstack_type 2 5512 */ 5513 static inline uint16_t avrcp_subevent_shuffle_and_repeat_mode_get_avrcp_cid(const uint8_t * event){ 5514 return little_endian_read_16(event, 3); 5515 } 5516 /** 5517 * @brief Get field command_type from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5518 * @param event packet 5519 * @return command_type 5520 * @note: btstack_type 1 5521 */ 5522 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_command_type(const uint8_t * event){ 5523 return event[5]; 5524 } 5525 /** 5526 * @brief Get field repeat_mode from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5527 * @param event packet 5528 * @return repeat_mode 5529 * @note: btstack_type 1 5530 */ 5531 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_repeat_mode(const uint8_t * event){ 5532 return event[6]; 5533 } 5534 /** 5535 * @brief Get field shuffle_mode from event AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 5536 * @param event packet 5537 * @return shuffle_mode 5538 * @note: btstack_type 1 5539 */ 5540 static inline uint8_t avrcp_subevent_shuffle_and_repeat_mode_get_shuffle_mode(const uint8_t * event){ 5541 return event[7]; 5542 } 5543 5544 /** 5545 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAY_STATUS 5546 * @param event packet 5547 * @return avrcp_cid 5548 * @note: btstack_type 2 5549 */ 5550 static inline uint16_t avrcp_subevent_play_status_get_avrcp_cid(const uint8_t * event){ 5551 return little_endian_read_16(event, 3); 5552 } 5553 /** 5554 * @brief Get field command_type from event AVRCP_SUBEVENT_PLAY_STATUS 5555 * @param event packet 5556 * @return command_type 5557 * @note: btstack_type 1 5558 */ 5559 static inline uint8_t avrcp_subevent_play_status_get_command_type(const uint8_t * event){ 5560 return event[5]; 5561 } 5562 /** 5563 * @brief Get field song_length from event AVRCP_SUBEVENT_PLAY_STATUS 5564 * @param event packet 5565 * @return song_length 5566 * @note: btstack_type 4 5567 */ 5568 static inline uint32_t avrcp_subevent_play_status_get_song_length(const uint8_t * event){ 5569 return little_endian_read_32(event, 6); 5570 } 5571 /** 5572 * @brief Get field song_position from event AVRCP_SUBEVENT_PLAY_STATUS 5573 * @param event packet 5574 * @return song_position 5575 * @note: btstack_type 4 5576 */ 5577 static inline uint32_t avrcp_subevent_play_status_get_song_position(const uint8_t * event){ 5578 return little_endian_read_32(event, 10); 5579 } 5580 /** 5581 * @brief Get field play_status from event AVRCP_SUBEVENT_PLAY_STATUS 5582 * @param event packet 5583 * @return play_status 5584 * @note: btstack_type 1 5585 */ 5586 static inline uint8_t avrcp_subevent_play_status_get_play_status(const uint8_t * event){ 5587 return event[14]; 5588 } 5589 5590 /** 5591 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 5592 * @param event packet 5593 * @return avrcp_cid 5594 * @note: btstack_type 2 5595 */ 5596 static inline uint16_t avrcp_subevent_notification_playback_status_changed_get_avrcp_cid(const uint8_t * event){ 5597 return little_endian_read_16(event, 3); 5598 } 5599 /** 5600 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 5601 * @param event packet 5602 * @return command_type 5603 * @note: btstack_type 1 5604 */ 5605 static inline uint8_t avrcp_subevent_notification_playback_status_changed_get_command_type(const uint8_t * event){ 5606 return event[5]; 5607 } 5608 /** 5609 * @brief Get field play_status from event AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 5610 * @param event packet 5611 * @return play_status 5612 * @note: btstack_type 1 5613 */ 5614 static inline uint8_t avrcp_subevent_notification_playback_status_changed_get_play_status(const uint8_t * event){ 5615 return event[6]; 5616 } 5617 5618 /** 5619 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 5620 * @param event packet 5621 * @return avrcp_cid 5622 * @note: btstack_type 2 5623 */ 5624 static inline uint16_t avrcp_subevent_notification_track_changed_get_avrcp_cid(const uint8_t * event){ 5625 return little_endian_read_16(event, 3); 5626 } 5627 /** 5628 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 5629 * @param event packet 5630 * @return command_type 5631 * @note: btstack_type 1 5632 */ 5633 static inline uint8_t avrcp_subevent_notification_track_changed_get_command_type(const uint8_t * event){ 5634 return event[5]; 5635 } 5636 5637 /** 5638 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 5639 * @param event packet 5640 * @return avrcp_cid 5641 * @note: btstack_type 2 5642 */ 5643 static inline uint16_t avrcp_subevent_notification_now_playing_content_changed_get_avrcp_cid(const uint8_t * event){ 5644 return little_endian_read_16(event, 3); 5645 } 5646 /** 5647 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 5648 * @param event packet 5649 * @return command_type 5650 * @note: btstack_type 1 5651 */ 5652 static inline uint8_t avrcp_subevent_notification_now_playing_content_changed_get_command_type(const uint8_t * event){ 5653 return event[5]; 5654 } 5655 5656 /** 5657 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 5658 * @param event packet 5659 * @return avrcp_cid 5660 * @note: btstack_type 2 5661 */ 5662 static inline uint16_t avrcp_subevent_notification_available_players_changed_get_avrcp_cid(const uint8_t * event){ 5663 return little_endian_read_16(event, 3); 5664 } 5665 /** 5666 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 5667 * @param event packet 5668 * @return command_type 5669 * @note: btstack_type 1 5670 */ 5671 static inline uint8_t avrcp_subevent_notification_available_players_changed_get_command_type(const uint8_t * event){ 5672 return event[5]; 5673 } 5674 5675 /** 5676 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 5677 * @param event packet 5678 * @return avrcp_cid 5679 * @note: btstack_type 2 5680 */ 5681 static inline uint16_t avrcp_subevent_notification_volume_changed_get_avrcp_cid(const uint8_t * event){ 5682 return little_endian_read_16(event, 3); 5683 } 5684 /** 5685 * @brief Get field command_type from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 5686 * @param event packet 5687 * @return command_type 5688 * @note: btstack_type 1 5689 */ 5690 static inline uint8_t avrcp_subevent_notification_volume_changed_get_command_type(const uint8_t * event){ 5691 return event[5]; 5692 } 5693 /** 5694 * @brief Get field absolute_volume from event AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 5695 * @param event packet 5696 * @return absolute_volume 5697 * @note: btstack_type 1 5698 */ 5699 static inline uint8_t avrcp_subevent_notification_volume_changed_get_absolute_volume(const uint8_t * event){ 5700 return event[6]; 5701 } 5702 5703 /** 5704 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 5705 * @param event packet 5706 * @return avrcp_cid 5707 * @note: btstack_type 2 5708 */ 5709 static inline uint16_t avrcp_subevent_set_absolute_volume_response_get_avrcp_cid(const uint8_t * event){ 5710 return little_endian_read_16(event, 3); 5711 } 5712 /** 5713 * @brief Get field command_type from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 5714 * @param event packet 5715 * @return command_type 5716 * @note: btstack_type 1 5717 */ 5718 static inline uint8_t avrcp_subevent_set_absolute_volume_response_get_command_type(const uint8_t * event){ 5719 return event[5]; 5720 } 5721 /** 5722 * @brief Get field absolute_volume from event AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 5723 * @param event packet 5724 * @return absolute_volume 5725 * @note: btstack_type 1 5726 */ 5727 static inline uint8_t avrcp_subevent_set_absolute_volume_response_get_absolute_volume(const uint8_t * event){ 5728 return event[6]; 5729 } 5730 5731 /** 5732 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 5733 * @param event packet 5734 * @return avrcp_cid 5735 * @note: btstack_type 2 5736 */ 5737 static inline uint16_t avrcp_subevent_enable_notification_complete_get_avrcp_cid(const uint8_t * event){ 5738 return little_endian_read_16(event, 3); 5739 } 5740 /** 5741 * @brief Get field command_type from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 5742 * @param event packet 5743 * @return command_type 5744 * @note: btstack_type 1 5745 */ 5746 static inline uint8_t avrcp_subevent_enable_notification_complete_get_command_type(const uint8_t * event){ 5747 return event[5]; 5748 } 5749 /** 5750 * @brief Get field notification_id from event AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 5751 * @param event packet 5752 * @return notification_id 5753 * @note: btstack_type 1 5754 */ 5755 static inline uint8_t avrcp_subevent_enable_notification_complete_get_notification_id(const uint8_t * event){ 5756 return event[6]; 5757 } 5758 5759 /** 5760 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION_START 5761 * @param event packet 5762 * @return avrcp_cid 5763 * @note: btstack_type 2 5764 */ 5765 static inline uint16_t avrcp_subevent_operation_start_get_avrcp_cid(const uint8_t * event){ 5766 return little_endian_read_16(event, 3); 5767 } 5768 /** 5769 * @brief Get field command_type from event AVRCP_SUBEVENT_OPERATION_START 5770 * @param event packet 5771 * @return command_type 5772 * @note: btstack_type 1 5773 */ 5774 static inline uint8_t avrcp_subevent_operation_start_get_command_type(const uint8_t * event){ 5775 return event[5]; 5776 } 5777 /** 5778 * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION_START 5779 * @param event packet 5780 * @return operation_id 5781 * @note: btstack_type 1 5782 */ 5783 static inline uint8_t avrcp_subevent_operation_start_get_operation_id(const uint8_t * event){ 5784 return event[6]; 5785 } 5786 5787 /** 5788 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION_COMPLETE 5789 * @param event packet 5790 * @return avrcp_cid 5791 * @note: btstack_type 2 5792 */ 5793 static inline uint16_t avrcp_subevent_operation_complete_get_avrcp_cid(const uint8_t * event){ 5794 return little_endian_read_16(event, 3); 5795 } 5796 /** 5797 * @brief Get field command_type from event AVRCP_SUBEVENT_OPERATION_COMPLETE 5798 * @param event packet 5799 * @return command_type 5800 * @note: btstack_type 1 5801 */ 5802 static inline uint8_t avrcp_subevent_operation_complete_get_command_type(const uint8_t * event){ 5803 return event[5]; 5804 } 5805 /** 5806 * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION_COMPLETE 5807 * @param event packet 5808 * @return operation_id 5809 * @note: btstack_type 1 5810 */ 5811 static inline uint8_t avrcp_subevent_operation_complete_get_operation_id(const uint8_t * event){ 5812 return event[6]; 5813 } 5814 5815 /** 5816 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 5817 * @param event packet 5818 * @return avrcp_cid 5819 * @note: btstack_type 2 5820 */ 5821 static inline uint16_t avrcp_subevent_player_application_value_response_get_avrcp_cid(const uint8_t * event){ 5822 return little_endian_read_16(event, 3); 5823 } 5824 /** 5825 * @brief Get field command_type from event AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 5826 * @param event packet 5827 * @return command_type 5828 * @note: btstack_type 1 5829 */ 5830 static inline uint8_t avrcp_subevent_player_application_value_response_get_command_type(const uint8_t * event){ 5831 return event[5]; 5832 } 5833 5834 /** 5835 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_COMPANY_IDS_QUERY 5836 * @param event packet 5837 * @return avrcp_cid 5838 * @note: btstack_type 2 5839 */ 5840 static inline uint16_t avrcp_subevent_company_ids_query_get_avrcp_cid(const uint8_t * event){ 5841 return little_endian_read_16(event, 3); 5842 } 5843 5844 /** 5845 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_EVENT_IDS_QUERY 5846 * @param event packet 5847 * @return avrcp_cid 5848 * @note: btstack_type 2 5849 */ 5850 static inline uint16_t avrcp_subevent_event_ids_query_get_avrcp_cid(const uint8_t * event){ 5851 return little_endian_read_16(event, 3); 5852 } 5853 5854 /** 5855 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_PLAY_STATUS_QUERY 5856 * @param event packet 5857 * @return avrcp_cid 5858 * @note: btstack_type 2 5859 */ 5860 static inline uint16_t avrcp_subevent_play_status_query_get_avrcp_cid(const uint8_t * event){ 5861 return little_endian_read_16(event, 3); 5862 } 5863 5864 /** 5865 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_OPERATION 5866 * @param event packet 5867 * @return avrcp_cid 5868 * @note: btstack_type 2 5869 */ 5870 static inline uint16_t avrcp_subevent_operation_get_avrcp_cid(const uint8_t * event){ 5871 return little_endian_read_16(event, 3); 5872 } 5873 /** 5874 * @brief Get field operation_id from event AVRCP_SUBEVENT_OPERATION 5875 * @param event packet 5876 * @return operation_id 5877 * @note: btstack_type 1 5878 */ 5879 static inline uint8_t avrcp_subevent_operation_get_operation_id(const uint8_t * event){ 5880 return event[5]; 5881 } 5882 /** 5883 * @brief Get field operands_length from event AVRCP_SUBEVENT_OPERATION 5884 * @param event packet 5885 * @return operands_length 5886 * @note: btstack_type 1 5887 */ 5888 static inline uint8_t avrcp_subevent_operation_get_operands_length(const uint8_t * event){ 5889 return event[6]; 5890 } 5891 /** 5892 * @brief Get field operand from event AVRCP_SUBEVENT_OPERATION 5893 * @param event packet 5894 * @return operand 5895 * @note: btstack_type 1 5896 */ 5897 static inline uint8_t avrcp_subevent_operation_get_operand(const uint8_t * event){ 5898 return event[7]; 5899 } 5900 5901 /** 5902 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 5903 * @param event packet 5904 * @return avrcp_cid 5905 * @note: btstack_type 2 5906 */ 5907 static inline uint16_t avrcp_subevent_now_playing_track_info_get_avrcp_cid(const uint8_t * event){ 5908 return little_endian_read_16(event, 3); 5909 } 5910 /** 5911 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 5912 * @param event packet 5913 * @return command_type 5914 * @note: btstack_type 1 5915 */ 5916 static inline uint8_t avrcp_subevent_now_playing_track_info_get_command_type(const uint8_t * event){ 5917 return event[5]; 5918 } 5919 /** 5920 * @brief Get field track from event AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 5921 * @param event packet 5922 * @return track 5923 * @note: btstack_type 1 5924 */ 5925 static inline uint8_t avrcp_subevent_now_playing_track_info_get_track(const uint8_t * event){ 5926 return event[6]; 5927 } 5928 5929 /** 5930 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 5931 * @param event packet 5932 * @return avrcp_cid 5933 * @note: btstack_type 2 5934 */ 5935 static inline uint16_t avrcp_subevent_now_playing_total_tracks_info_get_avrcp_cid(const uint8_t * event){ 5936 return little_endian_read_16(event, 3); 5937 } 5938 /** 5939 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 5940 * @param event packet 5941 * @return command_type 5942 * @note: btstack_type 1 5943 */ 5944 static inline uint8_t avrcp_subevent_now_playing_total_tracks_info_get_command_type(const uint8_t * event){ 5945 return event[5]; 5946 } 5947 /** 5948 * @brief Get field total_tracks from event AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 5949 * @param event packet 5950 * @return total_tracks 5951 * @note: btstack_type 1 5952 */ 5953 static inline uint8_t avrcp_subevent_now_playing_total_tracks_info_get_total_tracks(const uint8_t * event){ 5954 return event[6]; 5955 } 5956 5957 /** 5958 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 5959 * @param event packet 5960 * @return avrcp_cid 5961 * @note: btstack_type 2 5962 */ 5963 static inline uint16_t avrcp_subevent_now_playing_song_length_ms_info_get_avrcp_cid(const uint8_t * event){ 5964 return little_endian_read_16(event, 3); 5965 } 5966 /** 5967 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 5968 * @param event packet 5969 * @return command_type 5970 * @note: btstack_type 1 5971 */ 5972 static inline uint8_t avrcp_subevent_now_playing_song_length_ms_info_get_command_type(const uint8_t * event){ 5973 return event[5]; 5974 } 5975 /** 5976 * @brief Get field song_length from event AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 5977 * @param event packet 5978 * @return song_length 5979 * @note: btstack_type 4 5980 */ 5981 static inline uint32_t avrcp_subevent_now_playing_song_length_ms_info_get_song_length(const uint8_t * event){ 5982 return little_endian_read_32(event, 6); 5983 } 5984 5985 /** 5986 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 5987 * @param event packet 5988 * @return avrcp_cid 5989 * @note: btstack_type 2 5990 */ 5991 static inline uint16_t avrcp_subevent_now_playing_title_info_get_avrcp_cid(const uint8_t * event){ 5992 return little_endian_read_16(event, 3); 5993 } 5994 /** 5995 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 5996 * @param event packet 5997 * @return command_type 5998 * @note: btstack_type 1 5999 */ 6000 static inline uint8_t avrcp_subevent_now_playing_title_info_get_command_type(const uint8_t * event){ 6001 return event[5]; 6002 } 6003 /** 6004 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 6005 * @param event packet 6006 * @return value_len 6007 * @note: btstack_type J 6008 */ 6009 static inline int avrcp_subevent_now_playing_title_info_get_value_len(const uint8_t * event){ 6010 return event[6]; 6011 } 6012 /** 6013 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 6014 * @param event packet 6015 * @return value 6016 * @note: btstack_type V 6017 */ 6018 static inline const uint8_t * avrcp_subevent_now_playing_title_info_get_value(const uint8_t * event){ 6019 return &event[7]; 6020 } 6021 6022 /** 6023 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6024 * @param event packet 6025 * @return avrcp_cid 6026 * @note: btstack_type 2 6027 */ 6028 static inline uint16_t avrcp_subevent_now_playing_artist_info_get_avrcp_cid(const uint8_t * event){ 6029 return little_endian_read_16(event, 3); 6030 } 6031 /** 6032 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6033 * @param event packet 6034 * @return command_type 6035 * @note: btstack_type 1 6036 */ 6037 static inline uint8_t avrcp_subevent_now_playing_artist_info_get_command_type(const uint8_t * event){ 6038 return event[5]; 6039 } 6040 /** 6041 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6042 * @param event packet 6043 * @return value_len 6044 * @note: btstack_type J 6045 */ 6046 static inline int avrcp_subevent_now_playing_artist_info_get_value_len(const uint8_t * event){ 6047 return event[6]; 6048 } 6049 /** 6050 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 6051 * @param event packet 6052 * @return value 6053 * @note: btstack_type V 6054 */ 6055 static inline const uint8_t * avrcp_subevent_now_playing_artist_info_get_value(const uint8_t * event){ 6056 return &event[7]; 6057 } 6058 6059 /** 6060 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6061 * @param event packet 6062 * @return avrcp_cid 6063 * @note: btstack_type 2 6064 */ 6065 static inline uint16_t avrcp_subevent_now_playing_album_info_get_avrcp_cid(const uint8_t * event){ 6066 return little_endian_read_16(event, 3); 6067 } 6068 /** 6069 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6070 * @param event packet 6071 * @return command_type 6072 * @note: btstack_type 1 6073 */ 6074 static inline uint8_t avrcp_subevent_now_playing_album_info_get_command_type(const uint8_t * event){ 6075 return event[5]; 6076 } 6077 /** 6078 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6079 * @param event packet 6080 * @return value_len 6081 * @note: btstack_type J 6082 */ 6083 static inline int avrcp_subevent_now_playing_album_info_get_value_len(const uint8_t * event){ 6084 return event[6]; 6085 } 6086 /** 6087 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 6088 * @param event packet 6089 * @return value 6090 * @note: btstack_type V 6091 */ 6092 static inline const uint8_t * avrcp_subevent_now_playing_album_info_get_value(const uint8_t * event){ 6093 return &event[7]; 6094 } 6095 6096 /** 6097 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6098 * @param event packet 6099 * @return avrcp_cid 6100 * @note: btstack_type 2 6101 */ 6102 static inline uint16_t avrcp_subevent_now_playing_genre_info_get_avrcp_cid(const uint8_t * event){ 6103 return little_endian_read_16(event, 3); 6104 } 6105 /** 6106 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6107 * @param event packet 6108 * @return command_type 6109 * @note: btstack_type 1 6110 */ 6111 static inline uint8_t avrcp_subevent_now_playing_genre_info_get_command_type(const uint8_t * event){ 6112 return event[5]; 6113 } 6114 /** 6115 * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6116 * @param event packet 6117 * @return value_len 6118 * @note: btstack_type J 6119 */ 6120 static inline int avrcp_subevent_now_playing_genre_info_get_value_len(const uint8_t * event){ 6121 return event[6]; 6122 } 6123 /** 6124 * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 6125 * @param event packet 6126 * @return value 6127 * @note: btstack_type V 6128 */ 6129 static inline const uint8_t * avrcp_subevent_now_playing_genre_info_get_value(const uint8_t * event){ 6130 return &event[7]; 6131 } 6132 6133 /** 6134 * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 6135 * @param event packet 6136 * @return avrcp_cid 6137 * @note: btstack_type 2 6138 */ 6139 static inline uint16_t avrcp_subevent_now_playing_info_done_get_avrcp_cid(const uint8_t * event){ 6140 return little_endian_read_16(event, 3); 6141 } 6142 /** 6143 * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 6144 * @param event packet 6145 * @return command_type 6146 * @note: btstack_type 1 6147 */ 6148 static inline uint8_t avrcp_subevent_now_playing_info_done_get_command_type(const uint8_t * event){ 6149 return event[5]; 6150 } 6151 /** 6152 * @brief Get field status from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 6153 * @param event packet 6154 * @return status 6155 * @note: btstack_type 1 6156 */ 6157 static inline uint8_t avrcp_subevent_now_playing_info_done_get_status(const uint8_t * event){ 6158 return event[6]; 6159 } 6160 6161 /** 6162 * @brief Get field bd_addr from event AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 6163 * @param event packet 6164 * @param Pointer to storage for bd_addr 6165 * @note: btstack_type B 6166 */ 6167 static inline void avrcp_subevent_incoming_browsing_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6168 reverse_bd_addr(&event[3], bd_addr); 6169 } 6170 /** 6171 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 6172 * @param event packet 6173 * @return browsing_cid 6174 * @note: btstack_type 2 6175 */ 6176 static inline uint16_t avrcp_subevent_incoming_browsing_connection_get_browsing_cid(const uint8_t * event){ 6177 return little_endian_read_16(event, 9); 6178 } 6179 6180 /** 6181 * @brief Get field status from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 6182 * @param event packet 6183 * @return status 6184 * @note: btstack_type 1 6185 */ 6186 static inline uint8_t avrcp_subevent_browsing_connection_established_get_status(const uint8_t * event){ 6187 return event[3]; 6188 } 6189 /** 6190 * @brief Get field bd_addr from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 6191 * @param event packet 6192 * @param Pointer to storage for bd_addr 6193 * @note: btstack_type B 6194 */ 6195 static inline void avrcp_subevent_browsing_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6196 reverse_bd_addr(&event[4], bd_addr); 6197 } 6198 /** 6199 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 6200 * @param event packet 6201 * @return browsing_cid 6202 * @note: btstack_type 2 6203 */ 6204 static inline uint16_t avrcp_subevent_browsing_connection_established_get_browsing_cid(const uint8_t * event){ 6205 return little_endian_read_16(event, 10); 6206 } 6207 6208 /** 6209 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 6210 * @param event packet 6211 * @return browsing_cid 6212 * @note: btstack_type 2 6213 */ 6214 static inline uint16_t avrcp_subevent_browsing_connection_released_get_browsing_cid(const uint8_t * event){ 6215 return little_endian_read_16(event, 3); 6216 } 6217 6218 /** 6219 * @brief Get field browsing_cid from event AVRCP_SUBEVENT_BROWSING_MEDIA_ITEM_DONE 6220 * @param event packet 6221 * @return browsing_cid 6222 * @note: btstack_type 2 6223 */ 6224 static inline uint16_t avrcp_subevent_browsing_media_item_done_get_browsing_cid(const uint8_t * event){ 6225 return little_endian_read_16(event, 3); 6226 } 6227 /** 6228 * @brief Get field browsing_status from event AVRCP_SUBEVENT_BROWSING_MEDIA_ITEM_DONE 6229 * @param event packet 6230 * @return browsing_status 6231 * @note: btstack_type 1 6232 */ 6233 static inline uint8_t avrcp_subevent_browsing_media_item_done_get_browsing_status(const uint8_t * event){ 6234 return event[5]; 6235 } 6236 /** 6237 * @brief Get field bluetooth_status from event AVRCP_SUBEVENT_BROWSING_MEDIA_ITEM_DONE 6238 * @param event packet 6239 * @return bluetooth_status 6240 * @note: btstack_type 1 6241 */ 6242 static inline uint8_t avrcp_subevent_browsing_media_item_done_get_bluetooth_status(const uint8_t * event){ 6243 return event[6]; 6244 } 6245 6246 /** 6247 * @brief Get field goep_cid from event GOEP_SUBEVENT_CONNECTION_OPENED 6248 * @param event packet 6249 * @return goep_cid 6250 * @note: btstack_type 2 6251 */ 6252 static inline uint16_t goep_subevent_connection_opened_get_goep_cid(const uint8_t * event){ 6253 return little_endian_read_16(event, 3); 6254 } 6255 /** 6256 * @brief Get field status from event GOEP_SUBEVENT_CONNECTION_OPENED 6257 * @param event packet 6258 * @return status 6259 * @note: btstack_type 1 6260 */ 6261 static inline uint8_t goep_subevent_connection_opened_get_status(const uint8_t * event){ 6262 return event[5]; 6263 } 6264 /** 6265 * @brief Get field bd_addr from event GOEP_SUBEVENT_CONNECTION_OPENED 6266 * @param event packet 6267 * @param Pointer to storage for bd_addr 6268 * @note: btstack_type B 6269 */ 6270 static inline void goep_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6271 reverse_bd_addr(&event[6], bd_addr); 6272 } 6273 /** 6274 * @brief Get field con_handle from event GOEP_SUBEVENT_CONNECTION_OPENED 6275 * @param event packet 6276 * @return con_handle 6277 * @note: btstack_type H 6278 */ 6279 static inline hci_con_handle_t goep_subevent_connection_opened_get_con_handle(const uint8_t * event){ 6280 return little_endian_read_16(event, 12); 6281 } 6282 /** 6283 * @brief Get field incoming from event GOEP_SUBEVENT_CONNECTION_OPENED 6284 * @param event packet 6285 * @return incoming 6286 * @note: btstack_type 1 6287 */ 6288 static inline uint8_t goep_subevent_connection_opened_get_incoming(const uint8_t * event){ 6289 return event[14]; 6290 } 6291 6292 /** 6293 * @brief Get field goep_cid from event GOEP_SUBEVENT_CONNECTION_CLOSED 6294 * @param event packet 6295 * @return goep_cid 6296 * @note: btstack_type 2 6297 */ 6298 static inline uint16_t goep_subevent_connection_closed_get_goep_cid(const uint8_t * event){ 6299 return little_endian_read_16(event, 3); 6300 } 6301 6302 /** 6303 * @brief Get field goep_cid from event GOEP_SUBEVENT_CAN_SEND_NOW 6304 * @param event packet 6305 * @return goep_cid 6306 * @note: btstack_type 2 6307 */ 6308 static inline uint16_t goep_subevent_can_send_now_get_goep_cid(const uint8_t * event){ 6309 return little_endian_read_16(event, 3); 6310 } 6311 6312 /** 6313 * @brief Get field pbap_cid from event PBAP_SUBEVENT_CONNECTION_OPENED 6314 * @param event packet 6315 * @return pbap_cid 6316 * @note: btstack_type 2 6317 */ 6318 static inline uint16_t pbap_subevent_connection_opened_get_pbap_cid(const uint8_t * event){ 6319 return little_endian_read_16(event, 3); 6320 } 6321 /** 6322 * @brief Get field status from event PBAP_SUBEVENT_CONNECTION_OPENED 6323 * @param event packet 6324 * @return status 6325 * @note: btstack_type 1 6326 */ 6327 static inline uint8_t pbap_subevent_connection_opened_get_status(const uint8_t * event){ 6328 return event[5]; 6329 } 6330 /** 6331 * @brief Get field bd_addr from event PBAP_SUBEVENT_CONNECTION_OPENED 6332 * @param event packet 6333 * @param Pointer to storage for bd_addr 6334 * @note: btstack_type B 6335 */ 6336 static inline void pbap_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6337 reverse_bd_addr(&event[6], bd_addr); 6338 } 6339 /** 6340 * @brief Get field con_handle from event PBAP_SUBEVENT_CONNECTION_OPENED 6341 * @param event packet 6342 * @return con_handle 6343 * @note: btstack_type H 6344 */ 6345 static inline hci_con_handle_t pbap_subevent_connection_opened_get_con_handle(const uint8_t * event){ 6346 return little_endian_read_16(event, 12); 6347 } 6348 /** 6349 * @brief Get field incoming from event PBAP_SUBEVENT_CONNECTION_OPENED 6350 * @param event packet 6351 * @return incoming 6352 * @note: btstack_type 1 6353 */ 6354 static inline uint8_t pbap_subevent_connection_opened_get_incoming(const uint8_t * event){ 6355 return event[14]; 6356 } 6357 6358 /** 6359 * @brief Get field goep_cid from event PBAP_SUBEVENT_CONNECTION_CLOSED 6360 * @param event packet 6361 * @return goep_cid 6362 * @note: btstack_type 2 6363 */ 6364 static inline uint16_t pbap_subevent_connection_closed_get_goep_cid(const uint8_t * event){ 6365 return little_endian_read_16(event, 3); 6366 } 6367 6368 /** 6369 * @brief Get field goep_cid from event PBAP_SUBEVENT_OPERATION_COMPLETED 6370 * @param event packet 6371 * @return goep_cid 6372 * @note: btstack_type 2 6373 */ 6374 static inline uint16_t pbap_subevent_operation_completed_get_goep_cid(const uint8_t * event){ 6375 return little_endian_read_16(event, 3); 6376 } 6377 /** 6378 * @brief Get field status from event PBAP_SUBEVENT_OPERATION_COMPLETED 6379 * @param event packet 6380 * @return status 6381 * @note: btstack_type 1 6382 */ 6383 static inline uint8_t pbap_subevent_operation_completed_get_status(const uint8_t * event){ 6384 return event[5]; 6385 } 6386 6387 /** 6388 * @brief Get field hid_cid from event HID_SUBEVENT_CONNECTION_OPENED 6389 * @param event packet 6390 * @return hid_cid 6391 * @note: btstack_type 2 6392 */ 6393 static inline uint16_t hid_subevent_connection_opened_get_hid_cid(const uint8_t * event){ 6394 return little_endian_read_16(event, 3); 6395 } 6396 /** 6397 * @brief Get field status from event HID_SUBEVENT_CONNECTION_OPENED 6398 * @param event packet 6399 * @return status 6400 * @note: btstack_type 1 6401 */ 6402 static inline uint8_t hid_subevent_connection_opened_get_status(const uint8_t * event){ 6403 return event[5]; 6404 } 6405 /** 6406 * @brief Get field bd_addr from event HID_SUBEVENT_CONNECTION_OPENED 6407 * @param event packet 6408 * @param Pointer to storage for bd_addr 6409 * @note: btstack_type B 6410 */ 6411 static inline void hid_subevent_connection_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 6412 reverse_bd_addr(&event[6], bd_addr); 6413 } 6414 /** 6415 * @brief Get field con_handle from event HID_SUBEVENT_CONNECTION_OPENED 6416 * @param event packet 6417 * @return con_handle 6418 * @note: btstack_type H 6419 */ 6420 static inline hci_con_handle_t hid_subevent_connection_opened_get_con_handle(const uint8_t * event){ 6421 return little_endian_read_16(event, 12); 6422 } 6423 /** 6424 * @brief Get field incoming from event HID_SUBEVENT_CONNECTION_OPENED 6425 * @param event packet 6426 * @return incoming 6427 * @note: btstack_type 1 6428 */ 6429 static inline uint8_t hid_subevent_connection_opened_get_incoming(const uint8_t * event){ 6430 return event[14]; 6431 } 6432 6433 /** 6434 * @brief Get field hid_cid from event HID_SUBEVENT_CONNECTION_CLOSED 6435 * @param event packet 6436 * @return hid_cid 6437 * @note: btstack_type 2 6438 */ 6439 static inline uint16_t hid_subevent_connection_closed_get_hid_cid(const uint8_t * event){ 6440 return little_endian_read_16(event, 3); 6441 } 6442 6443 /** 6444 * @brief Get field hid_cid from event HID_SUBEVENT_CAN_SEND_NOW 6445 * @param event packet 6446 * @return hid_cid 6447 * @note: btstack_type 2 6448 */ 6449 static inline uint16_t hid_subevent_can_send_now_get_hid_cid(const uint8_t * event){ 6450 return little_endian_read_16(event, 3); 6451 } 6452 6453 /** 6454 * @brief Get field con_handle from event HIDS_SUBEVENT_CAN_SEND_NOW 6455 * @param event packet 6456 * @return con_handle 6457 * @note: btstack_type 2 6458 */ 6459 static inline uint16_t hids_subevent_can_send_now_get_con_handle(const uint8_t * event){ 6460 return little_endian_read_16(event, 3); 6461 } 6462 6463 /** 6464 * @brief Get field con_handle from event HIDS_SUBEVENT_PROTOCOL_MODE 6465 * @param event packet 6466 * @return con_handle 6467 * @note: btstack_type 2 6468 */ 6469 static inline uint16_t hids_subevent_protocol_mode_get_con_handle(const uint8_t * event){ 6470 return little_endian_read_16(event, 3); 6471 } 6472 /** 6473 * @brief Get field protocol_mode from event HIDS_SUBEVENT_PROTOCOL_MODE 6474 * @param event packet 6475 * @return protocol_mode 6476 * @note: btstack_type 1 6477 */ 6478 static inline uint8_t hids_subevent_protocol_mode_get_protocol_mode(const uint8_t * event){ 6479 return event[5]; 6480 } 6481 6482 /** 6483 * @brief Get field con_handle from event HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 6484 * @param event packet 6485 * @return con_handle 6486 * @note: btstack_type 2 6487 */ 6488 static inline uint16_t hids_subevent_boot_mouse_input_report_enable_get_con_handle(const uint8_t * event){ 6489 return little_endian_read_16(event, 3); 6490 } 6491 /** 6492 * @brief Get field enable from event HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 6493 * @param event packet 6494 * @return enable 6495 * @note: btstack_type 1 6496 */ 6497 static inline uint8_t hids_subevent_boot_mouse_input_report_enable_get_enable(const uint8_t * event){ 6498 return event[5]; 6499 } 6500 6501 /** 6502 * @brief Get field con_handle from event HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 6503 * @param event packet 6504 * @return con_handle 6505 * @note: btstack_type 2 6506 */ 6507 static inline uint16_t hids_subevent_boot_keyboard_input_report_enable_get_con_handle(const uint8_t * event){ 6508 return little_endian_read_16(event, 3); 6509 } 6510 /** 6511 * @brief Get field enable from event HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 6512 * @param event packet 6513 * @return enable 6514 * @note: btstack_type 1 6515 */ 6516 static inline uint8_t hids_subevent_boot_keyboard_input_report_enable_get_enable(const uint8_t * event){ 6517 return event[5]; 6518 } 6519 6520 /** 6521 * @brief Get field con_handle from event HIDS_SUBEVENT_INPUT_REPORT_ENABLE 6522 * @param event packet 6523 * @return con_handle 6524 * @note: btstack_type 2 6525 */ 6526 static inline uint16_t hids_subevent_input_report_enable_get_con_handle(const uint8_t * event){ 6527 return little_endian_read_16(event, 3); 6528 } 6529 /** 6530 * @brief Get field enable from event HIDS_SUBEVENT_INPUT_REPORT_ENABLE 6531 * @param event packet 6532 * @return enable 6533 * @note: btstack_type 1 6534 */ 6535 static inline uint8_t hids_subevent_input_report_enable_get_enable(const uint8_t * event){ 6536 return event[5]; 6537 } 6538 6539 6540 6541 /* API_END */ 6542 6543 #if defined __cplusplus 6544 } 6545 #endif 6546 6547 #endif // __BTSTACK_EVENT_H 6548