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