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 hsp event 74 * @param event packet 75 * @return subevent_code 76 */ 77 static inline uint8_t hci_event_hsp_meta_get_subevent_code(const uint8_t * event){ 78 return event[2]; 79 } 80 /*** 81 * @brief Get subevent code for hfp event 82 * @param event packet 83 * @return subevent_code 84 */ 85 static inline uint8_t hci_event_hfp_meta_get_subevent_code(const uint8_t * event){ 86 return event[2]; 87 } 88 /*** 89 * @brief Get subevent code for ancs event 90 * @param event packet 91 * @return subevent_code 92 */ 93 static inline uint8_t hci_event_ancs_meta_get_subevent_code(const uint8_t * event){ 94 return event[2]; 95 } 96 /** 97 * @brief Get field status from event hci_event_inquiry_complete 98 * @param event packet 99 * @return status 100 * @note: btstack_type 1 101 */ 102 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){ 103 return event[2]; 104 } 105 106 /** 107 * @brief Get field num_responses from event hci_event_inquiry_result 108 * @param event packet 109 * @return num_responses 110 * @note: btstack_type 1 111 */ 112 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){ 113 return event[2]; 114 } 115 /** 116 * @brief Get field bd_addr from event hci_event_inquiry_result 117 * @param event packet 118 * @param Pointer to storage for bd_addr 119 * @note: btstack_type B 120 */ 121 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 122 reverse_bd_addr(&event[3], bd_addr); 123 } 124 /** 125 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result 126 * @param event packet 127 * @return page_scan_repetition_mode 128 * @note: btstack_type 1 129 */ 130 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 131 return event[9]; 132 } 133 /** 134 * @brief Get field reserved1 from event hci_event_inquiry_result 135 * @param event packet 136 * @return reserved1 137 * @note: btstack_type 1 138 */ 139 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){ 140 return event[10]; 141 } 142 /** 143 * @brief Get field reserved2 from event hci_event_inquiry_result 144 * @param event packet 145 * @return reserved2 146 * @note: btstack_type 1 147 */ 148 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){ 149 return event[11]; 150 } 151 /** 152 * @brief Get field class_of_device from event hci_event_inquiry_result 153 * @param event packet 154 * @return class_of_device 155 * @note: btstack_type 3 156 */ 157 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){ 158 return little_endian_read_24(event, 12); 159 } 160 /** 161 * @brief Get field clock_offset from event hci_event_inquiry_result 162 * @param event packet 163 * @return clock_offset 164 * @note: btstack_type 2 165 */ 166 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){ 167 return little_endian_read_16(event, 15); 168 } 169 170 /** 171 * @brief Get field status from event hci_event_connection_complete 172 * @param event packet 173 * @return status 174 * @note: btstack_type 1 175 */ 176 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){ 177 return event[2]; 178 } 179 /** 180 * @brief Get field connection_handle from event hci_event_connection_complete 181 * @param event packet 182 * @return connection_handle 183 * @note: btstack_type 2 184 */ 185 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){ 186 return little_endian_read_16(event, 3); 187 } 188 /** 189 * @brief Get field bd_addr from event hci_event_connection_complete 190 * @param event packet 191 * @param Pointer to storage for bd_addr 192 * @note: btstack_type B 193 */ 194 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 195 reverse_bd_addr(&event[5], bd_addr); 196 } 197 /** 198 * @brief Get field link_type from event hci_event_connection_complete 199 * @param event packet 200 * @return link_type 201 * @note: btstack_type 1 202 */ 203 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){ 204 return event[11]; 205 } 206 /** 207 * @brief Get field encryption_enabled from event hci_event_connection_complete 208 * @param event packet 209 * @return encryption_enabled 210 * @note: btstack_type 1 211 */ 212 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){ 213 return event[12]; 214 } 215 216 /** 217 * @brief Get field bd_addr from event hci_event_connection_request 218 * @param event packet 219 * @param Pointer to storage for bd_addr 220 * @note: btstack_type B 221 */ 222 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 223 reverse_bd_addr(&event[2], bd_addr); 224 } 225 /** 226 * @brief Get field class_of_device from event hci_event_connection_request 227 * @param event packet 228 * @return class_of_device 229 * @note: btstack_type 3 230 */ 231 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){ 232 return little_endian_read_24(event, 8); 233 } 234 /** 235 * @brief Get field link_type from event hci_event_connection_request 236 * @param event packet 237 * @return link_type 238 * @note: btstack_type 1 239 */ 240 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){ 241 return event[11]; 242 } 243 244 /** 245 * @brief Get field status from event hci_event_disconnection_complete 246 * @param event packet 247 * @return status 248 * @note: btstack_type 1 249 */ 250 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){ 251 return event[2]; 252 } 253 /** 254 * @brief Get field connection_handle from event hci_event_disconnection_complete 255 * @param event packet 256 * @return connection_handle 257 * @note: btstack_type 2 258 */ 259 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){ 260 return little_endian_read_16(event, 3); 261 } 262 /** 263 * @brief Get field reason from event hci_event_disconnection_complete 264 * @param event packet 265 * @return reason 266 * @note: btstack_type 1 267 */ 268 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){ 269 return event[5]; 270 } 271 272 /** 273 * @brief Get field status from event hci_event_authentication_complete_event 274 * @param event packet 275 * @return status 276 * @note: btstack_type 1 277 */ 278 static inline uint8_t hci_event_authentication_complete_event_get_status(const uint8_t * event){ 279 return event[2]; 280 } 281 /** 282 * @brief Get field connection_handle from event hci_event_authentication_complete_event 283 * @param event packet 284 * @return connection_handle 285 * @note: btstack_type 2 286 */ 287 static inline uint16_t hci_event_authentication_complete_event_get_connection_handle(const uint8_t * event){ 288 return little_endian_read_16(event, 3); 289 } 290 291 /** 292 * @brief Get field status from event hci_event_remote_name_request_complete 293 * @param event packet 294 * @return status 295 * @note: btstack_type 1 296 */ 297 // static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){ 298 // not implemented yet 299 // } 300 /** 301 * @brief Get field bd_addr from event hci_event_remote_name_request_complete 302 * @param event packet 303 * @return bd_addr 304 * @note: btstack_type B 305 */ 306 // static inline bd_addr_t hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event){ 307 // not implemented yet 308 // } 309 /** 310 * @brief Get field remote_name from event hci_event_remote_name_request_complete 311 * @param event packet 312 * @return remote_name 313 * @note: btstack_type N 314 */ 315 // static inline String hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){ 316 // not implemented yet 317 // } 318 319 /** 320 * @brief Get field status from event hci_event_encryption_change 321 * @param event packet 322 * @return status 323 * @note: btstack_type 1 324 */ 325 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){ 326 return event[2]; 327 } 328 /** 329 * @brief Get field connection_handle from event hci_event_encryption_change 330 * @param event packet 331 * @return connection_handle 332 * @note: btstack_type 2 333 */ 334 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){ 335 return little_endian_read_16(event, 3); 336 } 337 /** 338 * @brief Get field encryption_enabled from event hci_event_encryption_change 339 * @param event packet 340 * @return encryption_enabled 341 * @note: btstack_type 1 342 */ 343 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){ 344 return event[5]; 345 } 346 347 /** 348 * @brief Get field status from event hci_event_change_connection_link_key_complete 349 * @param event packet 350 * @return status 351 * @note: btstack_type 1 352 */ 353 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){ 354 return event[2]; 355 } 356 /** 357 * @brief Get field connection_handle from event hci_event_change_connection_link_key_complete 358 * @param event packet 359 * @return connection_handle 360 * @note: btstack_type 2 361 */ 362 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){ 363 return little_endian_read_16(event, 3); 364 } 365 366 /** 367 * @brief Get field status from event hci_event_master_link_key_complete 368 * @param event packet 369 * @return status 370 * @note: btstack_type 1 371 */ 372 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){ 373 return event[2]; 374 } 375 /** 376 * @brief Get field connection_handle from event hci_event_master_link_key_complete 377 * @param event packet 378 * @return connection_handle 379 * @note: btstack_type 2 380 */ 381 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){ 382 return little_endian_read_16(event, 3); 383 } 384 /** 385 * @brief Get field key_flag from event hci_event_master_link_key_complete 386 * @param event packet 387 * @return key_flag 388 * @note: btstack_type 1 389 */ 390 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){ 391 return event[5]; 392 } 393 394 /** 395 * @brief Get field num_hci_command_packets from event hci_event_command_complete 396 * @param event packet 397 * @return num_hci_command_packets 398 * @note: btstack_type 1 399 */ 400 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){ 401 return event[2]; 402 } 403 /** 404 * @brief Get field command_opcode from event hci_event_command_complete 405 * @param event packet 406 * @return command_opcode 407 * @note: btstack_type 2 408 */ 409 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){ 410 return little_endian_read_16(event, 3); 411 } 412 /** 413 * @brief Get field return_parameters from event hci_event_command_complete 414 * @param event packet 415 * @return return_parameters 416 * @note: btstack_type R 417 */ 418 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){ 419 return &event[5]; 420 } 421 422 /** 423 * @brief Get field status from event hci_event_command_status 424 * @param event packet 425 * @return status 426 * @note: btstack_type 1 427 */ 428 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){ 429 return event[2]; 430 } 431 /** 432 * @brief Get field num_hci_command_packets from event hci_event_command_status 433 * @param event packet 434 * @return num_hci_command_packets 435 * @note: btstack_type 1 436 */ 437 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){ 438 return event[3]; 439 } 440 /** 441 * @brief Get field command_opcode from event hci_event_command_status 442 * @param event packet 443 * @return command_opcode 444 * @note: btstack_type 2 445 */ 446 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){ 447 return little_endian_read_16(event, 4); 448 } 449 450 /** 451 * @brief Get field hardware_code from event hci_event_hardware_error 452 * @param event packet 453 * @return hardware_code 454 * @note: btstack_type 1 455 */ 456 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){ 457 return event[2]; 458 } 459 460 /** 461 * @brief Get field status from event hci_event_role_change 462 * @param event packet 463 * @return status 464 * @note: btstack_type 1 465 */ 466 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){ 467 return event[2]; 468 } 469 /** 470 * @brief Get field bd_addr from event hci_event_role_change 471 * @param event packet 472 * @param Pointer to storage for bd_addr 473 * @note: btstack_type B 474 */ 475 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 476 reverse_bd_addr(&event[3], bd_addr); 477 } 478 /** 479 * @brief Get field role from event hci_event_role_change 480 * @param event packet 481 * @return role 482 * @note: btstack_type 1 483 */ 484 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){ 485 return event[9]; 486 } 487 488 /** 489 * @brief Get field status from event hci_event_mode_change_event 490 * @param event packet 491 * @return status 492 * @note: btstack_type 1 493 */ 494 static inline uint8_t hci_event_mode_change_event_get_status(const uint8_t * event){ 495 return event[2]; 496 } 497 /** 498 * @brief Get field handle from event hci_event_mode_change_event 499 * @param event packet 500 * @return handle 501 * @note: btstack_type H 502 */ 503 static inline hci_con_handle_t hci_event_mode_change_event_get_handle(const uint8_t * event){ 504 return little_endian_read_16(event, 3); 505 } 506 /** 507 * @brief Get field mode from event hci_event_mode_change_event 508 * @param event packet 509 * @return mode 510 * @note: btstack_type 1 511 */ 512 static inline uint8_t hci_event_mode_change_event_get_mode(const uint8_t * event){ 513 return event[5]; 514 } 515 /** 516 * @brief Get field interval from event hci_event_mode_change_event 517 * @param event packet 518 * @return interval 519 * @note: btstack_type 2 520 */ 521 static inline uint16_t hci_event_mode_change_event_get_interval(const uint8_t * event){ 522 return little_endian_read_16(event, 6); 523 } 524 525 /** 526 * @brief Get field bd_addr from event hci_event_pin_code_request 527 * @param event packet 528 * @param Pointer to storage for bd_addr 529 * @note: btstack_type B 530 */ 531 static inline void hci_event_pin_code_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 532 reverse_bd_addr(&event[2], bd_addr); 533 } 534 535 /** 536 * @brief Get field bd_addr from event hci_event_link_key_request 537 * @param event packet 538 * @param Pointer to storage for bd_addr 539 * @note: btstack_type B 540 */ 541 static inline void hci_event_link_key_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 542 reverse_bd_addr(&event[2], bd_addr); 543 } 544 545 /** 546 * @brief Get field link_type from event hci_event_data_buffer_overflow 547 * @param event packet 548 * @return link_type 549 * @note: btstack_type 1 550 */ 551 static inline uint8_t hci_event_data_buffer_overflow_get_link_type(const uint8_t * event){ 552 return event[2]; 553 } 554 555 /** 556 * @brief Get field handle from event hci_event_max_slots_changed 557 * @param event packet 558 * @return handle 559 * @note: btstack_type H 560 */ 561 static inline hci_con_handle_t hci_event_max_slots_changed_get_handle(const uint8_t * event){ 562 return little_endian_read_16(event, 2); 563 } 564 /** 565 * @brief Get field lmp_max_slots from event hci_event_max_slots_changed 566 * @param event packet 567 * @return lmp_max_slots 568 * @note: btstack_type 1 569 */ 570 static inline uint8_t hci_event_max_slots_changed_get_lmp_max_slots(const uint8_t * event){ 571 return event[4]; 572 } 573 574 /** 575 * @brief Get field status from event hci_event_read_clock_offset_complete 576 * @param event packet 577 * @return status 578 * @note: btstack_type 1 579 */ 580 static inline uint8_t hci_event_read_clock_offset_complete_get_status(const uint8_t * event){ 581 return event[2]; 582 } 583 /** 584 * @brief Get field handle from event hci_event_read_clock_offset_complete 585 * @param event packet 586 * @return handle 587 * @note: btstack_type H 588 */ 589 static inline hci_con_handle_t hci_event_read_clock_offset_complete_get_handle(const uint8_t * event){ 590 return little_endian_read_16(event, 3); 591 } 592 /** 593 * @brief Get field clock_offset from event hci_event_read_clock_offset_complete 594 * @param event packet 595 * @return clock_offset 596 * @note: btstack_type 2 597 */ 598 static inline uint16_t hci_event_read_clock_offset_complete_get_clock_offset(const uint8_t * event){ 599 return little_endian_read_16(event, 5); 600 } 601 602 /** 603 * @brief Get field status from event hci_event_packet_type_changed 604 * @param event packet 605 * @return status 606 * @note: btstack_type 1 607 */ 608 static inline uint8_t hci_event_packet_type_changed_get_status(const uint8_t * event){ 609 return event[2]; 610 } 611 /** 612 * @brief Get field handle from event hci_event_packet_type_changed 613 * @param event packet 614 * @return handle 615 * @note: btstack_type H 616 */ 617 static inline hci_con_handle_t hci_event_packet_type_changed_get_handle(const uint8_t * event){ 618 return little_endian_read_16(event, 3); 619 } 620 /** 621 * @brief Get field packet_type from event hci_event_packet_type_changed 622 * @param event packet 623 * @return packet_type 624 * @note: btstack_type 2 625 */ 626 static inline uint16_t hci_event_packet_type_changed_get_packet_type(const uint8_t * event){ 627 return little_endian_read_16(event, 5); 628 } 629 630 /** 631 * @brief Get field num_responses from event hci_event_inquiry_result_with_rssi 632 * @param event packet 633 * @return num_responses 634 * @note: btstack_type 1 635 */ 636 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){ 637 return event[2]; 638 } 639 /** 640 * @brief Get field bd_addr from event hci_event_inquiry_result_with_rssi 641 * @param event packet 642 * @param Pointer to storage for bd_addr 643 * @note: btstack_type B 644 */ 645 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 646 reverse_bd_addr(&event[3], bd_addr); 647 } 648 /** 649 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result_with_rssi 650 * @param event packet 651 * @return page_scan_repetition_mode 652 * @note: btstack_type 1 653 */ 654 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){ 655 return event[9]; 656 } 657 /** 658 * @brief Get field reserved from event hci_event_inquiry_result_with_rssi 659 * @param event packet 660 * @return reserved 661 * @note: btstack_type 1 662 */ 663 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){ 664 return event[10]; 665 } 666 /** 667 * @brief Get field class_of_device from event hci_event_inquiry_result_with_rssi 668 * @param event packet 669 * @return class_of_device 670 * @note: btstack_type 3 671 */ 672 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){ 673 return little_endian_read_24(event, 11); 674 } 675 /** 676 * @brief Get field clock_offset from event hci_event_inquiry_result_with_rssi 677 * @param event packet 678 * @return clock_offset 679 * @note: btstack_type 2 680 */ 681 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){ 682 return little_endian_read_16(event, 14); 683 } 684 /** 685 * @brief Get field rssi from event hci_event_inquiry_result_with_rssi 686 * @param event packet 687 * @return rssi 688 * @note: btstack_type 1 689 */ 690 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){ 691 return event[16]; 692 } 693 694 /** 695 * @brief Get field status from event hci_event_synchronous_connection_complete 696 * @param event packet 697 * @return status 698 * @note: btstack_type 1 699 */ 700 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){ 701 return event[2]; 702 } 703 /** 704 * @brief Get field handle from event hci_event_synchronous_connection_complete 705 * @param event packet 706 * @return handle 707 * @note: btstack_type H 708 */ 709 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){ 710 return little_endian_read_16(event, 3); 711 } 712 /** 713 * @brief Get field bd_addr from event hci_event_synchronous_connection_complete 714 * @param event packet 715 * @param Pointer to storage for bd_addr 716 * @note: btstack_type B 717 */ 718 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 719 reverse_bd_addr(&event[5], bd_addr); 720 } 721 /** 722 * @brief Get field link_type from event hci_event_synchronous_connection_complete 723 * @param event packet 724 * @return link_type 725 * @note: btstack_type 1 726 */ 727 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){ 728 return event[11]; 729 } 730 /** 731 * @brief Get field transmission_interval from event hci_event_synchronous_connection_complete 732 * @param event packet 733 * @return transmission_interval 734 * @note: btstack_type 1 735 */ 736 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){ 737 return event[12]; 738 } 739 /** 740 * @brief Get field retransmission_interval from event hci_event_synchronous_connection_complete 741 * @param event packet 742 * @return retransmission_interval 743 * @note: btstack_type 1 744 */ 745 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){ 746 return event[13]; 747 } 748 /** 749 * @brief Get field rx_packet_length from event hci_event_synchronous_connection_complete 750 * @param event packet 751 * @return rx_packet_length 752 * @note: btstack_type 2 753 */ 754 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){ 755 return little_endian_read_16(event, 14); 756 } 757 /** 758 * @brief Get field tx_packet_length from event hci_event_synchronous_connection_complete 759 * @param event packet 760 * @return tx_packet_length 761 * @note: btstack_type 2 762 */ 763 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){ 764 return little_endian_read_16(event, 16); 765 } 766 /** 767 * @brief Get field air_mode from event hci_event_synchronous_connection_complete 768 * @param event packet 769 * @return air_mode 770 * @note: btstack_type 1 771 */ 772 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){ 773 return event[18]; 774 } 775 776 /** 777 * @brief Get field num_responses from event hci_event_extended_inquiry_response 778 * @param event packet 779 * @return num_responses 780 * @note: btstack_type 1 781 */ 782 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){ 783 return event[2]; 784 } 785 /** 786 * @brief Get field bd_addr from event hci_event_extended_inquiry_response 787 * @param event packet 788 * @param Pointer to storage for bd_addr 789 * @note: btstack_type B 790 */ 791 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 792 reverse_bd_addr(&event[3], bd_addr); 793 } 794 /** 795 * @brief Get field page_scan_repetition_mode from event hci_event_extended_inquiry_response 796 * @param event packet 797 * @return page_scan_repetition_mode 798 * @note: btstack_type 1 799 */ 800 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){ 801 return event[9]; 802 } 803 /** 804 * @brief Get field reserved from event hci_event_extended_inquiry_response 805 * @param event packet 806 * @return reserved 807 * @note: btstack_type 1 808 */ 809 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){ 810 return event[10]; 811 } 812 /** 813 * @brief Get field class_of_device from event hci_event_extended_inquiry_response 814 * @param event packet 815 * @return class_of_device 816 * @note: btstack_type 3 817 */ 818 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){ 819 return little_endian_read_24(event, 11); 820 } 821 /** 822 * @brief Get field clock_offset from event hci_event_extended_inquiry_response 823 * @param event packet 824 * @return clock_offset 825 * @note: btstack_type 2 826 */ 827 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){ 828 return little_endian_read_16(event, 14); 829 } 830 /** 831 * @brief Get field rssi from event hci_event_extended_inquiry_response 832 * @param event packet 833 * @return rssi 834 * @note: btstack_type 1 835 */ 836 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){ 837 return event[16]; 838 } 839 840 /** 841 * @brief Get field status from event hci_event_encryption_key_refresh_complete 842 * @param event packet 843 * @return status 844 * @note: btstack_type 1 845 */ 846 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){ 847 return event[2]; 848 } 849 /** 850 * @brief Get field handle from event hci_event_encryption_key_refresh_complete 851 * @param event packet 852 * @return handle 853 * @note: btstack_type H 854 */ 855 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){ 856 return little_endian_read_16(event, 3); 857 } 858 859 /** 860 * @brief Get field state from event btstack_event_state 861 * @param event packet 862 * @return state 863 * @note: btstack_type 1 864 */ 865 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){ 866 return event[2]; 867 } 868 869 870 /** 871 * @brief Get field discoverable from event btstack_event_discoverable_enabled 872 * @param event packet 873 * @return discoverable 874 * @note: btstack_type 1 875 */ 876 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){ 877 return event[2]; 878 } 879 880 /** 881 * @brief Get field handle from event hci_event_sco_can_send_now 882 * @param event packet 883 * @param Pointer to storage for handle 884 * @note: btstack_type B 885 */ 886 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){ 887 reverse_bd_addr(&event[2], handle); 888 } 889 890 /** 891 * @brief Get field status from event l2cap_event_channel_opened 892 * @param event packet 893 * @return status 894 * @note: btstack_type 1 895 */ 896 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 897 return event[2]; 898 } 899 /** 900 * @brief Get field address from event l2cap_event_channel_opened 901 * @param event packet 902 * @param Pointer to storage for address 903 * @note: btstack_type B 904 */ 905 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 906 reverse_bd_addr(&event[3], address); 907 } 908 /** 909 * @brief Get field handle from event l2cap_event_channel_opened 910 * @param event packet 911 * @return handle 912 * @note: btstack_type H 913 */ 914 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 915 return little_endian_read_16(event, 9); 916 } 917 /** 918 * @brief Get field psm from event l2cap_event_channel_opened 919 * @param event packet 920 * @return psm 921 * @note: btstack_type 2 922 */ 923 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 924 return little_endian_read_16(event, 11); 925 } 926 /** 927 * @brief Get field local_cid from event l2cap_event_channel_opened 928 * @param event packet 929 * @return local_cid 930 * @note: btstack_type 2 931 */ 932 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 933 return little_endian_read_16(event, 13); 934 } 935 /** 936 * @brief Get field remote_cid from event l2cap_event_channel_opened 937 * @param event packet 938 * @return remote_cid 939 * @note: btstack_type 2 940 */ 941 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 942 return little_endian_read_16(event, 15); 943 } 944 /** 945 * @brief Get field local_mtu from event l2cap_event_channel_opened 946 * @param event packet 947 * @return local_mtu 948 * @note: btstack_type 2 949 */ 950 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 951 return little_endian_read_16(event, 17); 952 } 953 /** 954 * @brief Get field remote_mtu from event l2cap_event_channel_opened 955 * @param event packet 956 * @return remote_mtu 957 * @note: btstack_type 2 958 */ 959 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 960 return little_endian_read_16(event, 19); 961 } 962 /** 963 * @brief Get field flush_timeout from event l2cap_event_channel_opened 964 * @param event packet 965 * @return flush_timeout 966 * @note: btstack_type 2 967 */ 968 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 969 return little_endian_read_16(event, 21); 970 } 971 972 /** 973 * @brief Get field local_cid from event l2cap_event_channel_closed 974 * @param event packet 975 * @return local_cid 976 * @note: btstack_type 2 977 */ 978 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 979 return little_endian_read_16(event, 2); 980 } 981 982 /** 983 * @brief Get field status from event l2cap_event_incoming_connection 984 * @param event packet 985 * @return status 986 * @note: btstack_type 1 987 */ 988 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 989 return event[2]; 990 } 991 /** 992 * @brief Get field address from event l2cap_event_incoming_connection 993 * @param event packet 994 * @param Pointer to storage for address 995 * @note: btstack_type B 996 */ 997 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 998 reverse_bd_addr(&event[3], address); 999 } 1000 /** 1001 * @brief Get field handle from event l2cap_event_incoming_connection 1002 * @param event packet 1003 * @return handle 1004 * @note: btstack_type H 1005 */ 1006 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 1007 return little_endian_read_16(event, 9); 1008 } 1009 /** 1010 * @brief Get field psm from event l2cap_event_incoming_connection 1011 * @param event packet 1012 * @return psm 1013 * @note: btstack_type 2 1014 */ 1015 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 1016 return little_endian_read_16(event, 11); 1017 } 1018 /** 1019 * @brief Get field local_cid from event l2cap_event_incoming_connection 1020 * @param event packet 1021 * @return local_cid 1022 * @note: btstack_type 2 1023 */ 1024 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 1025 return little_endian_read_16(event, 13); 1026 } 1027 /** 1028 * @brief Get field remote_cid from event l2cap_event_incoming_connection 1029 * @param event packet 1030 * @return remote_cid 1031 * @note: btstack_type 2 1032 */ 1033 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 1034 return little_endian_read_16(event, 15); 1035 } 1036 1037 /** 1038 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 1039 * @param event packet 1040 * @return handle 1041 * @note: btstack_type H 1042 */ 1043 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 1044 return little_endian_read_16(event, 2); 1045 } 1046 /** 1047 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 1048 * @param event packet 1049 * @return interval_min 1050 * @note: btstack_type 2 1051 */ 1052 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 1053 return little_endian_read_16(event, 4); 1054 } 1055 /** 1056 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 1057 * @param event packet 1058 * @return interval_max 1059 * @note: btstack_type 2 1060 */ 1061 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 1062 return little_endian_read_16(event, 6); 1063 } 1064 /** 1065 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 1066 * @param event packet 1067 * @return latencey 1068 * @note: btstack_type 2 1069 */ 1070 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 1071 return little_endian_read_16(event, 8); 1072 } 1073 /** 1074 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 1075 * @param event packet 1076 * @return timeout_multiplier 1077 * @note: btstack_type 2 1078 */ 1079 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 1080 return little_endian_read_16(event, 10); 1081 } 1082 1083 /** 1084 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 1085 * @param event packet 1086 * @return handle 1087 * @note: btstack_type H 1088 */ 1089 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 1090 return little_endian_read_16(event, 2); 1091 } 1092 1093 /** 1094 * @brief Get field local_cid from event l2cap_event_can_send_now 1095 * @param event packet 1096 * @return local_cid 1097 * @note: btstack_type 2 1098 */ 1099 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 1100 return little_endian_read_16(event, 2); 1101 } 1102 1103 /** 1104 * @brief Get field status from event rfcomm_event_channel_opened 1105 * @param event packet 1106 * @return status 1107 * @note: btstack_type 1 1108 */ 1109 static inline uint8_t rfcomm_event_channel_opened_get_status(const uint8_t * event){ 1110 return event[2]; 1111 } 1112 /** 1113 * @brief Get field bd_addr from event rfcomm_event_channel_opened 1114 * @param event packet 1115 * @param Pointer to storage for bd_addr 1116 * @note: btstack_type B 1117 */ 1118 static inline void rfcomm_event_channel_opened_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1119 reverse_bd_addr(&event[3], bd_addr); 1120 } 1121 /** 1122 * @brief Get field con_handle from event rfcomm_event_channel_opened 1123 * @param event packet 1124 * @return con_handle 1125 * @note: btstack_type 2 1126 */ 1127 static inline uint16_t rfcomm_event_channel_opened_get_con_handle(const uint8_t * event){ 1128 return little_endian_read_16(event, 9); 1129 } 1130 /** 1131 * @brief Get field server_channel from event rfcomm_event_channel_opened 1132 * @param event packet 1133 * @return server_channel 1134 * @note: btstack_type 1 1135 */ 1136 static inline uint8_t rfcomm_event_channel_opened_get_server_channel(const uint8_t * event){ 1137 return event[11]; 1138 } 1139 /** 1140 * @brief Get field rfcomm_cid from event rfcomm_event_channel_opened 1141 * @param event packet 1142 * @return rfcomm_cid 1143 * @note: btstack_type 2 1144 */ 1145 static inline uint16_t rfcomm_event_channel_opened_get_rfcomm_cid(const uint8_t * event){ 1146 return little_endian_read_16(event, 12); 1147 } 1148 /** 1149 * @brief Get field max_frame_size from event rfcomm_event_channel_opened 1150 * @param event packet 1151 * @return max_frame_size 1152 * @note: btstack_type 2 1153 */ 1154 static inline uint16_t rfcomm_event_channel_opened_get_max_frame_size(const uint8_t * event){ 1155 return little_endian_read_16(event, 14); 1156 } 1157 1158 /** 1159 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 1160 * @param event packet 1161 * @return rfcomm_cid 1162 * @note: btstack_type 2 1163 */ 1164 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 1165 return little_endian_read_16(event, 2); 1166 } 1167 1168 /** 1169 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 1170 * @param event packet 1171 * @param Pointer to storage for bd_addr 1172 * @note: btstack_type B 1173 */ 1174 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1175 reverse_bd_addr(&event[2], bd_addr); 1176 } 1177 /** 1178 * @brief Get field server_channel from event rfcomm_event_incoming_connection 1179 * @param event packet 1180 * @return server_channel 1181 * @note: btstack_type 1 1182 */ 1183 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 1184 return event[8]; 1185 } 1186 /** 1187 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 1188 * @param event packet 1189 * @return rfcomm_cid 1190 * @note: btstack_type 2 1191 */ 1192 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 1193 return little_endian_read_16(event, 9); 1194 } 1195 1196 /** 1197 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 1198 * @param event packet 1199 * @return rfcomm_cid 1200 * @note: btstack_type 2 1201 */ 1202 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 1203 return little_endian_read_16(event, 2); 1204 } 1205 /** 1206 * @brief Get field line_status from event rfcomm_event_remote_line_status 1207 * @param event packet 1208 * @return line_status 1209 * @note: btstack_type 1 1210 */ 1211 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 1212 return event[4]; 1213 } 1214 1215 /** 1216 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 1217 * @param event packet 1218 * @return rfcomm_cid 1219 * @note: btstack_type 2 1220 */ 1221 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 1222 return little_endian_read_16(event, 2); 1223 } 1224 /** 1225 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 1226 * @param event packet 1227 * @return modem_status 1228 * @note: btstack_type 1 1229 */ 1230 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 1231 return event[4]; 1232 } 1233 1234 /** 1235 * @brief Get field rfcomm_cid from event rfcomm_event_can_send_now 1236 * @param event packet 1237 * @return rfcomm_cid 1238 * @note: btstack_type 2 1239 */ 1240 static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t * event){ 1241 return little_endian_read_16(event, 2); 1242 } 1243 1244 /** 1245 * @brief Get field status from event sdp_event_query_complete 1246 * @param event packet 1247 * @return status 1248 * @note: btstack_type 1 1249 */ 1250 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 1251 return event[2]; 1252 } 1253 1254 /** 1255 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 1256 * @param event packet 1257 * @return rfcomm_channel 1258 * @note: btstack_type 1 1259 */ 1260 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 1261 return event[2]; 1262 } 1263 /** 1264 * @brief Get field name from event sdp_event_query_rfcomm_service 1265 * @param event packet 1266 * @return name 1267 * @note: btstack_type T 1268 */ 1269 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 1270 return (const char *) &event[3]; 1271 } 1272 1273 /** 1274 * @brief Get field record_id from event sdp_event_query_attribute_byte 1275 * @param event packet 1276 * @return record_id 1277 * @note: btstack_type 2 1278 */ 1279 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 1280 return little_endian_read_16(event, 2); 1281 } 1282 /** 1283 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 1284 * @param event packet 1285 * @return attribute_id 1286 * @note: btstack_type 2 1287 */ 1288 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 1289 return little_endian_read_16(event, 4); 1290 } 1291 /** 1292 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 1293 * @param event packet 1294 * @return attribute_length 1295 * @note: btstack_type 2 1296 */ 1297 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 1298 return little_endian_read_16(event, 6); 1299 } 1300 /** 1301 * @brief Get field data_offset from event sdp_event_query_attribute_byte 1302 * @param event packet 1303 * @return data_offset 1304 * @note: btstack_type 2 1305 */ 1306 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 1307 return little_endian_read_16(event, 8); 1308 } 1309 /** 1310 * @brief Get field data from event sdp_event_query_attribute_byte 1311 * @param event packet 1312 * @return data 1313 * @note: btstack_type 1 1314 */ 1315 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 1316 return event[10]; 1317 } 1318 1319 /** 1320 * @brief Get field record_id from event sdp_event_query_attribute_value 1321 * @param event packet 1322 * @return record_id 1323 * @note: btstack_type 2 1324 */ 1325 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 1326 return little_endian_read_16(event, 2); 1327 } 1328 /** 1329 * @brief Get field attribute_id from event sdp_event_query_attribute_value 1330 * @param event packet 1331 * @return attribute_id 1332 * @note: btstack_type 2 1333 */ 1334 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 1335 return little_endian_read_16(event, 4); 1336 } 1337 /** 1338 * @brief Get field attribute_length from event sdp_event_query_attribute_value 1339 * @param event packet 1340 * @return attribute_length 1341 * @note: btstack_type L 1342 */ 1343 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 1344 return little_endian_read_16(event, 6); 1345 } 1346 /** 1347 * @brief Get field attribute_value from event sdp_event_query_attribute_value 1348 * @param event packet 1349 * @return attribute_value 1350 * @note: btstack_type V 1351 */ 1352 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 1353 return &event[8]; 1354 } 1355 1356 /** 1357 * @brief Get field total_count from event sdp_event_query_service_record_handle 1358 * @param event packet 1359 * @return total_count 1360 * @note: btstack_type 2 1361 */ 1362 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 1363 return little_endian_read_16(event, 2); 1364 } 1365 /** 1366 * @brief Get field record_index from event sdp_event_query_service_record_handle 1367 * @param event packet 1368 * @return record_index 1369 * @note: btstack_type 2 1370 */ 1371 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 1372 return little_endian_read_16(event, 4); 1373 } 1374 /** 1375 * @brief Get field record_handle from event sdp_event_query_service_record_handle 1376 * @param event packet 1377 * @return record_handle 1378 * @note: btstack_type 4 1379 */ 1380 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 1381 return little_endian_read_32(event, 6); 1382 } 1383 1384 #ifdef ENABLE_BLE 1385 /** 1386 * @brief Get field handle from event gatt_event_query_complete 1387 * @param event packet 1388 * @return handle 1389 * @note: btstack_type H 1390 */ 1391 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 1392 return little_endian_read_16(event, 2); 1393 } 1394 /** 1395 * @brief Get field status from event gatt_event_query_complete 1396 * @param event packet 1397 * @return status 1398 * @note: btstack_type 1 1399 */ 1400 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 1401 return event[4]; 1402 } 1403 #endif 1404 1405 #ifdef ENABLE_BLE 1406 /** 1407 * @brief Get field handle from event gatt_event_service_query_result 1408 * @param event packet 1409 * @return handle 1410 * @note: btstack_type H 1411 */ 1412 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 1413 return little_endian_read_16(event, 2); 1414 } 1415 /** 1416 * @brief Get field service from event gatt_event_service_query_result 1417 * @param event packet 1418 * @param Pointer to storage for service 1419 * @note: btstack_type X 1420 */ 1421 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1422 gatt_client_deserialize_service(event, 4, service); 1423 } 1424 #endif 1425 1426 #ifdef ENABLE_BLE 1427 /** 1428 * @brief Get field handle from event gatt_event_characteristic_query_result 1429 * @param event packet 1430 * @return handle 1431 * @note: btstack_type H 1432 */ 1433 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 1434 return little_endian_read_16(event, 2); 1435 } 1436 /** 1437 * @brief Get field characteristic from event gatt_event_characteristic_query_result 1438 * @param event packet 1439 * @param Pointer to storage for characteristic 1440 * @note: btstack_type Y 1441 */ 1442 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 1443 gatt_client_deserialize_characteristic(event, 4, characteristic); 1444 } 1445 #endif 1446 1447 #ifdef ENABLE_BLE 1448 /** 1449 * @brief Get field handle from event gatt_event_included_service_query_result 1450 * @param event packet 1451 * @return handle 1452 * @note: btstack_type H 1453 */ 1454 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 1455 return little_endian_read_16(event, 2); 1456 } 1457 /** 1458 * @brief Get field include_handle from event gatt_event_included_service_query_result 1459 * @param event packet 1460 * @return include_handle 1461 * @note: btstack_type 2 1462 */ 1463 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 1464 return little_endian_read_16(event, 4); 1465 } 1466 /** 1467 * @brief Get field service from event gatt_event_included_service_query_result 1468 * @param event packet 1469 * @param Pointer to storage for service 1470 * @note: btstack_type X 1471 */ 1472 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1473 gatt_client_deserialize_service(event, 6, service); 1474 } 1475 #endif 1476 1477 #ifdef ENABLE_BLE 1478 /** 1479 * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result 1480 * @param event packet 1481 * @return handle 1482 * @note: btstack_type H 1483 */ 1484 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 1485 return little_endian_read_16(event, 2); 1486 } 1487 /** 1488 * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result 1489 * @param event packet 1490 * @param Pointer to storage for characteristic_descriptor 1491 * @note: btstack_type Z 1492 */ 1493 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 1494 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 1495 } 1496 #endif 1497 1498 #ifdef ENABLE_BLE 1499 /** 1500 * @brief Get field handle from event gatt_event_characteristic_value_query_result 1501 * @param event packet 1502 * @return handle 1503 * @note: btstack_type H 1504 */ 1505 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 1506 return little_endian_read_16(event, 2); 1507 } 1508 /** 1509 * @brief Get field value_handle from event gatt_event_characteristic_value_query_result 1510 * @param event packet 1511 * @return value_handle 1512 * @note: btstack_type 2 1513 */ 1514 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1515 return little_endian_read_16(event, 4); 1516 } 1517 /** 1518 * @brief Get field value_length from event gatt_event_characteristic_value_query_result 1519 * @param event packet 1520 * @return value_length 1521 * @note: btstack_type L 1522 */ 1523 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1524 return little_endian_read_16(event, 6); 1525 } 1526 /** 1527 * @brief Get field value from event gatt_event_characteristic_value_query_result 1528 * @param event packet 1529 * @return value 1530 * @note: btstack_type V 1531 */ 1532 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 1533 return &event[8]; 1534 } 1535 #endif 1536 1537 #ifdef ENABLE_BLE 1538 /** 1539 * @brief Get field handle from event gatt_event_long_characteristic_value_query_result 1540 * @param event packet 1541 * @return handle 1542 * @note: btstack_type H 1543 */ 1544 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 1545 return little_endian_read_16(event, 2); 1546 } 1547 /** 1548 * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result 1549 * @param event packet 1550 * @return value_handle 1551 * @note: btstack_type 2 1552 */ 1553 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1554 return little_endian_read_16(event, 4); 1555 } 1556 /** 1557 * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result 1558 * @param event packet 1559 * @return value_offset 1560 * @note: btstack_type 2 1561 */ 1562 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 1563 return little_endian_read_16(event, 6); 1564 } 1565 /** 1566 * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result 1567 * @param event packet 1568 * @return value_length 1569 * @note: btstack_type L 1570 */ 1571 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1572 return little_endian_read_16(event, 8); 1573 } 1574 /** 1575 * @brief Get field value from event gatt_event_long_characteristic_value_query_result 1576 * @param event packet 1577 * @return value 1578 * @note: btstack_type V 1579 */ 1580 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 1581 return &event[10]; 1582 } 1583 #endif 1584 1585 #ifdef ENABLE_BLE 1586 /** 1587 * @brief Get field handle from event gatt_event_notification 1588 * @param event packet 1589 * @return handle 1590 * @note: btstack_type H 1591 */ 1592 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 1593 return little_endian_read_16(event, 2); 1594 } 1595 /** 1596 * @brief Get field value_handle from event gatt_event_notification 1597 * @param event packet 1598 * @return value_handle 1599 * @note: btstack_type 2 1600 */ 1601 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 1602 return little_endian_read_16(event, 4); 1603 } 1604 /** 1605 * @brief Get field value_length from event gatt_event_notification 1606 * @param event packet 1607 * @return value_length 1608 * @note: btstack_type L 1609 */ 1610 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 1611 return little_endian_read_16(event, 6); 1612 } 1613 /** 1614 * @brief Get field value from event gatt_event_notification 1615 * @param event packet 1616 * @return value 1617 * @note: btstack_type V 1618 */ 1619 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 1620 return &event[8]; 1621 } 1622 #endif 1623 1624 #ifdef ENABLE_BLE 1625 /** 1626 * @brief Get field handle from event gatt_event_indication 1627 * @param event packet 1628 * @return handle 1629 * @note: btstack_type H 1630 */ 1631 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 1632 return little_endian_read_16(event, 2); 1633 } 1634 /** 1635 * @brief Get field value_handle from event gatt_event_indication 1636 * @param event packet 1637 * @return value_handle 1638 * @note: btstack_type 2 1639 */ 1640 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 1641 return little_endian_read_16(event, 4); 1642 } 1643 /** 1644 * @brief Get field value_length from event gatt_event_indication 1645 * @param event packet 1646 * @return value_length 1647 * @note: btstack_type L 1648 */ 1649 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 1650 return little_endian_read_16(event, 6); 1651 } 1652 /** 1653 * @brief Get field value from event gatt_event_indication 1654 * @param event packet 1655 * @return value 1656 * @note: btstack_type V 1657 */ 1658 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 1659 return &event[8]; 1660 } 1661 #endif 1662 1663 #ifdef ENABLE_BLE 1664 /** 1665 * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result 1666 * @param event packet 1667 * @return descriptor_handle 1668 * @note: btstack_type H 1669 */ 1670 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 1671 return little_endian_read_16(event, 2); 1672 } 1673 /** 1674 * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result 1675 * @param event packet 1676 * @return descriptor_length 1677 * @note: btstack_type 2 1678 */ 1679 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1680 return little_endian_read_16(event, 4); 1681 } 1682 /** 1683 * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result 1684 * @param event packet 1685 * @return descriptor 1686 * @note: btstack_type L 1687 */ 1688 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1689 return little_endian_read_16(event, 6); 1690 } 1691 #endif 1692 1693 #ifdef ENABLE_BLE 1694 /** 1695 * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result 1696 * @param event packet 1697 * @return handle 1698 * @note: btstack_type H 1699 */ 1700 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 1701 return little_endian_read_16(event, 2); 1702 } 1703 /** 1704 * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result 1705 * @param event packet 1706 * @return descriptor_offset 1707 * @note: btstack_type 2 1708 */ 1709 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 1710 return little_endian_read_16(event, 4); 1711 } 1712 /** 1713 * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result 1714 * @param event packet 1715 * @return descriptor_length 1716 * @note: btstack_type L 1717 */ 1718 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1719 return little_endian_read_16(event, 6); 1720 } 1721 /** 1722 * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result 1723 * @param event packet 1724 * @return descriptor 1725 * @note: btstack_type V 1726 */ 1727 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1728 return &event[8]; 1729 } 1730 #endif 1731 1732 #ifdef ENABLE_BLE 1733 /** 1734 * @brief Get field handle from event gatt_event_mtu 1735 * @param event packet 1736 * @return handle 1737 * @note: btstack_type H 1738 */ 1739 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 1740 return little_endian_read_16(event, 2); 1741 } 1742 /** 1743 * @brief Get field MTU from event gatt_event_mtu 1744 * @param event packet 1745 * @return MTU 1746 * @note: btstack_type 2 1747 */ 1748 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 1749 return little_endian_read_16(event, 4); 1750 } 1751 #endif 1752 1753 /** 1754 * @brief Get field status from event bnep_event_service_registered 1755 * @param event packet 1756 * @return status 1757 * @note: btstack_type 1 1758 */ 1759 static inline uint8_t bnep_event_service_registered_get_status(const uint8_t * event){ 1760 return event[2]; 1761 } 1762 /** 1763 * @brief Get field service_uuid from event bnep_event_service_registered 1764 * @param event packet 1765 * @return service_uuid 1766 * @note: btstack_type 2 1767 */ 1768 static inline uint16_t bnep_event_service_registered_get_service_uuid(const uint8_t * event){ 1769 return little_endian_read_16(event, 3); 1770 } 1771 1772 /** 1773 * @brief Get field status from event bnep_event_channel_opened 1774 * @param event packet 1775 * @return status 1776 * @note: btstack_type 1 1777 */ 1778 static inline uint8_t bnep_event_channel_opened_get_status(const uint8_t * event){ 1779 return event[2]; 1780 } 1781 /** 1782 * @brief Get field bnep_cid from event bnep_event_channel_opened 1783 * @param event packet 1784 * @return bnep_cid 1785 * @note: btstack_type 2 1786 */ 1787 static inline uint16_t bnep_event_channel_opened_get_bnep_cid(const uint8_t * event){ 1788 return little_endian_read_16(event, 3); 1789 } 1790 /** 1791 * @brief Get field source_uuid from event bnep_event_channel_opened 1792 * @param event packet 1793 * @return source_uuid 1794 * @note: btstack_type 2 1795 */ 1796 static inline uint16_t bnep_event_channel_opened_get_source_uuid(const uint8_t * event){ 1797 return little_endian_read_16(event, 5); 1798 } 1799 /** 1800 * @brief Get field destination_uuid from event bnep_event_channel_opened 1801 * @param event packet 1802 * @return destination_uuid 1803 * @note: btstack_type 2 1804 */ 1805 static inline uint16_t bnep_event_channel_opened_get_destination_uuid(const uint8_t * event){ 1806 return little_endian_read_16(event, 7); 1807 } 1808 /** 1809 * @brief Get field mtu from event bnep_event_channel_opened 1810 * @param event packet 1811 * @return mtu 1812 * @note: btstack_type 2 1813 */ 1814 static inline uint16_t bnep_event_channel_opened_get_mtu(const uint8_t * event){ 1815 return little_endian_read_16(event, 9); 1816 } 1817 /** 1818 * @brief Get field remote_address from event bnep_event_channel_opened 1819 * @param event packet 1820 * @param Pointer to storage for remote_address 1821 * @note: btstack_type B 1822 */ 1823 static inline void bnep_event_channel_opened_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1824 reverse_bd_addr(&event[11], remote_address); 1825 } 1826 1827 /** 1828 * @brief Get field bnep_cid from event bnep_event_channel_closed 1829 * @param event packet 1830 * @return bnep_cid 1831 * @note: btstack_type 2 1832 */ 1833 static inline uint16_t bnep_event_channel_closed_get_bnep_cid(const uint8_t * event){ 1834 return little_endian_read_16(event, 2); 1835 } 1836 /** 1837 * @brief Get field source_uuid from event bnep_event_channel_closed 1838 * @param event packet 1839 * @return source_uuid 1840 * @note: btstack_type 2 1841 */ 1842 static inline uint16_t bnep_event_channel_closed_get_source_uuid(const uint8_t * event){ 1843 return little_endian_read_16(event, 4); 1844 } 1845 /** 1846 * @brief Get field destination_uuid from event bnep_event_channel_closed 1847 * @param event packet 1848 * @return destination_uuid 1849 * @note: btstack_type 2 1850 */ 1851 static inline uint16_t bnep_event_channel_closed_get_destination_uuid(const uint8_t * event){ 1852 return little_endian_read_16(event, 6); 1853 } 1854 /** 1855 * @brief Get field remote_address from event bnep_event_channel_closed 1856 * @param event packet 1857 * @param Pointer to storage for remote_address 1858 * @note: btstack_type B 1859 */ 1860 static inline void bnep_event_channel_closed_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1861 reverse_bd_addr(&event[8], remote_address); 1862 } 1863 1864 /** 1865 * @brief Get field bnep_cid from event bnep_event_channel_timeout 1866 * @param event packet 1867 * @return bnep_cid 1868 * @note: btstack_type 2 1869 */ 1870 static inline uint16_t bnep_event_channel_timeout_get_bnep_cid(const uint8_t * event){ 1871 return little_endian_read_16(event, 2); 1872 } 1873 /** 1874 * @brief Get field source_uuid from event bnep_event_channel_timeout 1875 * @param event packet 1876 * @return source_uuid 1877 * @note: btstack_type 2 1878 */ 1879 static inline uint16_t bnep_event_channel_timeout_get_source_uuid(const uint8_t * event){ 1880 return little_endian_read_16(event, 4); 1881 } 1882 /** 1883 * @brief Get field destination_uuid from event bnep_event_channel_timeout 1884 * @param event packet 1885 * @return destination_uuid 1886 * @note: btstack_type 2 1887 */ 1888 static inline uint16_t bnep_event_channel_timeout_get_destination_uuid(const uint8_t * event){ 1889 return little_endian_read_16(event, 6); 1890 } 1891 /** 1892 * @brief Get field remote_address from event bnep_event_channel_timeout 1893 * @param event packet 1894 * @param Pointer to storage for remote_address 1895 * @note: btstack_type B 1896 */ 1897 static inline void bnep_event_channel_timeout_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1898 reverse_bd_addr(&event[8], remote_address); 1899 } 1900 /** 1901 * @brief Get field channel_state from event bnep_event_channel_timeout 1902 * @param event packet 1903 * @return channel_state 1904 * @note: btstack_type 1 1905 */ 1906 static inline uint8_t bnep_event_channel_timeout_get_channel_state(const uint8_t * event){ 1907 return event[14]; 1908 } 1909 1910 /** 1911 * @brief Get field bnep_cid from event bnep_event_can_send_now 1912 * @param event packet 1913 * @return bnep_cid 1914 * @note: btstack_type 2 1915 */ 1916 static inline uint16_t bnep_event_can_send_now_get_bnep_cid(const uint8_t * event){ 1917 return little_endian_read_16(event, 2); 1918 } 1919 /** 1920 * @brief Get field source_uuid from event bnep_event_can_send_now 1921 * @param event packet 1922 * @return source_uuid 1923 * @note: btstack_type 2 1924 */ 1925 static inline uint16_t bnep_event_can_send_now_get_source_uuid(const uint8_t * event){ 1926 return little_endian_read_16(event, 4); 1927 } 1928 /** 1929 * @brief Get field destination_uuid from event bnep_event_can_send_now 1930 * @param event packet 1931 * @return destination_uuid 1932 * @note: btstack_type 2 1933 */ 1934 static inline uint16_t bnep_event_can_send_now_get_destination_uuid(const uint8_t * event){ 1935 return little_endian_read_16(event, 6); 1936 } 1937 /** 1938 * @brief Get field remote_address from event bnep_event_can_send_now 1939 * @param event packet 1940 * @param Pointer to storage for remote_address 1941 * @note: btstack_type B 1942 */ 1943 static inline void bnep_event_can_send_now_get_remote_address(const uint8_t * event, bd_addr_t remote_address){ 1944 reverse_bd_addr(&event[8], remote_address); 1945 } 1946 1947 #ifdef ENABLE_BLE 1948 /** 1949 * @brief Get field handle from event sm_event_just_works_request 1950 * @param event packet 1951 * @return handle 1952 * @note: btstack_type H 1953 */ 1954 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 1955 return little_endian_read_16(event, 2); 1956 } 1957 /** 1958 * @brief Get field addr_type from event sm_event_just_works_request 1959 * @param event packet 1960 * @return addr_type 1961 * @note: btstack_type 1 1962 */ 1963 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 1964 return event[4]; 1965 } 1966 /** 1967 * @brief Get field address from event sm_event_just_works_request 1968 * @param event packet 1969 * @param Pointer to storage for address 1970 * @note: btstack_type B 1971 */ 1972 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 1973 reverse_bd_addr(&event[5], address); 1974 } 1975 #endif 1976 1977 #ifdef ENABLE_BLE 1978 /** 1979 * @brief Get field handle from event sm_event_just_works_cancel 1980 * @param event packet 1981 * @return handle 1982 * @note: btstack_type H 1983 */ 1984 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 1985 return little_endian_read_16(event, 2); 1986 } 1987 /** 1988 * @brief Get field addr_type from event sm_event_just_works_cancel 1989 * @param event packet 1990 * @return addr_type 1991 * @note: btstack_type 1 1992 */ 1993 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 1994 return event[4]; 1995 } 1996 /** 1997 * @brief Get field address from event sm_event_just_works_cancel 1998 * @param event packet 1999 * @param Pointer to storage for address 2000 * @note: btstack_type B 2001 */ 2002 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2003 reverse_bd_addr(&event[5], address); 2004 } 2005 #endif 2006 2007 #ifdef ENABLE_BLE 2008 /** 2009 * @brief Get field handle from event sm_event_passkey_display_number 2010 * @param event packet 2011 * @return handle 2012 * @note: btstack_type H 2013 */ 2014 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 2015 return little_endian_read_16(event, 2); 2016 } 2017 /** 2018 * @brief Get field addr_type from event sm_event_passkey_display_number 2019 * @param event packet 2020 * @return addr_type 2021 * @note: btstack_type 1 2022 */ 2023 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 2024 return event[4]; 2025 } 2026 /** 2027 * @brief Get field address from event sm_event_passkey_display_number 2028 * @param event packet 2029 * @param Pointer to storage for address 2030 * @note: btstack_type B 2031 */ 2032 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 2033 reverse_bd_addr(&event[5], address); 2034 } 2035 /** 2036 * @brief Get field passkey from event sm_event_passkey_display_number 2037 * @param event packet 2038 * @return passkey 2039 * @note: btstack_type 4 2040 */ 2041 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 2042 return little_endian_read_32(event, 11); 2043 } 2044 #endif 2045 2046 #ifdef ENABLE_BLE 2047 /** 2048 * @brief Get field handle from event sm_event_passkey_display_cancel 2049 * @param event packet 2050 * @return handle 2051 * @note: btstack_type H 2052 */ 2053 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 2054 return little_endian_read_16(event, 2); 2055 } 2056 /** 2057 * @brief Get field addr_type from event sm_event_passkey_display_cancel 2058 * @param event packet 2059 * @return addr_type 2060 * @note: btstack_type 1 2061 */ 2062 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 2063 return event[4]; 2064 } 2065 /** 2066 * @brief Get field address from event sm_event_passkey_display_cancel 2067 * @param event packet 2068 * @param Pointer to storage for address 2069 * @note: btstack_type B 2070 */ 2071 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2072 reverse_bd_addr(&event[5], address); 2073 } 2074 #endif 2075 2076 #ifdef ENABLE_BLE 2077 /** 2078 * @brief Get field handle from event sm_event_passkey_input_number 2079 * @param event packet 2080 * @return handle 2081 * @note: btstack_type H 2082 */ 2083 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 2084 return little_endian_read_16(event, 2); 2085 } 2086 /** 2087 * @brief Get field addr_type from event sm_event_passkey_input_number 2088 * @param event packet 2089 * @return addr_type 2090 * @note: btstack_type 1 2091 */ 2092 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 2093 return event[4]; 2094 } 2095 /** 2096 * @brief Get field address from event sm_event_passkey_input_number 2097 * @param event packet 2098 * @param Pointer to storage for address 2099 * @note: btstack_type B 2100 */ 2101 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 2102 reverse_bd_addr(&event[5], address); 2103 } 2104 #endif 2105 2106 #ifdef ENABLE_BLE 2107 /** 2108 * @brief Get field handle from event sm_event_passkey_input_cancel 2109 * @param event packet 2110 * @return handle 2111 * @note: btstack_type H 2112 */ 2113 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 2114 return little_endian_read_16(event, 2); 2115 } 2116 /** 2117 * @brief Get field addr_type from event sm_event_passkey_input_cancel 2118 * @param event packet 2119 * @return addr_type 2120 * @note: btstack_type 1 2121 */ 2122 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 2123 return event[4]; 2124 } 2125 /** 2126 * @brief Get field address from event sm_event_passkey_input_cancel 2127 * @param event packet 2128 * @param Pointer to storage for address 2129 * @note: btstack_type B 2130 */ 2131 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 2132 reverse_bd_addr(&event[5], address); 2133 } 2134 #endif 2135 2136 #ifdef ENABLE_BLE 2137 /** 2138 * @brief Get field handle from event sm_event_identity_resolving_started 2139 * @param event packet 2140 * @return handle 2141 * @note: btstack_type H 2142 */ 2143 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 2144 return little_endian_read_16(event, 2); 2145 } 2146 /** 2147 * @brief Get field addr_type from event sm_event_identity_resolving_started 2148 * @param event packet 2149 * @return addr_type 2150 * @note: btstack_type 1 2151 */ 2152 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 2153 return event[4]; 2154 } 2155 /** 2156 * @brief Get field address from event sm_event_identity_resolving_started 2157 * @param event packet 2158 * @param Pointer to storage for address 2159 * @note: btstack_type B 2160 */ 2161 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 2162 reverse_bd_addr(&event[5], address); 2163 } 2164 #endif 2165 2166 #ifdef ENABLE_BLE 2167 /** 2168 * @brief Get field handle from event sm_event_identity_resolving_failed 2169 * @param event packet 2170 * @return handle 2171 * @note: btstack_type H 2172 */ 2173 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 2174 return little_endian_read_16(event, 2); 2175 } 2176 /** 2177 * @brief Get field addr_type from event sm_event_identity_resolving_failed 2178 * @param event packet 2179 * @return addr_type 2180 * @note: btstack_type 1 2181 */ 2182 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 2183 return event[4]; 2184 } 2185 /** 2186 * @brief Get field address from event sm_event_identity_resolving_failed 2187 * @param event packet 2188 * @param Pointer to storage for address 2189 * @note: btstack_type B 2190 */ 2191 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 2192 reverse_bd_addr(&event[5], address); 2193 } 2194 #endif 2195 2196 #ifdef ENABLE_BLE 2197 /** 2198 * @brief Get field handle from event sm_event_identity_resolving_succeeded 2199 * @param event packet 2200 * @return handle 2201 * @note: btstack_type H 2202 */ 2203 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 2204 return little_endian_read_16(event, 2); 2205 } 2206 /** 2207 * @brief Get field addr_type from event sm_event_identity_resolving_succeeded 2208 * @param event packet 2209 * @return addr_type 2210 * @note: btstack_type 1 2211 */ 2212 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 2213 return event[4]; 2214 } 2215 /** 2216 * @brief Get field address from event sm_event_identity_resolving_succeeded 2217 * @param event packet 2218 * @param Pointer to storage for address 2219 * @note: btstack_type B 2220 */ 2221 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 2222 reverse_bd_addr(&event[5], address); 2223 } 2224 /** 2225 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 2226 * @param event packet 2227 * @return le_device_db_index 2228 * @note: btstack_type 2 2229 */ 2230 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 2231 return little_endian_read_16(event, 11); 2232 } 2233 #endif 2234 2235 #ifdef ENABLE_BLE 2236 /** 2237 * @brief Get field handle from event sm_event_authorization_request 2238 * @param event packet 2239 * @return handle 2240 * @note: btstack_type H 2241 */ 2242 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 2243 return little_endian_read_16(event, 2); 2244 } 2245 /** 2246 * @brief Get field addr_type from event sm_event_authorization_request 2247 * @param event packet 2248 * @return addr_type 2249 * @note: btstack_type 1 2250 */ 2251 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 2252 return event[4]; 2253 } 2254 /** 2255 * @brief Get field address from event sm_event_authorization_request 2256 * @param event packet 2257 * @param Pointer to storage for address 2258 * @note: btstack_type B 2259 */ 2260 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 2261 reverse_bd_addr(&event[5], address); 2262 } 2263 #endif 2264 2265 #ifdef ENABLE_BLE 2266 /** 2267 * @brief Get field handle from event sm_event_authorization_result 2268 * @param event packet 2269 * @return handle 2270 * @note: btstack_type H 2271 */ 2272 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 2273 return little_endian_read_16(event, 2); 2274 } 2275 /** 2276 * @brief Get field addr_type from event sm_event_authorization_result 2277 * @param event packet 2278 * @return addr_type 2279 * @note: btstack_type 1 2280 */ 2281 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 2282 return event[4]; 2283 } 2284 /** 2285 * @brief Get field address from event sm_event_authorization_result 2286 * @param event packet 2287 * @param Pointer to storage for address 2288 * @note: btstack_type B 2289 */ 2290 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 2291 reverse_bd_addr(&event[5], address); 2292 } 2293 /** 2294 * @brief Get field authorization_result from event sm_event_authorization_result 2295 * @param event packet 2296 * @return authorization_result 2297 * @note: btstack_type 1 2298 */ 2299 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 2300 return event[11]; 2301 } 2302 #endif 2303 2304 /** 2305 * @brief Get field advertising_event_type from event gap_event_advertising_report 2306 * @param event packet 2307 * @return advertising_event_type 2308 * @note: btstack_type 1 2309 */ 2310 static inline uint8_t gap_event_advertising_report_get_advertising_event_type(const uint8_t * event){ 2311 return event[2]; 2312 } 2313 /** 2314 * @brief Get field address_type from event gap_event_advertising_report 2315 * @param event packet 2316 * @return address_type 2317 * @note: btstack_type 1 2318 */ 2319 static inline uint8_t gap_event_advertising_report_get_address_type(const uint8_t * event){ 2320 return event[3]; 2321 } 2322 /** 2323 * @brief Get field address from event gap_event_advertising_report 2324 * @param event packet 2325 * @param Pointer to storage for address 2326 * @note: btstack_type B 2327 */ 2328 static inline void gap_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){ 2329 reverse_bd_addr(&event[4], address); 2330 } 2331 /** 2332 * @brief Get field rssi from event gap_event_advertising_report 2333 * @param event packet 2334 * @return rssi 2335 * @note: btstack_type 1 2336 */ 2337 static inline uint8_t gap_event_advertising_report_get_rssi(const uint8_t * event){ 2338 return event[10]; 2339 } 2340 /** 2341 * @brief Get field data_length from event gap_event_advertising_report 2342 * @param event packet 2343 * @return data_length 2344 * @note: btstack_type J 2345 */ 2346 static inline int gap_event_advertising_report_get_data_length(const uint8_t * event){ 2347 return event[11]; 2348 } 2349 /** 2350 * @brief Get field data from event gap_event_advertising_report 2351 * @param event packet 2352 * @return data 2353 * @note: btstack_type V 2354 */ 2355 static inline const uint8_t * gap_event_advertising_report_get_data(const uint8_t * event){ 2356 return &event[12]; 2357 } 2358 2359 /** 2360 * @brief Get field status from event hci_subevent_le_connection_complete 2361 * @param event packet 2362 * @return status 2363 * @note: btstack_type 1 2364 */ 2365 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){ 2366 return event[3]; 2367 } 2368 /** 2369 * @brief Get field connection_handle from event hci_subevent_le_connection_complete 2370 * @param event packet 2371 * @return connection_handle 2372 * @note: btstack_type H 2373 */ 2374 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){ 2375 return little_endian_read_16(event, 4); 2376 } 2377 /** 2378 * @brief Get field role from event hci_subevent_le_connection_complete 2379 * @param event packet 2380 * @return role 2381 * @note: btstack_type 1 2382 */ 2383 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){ 2384 return event[6]; 2385 } 2386 /** 2387 * @brief Get field peer_address_type from event hci_subevent_le_connection_complete 2388 * @param event packet 2389 * @return peer_address_type 2390 * @note: btstack_type 1 2391 */ 2392 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){ 2393 return event[7]; 2394 } 2395 /** 2396 * @brief Get field peer_address from event hci_subevent_le_connection_complete 2397 * @param event packet 2398 * @param Pointer to storage for peer_address 2399 * @note: btstack_type B 2400 */ 2401 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){ 2402 reverse_bd_addr(&event[8], peer_address); 2403 } 2404 /** 2405 * @brief Get field conn_interval from event hci_subevent_le_connection_complete 2406 * @param event packet 2407 * @return conn_interval 2408 * @note: btstack_type 2 2409 */ 2410 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){ 2411 return little_endian_read_16(event, 14); 2412 } 2413 /** 2414 * @brief Get field conn_latency from event hci_subevent_le_connection_complete 2415 * @param event packet 2416 * @return conn_latency 2417 * @note: btstack_type 2 2418 */ 2419 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){ 2420 return little_endian_read_16(event, 16); 2421 } 2422 /** 2423 * @brief Get field supervision_timeout from event hci_subevent_le_connection_complete 2424 * @param event packet 2425 * @return supervision_timeout 2426 * @note: btstack_type 2 2427 */ 2428 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){ 2429 return little_endian_read_16(event, 18); 2430 } 2431 /** 2432 * @brief Get field master_clock_accuracy from event hci_subevent_le_connection_complete 2433 * @param event packet 2434 * @return master_clock_accuracy 2435 * @note: btstack_type 1 2436 */ 2437 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 2438 return event[20]; 2439 } 2440 2441 /** 2442 * @brief Get field status from event hsp_subevent_rfcomm_connection_complete 2443 * @param event packet 2444 * @return status 2445 * @note: btstack_type 1 2446 */ 2447 static inline uint8_t hsp_subevent_rfcomm_connection_complete_get_status(const uint8_t * event){ 2448 return event[3]; 2449 } 2450 2451 /** 2452 * @brief Get field status from event hsp_subevent_rfcomm_disconnection_complete 2453 * @param event packet 2454 * @return status 2455 * @note: btstack_type 1 2456 */ 2457 static inline uint8_t hsp_subevent_rfcomm_disconnection_complete_get_status(const uint8_t * event){ 2458 return event[3]; 2459 } 2460 2461 /** 2462 * @brief Get field status from event hsp_subevent_audio_connection_complete 2463 * @param event packet 2464 * @return status 2465 * @note: btstack_type 1 2466 */ 2467 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){ 2468 return event[3]; 2469 } 2470 /** 2471 * @brief Get field handle from event hsp_subevent_audio_connection_complete 2472 * @param event packet 2473 * @return handle 2474 * @note: btstack_type H 2475 */ 2476 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){ 2477 return little_endian_read_16(event, 4); 2478 } 2479 2480 /** 2481 * @brief Get field status from event hsp_subevent_audio_disconnection_complete 2482 * @param event packet 2483 * @return status 2484 * @note: btstack_type 1 2485 */ 2486 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){ 2487 return event[3]; 2488 } 2489 2490 2491 /** 2492 * @brief Get field gain from event hsp_subevent_microphone_gain_changed 2493 * @param event packet 2494 * @return gain 2495 * @note: btstack_type 1 2496 */ 2497 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){ 2498 return event[3]; 2499 } 2500 2501 /** 2502 * @brief Get field gain from event hsp_subevent_speaker_gain_changed 2503 * @param event packet 2504 * @return gain 2505 * @note: btstack_type 1 2506 */ 2507 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){ 2508 return event[3]; 2509 } 2510 2511 /** 2512 * @brief Get field value_length from event hsp_subevent_hs_command 2513 * @param event packet 2514 * @return value_length 2515 * @note: btstack_type J 2516 */ 2517 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){ 2518 return event[3]; 2519 } 2520 /** 2521 * @brief Get field value from event hsp_subevent_hs_command 2522 * @param event packet 2523 * @return value 2524 * @note: btstack_type V 2525 */ 2526 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){ 2527 return &event[4]; 2528 } 2529 2530 /** 2531 * @brief Get field value_length from event hsp_subevent_ag_indication 2532 * @param event packet 2533 * @return value_length 2534 * @note: btstack_type J 2535 */ 2536 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){ 2537 return event[3]; 2538 } 2539 /** 2540 * @brief Get field value from event hsp_subevent_ag_indication 2541 * @param event packet 2542 * @return value 2543 * @note: btstack_type V 2544 */ 2545 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){ 2546 return &event[4]; 2547 } 2548 2549 /** 2550 * @brief Get field status from event hfp_subevent_service_level_connection_established 2551 * @param event packet 2552 * @return status 2553 * @note: btstack_type 1 2554 */ 2555 static inline uint8_t hfp_subevent_service_level_connection_established_get_status(const uint8_t * event){ 2556 return event[3]; 2557 } 2558 2559 2560 /** 2561 * @brief Get field status from event hfp_subevent_audio_connection_established 2562 * @param event packet 2563 * @return status 2564 * @note: btstack_type 1 2565 */ 2566 static inline uint8_t hfp_subevent_audio_connection_established_get_status(const uint8_t * event){ 2567 return event[3]; 2568 } 2569 2570 2571 /** 2572 * @brief Get field status from event hfp_subevent_complete 2573 * @param event packet 2574 * @return status 2575 * @note: btstack_type 1 2576 */ 2577 static inline uint8_t hfp_subevent_complete_get_status(const uint8_t * event){ 2578 return event[3]; 2579 } 2580 2581 /** 2582 * @brief Get field indicator_index from event hfp_subevent_ag_indicator_status_changed 2583 * @param event packet 2584 * @return indicator_index 2585 * @note: btstack_type 1 2586 */ 2587 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_index(const uint8_t * event){ 2588 return event[3]; 2589 } 2590 /** 2591 * @brief Get field indicator_status from event hfp_subevent_ag_indicator_status_changed 2592 * @param event packet 2593 * @return indicator_status 2594 * @note: btstack_type 1 2595 */ 2596 static inline uint8_t hfp_subevent_ag_indicator_status_changed_get_indicator_status(const uint8_t * event){ 2597 return event[4]; 2598 } 2599 /** 2600 * @brief Get field indicator_name from event hfp_subevent_ag_indicator_status_changed 2601 * @param event packet 2602 * @return indicator_name 2603 * @note: btstack_type T 2604 */ 2605 static inline const char * hfp_subevent_ag_indicator_status_changed_get_indicator_name(const uint8_t * event){ 2606 return (const char *) &event[5]; 2607 } 2608 2609 /** 2610 * @brief Get field network_operator_mode from event hfp_subevent_network_operator_changed 2611 * @param event packet 2612 * @return network_operator_mode 2613 * @note: btstack_type 1 2614 */ 2615 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_mode(const uint8_t * event){ 2616 return event[3]; 2617 } 2618 /** 2619 * @brief Get field network_operator_format from event hfp_subevent_network_operator_changed 2620 * @param event packet 2621 * @return network_operator_format 2622 * @note: btstack_type 1 2623 */ 2624 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_format(const uint8_t * event){ 2625 return event[4]; 2626 } 2627 /** 2628 * @brief Get field network_operator_name from event hfp_subevent_network_operator_changed 2629 * @param event packet 2630 * @return network_operator_name 2631 * @note: btstack_type 1 2632 */ 2633 static inline uint8_t hfp_subevent_network_operator_changed_get_network_operator_name(const uint8_t * event){ 2634 return event[5]; 2635 } 2636 2637 /** 2638 * @brief Get field error from event hfp_subevent_extended_audio_gateway_error 2639 * @param event packet 2640 * @return error 2641 * @note: btstack_type 1 2642 */ 2643 static inline uint8_t hfp_subevent_extended_audio_gateway_error_get_error(const uint8_t * event){ 2644 return event[3]; 2645 } 2646 2647 /** 2648 * @brief Get field status from event hfp_subevent_codecs_connection_complete 2649 * @param event packet 2650 * @return status 2651 * @note: btstack_type 1 2652 */ 2653 static inline uint8_t hfp_subevent_codecs_connection_complete_get_status(const uint8_t * event){ 2654 return event[3]; 2655 } 2656 2657 2658 2659 2660 /** 2661 * @brief Get field number from event hfp_subevent_place_call_with_number 2662 * @param event packet 2663 * @return number 2664 * @note: btstack_type T 2665 */ 2666 static inline const char * hfp_subevent_place_call_with_number_get_number(const uint8_t * event){ 2667 return (const char *) &event[3]; 2668 } 2669 2670 2671 /** 2672 * @brief Get field number from event hfp_subevent_number_for_voice_tag 2673 * @param event packet 2674 * @return number 2675 * @note: btstack_type T 2676 */ 2677 static inline const char * hfp_subevent_number_for_voice_tag_get_number(const uint8_t * event){ 2678 return (const char *) &event[3]; 2679 } 2680 2681 /** 2682 * @brief Get field dtmf from event hfp_subevent_transmit_dtmf_codes 2683 * @param event packet 2684 * @return dtmf 2685 * @note: btstack_type T 2686 */ 2687 static inline const char * hfp_subevent_transmit_dtmf_codes_get_dtmf(const uint8_t * event){ 2688 return (const char *) &event[3]; 2689 } 2690 2691 2692 2693 2694 /** 2695 * @brief Get field status from event hfp_subevent_speaker_volume 2696 * @param event packet 2697 * @return status 2698 * @note: btstack_type 1 2699 */ 2700 static inline uint8_t hfp_subevent_speaker_volume_get_status(const uint8_t * event){ 2701 return event[3]; 2702 } 2703 /** 2704 * @brief Get field gain from event hfp_subevent_speaker_volume 2705 * @param event packet 2706 * @return gain 2707 * @note: btstack_type 1 2708 */ 2709 static inline uint8_t hfp_subevent_speaker_volume_get_gain(const uint8_t * event){ 2710 return event[4]; 2711 } 2712 2713 /** 2714 * @brief Get field status from event hfp_subevent_microphone_volume 2715 * @param event packet 2716 * @return status 2717 * @note: btstack_type 1 2718 */ 2719 static inline uint8_t hfp_subevent_microphone_volume_get_status(const uint8_t * event){ 2720 return event[3]; 2721 } 2722 /** 2723 * @brief Get field gain from event hfp_subevent_microphone_volume 2724 * @param event packet 2725 * @return gain 2726 * @note: btstack_type 1 2727 */ 2728 static inline uint8_t hfp_subevent_microphone_volume_get_gain(const uint8_t * event){ 2729 return event[4]; 2730 } 2731 2732 /** 2733 * @brief Get field type from event hfp_subevent_call_waiting_notification 2734 * @param event packet 2735 * @return type 2736 * @note: btstack_type 1 2737 */ 2738 static inline uint8_t hfp_subevent_call_waiting_notification_get_type(const uint8_t * event){ 2739 return event[3]; 2740 } 2741 /** 2742 * @brief Get field number from event hfp_subevent_call_waiting_notification 2743 * @param event packet 2744 * @return number 2745 * @note: btstack_type T 2746 */ 2747 static inline const char * hfp_subevent_call_waiting_notification_get_number(const uint8_t * event){ 2748 return (const char *) &event[4]; 2749 } 2750 2751 /** 2752 * @brief Get field type from event hfp_subevent_calling_line_indetification_notification 2753 * @param event packet 2754 * @return type 2755 * @note: btstack_type 1 2756 */ 2757 static inline uint8_t hfp_subevent_calling_line_indetification_notification_get_type(const uint8_t * event){ 2758 return event[3]; 2759 } 2760 /** 2761 * @brief Get field number from event hfp_subevent_calling_line_indetification_notification 2762 * @param event packet 2763 * @return number 2764 * @note: btstack_type T 2765 */ 2766 static inline const char * hfp_subevent_calling_line_indetification_notification_get_number(const uint8_t * event){ 2767 return (const char *) &event[4]; 2768 } 2769 2770 /** 2771 * @brief Get field clcc_idx from event hfp_subevent_enhanced_call_status 2772 * @param event packet 2773 * @return clcc_idx 2774 * @note: btstack_type 1 2775 */ 2776 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_idx(const uint8_t * event){ 2777 return event[3]; 2778 } 2779 /** 2780 * @brief Get field clcc_dir from event hfp_subevent_enhanced_call_status 2781 * @param event packet 2782 * @return clcc_dir 2783 * @note: btstack_type 1 2784 */ 2785 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_dir(const uint8_t * event){ 2786 return event[4]; 2787 } 2788 /** 2789 * @brief Get field clcc_status from event hfp_subevent_enhanced_call_status 2790 * @param event packet 2791 * @return clcc_status 2792 * @note: btstack_type 1 2793 */ 2794 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_status(const uint8_t * event){ 2795 return event[5]; 2796 } 2797 /** 2798 * @brief Get field clcc_mpty from event hfp_subevent_enhanced_call_status 2799 * @param event packet 2800 * @return clcc_mpty 2801 * @note: btstack_type 1 2802 */ 2803 static inline uint8_t hfp_subevent_enhanced_call_status_get_clcc_mpty(const uint8_t * event){ 2804 return event[6]; 2805 } 2806 /** 2807 * @brief Get field bnip_type from event hfp_subevent_enhanced_call_status 2808 * @param event packet 2809 * @return bnip_type 2810 * @note: btstack_type 1 2811 */ 2812 static inline uint8_t hfp_subevent_enhanced_call_status_get_bnip_type(const uint8_t * event){ 2813 return event[7]; 2814 } 2815 /** 2816 * @brief Get field bnip_number from event hfp_subevent_enhanced_call_status 2817 * @param event packet 2818 * @return bnip_number 2819 * @note: btstack_type T 2820 */ 2821 static inline const char * hfp_subevent_enhanced_call_status_get_bnip_number(const uint8_t * event){ 2822 return (const char *) &event[8]; 2823 } 2824 2825 /** 2826 * @brief Get field status from event hfp_subevent_subscriber_number_information 2827 * @param event packet 2828 * @return status 2829 * @note: btstack_type 1 2830 */ 2831 static inline uint8_t hfp_subevent_subscriber_number_information_get_status(const uint8_t * event){ 2832 return event[3]; 2833 } 2834 /** 2835 * @brief Get field bnip_type from event hfp_subevent_subscriber_number_information 2836 * @param event packet 2837 * @return bnip_type 2838 * @note: btstack_type 1 2839 */ 2840 static inline uint8_t hfp_subevent_subscriber_number_information_get_bnip_type(const uint8_t * event){ 2841 return event[4]; 2842 } 2843 /** 2844 * @brief Get field bnip_number from event hfp_subevent_subscriber_number_information 2845 * @param event packet 2846 * @return bnip_number 2847 * @note: btstack_type T 2848 */ 2849 static inline const char * hfp_subevent_subscriber_number_information_get_bnip_number(const uint8_t * event){ 2850 return (const char *) &event[5]; 2851 } 2852 2853 /** 2854 * @brief Get field value from event hfp_subevent_response_and_hold_status 2855 * @param event packet 2856 * @return value 2857 * @note: btstack_type T 2858 */ 2859 static inline const char * hfp_subevent_response_and_hold_status_get_value(const uint8_t * event){ 2860 return (const char *) &event[3]; 2861 } 2862 2863 #ifdef ENABLE_BLE 2864 /** 2865 * @brief Get field handle from event ancs_subevent_client_connected 2866 * @param event packet 2867 * @return handle 2868 * @note: btstack_type H 2869 */ 2870 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 2871 return little_endian_read_16(event, 3); 2872 } 2873 #endif 2874 2875 #ifdef ENABLE_BLE 2876 /** 2877 * @brief Get field handle from event ancs_subevent_client_notification 2878 * @param event packet 2879 * @return handle 2880 * @note: btstack_type H 2881 */ 2882 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 2883 return little_endian_read_16(event, 3); 2884 } 2885 /** 2886 * @brief Get field attribute_id from event ancs_subevent_client_notification 2887 * @param event packet 2888 * @return attribute_id 2889 * @note: btstack_type 2 2890 */ 2891 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 2892 return little_endian_read_16(event, 5); 2893 } 2894 /** 2895 * @brief Get field text from event ancs_subevent_client_notification 2896 * @param event packet 2897 * @return text 2898 * @note: btstack_type T 2899 */ 2900 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 2901 return (const char *) &event[7]; 2902 } 2903 #endif 2904 2905 #ifdef ENABLE_BLE 2906 /** 2907 * @brief Get field handle from event ancs_subevent_client_disconnected 2908 * @param event packet 2909 * @return handle 2910 * @note: btstack_type H 2911 */ 2912 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 2913 return little_endian_read_16(event, 3); 2914 } 2915 #endif 2916 2917 2918 2919 /* API_END */ 2920 2921 #if defined __cplusplus 2922 } 2923 #endif 2924 2925 #endif // __BTSTACK_EVENT_H 2926