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 num_responses from event hci_event_inquiry_result_with_rssi 490 * @param event packet 491 * @return num_responses 492 * @note: btstack_type 1 493 */ 494 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){ 495 return event[2]; 496 } 497 /** 498 * @brief Get field bd_addr from event hci_event_inquiry_result_with_rssi 499 * @param event packet 500 * @param Pointer to storage for bd_addr 501 * @note: btstack_type B 502 */ 503 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 504 reverse_bd_addr(&event[3], bd_addr); 505 } 506 /** 507 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result_with_rssi 508 * @param event packet 509 * @return page_scan_repetition_mode 510 * @note: btstack_type 1 511 */ 512 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){ 513 return event[9]; 514 } 515 /** 516 * @brief Get field reserved from event hci_event_inquiry_result_with_rssi 517 * @param event packet 518 * @return reserved 519 * @note: btstack_type 1 520 */ 521 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){ 522 return event[10]; 523 } 524 /** 525 * @brief Get field class_of_device from event hci_event_inquiry_result_with_rssi 526 * @param event packet 527 * @return class_of_device 528 * @note: btstack_type 3 529 */ 530 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){ 531 return little_endian_read_24(event, 11); 532 } 533 /** 534 * @brief Get field clock_offset from event hci_event_inquiry_result_with_rssi 535 * @param event packet 536 * @return clock_offset 537 * @note: btstack_type 2 538 */ 539 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){ 540 return little_endian_read_16(event, 14); 541 } 542 /** 543 * @brief Get field rssi from event hci_event_inquiry_result_with_rssi 544 * @param event packet 545 * @return rssi 546 * @note: btstack_type 1 547 */ 548 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){ 549 return event[16]; 550 } 551 552 /** 553 * @brief Get field status from event hci_event_synchronous_connection_complete 554 * @param event packet 555 * @return status 556 * @note: btstack_type 1 557 */ 558 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){ 559 return event[2]; 560 } 561 /** 562 * @brief Get field handle from event hci_event_synchronous_connection_complete 563 * @param event packet 564 * @return handle 565 * @note: btstack_type H 566 */ 567 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){ 568 return little_endian_read_16(event, 3); 569 } 570 /** 571 * @brief Get field bd_addr from event hci_event_synchronous_connection_complete 572 * @param event packet 573 * @param Pointer to storage for bd_addr 574 * @note: btstack_type B 575 */ 576 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 577 reverse_bd_addr(&event[5], bd_addr); 578 } 579 /** 580 * @brief Get field link_type from event hci_event_synchronous_connection_complete 581 * @param event packet 582 * @return link_type 583 * @note: btstack_type 1 584 */ 585 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){ 586 return event[11]; 587 } 588 /** 589 * @brief Get field transmission_interval from event hci_event_synchronous_connection_complete 590 * @param event packet 591 * @return transmission_interval 592 * @note: btstack_type 1 593 */ 594 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){ 595 return event[12]; 596 } 597 /** 598 * @brief Get field retransmission_interval from event hci_event_synchronous_connection_complete 599 * @param event packet 600 * @return retransmission_interval 601 * @note: btstack_type 1 602 */ 603 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){ 604 return event[13]; 605 } 606 /** 607 * @brief Get field rx_packet_length from event hci_event_synchronous_connection_complete 608 * @param event packet 609 * @return rx_packet_length 610 * @note: btstack_type 2 611 */ 612 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){ 613 return little_endian_read_16(event, 14); 614 } 615 /** 616 * @brief Get field tx_packet_length from event hci_event_synchronous_connection_complete 617 * @param event packet 618 * @return tx_packet_length 619 * @note: btstack_type 2 620 */ 621 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){ 622 return little_endian_read_16(event, 16); 623 } 624 /** 625 * @brief Get field air_mode from event hci_event_synchronous_connection_complete 626 * @param event packet 627 * @return air_mode 628 * @note: btstack_type 1 629 */ 630 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){ 631 return event[18]; 632 } 633 634 /** 635 * @brief Get field num_responses from event hci_event_extended_inquiry_response 636 * @param event packet 637 * @return num_responses 638 * @note: btstack_type 1 639 */ 640 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){ 641 return event[2]; 642 } 643 /** 644 * @brief Get field bd_addr from event hci_event_extended_inquiry_response 645 * @param event packet 646 * @param Pointer to storage for bd_addr 647 * @note: btstack_type B 648 */ 649 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 650 reverse_bd_addr(&event[3], bd_addr); 651 } 652 /** 653 * @brief Get field page_scan_repetition_mode from event hci_event_extended_inquiry_response 654 * @param event packet 655 * @return page_scan_repetition_mode 656 * @note: btstack_type 1 657 */ 658 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){ 659 return event[9]; 660 } 661 /** 662 * @brief Get field reserved from event hci_event_extended_inquiry_response 663 * @param event packet 664 * @return reserved 665 * @note: btstack_type 1 666 */ 667 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){ 668 return event[10]; 669 } 670 /** 671 * @brief Get field class_of_device from event hci_event_extended_inquiry_response 672 * @param event packet 673 * @return class_of_device 674 * @note: btstack_type 3 675 */ 676 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){ 677 return little_endian_read_24(event, 11); 678 } 679 /** 680 * @brief Get field clock_offset from event hci_event_extended_inquiry_response 681 * @param event packet 682 * @return clock_offset 683 * @note: btstack_type 2 684 */ 685 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){ 686 return little_endian_read_16(event, 14); 687 } 688 /** 689 * @brief Get field rssi from event hci_event_extended_inquiry_response 690 * @param event packet 691 * @return rssi 692 * @note: btstack_type 1 693 */ 694 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){ 695 return event[16]; 696 } 697 698 /** 699 * @brief Get field status from event hci_event_encryption_key_refresh_complete 700 * @param event packet 701 * @return status 702 * @note: btstack_type 1 703 */ 704 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){ 705 return event[2]; 706 } 707 /** 708 * @brief Get field handle from event hci_event_encryption_key_refresh_complete 709 * @param event packet 710 * @return handle 711 * @note: btstack_type H 712 */ 713 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){ 714 return little_endian_read_16(event, 3); 715 } 716 717 /** 718 * @brief Get field subevent_code from event hci_subevent_le_connection_complete 719 * @param event packet 720 * @return subevent_code 721 * @note: btstack_type 1 722 */ 723 static inline uint8_t hci_subevent_le_connection_complete_get_subevent_code(const uint8_t * event){ 724 return event[2]; 725 } 726 /** 727 * @brief Get field status from event hci_subevent_le_connection_complete 728 * @param event packet 729 * @return status 730 * @note: btstack_type 1 731 */ 732 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){ 733 return event[3]; 734 } 735 /** 736 * @brief Get field connection_handle from event hci_subevent_le_connection_complete 737 * @param event packet 738 * @return connection_handle 739 * @note: btstack_type H 740 */ 741 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){ 742 return little_endian_read_16(event, 4); 743 } 744 /** 745 * @brief Get field role from event hci_subevent_le_connection_complete 746 * @param event packet 747 * @return role 748 * @note: btstack_type 1 749 */ 750 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){ 751 return event[6]; 752 } 753 /** 754 * @brief Get field peer_address_type from event hci_subevent_le_connection_complete 755 * @param event packet 756 * @return peer_address_type 757 * @note: btstack_type 1 758 */ 759 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){ 760 return event[7]; 761 } 762 /** 763 * @brief Get field peer_address from event hci_subevent_le_connection_complete 764 * @param event packet 765 * @param Pointer to storage for peer_address 766 * @note: btstack_type B 767 */ 768 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){ 769 reverse_bd_addr(&event[8], peer_address); 770 } 771 /** 772 * @brief Get field conn_interval from event hci_subevent_le_connection_complete 773 * @param event packet 774 * @return conn_interval 775 * @note: btstack_type 2 776 */ 777 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){ 778 return little_endian_read_16(event, 14); 779 } 780 /** 781 * @brief Get field conn_latency from event hci_subevent_le_connection_complete 782 * @param event packet 783 * @return conn_latency 784 * @note: btstack_type 2 785 */ 786 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){ 787 return little_endian_read_16(event, 16); 788 } 789 /** 790 * @brief Get field supervision_timeout from event hci_subevent_le_connection_complete 791 * @param event packet 792 * @return supervision_timeout 793 * @note: btstack_type 2 794 */ 795 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){ 796 return little_endian_read_16(event, 18); 797 } 798 /** 799 * @brief Get field master_clock_accuracy from event hci_subevent_le_connection_complete 800 * @param event packet 801 * @return master_clock_accuracy 802 * @note: btstack_type 1 803 */ 804 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 805 return event[20]; 806 } 807 808 /** 809 * @brief Get field state from event btstack_event_state 810 * @param event packet 811 * @return state 812 * @note: btstack_type 1 813 */ 814 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){ 815 return event[2]; 816 } 817 818 819 /** 820 * @brief Get field discoverable from event btstack_event_discoverable_enabled 821 * @param event packet 822 * @return discoverable 823 * @note: btstack_type 1 824 */ 825 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){ 826 return event[2]; 827 } 828 829 /** 830 * @brief Get field handle from event hci_event_sco_can_send_now 831 * @param event packet 832 * @param Pointer to storage for handle 833 * @note: btstack_type B 834 */ 835 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){ 836 reverse_bd_addr(&event[2], handle); 837 } 838 839 /** 840 * @brief Get field status from event l2cap_event_channel_opened 841 * @param event packet 842 * @return status 843 * @note: btstack_type 1 844 */ 845 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 846 return event[2]; 847 } 848 /** 849 * @brief Get field address from event l2cap_event_channel_opened 850 * @param event packet 851 * @param Pointer to storage for address 852 * @note: btstack_type B 853 */ 854 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 855 reverse_bd_addr(&event[3], address); 856 } 857 /** 858 * @brief Get field handle from event l2cap_event_channel_opened 859 * @param event packet 860 * @return handle 861 * @note: btstack_type H 862 */ 863 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 864 return little_endian_read_16(event, 9); 865 } 866 /** 867 * @brief Get field psm from event l2cap_event_channel_opened 868 * @param event packet 869 * @return psm 870 * @note: btstack_type 2 871 */ 872 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 873 return little_endian_read_16(event, 11); 874 } 875 /** 876 * @brief Get field local_cid from event l2cap_event_channel_opened 877 * @param event packet 878 * @return local_cid 879 * @note: btstack_type 2 880 */ 881 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 882 return little_endian_read_16(event, 13); 883 } 884 /** 885 * @brief Get field remote_cid from event l2cap_event_channel_opened 886 * @param event packet 887 * @return remote_cid 888 * @note: btstack_type 2 889 */ 890 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 891 return little_endian_read_16(event, 15); 892 } 893 /** 894 * @brief Get field local_mtu from event l2cap_event_channel_opened 895 * @param event packet 896 * @return local_mtu 897 * @note: btstack_type 2 898 */ 899 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 900 return little_endian_read_16(event, 17); 901 } 902 /** 903 * @brief Get field remote_mtu from event l2cap_event_channel_opened 904 * @param event packet 905 * @return remote_mtu 906 * @note: btstack_type 2 907 */ 908 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 909 return little_endian_read_16(event, 19); 910 } 911 /** 912 * @brief Get field flush_timeout from event l2cap_event_channel_opened 913 * @param event packet 914 * @return flush_timeout 915 * @note: btstack_type 2 916 */ 917 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 918 return little_endian_read_16(event, 21); 919 } 920 921 /** 922 * @brief Get field local_cid from event l2cap_event_channel_closed 923 * @param event packet 924 * @return local_cid 925 * @note: btstack_type 2 926 */ 927 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 928 return little_endian_read_16(event, 2); 929 } 930 931 /** 932 * @brief Get field status from event l2cap_event_incoming_connection 933 * @param event packet 934 * @return status 935 * @note: btstack_type 1 936 */ 937 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 938 return event[2]; 939 } 940 /** 941 * @brief Get field address from event l2cap_event_incoming_connection 942 * @param event packet 943 * @param Pointer to storage for address 944 * @note: btstack_type B 945 */ 946 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 947 reverse_bd_addr(&event[3], address); 948 } 949 /** 950 * @brief Get field handle from event l2cap_event_incoming_connection 951 * @param event packet 952 * @return handle 953 * @note: btstack_type H 954 */ 955 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 956 return little_endian_read_16(event, 9); 957 } 958 /** 959 * @brief Get field psm from event l2cap_event_incoming_connection 960 * @param event packet 961 * @return psm 962 * @note: btstack_type 2 963 */ 964 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 965 return little_endian_read_16(event, 11); 966 } 967 /** 968 * @brief Get field local_cid from event l2cap_event_incoming_connection 969 * @param event packet 970 * @return local_cid 971 * @note: btstack_type 2 972 */ 973 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 974 return little_endian_read_16(event, 13); 975 } 976 /** 977 * @brief Get field remote_cid from event l2cap_event_incoming_connection 978 * @param event packet 979 * @return remote_cid 980 * @note: btstack_type 2 981 */ 982 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 983 return little_endian_read_16(event, 15); 984 } 985 986 /** 987 * @brief Get field status from event l2cap_event_service_registered 988 * @param event packet 989 * @return status 990 * @note: btstack_type 1 991 */ 992 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){ 993 return event[2]; 994 } 995 /** 996 * @brief Get field psm from event l2cap_event_service_registered 997 * @param event packet 998 * @return psm 999 * @note: btstack_type 2 1000 */ 1001 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){ 1002 return little_endian_read_16(event, 3); 1003 } 1004 1005 /** 1006 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 1007 * @param event packet 1008 * @return handle 1009 * @note: btstack_type H 1010 */ 1011 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 1012 return little_endian_read_16(event, 2); 1013 } 1014 /** 1015 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 1016 * @param event packet 1017 * @return interval_min 1018 * @note: btstack_type 2 1019 */ 1020 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 1021 return little_endian_read_16(event, 4); 1022 } 1023 /** 1024 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 1025 * @param event packet 1026 * @return interval_max 1027 * @note: btstack_type 2 1028 */ 1029 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 1030 return little_endian_read_16(event, 6); 1031 } 1032 /** 1033 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 1034 * @param event packet 1035 * @return latencey 1036 * @note: btstack_type 2 1037 */ 1038 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 1039 return little_endian_read_16(event, 8); 1040 } 1041 /** 1042 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 1043 * @param event packet 1044 * @return timeout_multiplier 1045 * @note: btstack_type 2 1046 */ 1047 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 1048 return little_endian_read_16(event, 10); 1049 } 1050 1051 /** 1052 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 1053 * @param event packet 1054 * @return handle 1055 * @note: btstack_type H 1056 */ 1057 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 1058 return little_endian_read_16(event, 2); 1059 } 1060 1061 /** 1062 * @brief Get field local_cid from event l2cap_event_can_send_now 1063 * @param event packet 1064 * @return local_cid 1065 * @note: btstack_type 2 1066 */ 1067 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 1068 return little_endian_read_16(event, 2); 1069 } 1070 1071 /** 1072 * @brief Get field status from event rfcomm_event_open_channel_complete 1073 * @param event packet 1074 * @return status 1075 * @note: btstack_type 1 1076 */ 1077 static inline uint8_t rfcomm_event_open_channel_complete_get_status(const uint8_t * event){ 1078 return event[2]; 1079 } 1080 /** 1081 * @brief Get field bd_addr from event rfcomm_event_open_channel_complete 1082 * @param event packet 1083 * @param Pointer to storage for bd_addr 1084 * @note: btstack_type B 1085 */ 1086 static inline void rfcomm_event_open_channel_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1087 reverse_bd_addr(&event[3], bd_addr); 1088 } 1089 /** 1090 * @brief Get field con_handle from event rfcomm_event_open_channel_complete 1091 * @param event packet 1092 * @return con_handle 1093 * @note: btstack_type 2 1094 */ 1095 static inline uint16_t rfcomm_event_open_channel_complete_get_con_handle(const uint8_t * event){ 1096 return little_endian_read_16(event, 9); 1097 } 1098 /** 1099 * @brief Get field server_channel from event rfcomm_event_open_channel_complete 1100 * @param event packet 1101 * @return server_channel 1102 * @note: btstack_type 1 1103 */ 1104 static inline uint8_t rfcomm_event_open_channel_complete_get_server_channel(const uint8_t * event){ 1105 return event[11]; 1106 } 1107 /** 1108 * @brief Get field rfcomm_cid from event rfcomm_event_open_channel_complete 1109 * @param event packet 1110 * @return rfcomm_cid 1111 * @note: btstack_type 2 1112 */ 1113 static inline uint16_t rfcomm_event_open_channel_complete_get_rfcomm_cid(const uint8_t * event){ 1114 return little_endian_read_16(event, 12); 1115 } 1116 /** 1117 * @brief Get field max_frame_size from event rfcomm_event_open_channel_complete 1118 * @param event packet 1119 * @return max_frame_size 1120 * @note: btstack_type 2 1121 */ 1122 static inline uint16_t rfcomm_event_open_channel_complete_get_max_frame_size(const uint8_t * event){ 1123 return little_endian_read_16(event, 14); 1124 } 1125 1126 /** 1127 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 1128 * @param event packet 1129 * @return rfcomm_cid 1130 * @note: btstack_type 2 1131 */ 1132 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 1133 return little_endian_read_16(event, 2); 1134 } 1135 1136 /** 1137 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 1138 * @param event packet 1139 * @param Pointer to storage for bd_addr 1140 * @note: btstack_type B 1141 */ 1142 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1143 reverse_bd_addr(&event[2], bd_addr); 1144 } 1145 /** 1146 * @brief Get field server_channel from event rfcomm_event_incoming_connection 1147 * @param event packet 1148 * @return server_channel 1149 * @note: btstack_type 1 1150 */ 1151 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 1152 return event[8]; 1153 } 1154 /** 1155 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 1156 * @param event packet 1157 * @return rfcomm_cid 1158 * @note: btstack_type 2 1159 */ 1160 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 1161 return little_endian_read_16(event, 9); 1162 } 1163 1164 /** 1165 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 1166 * @param event packet 1167 * @return rfcomm_cid 1168 * @note: btstack_type 2 1169 */ 1170 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 1171 return little_endian_read_16(event, 2); 1172 } 1173 /** 1174 * @brief Get field line_status from event rfcomm_event_remote_line_status 1175 * @param event packet 1176 * @return line_status 1177 * @note: btstack_type 1 1178 */ 1179 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 1180 return event[4]; 1181 } 1182 1183 /** 1184 * @brief Get field rfcomm_cid from event rfcomm_event_credits 1185 * @param event packet 1186 * @return rfcomm_cid 1187 * @note: btstack_type 2 1188 */ 1189 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){ 1190 return little_endian_read_16(event, 2); 1191 } 1192 /** 1193 * @brief Get field credits from event rfcomm_event_credits 1194 * @param event packet 1195 * @return credits 1196 * @note: btstack_type 1 1197 */ 1198 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){ 1199 return event[4]; 1200 } 1201 1202 /** 1203 * @brief Get field status from event rfcomm_event_service_registered 1204 * @param event packet 1205 * @return status 1206 * @note: btstack_type 1 1207 */ 1208 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){ 1209 return event[2]; 1210 } 1211 /** 1212 * @brief Get field channel_id from event rfcomm_event_service_registered 1213 * @param event packet 1214 * @return channel_id 1215 * @note: btstack_type 1 1216 */ 1217 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){ 1218 return event[3]; 1219 } 1220 1221 /** 1222 * @brief Get field status from event rfcomm_event_persistent_channel 1223 * @param event packet 1224 * @return status 1225 * @note: btstack_type 1 1226 */ 1227 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){ 1228 return event[2]; 1229 } 1230 /** 1231 * @brief Get field server_channel_id from event rfcomm_event_persistent_channel 1232 * @param event packet 1233 * @return server_channel_id 1234 * @note: btstack_type 1 1235 */ 1236 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){ 1237 return event[3]; 1238 } 1239 1240 /** 1241 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 1242 * @param event packet 1243 * @return rfcomm_cid 1244 * @note: btstack_type 2 1245 */ 1246 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 1247 return little_endian_read_16(event, 2); 1248 } 1249 /** 1250 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 1251 * @param event packet 1252 * @return modem_status 1253 * @note: btstack_type 1 1254 */ 1255 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 1256 return event[4]; 1257 } 1258 1259 /** 1260 * @brief Get field local_cid from event rfcomm_event_can_send_now 1261 * @param event packet 1262 * @return local_cid 1263 * @note: btstack_type 2 1264 */ 1265 static inline uint16_t rfcomm_event_can_send_now_get_local_cid(const uint8_t * event){ 1266 return little_endian_read_16(event, 2); 1267 } 1268 1269 /** 1270 * @brief Get field status from event sdp_event_service_registered 1271 * @param event packet 1272 * @return status 1273 * @note: btstack_type 1 1274 */ 1275 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){ 1276 return event[2]; 1277 } 1278 /** 1279 * @brief Get field service_record_handle from event sdp_event_service_registered 1280 * @param event packet 1281 * @return service_record_handle 1282 * @note: btstack_type 4 1283 */ 1284 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){ 1285 return little_endian_read_32(event, 3); 1286 } 1287 1288 /** 1289 * @brief Get field status from event sdp_event_query_complete 1290 * @param event packet 1291 * @return status 1292 * @note: btstack_type 1 1293 */ 1294 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 1295 return event[2]; 1296 } 1297 1298 /** 1299 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 1300 * @param event packet 1301 * @return rfcomm_channel 1302 * @note: btstack_type 1 1303 */ 1304 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 1305 return event[2]; 1306 } 1307 /** 1308 * @brief Get field name from event sdp_event_query_rfcomm_service 1309 * @param event packet 1310 * @return name 1311 * @note: btstack_type T 1312 */ 1313 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 1314 return (const char *) &event[3]; 1315 } 1316 1317 /** 1318 * @brief Get field record_id from event sdp_event_query_attribute_byte 1319 * @param event packet 1320 * @return record_id 1321 * @note: btstack_type 2 1322 */ 1323 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 1324 return little_endian_read_16(event, 2); 1325 } 1326 /** 1327 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 1328 * @param event packet 1329 * @return attribute_id 1330 * @note: btstack_type 2 1331 */ 1332 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 1333 return little_endian_read_16(event, 4); 1334 } 1335 /** 1336 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 1337 * @param event packet 1338 * @return attribute_length 1339 * @note: btstack_type 2 1340 */ 1341 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 1342 return little_endian_read_16(event, 6); 1343 } 1344 /** 1345 * @brief Get field data_offset from event sdp_event_query_attribute_byte 1346 * @param event packet 1347 * @return data_offset 1348 * @note: btstack_type 2 1349 */ 1350 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 1351 return little_endian_read_16(event, 8); 1352 } 1353 /** 1354 * @brief Get field data from event sdp_event_query_attribute_byte 1355 * @param event packet 1356 * @return data 1357 * @note: btstack_type 1 1358 */ 1359 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 1360 return event[10]; 1361 } 1362 1363 /** 1364 * @brief Get field record_id from event sdp_event_query_attribute_value 1365 * @param event packet 1366 * @return record_id 1367 * @note: btstack_type 2 1368 */ 1369 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 1370 return little_endian_read_16(event, 2); 1371 } 1372 /** 1373 * @brief Get field attribute_id from event sdp_event_query_attribute_value 1374 * @param event packet 1375 * @return attribute_id 1376 * @note: btstack_type 2 1377 */ 1378 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 1379 return little_endian_read_16(event, 4); 1380 } 1381 /** 1382 * @brief Get field attribute_length from event sdp_event_query_attribute_value 1383 * @param event packet 1384 * @return attribute_length 1385 * @note: btstack_type L 1386 */ 1387 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 1388 return little_endian_read_16(event, 6); 1389 } 1390 /** 1391 * @brief Get field attribute_value from event sdp_event_query_attribute_value 1392 * @param event packet 1393 * @return attribute_value 1394 * @note: btstack_type V 1395 */ 1396 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 1397 return &event[8]; 1398 } 1399 1400 /** 1401 * @brief Get field total_count from event sdp_event_query_service_record_handle 1402 * @param event packet 1403 * @return total_count 1404 * @note: btstack_type 2 1405 */ 1406 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 1407 return little_endian_read_16(event, 2); 1408 } 1409 /** 1410 * @brief Get field record_index from event sdp_event_query_service_record_handle 1411 * @param event packet 1412 * @return record_index 1413 * @note: btstack_type 2 1414 */ 1415 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 1416 return little_endian_read_16(event, 4); 1417 } 1418 /** 1419 * @brief Get field record_handle from event sdp_event_query_service_record_handle 1420 * @param event packet 1421 * @return record_handle 1422 * @note: btstack_type 4 1423 */ 1424 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 1425 return little_endian_read_32(event, 6); 1426 } 1427 1428 #ifdef ENABLE_BLE 1429 /** 1430 * @brief Get field handle from event gatt_event_query_complete 1431 * @param event packet 1432 * @return handle 1433 * @note: btstack_type H 1434 */ 1435 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 1436 return little_endian_read_16(event, 2); 1437 } 1438 /** 1439 * @brief Get field status from event gatt_event_query_complete 1440 * @param event packet 1441 * @return status 1442 * @note: btstack_type 1 1443 */ 1444 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 1445 return event[4]; 1446 } 1447 #endif 1448 1449 #ifdef ENABLE_BLE 1450 /** 1451 * @brief Get field handle from event gatt_event_service_query_result 1452 * @param event packet 1453 * @return handle 1454 * @note: btstack_type H 1455 */ 1456 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 1457 return little_endian_read_16(event, 2); 1458 } 1459 /** 1460 * @brief Get field service from event gatt_event_service_query_result 1461 * @param event packet 1462 * @param Pointer to storage for service 1463 * @note: btstack_type X 1464 */ 1465 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1466 gatt_client_deserialize_service(event, 4, service); 1467 } 1468 #endif 1469 1470 #ifdef ENABLE_BLE 1471 /** 1472 * @brief Get field handle from event gatt_event_characteristic_query_result 1473 * @param event packet 1474 * @return handle 1475 * @note: btstack_type H 1476 */ 1477 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 1478 return little_endian_read_16(event, 2); 1479 } 1480 /** 1481 * @brief Get field characteristic from event gatt_event_characteristic_query_result 1482 * @param event packet 1483 * @param Pointer to storage for characteristic 1484 * @note: btstack_type Y 1485 */ 1486 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 1487 gatt_client_deserialize_characteristic(event, 4, characteristic); 1488 } 1489 #endif 1490 1491 #ifdef ENABLE_BLE 1492 /** 1493 * @brief Get field handle from event gatt_event_included_service_query_result 1494 * @param event packet 1495 * @return handle 1496 * @note: btstack_type H 1497 */ 1498 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 1499 return little_endian_read_16(event, 2); 1500 } 1501 /** 1502 * @brief Get field include_handle from event gatt_event_included_service_query_result 1503 * @param event packet 1504 * @return include_handle 1505 * @note: btstack_type 2 1506 */ 1507 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 1508 return little_endian_read_16(event, 4); 1509 } 1510 /** 1511 * @brief Get field service from event gatt_event_included_service_query_result 1512 * @param event packet 1513 * @param Pointer to storage for service 1514 * @note: btstack_type X 1515 */ 1516 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1517 gatt_client_deserialize_service(event, 6, service); 1518 } 1519 #endif 1520 1521 #ifdef ENABLE_BLE 1522 /** 1523 * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result 1524 * @param event packet 1525 * @return handle 1526 * @note: btstack_type H 1527 */ 1528 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 1529 return little_endian_read_16(event, 2); 1530 } 1531 /** 1532 * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result 1533 * @param event packet 1534 * @param Pointer to storage for characteristic_descriptor 1535 * @note: btstack_type Z 1536 */ 1537 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 1538 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 1539 } 1540 #endif 1541 1542 #ifdef ENABLE_BLE 1543 /** 1544 * @brief Get field handle from event gatt_event_characteristic_value_query_result 1545 * @param event packet 1546 * @return handle 1547 * @note: btstack_type H 1548 */ 1549 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 1550 return little_endian_read_16(event, 2); 1551 } 1552 /** 1553 * @brief Get field value_handle from event gatt_event_characteristic_value_query_result 1554 * @param event packet 1555 * @return value_handle 1556 * @note: btstack_type 2 1557 */ 1558 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1559 return little_endian_read_16(event, 4); 1560 } 1561 /** 1562 * @brief Get field value_length from event gatt_event_characteristic_value_query_result 1563 * @param event packet 1564 * @return value_length 1565 * @note: btstack_type L 1566 */ 1567 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1568 return little_endian_read_16(event, 6); 1569 } 1570 /** 1571 * @brief Get field value from event gatt_event_characteristic_value_query_result 1572 * @param event packet 1573 * @return value 1574 * @note: btstack_type V 1575 */ 1576 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 1577 return &event[8]; 1578 } 1579 #endif 1580 1581 #ifdef ENABLE_BLE 1582 /** 1583 * @brief Get field handle from event gatt_event_long_characteristic_value_query_result 1584 * @param event packet 1585 * @return handle 1586 * @note: btstack_type H 1587 */ 1588 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 1589 return little_endian_read_16(event, 2); 1590 } 1591 /** 1592 * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result 1593 * @param event packet 1594 * @return value_handle 1595 * @note: btstack_type 2 1596 */ 1597 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1598 return little_endian_read_16(event, 4); 1599 } 1600 /** 1601 * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result 1602 * @param event packet 1603 * @return value_offset 1604 * @note: btstack_type 2 1605 */ 1606 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 1607 return little_endian_read_16(event, 6); 1608 } 1609 /** 1610 * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result 1611 * @param event packet 1612 * @return value_length 1613 * @note: btstack_type L 1614 */ 1615 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1616 return little_endian_read_16(event, 8); 1617 } 1618 /** 1619 * @brief Get field value from event gatt_event_long_characteristic_value_query_result 1620 * @param event packet 1621 * @return value 1622 * @note: btstack_type V 1623 */ 1624 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 1625 return &event[10]; 1626 } 1627 #endif 1628 1629 #ifdef ENABLE_BLE 1630 /** 1631 * @brief Get field handle from event gatt_event_notification 1632 * @param event packet 1633 * @return handle 1634 * @note: btstack_type H 1635 */ 1636 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 1637 return little_endian_read_16(event, 2); 1638 } 1639 /** 1640 * @brief Get field value_handle from event gatt_event_notification 1641 * @param event packet 1642 * @return value_handle 1643 * @note: btstack_type 2 1644 */ 1645 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 1646 return little_endian_read_16(event, 4); 1647 } 1648 /** 1649 * @brief Get field value_length from event gatt_event_notification 1650 * @param event packet 1651 * @return value_length 1652 * @note: btstack_type L 1653 */ 1654 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 1655 return little_endian_read_16(event, 6); 1656 } 1657 /** 1658 * @brief Get field value from event gatt_event_notification 1659 * @param event packet 1660 * @return value 1661 * @note: btstack_type V 1662 */ 1663 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 1664 return &event[8]; 1665 } 1666 #endif 1667 1668 #ifdef ENABLE_BLE 1669 /** 1670 * @brief Get field handle from event gatt_event_indication 1671 * @param event packet 1672 * @return handle 1673 * @note: btstack_type H 1674 */ 1675 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 1676 return little_endian_read_16(event, 2); 1677 } 1678 /** 1679 * @brief Get field value_handle from event gatt_event_indication 1680 * @param event packet 1681 * @return value_handle 1682 * @note: btstack_type 2 1683 */ 1684 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 1685 return little_endian_read_16(event, 4); 1686 } 1687 /** 1688 * @brief Get field value_length from event gatt_event_indication 1689 * @param event packet 1690 * @return value_length 1691 * @note: btstack_type L 1692 */ 1693 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 1694 return little_endian_read_16(event, 6); 1695 } 1696 /** 1697 * @brief Get field value from event gatt_event_indication 1698 * @param event packet 1699 * @return value 1700 * @note: btstack_type V 1701 */ 1702 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 1703 return &event[8]; 1704 } 1705 #endif 1706 1707 #ifdef ENABLE_BLE 1708 /** 1709 * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result 1710 * @param event packet 1711 * @return descriptor_handle 1712 * @note: btstack_type H 1713 */ 1714 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 1715 return little_endian_read_16(event, 2); 1716 } 1717 /** 1718 * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result 1719 * @param event packet 1720 * @return descriptor_length 1721 * @note: btstack_type 2 1722 */ 1723 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1724 return little_endian_read_16(event, 4); 1725 } 1726 /** 1727 * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result 1728 * @param event packet 1729 * @return descriptor 1730 * @note: btstack_type L 1731 */ 1732 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1733 return little_endian_read_16(event, 6); 1734 } 1735 #endif 1736 1737 #ifdef ENABLE_BLE 1738 /** 1739 * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result 1740 * @param event packet 1741 * @return handle 1742 * @note: btstack_type H 1743 */ 1744 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 1745 return little_endian_read_16(event, 2); 1746 } 1747 /** 1748 * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result 1749 * @param event packet 1750 * @return descriptor_offset 1751 * @note: btstack_type 2 1752 */ 1753 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 1754 return little_endian_read_16(event, 4); 1755 } 1756 /** 1757 * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result 1758 * @param event packet 1759 * @return descriptor_length 1760 * @note: btstack_type L 1761 */ 1762 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1763 return little_endian_read_16(event, 6); 1764 } 1765 /** 1766 * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result 1767 * @param event packet 1768 * @return descriptor 1769 * @note: btstack_type V 1770 */ 1771 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1772 return &event[8]; 1773 } 1774 #endif 1775 1776 #ifdef ENABLE_BLE 1777 /** 1778 * @brief Get field handle from event gatt_event_mtu 1779 * @param event packet 1780 * @return handle 1781 * @note: btstack_type H 1782 */ 1783 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 1784 return little_endian_read_16(event, 2); 1785 } 1786 /** 1787 * @brief Get field MTU from event gatt_event_mtu 1788 * @param event packet 1789 * @return MTU 1790 * @note: btstack_type 2 1791 */ 1792 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 1793 return little_endian_read_16(event, 4); 1794 } 1795 #endif 1796 1797 #ifdef ENABLE_BLE 1798 /** 1799 * @brief Get field handle from event sm_event_just_works_request 1800 * @param event packet 1801 * @return handle 1802 * @note: btstack_type H 1803 */ 1804 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 1805 return little_endian_read_16(event, 2); 1806 } 1807 /** 1808 * @brief Get field addr_type from event sm_event_just_works_request 1809 * @param event packet 1810 * @return addr_type 1811 * @note: btstack_type 1 1812 */ 1813 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 1814 return event[4]; 1815 } 1816 /** 1817 * @brief Get field address from event sm_event_just_works_request 1818 * @param event packet 1819 * @param Pointer to storage for address 1820 * @note: btstack_type B 1821 */ 1822 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 1823 reverse_bd_addr(&event[5], address); 1824 } 1825 #endif 1826 1827 #ifdef ENABLE_BLE 1828 /** 1829 * @brief Get field handle from event sm_event_just_works_cancel 1830 * @param event packet 1831 * @return handle 1832 * @note: btstack_type H 1833 */ 1834 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 1835 return little_endian_read_16(event, 2); 1836 } 1837 /** 1838 * @brief Get field addr_type from event sm_event_just_works_cancel 1839 * @param event packet 1840 * @return addr_type 1841 * @note: btstack_type 1 1842 */ 1843 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 1844 return event[4]; 1845 } 1846 /** 1847 * @brief Get field address from event sm_event_just_works_cancel 1848 * @param event packet 1849 * @param Pointer to storage for address 1850 * @note: btstack_type B 1851 */ 1852 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1853 reverse_bd_addr(&event[5], address); 1854 } 1855 #endif 1856 1857 #ifdef ENABLE_BLE 1858 /** 1859 * @brief Get field handle from event sm_event_passkey_display_number 1860 * @param event packet 1861 * @return handle 1862 * @note: btstack_type H 1863 */ 1864 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 1865 return little_endian_read_16(event, 2); 1866 } 1867 /** 1868 * @brief Get field addr_type from event sm_event_passkey_display_number 1869 * @param event packet 1870 * @return addr_type 1871 * @note: btstack_type 1 1872 */ 1873 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 1874 return event[4]; 1875 } 1876 /** 1877 * @brief Get field address from event sm_event_passkey_display_number 1878 * @param event packet 1879 * @param Pointer to storage for address 1880 * @note: btstack_type B 1881 */ 1882 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 1883 reverse_bd_addr(&event[5], address); 1884 } 1885 /** 1886 * @brief Get field passkey from event sm_event_passkey_display_number 1887 * @param event packet 1888 * @return passkey 1889 * @note: btstack_type 4 1890 */ 1891 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 1892 return little_endian_read_32(event, 11); 1893 } 1894 #endif 1895 1896 #ifdef ENABLE_BLE 1897 /** 1898 * @brief Get field handle from event sm_event_passkey_display_cancel 1899 * @param event packet 1900 * @return handle 1901 * @note: btstack_type H 1902 */ 1903 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 1904 return little_endian_read_16(event, 2); 1905 } 1906 /** 1907 * @brief Get field addr_type from event sm_event_passkey_display_cancel 1908 * @param event packet 1909 * @return addr_type 1910 * @note: btstack_type 1 1911 */ 1912 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 1913 return event[4]; 1914 } 1915 /** 1916 * @brief Get field address from event sm_event_passkey_display_cancel 1917 * @param event packet 1918 * @param Pointer to storage for address 1919 * @note: btstack_type B 1920 */ 1921 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1922 reverse_bd_addr(&event[5], address); 1923 } 1924 #endif 1925 1926 #ifdef ENABLE_BLE 1927 /** 1928 * @brief Get field handle from event sm_event_passkey_input_number 1929 * @param event packet 1930 * @return handle 1931 * @note: btstack_type H 1932 */ 1933 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 1934 return little_endian_read_16(event, 2); 1935 } 1936 /** 1937 * @brief Get field addr_type from event sm_event_passkey_input_number 1938 * @param event packet 1939 * @return addr_type 1940 * @note: btstack_type 1 1941 */ 1942 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 1943 return event[4]; 1944 } 1945 /** 1946 * @brief Get field address from event sm_event_passkey_input_number 1947 * @param event packet 1948 * @param Pointer to storage for address 1949 * @note: btstack_type B 1950 */ 1951 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 1952 reverse_bd_addr(&event[5], address); 1953 } 1954 #endif 1955 1956 #ifdef ENABLE_BLE 1957 /** 1958 * @brief Get field handle from event sm_event_passkey_input_cancel 1959 * @param event packet 1960 * @return handle 1961 * @note: btstack_type H 1962 */ 1963 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 1964 return little_endian_read_16(event, 2); 1965 } 1966 /** 1967 * @brief Get field addr_type from event sm_event_passkey_input_cancel 1968 * @param event packet 1969 * @return addr_type 1970 * @note: btstack_type 1 1971 */ 1972 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 1973 return event[4]; 1974 } 1975 /** 1976 * @brief Get field address from event sm_event_passkey_input_cancel 1977 * @param event packet 1978 * @param Pointer to storage for address 1979 * @note: btstack_type B 1980 */ 1981 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1982 reverse_bd_addr(&event[5], address); 1983 } 1984 #endif 1985 1986 #ifdef ENABLE_BLE 1987 /** 1988 * @brief Get field handle from event sm_event_identity_resolving_started 1989 * @param event packet 1990 * @return handle 1991 * @note: btstack_type H 1992 */ 1993 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 1994 return little_endian_read_16(event, 2); 1995 } 1996 /** 1997 * @brief Get field addr_type from event sm_event_identity_resolving_started 1998 * @param event packet 1999 * @return addr_type 2000 * @note: btstack_type 1 2001 */ 2002 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 2003 return event[4]; 2004 } 2005 /** 2006 * @brief Get field address from event sm_event_identity_resolving_started 2007 * @param event packet 2008 * @param Pointer to storage for address 2009 * @note: btstack_type B 2010 */ 2011 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 2012 reverse_bd_addr(&event[5], address); 2013 } 2014 #endif 2015 2016 #ifdef ENABLE_BLE 2017 /** 2018 * @brief Get field handle from event sm_event_identity_resolving_failed 2019 * @param event packet 2020 * @return handle 2021 * @note: btstack_type H 2022 */ 2023 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 2024 return little_endian_read_16(event, 2); 2025 } 2026 /** 2027 * @brief Get field addr_type from event sm_event_identity_resolving_failed 2028 * @param event packet 2029 * @return addr_type 2030 * @note: btstack_type 1 2031 */ 2032 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 2033 return event[4]; 2034 } 2035 /** 2036 * @brief Get field address from event sm_event_identity_resolving_failed 2037 * @param event packet 2038 * @param Pointer to storage for address 2039 * @note: btstack_type B 2040 */ 2041 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 2042 reverse_bd_addr(&event[5], address); 2043 } 2044 #endif 2045 2046 #ifdef ENABLE_BLE 2047 /** 2048 * @brief Get field handle from event sm_event_identity_resolving_succeeded 2049 * @param event packet 2050 * @return handle 2051 * @note: btstack_type H 2052 */ 2053 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_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_identity_resolving_succeeded 2058 * @param event packet 2059 * @return addr_type 2060 * @note: btstack_type 1 2061 */ 2062 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 2063 return event[4]; 2064 } 2065 /** 2066 * @brief Get field address from event sm_event_identity_resolving_succeeded 2067 * @param event packet 2068 * @param Pointer to storage for address 2069 * @note: btstack_type B 2070 */ 2071 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 2072 reverse_bd_addr(&event[5], address); 2073 } 2074 /** 2075 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 2076 * @param event packet 2077 * @return le_device_db_index 2078 * @note: btstack_type 2 2079 */ 2080 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 2081 return little_endian_read_16(event, 11); 2082 } 2083 #endif 2084 2085 #ifdef ENABLE_BLE 2086 /** 2087 * @brief Get field handle from event sm_event_authorization_request 2088 * @param event packet 2089 * @return handle 2090 * @note: btstack_type H 2091 */ 2092 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 2093 return little_endian_read_16(event, 2); 2094 } 2095 /** 2096 * @brief Get field addr_type from event sm_event_authorization_request 2097 * @param event packet 2098 * @return addr_type 2099 * @note: btstack_type 1 2100 */ 2101 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 2102 return event[4]; 2103 } 2104 /** 2105 * @brief Get field address from event sm_event_authorization_request 2106 * @param event packet 2107 * @param Pointer to storage for address 2108 * @note: btstack_type B 2109 */ 2110 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 2111 reverse_bd_addr(&event[5], address); 2112 } 2113 #endif 2114 2115 #ifdef ENABLE_BLE 2116 /** 2117 * @brief Get field handle from event sm_event_authorization_result 2118 * @param event packet 2119 * @return handle 2120 * @note: btstack_type H 2121 */ 2122 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 2123 return little_endian_read_16(event, 2); 2124 } 2125 /** 2126 * @brief Get field addr_type from event sm_event_authorization_result 2127 * @param event packet 2128 * @return addr_type 2129 * @note: btstack_type 1 2130 */ 2131 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 2132 return event[4]; 2133 } 2134 /** 2135 * @brief Get field address from event sm_event_authorization_result 2136 * @param event packet 2137 * @param Pointer to storage for address 2138 * @note: btstack_type B 2139 */ 2140 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 2141 reverse_bd_addr(&event[5], address); 2142 } 2143 /** 2144 * @brief Get field authorization_result from event sm_event_authorization_result 2145 * @param event packet 2146 * @return authorization_result 2147 * @note: btstack_type 1 2148 */ 2149 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 2150 return event[11]; 2151 } 2152 #endif 2153 2154 /** 2155 * @brief Get field advertising_event_type from event gap_le_event_advertising_report 2156 * @param event packet 2157 * @return advertising_event_type 2158 * @note: btstack_type 1 2159 */ 2160 static inline uint8_t gap_le_event_advertising_report_get_advertising_event_type(const uint8_t * event){ 2161 return event[2]; 2162 } 2163 /** 2164 * @brief Get field address_type from event gap_le_event_advertising_report 2165 * @param event packet 2166 * @return address_type 2167 * @note: btstack_type 1 2168 */ 2169 static inline uint8_t gap_le_event_advertising_report_get_address_type(const uint8_t * event){ 2170 return event[3]; 2171 } 2172 /** 2173 * @brief Get field address from event gap_le_event_advertising_report 2174 * @param event packet 2175 * @param Pointer to storage for address 2176 * @note: btstack_type B 2177 */ 2178 static inline void gap_le_event_advertising_report_get_address(const uint8_t * event, bd_addr_t address){ 2179 reverse_bd_addr(&event[4], address); 2180 } 2181 /** 2182 * @brief Get field rssi from event gap_le_event_advertising_report 2183 * @param event packet 2184 * @return rssi 2185 * @note: btstack_type 1 2186 */ 2187 static inline uint8_t gap_le_event_advertising_report_get_rssi(const uint8_t * event){ 2188 return event[10]; 2189 } 2190 /** 2191 * @brief Get field data_length from event gap_le_event_advertising_report 2192 * @param event packet 2193 * @return data_length 2194 * @note: btstack_type J 2195 */ 2196 static inline int gap_le_event_advertising_report_get_data_length(const uint8_t * event){ 2197 return event[11]; 2198 } 2199 /** 2200 * @brief Get field data from event gap_le_event_advertising_report 2201 * @param event packet 2202 * @return data 2203 * @note: btstack_type V 2204 */ 2205 static inline const uint8_t * gap_le_event_advertising_report_get_data(const uint8_t * event){ 2206 return &event[12]; 2207 } 2208 2209 /** 2210 * @brief Get field subevent_code from event hsp_subevent_audio_connection_complete 2211 * @param event packet 2212 * @return subevent_code 2213 * @note: btstack_type 1 2214 */ 2215 static inline uint8_t hsp_subevent_audio_connection_complete_get_subevent_code(const uint8_t * event){ 2216 return event[2]; 2217 } 2218 /** 2219 * @brief Get field status from event hsp_subevent_audio_connection_complete 2220 * @param event packet 2221 * @return status 2222 * @note: btstack_type 1 2223 */ 2224 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){ 2225 return event[3]; 2226 } 2227 /** 2228 * @brief Get field handle from event hsp_subevent_audio_connection_complete 2229 * @param event packet 2230 * @return handle 2231 * @note: btstack_type H 2232 */ 2233 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){ 2234 return little_endian_read_16(event, 4); 2235 } 2236 2237 /** 2238 * @brief Get field subevent_code from event hsp_subevent_audio_disconnection_complete 2239 * @param event packet 2240 * @return subevent_code 2241 * @note: btstack_type 1 2242 */ 2243 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_subevent_code(const uint8_t * event){ 2244 return event[2]; 2245 } 2246 /** 2247 * @brief Get field status from event hsp_subevent_audio_disconnection_complete 2248 * @param event packet 2249 * @return status 2250 * @note: btstack_type 1 2251 */ 2252 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){ 2253 return event[3]; 2254 } 2255 2256 /** 2257 * @brief Get field subevent_code from event hsp_subevent_ring 2258 * @param event packet 2259 * @return subevent_code 2260 * @note: btstack_type 1 2261 */ 2262 static inline uint8_t hsp_subevent_ring_get_subevent_code(const uint8_t * event){ 2263 return event[2]; 2264 } 2265 2266 /** 2267 * @brief Get field subevent_code from event hsp_subevent_microphone_gain_changed 2268 * @param event packet 2269 * @return subevent_code 2270 * @note: btstack_type 1 2271 */ 2272 static inline uint8_t hsp_subevent_microphone_gain_changed_get_subevent_code(const uint8_t * event){ 2273 return event[2]; 2274 } 2275 /** 2276 * @brief Get field gain from event hsp_subevent_microphone_gain_changed 2277 * @param event packet 2278 * @return gain 2279 * @note: btstack_type 1 2280 */ 2281 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){ 2282 return event[3]; 2283 } 2284 2285 /** 2286 * @brief Get field subevent_code from event hsp_subevent_speaker_gain_changed 2287 * @param event packet 2288 * @return subevent_code 2289 * @note: btstack_type 1 2290 */ 2291 static inline uint8_t hsp_subevent_speaker_gain_changed_get_subevent_code(const uint8_t * event){ 2292 return event[2]; 2293 } 2294 /** 2295 * @brief Get field gain from event hsp_subevent_speaker_gain_changed 2296 * @param event packet 2297 * @return gain 2298 * @note: btstack_type 1 2299 */ 2300 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){ 2301 return event[3]; 2302 } 2303 2304 /** 2305 * @brief Get field subevent_code from event hsp_subevent_hs_command 2306 * @param event packet 2307 * @return subevent_code 2308 * @note: btstack_type 1 2309 */ 2310 static inline uint8_t hsp_subevent_hs_command_get_subevent_code(const uint8_t * event){ 2311 return event[2]; 2312 } 2313 /** 2314 * @brief Get field value_length from event hsp_subevent_hs_command 2315 * @param event packet 2316 * @return value_length 2317 * @note: btstack_type J 2318 */ 2319 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){ 2320 return event[3]; 2321 } 2322 /** 2323 * @brief Get field value from event hsp_subevent_hs_command 2324 * @param event packet 2325 * @return value 2326 * @note: btstack_type V 2327 */ 2328 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){ 2329 return &event[4]; 2330 } 2331 2332 /** 2333 * @brief Get field subevent_code from event hsp_subevent_ag_indication 2334 * @param event packet 2335 * @return subevent_code 2336 * @note: btstack_type 1 2337 */ 2338 static inline uint8_t hsp_subevent_ag_indication_get_subevent_code(const uint8_t * event){ 2339 return event[2]; 2340 } 2341 /** 2342 * @brief Get field value_length from event hsp_subevent_ag_indication 2343 * @param event packet 2344 * @return value_length 2345 * @note: btstack_type J 2346 */ 2347 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){ 2348 return event[3]; 2349 } 2350 /** 2351 * @brief Get field value from event hsp_subevent_ag_indication 2352 * @param event packet 2353 * @return value 2354 * @note: btstack_type V 2355 */ 2356 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){ 2357 return &event[4]; 2358 } 2359 2360 #ifdef ENABLE_BLE 2361 /** 2362 * @brief Get field subevent_code from event ancs_subevent_client_connected 2363 * @param event packet 2364 * @return subevent_code 2365 * @note: btstack_type 1 2366 */ 2367 static inline uint8_t ancs_subevent_client_connected_get_subevent_code(const uint8_t * event){ 2368 return event[2]; 2369 } 2370 /** 2371 * @brief Get field handle from event ancs_subevent_client_connected 2372 * @param event packet 2373 * @return handle 2374 * @note: btstack_type H 2375 */ 2376 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 2377 return little_endian_read_16(event, 3); 2378 } 2379 #endif 2380 2381 #ifdef ENABLE_BLE 2382 /** 2383 * @brief Get field subevent_code from event ancs_subevent_client_notification 2384 * @param event packet 2385 * @return subevent_code 2386 * @note: btstack_type 1 2387 */ 2388 static inline uint8_t ancs_subevent_client_notification_get_subevent_code(const uint8_t * event){ 2389 return event[2]; 2390 } 2391 /** 2392 * @brief Get field handle from event ancs_subevent_client_notification 2393 * @param event packet 2394 * @return handle 2395 * @note: btstack_type H 2396 */ 2397 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 2398 return little_endian_read_16(event, 3); 2399 } 2400 /** 2401 * @brief Get field attribute_id from event ancs_subevent_client_notification 2402 * @param event packet 2403 * @return attribute_id 2404 * @note: btstack_type 2 2405 */ 2406 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 2407 return little_endian_read_16(event, 5); 2408 } 2409 /** 2410 * @brief Get field text from event ancs_subevent_client_notification 2411 * @param event packet 2412 * @return text 2413 * @note: btstack_type T 2414 */ 2415 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 2416 return (const char *) &event[7]; 2417 } 2418 #endif 2419 2420 #ifdef ENABLE_BLE 2421 /** 2422 * @brief Get field subevent_code from event ancs_subevent_client_disconnected 2423 * @param event packet 2424 * @return subevent_code 2425 * @note: btstack_type 1 2426 */ 2427 static inline uint8_t ancs_subevent_client_disconnected_get_subevent_code(const uint8_t * event){ 2428 return event[2]; 2429 } 2430 /** 2431 * @brief Get field handle from event ancs_subevent_client_disconnected 2432 * @param event packet 2433 * @return handle 2434 * @note: btstack_type H 2435 */ 2436 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 2437 return little_endian_read_16(event, 3); 2438 } 2439 #endif 2440 2441 2442 2443 /* API_END */ 2444 2445 #if defined __cplusplus 2446 } 2447 #endif 2448 2449 #endif // __BTSTACK_EVENT_H 2450