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 field status from event hci_event_inquiry_complete 65 * @param Event packet 66 * @return status 67 * @note: btstack_type 1 68 */ 69 static inline uint8_t hci_event_inquiry_complete_get_status(const uint8_t * event){ 70 return event[2]; 71 } 72 73 /** 74 * @brief Get field num_responses from event hci_event_inquiry_result 75 * @param Event packet 76 * @return num_responses 77 * @note: btstack_type 1 78 */ 79 static inline uint8_t hci_event_inquiry_result_get_num_responses(const uint8_t * event){ 80 return event[2]; 81 } 82 /** 83 * @brief Get field bd_addr from event hci_event_inquiry_result 84 * @param Event packet 85 * @param Pointer to storage for bd_addr 86 * @note: btstack_type B 87 */ 88 static inline void hci_event_inquiry_result_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 89 reverse_bd_addr(&event[3], bd_addr); 90 } 91 /** 92 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result 93 * @param Event packet 94 * @return page_scan_repetition_mode 95 * @note: btstack_type 1 96 */ 97 static inline uint8_t hci_event_inquiry_result_get_page_scan_repetition_mode(const uint8_t * event){ 98 return event[9]; 99 } 100 /** 101 * @brief Get field reserved1 from event hci_event_inquiry_result 102 * @param Event packet 103 * @return reserved1 104 * @note: btstack_type 1 105 */ 106 static inline uint8_t hci_event_inquiry_result_get_reserved1(const uint8_t * event){ 107 return event[10]; 108 } 109 /** 110 * @brief Get field reserved2 from event hci_event_inquiry_result 111 * @param Event packet 112 * @return reserved2 113 * @note: btstack_type 1 114 */ 115 static inline uint8_t hci_event_inquiry_result_get_reserved2(const uint8_t * event){ 116 return event[11]; 117 } 118 /** 119 * @brief Get field class_of_device from event hci_event_inquiry_result 120 * @param Event packet 121 * @return class_of_device 122 * @note: btstack_type 3 123 */ 124 static inline uint32_t hci_event_inquiry_result_get_class_of_device(const uint8_t * event){ 125 return little_endian_read_24(event, 12); 126 } 127 /** 128 * @brief Get field clock_offset from event hci_event_inquiry_result 129 * @param Event packet 130 * @return clock_offset 131 * @note: btstack_type 2 132 */ 133 static inline uint16_t hci_event_inquiry_result_get_clock_offset(const uint8_t * event){ 134 return little_endian_read_16(event, 15); 135 } 136 137 /** 138 * @brief Get field status from event hci_event_connection_complete 139 * @param Event packet 140 * @return status 141 * @note: btstack_type 1 142 */ 143 static inline uint8_t hci_event_connection_complete_get_status(const uint8_t * event){ 144 return event[2]; 145 } 146 /** 147 * @brief Get field connection_handle from event hci_event_connection_complete 148 * @param Event packet 149 * @return connection_handle 150 * @note: btstack_type 2 151 */ 152 static inline uint16_t hci_event_connection_complete_get_connection_handle(const uint8_t * event){ 153 return little_endian_read_16(event, 3); 154 } 155 /** 156 * @brief Get field bd_addr from event hci_event_connection_complete 157 * @param Event packet 158 * @param Pointer to storage for bd_addr 159 * @note: btstack_type B 160 */ 161 static inline void hci_event_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 162 reverse_bd_addr(&event[5], bd_addr); 163 } 164 /** 165 * @brief Get field link_type from event hci_event_connection_complete 166 * @param Event packet 167 * @return link_type 168 * @note: btstack_type 1 169 */ 170 static inline uint8_t hci_event_connection_complete_get_link_type(const uint8_t * event){ 171 return event[11]; 172 } 173 /** 174 * @brief Get field encryption_enabled from event hci_event_connection_complete 175 * @param Event packet 176 * @return encryption_enabled 177 * @note: btstack_type 1 178 */ 179 static inline uint8_t hci_event_connection_complete_get_encryption_enabled(const uint8_t * event){ 180 return event[12]; 181 } 182 183 /** 184 * @brief Get field bd_addr from event hci_event_connection_request 185 * @param Event packet 186 * @param Pointer to storage for bd_addr 187 * @note: btstack_type B 188 */ 189 static inline void hci_event_connection_request_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 190 reverse_bd_addr(&event[2], bd_addr); 191 } 192 /** 193 * @brief Get field class_of_device from event hci_event_connection_request 194 * @param Event packet 195 * @return class_of_device 196 * @note: btstack_type 3 197 */ 198 static inline uint32_t hci_event_connection_request_get_class_of_device(const uint8_t * event){ 199 return little_endian_read_24(event, 8); 200 } 201 /** 202 * @brief Get field link_type from event hci_event_connection_request 203 * @param Event packet 204 * @return link_type 205 * @note: btstack_type 1 206 */ 207 static inline uint8_t hci_event_connection_request_get_link_type(const uint8_t * event){ 208 return event[11]; 209 } 210 211 /** 212 * @brief Get field status from event hci_event_disconnection_complete 213 * @param Event packet 214 * @return status 215 * @note: btstack_type 1 216 */ 217 static inline uint8_t hci_event_disconnection_complete_get_status(const uint8_t * event){ 218 return event[2]; 219 } 220 /** 221 * @brief Get field connection_handle from event hci_event_disconnection_complete 222 * @param Event packet 223 * @return connection_handle 224 * @note: btstack_type 2 225 */ 226 static inline uint16_t hci_event_disconnection_complete_get_connection_handle(const uint8_t * event){ 227 return little_endian_read_16(event, 3); 228 } 229 /** 230 * @brief Get field reason from event hci_event_disconnection_complete 231 * @param Event packet 232 * @return reason 233 * @note: btstack_type 1 234 */ 235 static inline uint8_t hci_event_disconnection_complete_get_reason(const uint8_t * event){ 236 return event[5]; 237 } 238 239 /** 240 * @brief Get field status from event hci_event_authentication_complete_event 241 * @param Event packet 242 * @return status 243 * @note: btstack_type 1 244 */ 245 static inline uint8_t hci_event_authentication_complete_event_get_status(const uint8_t * event){ 246 return event[2]; 247 } 248 /** 249 * @brief Get field connection_handle from event hci_event_authentication_complete_event 250 * @param Event packet 251 * @return connection_handle 252 * @note: btstack_type 2 253 */ 254 static inline uint16_t hci_event_authentication_complete_event_get_connection_handle(const uint8_t * event){ 255 return little_endian_read_16(event, 3); 256 } 257 258 /** 259 * @brief Get field status from event hci_event_remote_name_request_complete 260 * @param Event packet 261 * @return status 262 * @note: btstack_type 1 263 */ 264 // static inline uint8_t hci_event_remote_name_request_complete_get_status(const uint8_t * event){ 265 // not implemented yet 266 // } 267 /** 268 * @brief Get field bd_addr from event hci_event_remote_name_request_complete 269 * @param Event packet 270 * @return bd_addr 271 * @note: btstack_type B 272 */ 273 // static inline bd_addr_t hci_event_remote_name_request_complete_get_bd_addr(const uint8_t * event){ 274 // not implemented yet 275 // } 276 /** 277 * @brief Get field remote_name from event hci_event_remote_name_request_complete 278 * @param Event packet 279 * @return remote_name 280 * @note: btstack_type N 281 */ 282 // static inline String hci_event_remote_name_request_complete_get_remote_name(const uint8_t * event){ 283 // not implemented yet 284 // } 285 286 /** 287 * @brief Get field status from event hci_event_encryption_change 288 * @param Event packet 289 * @return status 290 * @note: btstack_type 1 291 */ 292 static inline uint8_t hci_event_encryption_change_get_status(const uint8_t * event){ 293 return event[2]; 294 } 295 /** 296 * @brief Get field connection_handle from event hci_event_encryption_change 297 * @param Event packet 298 * @return connection_handle 299 * @note: btstack_type 2 300 */ 301 static inline uint16_t hci_event_encryption_change_get_connection_handle(const uint8_t * event){ 302 return little_endian_read_16(event, 3); 303 } 304 /** 305 * @brief Get field encryption_enabled from event hci_event_encryption_change 306 * @param Event packet 307 * @return encryption_enabled 308 * @note: btstack_type 1 309 */ 310 static inline uint8_t hci_event_encryption_change_get_encryption_enabled(const uint8_t * event){ 311 return event[5]; 312 } 313 314 /** 315 * @brief Get field status from event hci_event_change_connection_link_key_complete 316 * @param Event packet 317 * @return status 318 * @note: btstack_type 1 319 */ 320 static inline uint8_t hci_event_change_connection_link_key_complete_get_status(const uint8_t * event){ 321 return event[2]; 322 } 323 /** 324 * @brief Get field connection_handle from event hci_event_change_connection_link_key_complete 325 * @param Event packet 326 * @return connection_handle 327 * @note: btstack_type 2 328 */ 329 static inline uint16_t hci_event_change_connection_link_key_complete_get_connection_handle(const uint8_t * event){ 330 return little_endian_read_16(event, 3); 331 } 332 333 /** 334 * @brief Get field status from event hci_event_master_link_key_complete 335 * @param Event packet 336 * @return status 337 * @note: btstack_type 1 338 */ 339 static inline uint8_t hci_event_master_link_key_complete_get_status(const uint8_t * event){ 340 return event[2]; 341 } 342 /** 343 * @brief Get field connection_handle from event hci_event_master_link_key_complete 344 * @param Event packet 345 * @return connection_handle 346 * @note: btstack_type 2 347 */ 348 static inline uint16_t hci_event_master_link_key_complete_get_connection_handle(const uint8_t * event){ 349 return little_endian_read_16(event, 3); 350 } 351 /** 352 * @brief Get field key_flag from event hci_event_master_link_key_complete 353 * @param Event packet 354 * @return key_flag 355 * @note: btstack_type 1 356 */ 357 static inline uint8_t hci_event_master_link_key_complete_get_key_flag(const uint8_t * event){ 358 return event[5]; 359 } 360 361 /** 362 * @brief Get field num_hci_command_packets from event hci_event_command_complete 363 * @param Event packet 364 * @return num_hci_command_packets 365 * @note: btstack_type 1 366 */ 367 static inline uint8_t hci_event_command_complete_get_num_hci_command_packets(const uint8_t * event){ 368 return event[2]; 369 } 370 /** 371 * @brief Get field command_opcode from event hci_event_command_complete 372 * @param Event packet 373 * @return command_opcode 374 * @note: btstack_type 2 375 */ 376 static inline uint16_t hci_event_command_complete_get_command_opcode(const uint8_t * event){ 377 return little_endian_read_16(event, 3); 378 } 379 /** 380 * @brief Get field return_parameters from event hci_event_command_complete 381 * @param Event packet 382 * @return return_parameters 383 * @note: btstack_type R 384 */ 385 static inline const uint8_t * hci_event_command_complete_get_return_parameters(const uint8_t * event){ 386 return &event[5]; 387 } 388 389 /** 390 * @brief Get field status from event hci_event_command_status 391 * @param Event packet 392 * @return status 393 * @note: btstack_type 1 394 */ 395 static inline uint8_t hci_event_command_status_get_status(const uint8_t * event){ 396 return event[2]; 397 } 398 /** 399 * @brief Get field num_hci_command_packets from event hci_event_command_status 400 * @param Event packet 401 * @return num_hci_command_packets 402 * @note: btstack_type 1 403 */ 404 static inline uint8_t hci_event_command_status_get_num_hci_command_packets(const uint8_t * event){ 405 return event[3]; 406 } 407 /** 408 * @brief Get field command_opcode from event hci_event_command_status 409 * @param Event packet 410 * @return command_opcode 411 * @note: btstack_type 2 412 */ 413 static inline uint16_t hci_event_command_status_get_command_opcode(const uint8_t * event){ 414 return little_endian_read_16(event, 4); 415 } 416 417 /** 418 * @brief Get field hardware_code from event hci_event_hardware_error 419 * @param Event packet 420 * @return hardware_code 421 * @note: btstack_type 1 422 */ 423 static inline uint8_t hci_event_hardware_error_get_hardware_code(const uint8_t * event){ 424 return event[2]; 425 } 426 427 /** 428 * @brief Get field status from event hci_event_role_change 429 * @param Event packet 430 * @return status 431 * @note: btstack_type 1 432 */ 433 static inline uint8_t hci_event_role_change_get_status(const uint8_t * event){ 434 return event[2]; 435 } 436 /** 437 * @brief Get field bd_addr from event hci_event_role_change 438 * @param Event packet 439 * @param Pointer to storage for bd_addr 440 * @note: btstack_type B 441 */ 442 static inline void hci_event_role_change_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 443 reverse_bd_addr(&event[3], bd_addr); 444 } 445 /** 446 * @brief Get field role from event hci_event_role_change 447 * @param Event packet 448 * @return role 449 * @note: btstack_type 1 450 */ 451 static inline uint8_t hci_event_role_change_get_role(const uint8_t * event){ 452 return event[9]; 453 } 454 455 /** 456 * @brief Get field num_responses from event hci_event_inquiry_result_with_rssi 457 * @param Event packet 458 * @return num_responses 459 * @note: btstack_type 1 460 */ 461 static inline uint8_t hci_event_inquiry_result_with_rssi_get_num_responses(const uint8_t * event){ 462 return event[2]; 463 } 464 /** 465 * @brief Get field bd_addr from event hci_event_inquiry_result_with_rssi 466 * @param Event packet 467 * @param Pointer to storage for bd_addr 468 * @note: btstack_type B 469 */ 470 static inline void hci_event_inquiry_result_with_rssi_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 471 reverse_bd_addr(&event[3], bd_addr); 472 } 473 /** 474 * @brief Get field page_scan_repetition_mode from event hci_event_inquiry_result_with_rssi 475 * @param Event packet 476 * @return page_scan_repetition_mode 477 * @note: btstack_type 1 478 */ 479 static inline uint8_t hci_event_inquiry_result_with_rssi_get_page_scan_repetition_mode(const uint8_t * event){ 480 return event[9]; 481 } 482 /** 483 * @brief Get field reserved from event hci_event_inquiry_result_with_rssi 484 * @param Event packet 485 * @return reserved 486 * @note: btstack_type 1 487 */ 488 static inline uint8_t hci_event_inquiry_result_with_rssi_get_reserved(const uint8_t * event){ 489 return event[10]; 490 } 491 /** 492 * @brief Get field class_of_device from event hci_event_inquiry_result_with_rssi 493 * @param Event packet 494 * @return class_of_device 495 * @note: btstack_type 3 496 */ 497 static inline uint32_t hci_event_inquiry_result_with_rssi_get_class_of_device(const uint8_t * event){ 498 return little_endian_read_24(event, 11); 499 } 500 /** 501 * @brief Get field clock_offset from event hci_event_inquiry_result_with_rssi 502 * @param Event packet 503 * @return clock_offset 504 * @note: btstack_type 2 505 */ 506 static inline uint16_t hci_event_inquiry_result_with_rssi_get_clock_offset(const uint8_t * event){ 507 return little_endian_read_16(event, 14); 508 } 509 /** 510 * @brief Get field rssi from event hci_event_inquiry_result_with_rssi 511 * @param Event packet 512 * @return rssi 513 * @note: btstack_type 1 514 */ 515 static inline uint8_t hci_event_inquiry_result_with_rssi_get_rssi(const uint8_t * event){ 516 return event[16]; 517 } 518 519 /** 520 * @brief Get field status from event hci_event_synchronous_connection_complete 521 * @param Event packet 522 * @return status 523 * @note: btstack_type 1 524 */ 525 static inline uint8_t hci_event_synchronous_connection_complete_get_status(const uint8_t * event){ 526 return event[2]; 527 } 528 /** 529 * @brief Get field handle from event hci_event_synchronous_connection_complete 530 * @param Event packet 531 * @return handle 532 * @note: btstack_type H 533 */ 534 static inline hci_con_handle_t hci_event_synchronous_connection_complete_get_handle(const uint8_t * event){ 535 return little_endian_read_16(event, 3); 536 } 537 /** 538 * @brief Get field bd_addr from event hci_event_synchronous_connection_complete 539 * @param Event packet 540 * @param Pointer to storage for bd_addr 541 * @note: btstack_type B 542 */ 543 static inline void hci_event_synchronous_connection_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 544 reverse_bd_addr(&event[5], bd_addr); 545 } 546 /** 547 * @brief Get field link_type from event hci_event_synchronous_connection_complete 548 * @param Event packet 549 * @return link_type 550 * @note: btstack_type 1 551 */ 552 static inline uint8_t hci_event_synchronous_connection_complete_get_link_type(const uint8_t * event){ 553 return event[11]; 554 } 555 /** 556 * @brief Get field transmission_interval from event hci_event_synchronous_connection_complete 557 * @param Event packet 558 * @return transmission_interval 559 * @note: btstack_type 1 560 */ 561 static inline uint8_t hci_event_synchronous_connection_complete_get_transmission_interval(const uint8_t * event){ 562 return event[12]; 563 } 564 /** 565 * @brief Get field retransmission_interval from event hci_event_synchronous_connection_complete 566 * @param Event packet 567 * @return retransmission_interval 568 * @note: btstack_type 1 569 */ 570 static inline uint8_t hci_event_synchronous_connection_complete_get_retransmission_interval(const uint8_t * event){ 571 return event[13]; 572 } 573 /** 574 * @brief Get field rx_packet_length from event hci_event_synchronous_connection_complete 575 * @param Event packet 576 * @return rx_packet_length 577 * @note: btstack_type 2 578 */ 579 static inline uint16_t hci_event_synchronous_connection_complete_get_rx_packet_length(const uint8_t * event){ 580 return little_endian_read_16(event, 14); 581 } 582 /** 583 * @brief Get field tx_packet_length from event hci_event_synchronous_connection_complete 584 * @param Event packet 585 * @return tx_packet_length 586 * @note: btstack_type 2 587 */ 588 static inline uint16_t hci_event_synchronous_connection_complete_get_tx_packet_length(const uint8_t * event){ 589 return little_endian_read_16(event, 16); 590 } 591 /** 592 * @brief Get field air_mode from event hci_event_synchronous_connection_complete 593 * @param Event packet 594 * @return air_mode 595 * @note: btstack_type 1 596 */ 597 static inline uint8_t hci_event_synchronous_connection_complete_get_air_mode(const uint8_t * event){ 598 return event[18]; 599 } 600 601 /** 602 * @brief Get field num_responses from event hci_event_extended_inquiry_response 603 * @param Event packet 604 * @return num_responses 605 * @note: btstack_type 1 606 */ 607 static inline uint8_t hci_event_extended_inquiry_response_get_num_responses(const uint8_t * event){ 608 return event[2]; 609 } 610 /** 611 * @brief Get field bd_addr from event hci_event_extended_inquiry_response 612 * @param Event packet 613 * @param Pointer to storage for bd_addr 614 * @note: btstack_type B 615 */ 616 static inline void hci_event_extended_inquiry_response_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 617 reverse_bd_addr(&event[3], bd_addr); 618 } 619 /** 620 * @brief Get field page_scan_repetition_mode from event hci_event_extended_inquiry_response 621 * @param Event packet 622 * @return page_scan_repetition_mode 623 * @note: btstack_type 1 624 */ 625 static inline uint8_t hci_event_extended_inquiry_response_get_page_scan_repetition_mode(const uint8_t * event){ 626 return event[9]; 627 } 628 /** 629 * @brief Get field reserved from event hci_event_extended_inquiry_response 630 * @param Event packet 631 * @return reserved 632 * @note: btstack_type 1 633 */ 634 static inline uint8_t hci_event_extended_inquiry_response_get_reserved(const uint8_t * event){ 635 return event[10]; 636 } 637 /** 638 * @brief Get field class_of_device from event hci_event_extended_inquiry_response 639 * @param Event packet 640 * @return class_of_device 641 * @note: btstack_type 3 642 */ 643 static inline uint32_t hci_event_extended_inquiry_response_get_class_of_device(const uint8_t * event){ 644 return little_endian_read_24(event, 11); 645 } 646 /** 647 * @brief Get field clock_offset from event hci_event_extended_inquiry_response 648 * @param Event packet 649 * @return clock_offset 650 * @note: btstack_type 2 651 */ 652 static inline uint16_t hci_event_extended_inquiry_response_get_clock_offset(const uint8_t * event){ 653 return little_endian_read_16(event, 14); 654 } 655 /** 656 * @brief Get field rssi from event hci_event_extended_inquiry_response 657 * @param Event packet 658 * @return rssi 659 * @note: btstack_type 1 660 */ 661 static inline uint8_t hci_event_extended_inquiry_response_get_rssi(const uint8_t * event){ 662 return event[16]; 663 } 664 665 /** 666 * @brief Get field status from event hci_event_encryption_key_refresh_complete 667 * @param Event packet 668 * @return status 669 * @note: btstack_type 1 670 */ 671 static inline uint8_t hci_event_encryption_key_refresh_complete_get_status(const uint8_t * event){ 672 return event[2]; 673 } 674 /** 675 * @brief Get field handle from event hci_event_encryption_key_refresh_complete 676 * @param Event packet 677 * @return handle 678 * @note: btstack_type H 679 */ 680 static inline hci_con_handle_t hci_event_encryption_key_refresh_complete_get_handle(const uint8_t * event){ 681 return little_endian_read_16(event, 3); 682 } 683 684 /** 685 * @brief Get field subevent_code from event hci_subevent_le_connection_complete 686 * @param Event packet 687 * @return subevent_code 688 * @note: btstack_type 1 689 */ 690 static inline uint8_t hci_subevent_le_connection_complete_get_subevent_code(const uint8_t * event){ 691 return event[2]; 692 } 693 /** 694 * @brief Get field status from event hci_subevent_le_connection_complete 695 * @param Event packet 696 * @return status 697 * @note: btstack_type 1 698 */ 699 static inline uint8_t hci_subevent_le_connection_complete_get_status(const uint8_t * event){ 700 return event[3]; 701 } 702 /** 703 * @brief Get field connection_handle from event hci_subevent_le_connection_complete 704 * @param Event packet 705 * @return connection_handle 706 * @note: btstack_type H 707 */ 708 static inline hci_con_handle_t hci_subevent_le_connection_complete_get_connection_handle(const uint8_t * event){ 709 return little_endian_read_16(event, 4); 710 } 711 /** 712 * @brief Get field role from event hci_subevent_le_connection_complete 713 * @param Event packet 714 * @return role 715 * @note: btstack_type 1 716 */ 717 static inline uint8_t hci_subevent_le_connection_complete_get_role(const uint8_t * event){ 718 return event[6]; 719 } 720 /** 721 * @brief Get field peer_address_type from event hci_subevent_le_connection_complete 722 * @param Event packet 723 * @return peer_address_type 724 * @note: btstack_type 1 725 */ 726 static inline uint8_t hci_subevent_le_connection_complete_get_peer_address_type(const uint8_t * event){ 727 return event[7]; 728 } 729 /** 730 * @brief Get field peer_address from event hci_subevent_le_connection_complete 731 * @param Event packet 732 * @param Pointer to storage for peer_address 733 * @note: btstack_type B 734 */ 735 static inline void hci_subevent_le_connection_complete_get_peer_address(const uint8_t * event, bd_addr_t peer_address){ 736 reverse_bd_addr(&event[8], peer_address); 737 } 738 /** 739 * @brief Get field conn_interval from event hci_subevent_le_connection_complete 740 * @param Event packet 741 * @return conn_interval 742 * @note: btstack_type 2 743 */ 744 static inline uint16_t hci_subevent_le_connection_complete_get_conn_interval(const uint8_t * event){ 745 return little_endian_read_16(event, 14); 746 } 747 /** 748 * @brief Get field conn_latency from event hci_subevent_le_connection_complete 749 * @param Event packet 750 * @return conn_latency 751 * @note: btstack_type 2 752 */ 753 static inline uint16_t hci_subevent_le_connection_complete_get_conn_latency(const uint8_t * event){ 754 return little_endian_read_16(event, 16); 755 } 756 /** 757 * @brief Get field supervision_timeout from event hci_subevent_le_connection_complete 758 * @param Event packet 759 * @return supervision_timeout 760 * @note: btstack_type 2 761 */ 762 static inline uint16_t hci_subevent_le_connection_complete_get_supervision_timeout(const uint8_t * event){ 763 return little_endian_read_16(event, 18); 764 } 765 /** 766 * @brief Get field master_clock_accuracy from event hci_subevent_le_connection_complete 767 * @param Event packet 768 * @return master_clock_accuracy 769 * @note: btstack_type 1 770 */ 771 static inline uint8_t hci_subevent_le_connection_complete_get_master_clock_accuracy(const uint8_t * event){ 772 return event[20]; 773 } 774 775 /** 776 * @brief Get field state from event btstack_event_state 777 * @param Event packet 778 * @return state 779 * @note: btstack_type 1 780 */ 781 static inline uint8_t btstack_event_state_get_state(const uint8_t * event){ 782 return event[2]; 783 } 784 785 786 /** 787 * @brief Get field discoverable from event btstack_event_discoverable_enabled 788 * @param Event packet 789 * @return discoverable 790 * @note: btstack_type 1 791 */ 792 static inline uint8_t btstack_event_discoverable_enabled_get_discoverable(const uint8_t * event){ 793 return event[2]; 794 } 795 796 /** 797 * @brief Get field handle from event hci_event_sco_can_send_now 798 * @param Event packet 799 * @param Pointer to storage for handle 800 * @note: btstack_type B 801 */ 802 static inline void hci_event_sco_can_send_now_get_handle(const uint8_t * event, bd_addr_t handle){ 803 reverse_bd_addr(&event[2], handle); 804 } 805 806 /** 807 * @brief Get field status from event l2cap_event_channel_opened 808 * @param Event packet 809 * @return status 810 * @note: btstack_type 1 811 */ 812 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 813 return event[2]; 814 } 815 /** 816 * @brief Get field address from event l2cap_event_channel_opened 817 * @param Event packet 818 * @param Pointer to storage for address 819 * @note: btstack_type B 820 */ 821 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 822 reverse_bd_addr(&event[3], address); 823 } 824 /** 825 * @brief Get field handle from event l2cap_event_channel_opened 826 * @param Event packet 827 * @return handle 828 * @note: btstack_type H 829 */ 830 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 831 return little_endian_read_16(event, 9); 832 } 833 /** 834 * @brief Get field psm from event l2cap_event_channel_opened 835 * @param Event packet 836 * @return psm 837 * @note: btstack_type 2 838 */ 839 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 840 return little_endian_read_16(event, 11); 841 } 842 /** 843 * @brief Get field local_cid from event l2cap_event_channel_opened 844 * @param Event packet 845 * @return local_cid 846 * @note: btstack_type 2 847 */ 848 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 849 return little_endian_read_16(event, 13); 850 } 851 /** 852 * @brief Get field remote_cid from event l2cap_event_channel_opened 853 * @param Event packet 854 * @return remote_cid 855 * @note: btstack_type 2 856 */ 857 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 858 return little_endian_read_16(event, 15); 859 } 860 /** 861 * @brief Get field local_mtu from event l2cap_event_channel_opened 862 * @param Event packet 863 * @return local_mtu 864 * @note: btstack_type 2 865 */ 866 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 867 return little_endian_read_16(event, 17); 868 } 869 /** 870 * @brief Get field remote_mtu from event l2cap_event_channel_opened 871 * @param Event packet 872 * @return remote_mtu 873 * @note: btstack_type 2 874 */ 875 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 876 return little_endian_read_16(event, 19); 877 } 878 /** 879 * @brief Get field flush_timeout from event l2cap_event_channel_opened 880 * @param Event packet 881 * @return flush_timeout 882 * @note: btstack_type 2 883 */ 884 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 885 return little_endian_read_16(event, 21); 886 } 887 888 /** 889 * @brief Get field local_cid from event l2cap_event_channel_closed 890 * @param Event packet 891 * @return local_cid 892 * @note: btstack_type 2 893 */ 894 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 895 return little_endian_read_16(event, 2); 896 } 897 898 /** 899 * @brief Get field status from event l2cap_event_incoming_connection 900 * @param Event packet 901 * @return status 902 * @note: btstack_type 1 903 */ 904 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 905 return event[2]; 906 } 907 /** 908 * @brief Get field address from event l2cap_event_incoming_connection 909 * @param Event packet 910 * @param Pointer to storage for address 911 * @note: btstack_type B 912 */ 913 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 914 reverse_bd_addr(&event[3], address); 915 } 916 /** 917 * @brief Get field handle from event l2cap_event_incoming_connection 918 * @param Event packet 919 * @return handle 920 * @note: btstack_type H 921 */ 922 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 923 return little_endian_read_16(event, 9); 924 } 925 /** 926 * @brief Get field psm from event l2cap_event_incoming_connection 927 * @param Event packet 928 * @return psm 929 * @note: btstack_type 2 930 */ 931 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 932 return little_endian_read_16(event, 11); 933 } 934 /** 935 * @brief Get field local_cid from event l2cap_event_incoming_connection 936 * @param Event packet 937 * @return local_cid 938 * @note: btstack_type 2 939 */ 940 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 941 return little_endian_read_16(event, 13); 942 } 943 /** 944 * @brief Get field remote_cid from event l2cap_event_incoming_connection 945 * @param Event packet 946 * @return remote_cid 947 * @note: btstack_type 2 948 */ 949 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 950 return little_endian_read_16(event, 15); 951 } 952 953 /** 954 * @brief Get field status from event l2cap_event_service_registered 955 * @param Event packet 956 * @return status 957 * @note: btstack_type 1 958 */ 959 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){ 960 return event[2]; 961 } 962 /** 963 * @brief Get field psm from event l2cap_event_service_registered 964 * @param Event packet 965 * @return psm 966 * @note: btstack_type 2 967 */ 968 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){ 969 return little_endian_read_16(event, 3); 970 } 971 972 /** 973 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 974 * @param Event packet 975 * @return handle 976 * @note: btstack_type H 977 */ 978 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 979 return little_endian_read_16(event, 2); 980 } 981 /** 982 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 983 * @param Event packet 984 * @return interval_min 985 * @note: btstack_type 2 986 */ 987 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 988 return little_endian_read_16(event, 4); 989 } 990 /** 991 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 992 * @param Event packet 993 * @return interval_max 994 * @note: btstack_type 2 995 */ 996 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 997 return little_endian_read_16(event, 6); 998 } 999 /** 1000 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 1001 * @param Event packet 1002 * @return latencey 1003 * @note: btstack_type 2 1004 */ 1005 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 1006 return little_endian_read_16(event, 8); 1007 } 1008 /** 1009 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 1010 * @param Event packet 1011 * @return timeout_multiplier 1012 * @note: btstack_type 2 1013 */ 1014 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 1015 return little_endian_read_16(event, 10); 1016 } 1017 1018 /** 1019 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 1020 * @param Event packet 1021 * @return handle 1022 * @note: btstack_type H 1023 */ 1024 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 1025 return little_endian_read_16(event, 2); 1026 } 1027 1028 /** 1029 * @brief Get field local_cid from event l2cap_event_can_send_now 1030 * @param Event packet 1031 * @return local_cid 1032 * @note: btstack_type 2 1033 */ 1034 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 1035 return little_endian_read_16(event, 2); 1036 } 1037 1038 /** 1039 * @brief Get field status from event rfcomm_event_open_channel_complete 1040 * @param Event packet 1041 * @return status 1042 * @note: btstack_type 1 1043 */ 1044 static inline uint8_t rfcomm_event_open_channel_complete_get_status(const uint8_t * event){ 1045 return event[2]; 1046 } 1047 /** 1048 * @brief Get field bd_addr from event rfcomm_event_open_channel_complete 1049 * @param Event packet 1050 * @param Pointer to storage for bd_addr 1051 * @note: btstack_type B 1052 */ 1053 static inline void rfcomm_event_open_channel_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1054 reverse_bd_addr(&event[3], bd_addr); 1055 } 1056 /** 1057 * @brief Get field con_handle from event rfcomm_event_open_channel_complete 1058 * @param Event packet 1059 * @return con_handle 1060 * @note: btstack_type 2 1061 */ 1062 static inline uint16_t rfcomm_event_open_channel_complete_get_con_handle(const uint8_t * event){ 1063 return little_endian_read_16(event, 9); 1064 } 1065 /** 1066 * @brief Get field server_channel from event rfcomm_event_open_channel_complete 1067 * @param Event packet 1068 * @return server_channel 1069 * @note: btstack_type 1 1070 */ 1071 static inline uint8_t rfcomm_event_open_channel_complete_get_server_channel(const uint8_t * event){ 1072 return event[11]; 1073 } 1074 /** 1075 * @brief Get field rfcomm_cid from event rfcomm_event_open_channel_complete 1076 * @param Event packet 1077 * @return rfcomm_cid 1078 * @note: btstack_type 2 1079 */ 1080 static inline uint16_t rfcomm_event_open_channel_complete_get_rfcomm_cid(const uint8_t * event){ 1081 return little_endian_read_16(event, 12); 1082 } 1083 /** 1084 * @brief Get field max_frame_size from event rfcomm_event_open_channel_complete 1085 * @param Event packet 1086 * @return max_frame_size 1087 * @note: btstack_type 2 1088 */ 1089 static inline uint16_t rfcomm_event_open_channel_complete_get_max_frame_size(const uint8_t * event){ 1090 return little_endian_read_16(event, 14); 1091 } 1092 1093 /** 1094 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 1095 * @param Event packet 1096 * @return rfcomm_cid 1097 * @note: btstack_type 2 1098 */ 1099 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 1100 return little_endian_read_16(event, 2); 1101 } 1102 1103 /** 1104 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 1105 * @param Event packet 1106 * @param Pointer to storage for bd_addr 1107 * @note: btstack_type B 1108 */ 1109 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 1110 reverse_bd_addr(&event[2], bd_addr); 1111 } 1112 /** 1113 * @brief Get field server_channel from event rfcomm_event_incoming_connection 1114 * @param Event packet 1115 * @return server_channel 1116 * @note: btstack_type 1 1117 */ 1118 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 1119 return event[8]; 1120 } 1121 /** 1122 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 1123 * @param Event packet 1124 * @return rfcomm_cid 1125 * @note: btstack_type 2 1126 */ 1127 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 1128 return little_endian_read_16(event, 9); 1129 } 1130 1131 /** 1132 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 1133 * @param Event packet 1134 * @return rfcomm_cid 1135 * @note: btstack_type 2 1136 */ 1137 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 1138 return little_endian_read_16(event, 2); 1139 } 1140 /** 1141 * @brief Get field line_status from event rfcomm_event_remote_line_status 1142 * @param Event packet 1143 * @return line_status 1144 * @note: btstack_type 1 1145 */ 1146 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 1147 return event[4]; 1148 } 1149 1150 /** 1151 * @brief Get field rfcomm_cid from event rfcomm_event_credits 1152 * @param Event packet 1153 * @return rfcomm_cid 1154 * @note: btstack_type 2 1155 */ 1156 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){ 1157 return little_endian_read_16(event, 2); 1158 } 1159 /** 1160 * @brief Get field credits from event rfcomm_event_credits 1161 * @param Event packet 1162 * @return credits 1163 * @note: btstack_type 1 1164 */ 1165 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){ 1166 return event[4]; 1167 } 1168 1169 /** 1170 * @brief Get field status from event rfcomm_event_service_registered 1171 * @param Event packet 1172 * @return status 1173 * @note: btstack_type 1 1174 */ 1175 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){ 1176 return event[2]; 1177 } 1178 /** 1179 * @brief Get field channel_id from event rfcomm_event_service_registered 1180 * @param Event packet 1181 * @return channel_id 1182 * @note: btstack_type 1 1183 */ 1184 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){ 1185 return event[3]; 1186 } 1187 1188 /** 1189 * @brief Get field status from event rfcomm_event_persistent_channel 1190 * @param Event packet 1191 * @return status 1192 * @note: btstack_type 1 1193 */ 1194 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){ 1195 return event[2]; 1196 } 1197 /** 1198 * @brief Get field server_channel_id from event rfcomm_event_persistent_channel 1199 * @param Event packet 1200 * @return server_channel_id 1201 * @note: btstack_type 1 1202 */ 1203 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){ 1204 return event[3]; 1205 } 1206 1207 /** 1208 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 1209 * @param Event packet 1210 * @return rfcomm_cid 1211 * @note: btstack_type 2 1212 */ 1213 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 1214 return little_endian_read_16(event, 2); 1215 } 1216 /** 1217 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 1218 * @param Event packet 1219 * @return modem_status 1220 * @note: btstack_type 1 1221 */ 1222 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 1223 return event[4]; 1224 } 1225 1226 /** 1227 * @brief Get field local_cid from event rfcomm_event_can_send_now 1228 * @param Event packet 1229 * @return local_cid 1230 * @note: btstack_type 2 1231 */ 1232 static inline uint16_t rfcomm_event_can_send_now_get_local_cid(const uint8_t * event){ 1233 return little_endian_read_16(event, 2); 1234 } 1235 1236 /** 1237 * @brief Get field status from event sdp_event_service_registered 1238 * @param Event packet 1239 * @return status 1240 * @note: btstack_type 1 1241 */ 1242 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){ 1243 return event[2]; 1244 } 1245 /** 1246 * @brief Get field service_record_handle from event sdp_event_service_registered 1247 * @param Event packet 1248 * @return service_record_handle 1249 * @note: btstack_type 4 1250 */ 1251 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){ 1252 return little_endian_read_32(event, 3); 1253 } 1254 1255 /** 1256 * @brief Get field status from event sdp_event_query_complete 1257 * @param Event packet 1258 * @return status 1259 * @note: btstack_type 1 1260 */ 1261 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 1262 return event[2]; 1263 } 1264 1265 /** 1266 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 1267 * @param Event packet 1268 * @return rfcomm_channel 1269 * @note: btstack_type 1 1270 */ 1271 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 1272 return event[2]; 1273 } 1274 /** 1275 * @brief Get field name from event sdp_event_query_rfcomm_service 1276 * @param Event packet 1277 * @return name 1278 * @note: btstack_type T 1279 */ 1280 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 1281 return (const char *) &event[3]; 1282 } 1283 1284 /** 1285 * @brief Get field record_id from event sdp_event_query_attribute_byte 1286 * @param Event packet 1287 * @return record_id 1288 * @note: btstack_type 2 1289 */ 1290 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 1291 return little_endian_read_16(event, 2); 1292 } 1293 /** 1294 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 1295 * @param Event packet 1296 * @return attribute_id 1297 * @note: btstack_type 2 1298 */ 1299 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 1300 return little_endian_read_16(event, 4); 1301 } 1302 /** 1303 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 1304 * @param Event packet 1305 * @return attribute_length 1306 * @note: btstack_type 2 1307 */ 1308 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 1309 return little_endian_read_16(event, 6); 1310 } 1311 /** 1312 * @brief Get field data_offset from event sdp_event_query_attribute_byte 1313 * @param Event packet 1314 * @return data_offset 1315 * @note: btstack_type 2 1316 */ 1317 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 1318 return little_endian_read_16(event, 8); 1319 } 1320 /** 1321 * @brief Get field data from event sdp_event_query_attribute_byte 1322 * @param Event packet 1323 * @return data 1324 * @note: btstack_type 1 1325 */ 1326 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 1327 return event[10]; 1328 } 1329 1330 /** 1331 * @brief Get field record_id from event sdp_event_query_attribute_value 1332 * @param Event packet 1333 * @return record_id 1334 * @note: btstack_type 2 1335 */ 1336 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 1337 return little_endian_read_16(event, 2); 1338 } 1339 /** 1340 * @brief Get field attribute_id from event sdp_event_query_attribute_value 1341 * @param Event packet 1342 * @return attribute_id 1343 * @note: btstack_type 2 1344 */ 1345 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 1346 return little_endian_read_16(event, 4); 1347 } 1348 /** 1349 * @brief Get field attribute_length from event sdp_event_query_attribute_value 1350 * @param Event packet 1351 * @return attribute_length 1352 * @note: btstack_type L 1353 */ 1354 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 1355 return little_endian_read_16(event, 6); 1356 } 1357 /** 1358 * @brief Get field attribute_value from event sdp_event_query_attribute_value 1359 * @param Event packet 1360 * @return attribute_value 1361 * @note: btstack_type V 1362 */ 1363 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 1364 return &event[8]; 1365 } 1366 1367 /** 1368 * @brief Get field total_count from event sdp_event_query_service_record_handle 1369 * @param Event packet 1370 * @return total_count 1371 * @note: btstack_type 2 1372 */ 1373 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 1374 return little_endian_read_16(event, 2); 1375 } 1376 /** 1377 * @brief Get field record_index from event sdp_event_query_service_record_handle 1378 * @param Event packet 1379 * @return record_index 1380 * @note: btstack_type 2 1381 */ 1382 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 1383 return little_endian_read_16(event, 4); 1384 } 1385 /** 1386 * @brief Get field record_handle from event sdp_event_query_service_record_handle 1387 * @param Event packet 1388 * @return record_handle 1389 * @note: btstack_type 4 1390 */ 1391 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 1392 return little_endian_read_32(event, 6); 1393 } 1394 1395 #ifdef ENABLE_BLE 1396 /** 1397 * @brief Get field handle from event gatt_event_query_complete 1398 * @param Event packet 1399 * @return handle 1400 * @note: btstack_type H 1401 */ 1402 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 1403 return little_endian_read_16(event, 2); 1404 } 1405 /** 1406 * @brief Get field status from event gatt_event_query_complete 1407 * @param Event packet 1408 * @return status 1409 * @note: btstack_type 1 1410 */ 1411 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 1412 return event[4]; 1413 } 1414 #endif 1415 1416 #ifdef ENABLE_BLE 1417 /** 1418 * @brief Get field handle from event gatt_event_service_query_result 1419 * @param Event packet 1420 * @return handle 1421 * @note: btstack_type H 1422 */ 1423 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 1424 return little_endian_read_16(event, 2); 1425 } 1426 /** 1427 * @brief Get field service from event gatt_event_service_query_result 1428 * @param Event packet 1429 * @param Pointer to storage for service 1430 * @note: btstack_type X 1431 */ 1432 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1433 gatt_client_deserialize_service(event, 4, service); 1434 } 1435 #endif 1436 1437 #ifdef ENABLE_BLE 1438 /** 1439 * @brief Get field handle from event gatt_event_characteristic_query_result 1440 * @param Event packet 1441 * @return handle 1442 * @note: btstack_type H 1443 */ 1444 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 1445 return little_endian_read_16(event, 2); 1446 } 1447 /** 1448 * @brief Get field characteristic from event gatt_event_characteristic_query_result 1449 * @param Event packet 1450 * @param Pointer to storage for characteristic 1451 * @note: btstack_type Y 1452 */ 1453 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 1454 gatt_client_deserialize_characteristic(event, 4, characteristic); 1455 } 1456 #endif 1457 1458 #ifdef ENABLE_BLE 1459 /** 1460 * @brief Get field handle from event gatt_event_included_service_query_result 1461 * @param Event packet 1462 * @return handle 1463 * @note: btstack_type H 1464 */ 1465 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 1466 return little_endian_read_16(event, 2); 1467 } 1468 /** 1469 * @brief Get field include_handle from event gatt_event_included_service_query_result 1470 * @param Event packet 1471 * @return include_handle 1472 * @note: btstack_type 2 1473 */ 1474 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 1475 return little_endian_read_16(event, 4); 1476 } 1477 /** 1478 * @brief Get field service from event gatt_event_included_service_query_result 1479 * @param Event packet 1480 * @param Pointer to storage for service 1481 * @note: btstack_type X 1482 */ 1483 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 1484 gatt_client_deserialize_service(event, 6, service); 1485 } 1486 #endif 1487 1488 #ifdef ENABLE_BLE 1489 /** 1490 * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result 1491 * @param Event packet 1492 * @return handle 1493 * @note: btstack_type H 1494 */ 1495 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 1496 return little_endian_read_16(event, 2); 1497 } 1498 /** 1499 * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result 1500 * @param Event packet 1501 * @param Pointer to storage for characteristic_descriptor 1502 * @note: btstack_type Z 1503 */ 1504 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 1505 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 1506 } 1507 #endif 1508 1509 #ifdef ENABLE_BLE 1510 /** 1511 * @brief Get field handle from event gatt_event_characteristic_value_query_result 1512 * @param Event packet 1513 * @return handle 1514 * @note: btstack_type H 1515 */ 1516 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 1517 return little_endian_read_16(event, 2); 1518 } 1519 /** 1520 * @brief Get field value_handle from event gatt_event_characteristic_value_query_result 1521 * @param Event packet 1522 * @return value_handle 1523 * @note: btstack_type 2 1524 */ 1525 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1526 return little_endian_read_16(event, 4); 1527 } 1528 /** 1529 * @brief Get field value_length from event gatt_event_characteristic_value_query_result 1530 * @param Event packet 1531 * @return value_length 1532 * @note: btstack_type L 1533 */ 1534 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1535 return little_endian_read_16(event, 6); 1536 } 1537 /** 1538 * @brief Get field value from event gatt_event_characteristic_value_query_result 1539 * @param Event packet 1540 * @return value 1541 * @note: btstack_type V 1542 */ 1543 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 1544 return &event[8]; 1545 } 1546 #endif 1547 1548 #ifdef ENABLE_BLE 1549 /** 1550 * @brief Get field handle from event gatt_event_long_characteristic_value_query_result 1551 * @param Event packet 1552 * @return handle 1553 * @note: btstack_type H 1554 */ 1555 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 1556 return little_endian_read_16(event, 2); 1557 } 1558 /** 1559 * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result 1560 * @param Event packet 1561 * @return value_handle 1562 * @note: btstack_type 2 1563 */ 1564 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 1565 return little_endian_read_16(event, 4); 1566 } 1567 /** 1568 * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result 1569 * @param Event packet 1570 * @return value_offset 1571 * @note: btstack_type 2 1572 */ 1573 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 1574 return little_endian_read_16(event, 6); 1575 } 1576 /** 1577 * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result 1578 * @param Event packet 1579 * @return value_length 1580 * @note: btstack_type L 1581 */ 1582 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 1583 return little_endian_read_16(event, 8); 1584 } 1585 /** 1586 * @brief Get field value from event gatt_event_long_characteristic_value_query_result 1587 * @param Event packet 1588 * @return value 1589 * @note: btstack_type V 1590 */ 1591 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 1592 return &event[10]; 1593 } 1594 #endif 1595 1596 #ifdef ENABLE_BLE 1597 /** 1598 * @brief Get field handle from event gatt_event_notification 1599 * @param Event packet 1600 * @return handle 1601 * @note: btstack_type H 1602 */ 1603 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 1604 return little_endian_read_16(event, 2); 1605 } 1606 /** 1607 * @brief Get field value_handle from event gatt_event_notification 1608 * @param Event packet 1609 * @return value_handle 1610 * @note: btstack_type 2 1611 */ 1612 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 1613 return little_endian_read_16(event, 4); 1614 } 1615 /** 1616 * @brief Get field value_length from event gatt_event_notification 1617 * @param Event packet 1618 * @return value_length 1619 * @note: btstack_type L 1620 */ 1621 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 1622 return little_endian_read_16(event, 6); 1623 } 1624 /** 1625 * @brief Get field value from event gatt_event_notification 1626 * @param Event packet 1627 * @return value 1628 * @note: btstack_type V 1629 */ 1630 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 1631 return &event[8]; 1632 } 1633 #endif 1634 1635 #ifdef ENABLE_BLE 1636 /** 1637 * @brief Get field handle from event gatt_event_indication 1638 * @param Event packet 1639 * @return handle 1640 * @note: btstack_type H 1641 */ 1642 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 1643 return little_endian_read_16(event, 2); 1644 } 1645 /** 1646 * @brief Get field value_handle from event gatt_event_indication 1647 * @param Event packet 1648 * @return value_handle 1649 * @note: btstack_type 2 1650 */ 1651 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 1652 return little_endian_read_16(event, 4); 1653 } 1654 /** 1655 * @brief Get field value_length from event gatt_event_indication 1656 * @param Event packet 1657 * @return value_length 1658 * @note: btstack_type L 1659 */ 1660 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 1661 return little_endian_read_16(event, 6); 1662 } 1663 /** 1664 * @brief Get field value from event gatt_event_indication 1665 * @param Event packet 1666 * @return value 1667 * @note: btstack_type V 1668 */ 1669 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 1670 return &event[8]; 1671 } 1672 #endif 1673 1674 #ifdef ENABLE_BLE 1675 /** 1676 * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result 1677 * @param Event packet 1678 * @return descriptor_handle 1679 * @note: btstack_type H 1680 */ 1681 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 1682 return little_endian_read_16(event, 2); 1683 } 1684 /** 1685 * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result 1686 * @param Event packet 1687 * @return descriptor_length 1688 * @note: btstack_type 2 1689 */ 1690 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1691 return little_endian_read_16(event, 4); 1692 } 1693 /** 1694 * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result 1695 * @param Event packet 1696 * @return descriptor 1697 * @note: btstack_type L 1698 */ 1699 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1700 return little_endian_read_16(event, 6); 1701 } 1702 #endif 1703 1704 #ifdef ENABLE_BLE 1705 /** 1706 * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result 1707 * @param Event packet 1708 * @return handle 1709 * @note: btstack_type H 1710 */ 1711 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 1712 return little_endian_read_16(event, 2); 1713 } 1714 /** 1715 * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result 1716 * @param Event packet 1717 * @return descriptor_offset 1718 * @note: btstack_type 2 1719 */ 1720 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 1721 return little_endian_read_16(event, 4); 1722 } 1723 /** 1724 * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result 1725 * @param Event packet 1726 * @return descriptor_length 1727 * @note: btstack_type L 1728 */ 1729 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 1730 return little_endian_read_16(event, 6); 1731 } 1732 /** 1733 * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result 1734 * @param Event packet 1735 * @return descriptor 1736 * @note: btstack_type V 1737 */ 1738 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 1739 return &event[8]; 1740 } 1741 #endif 1742 1743 #ifdef ENABLE_BLE 1744 /** 1745 * @brief Get field handle from event gatt_event_mtu 1746 * @param Event packet 1747 * @return handle 1748 * @note: btstack_type H 1749 */ 1750 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 1751 return little_endian_read_16(event, 2); 1752 } 1753 /** 1754 * @brief Get field MTU from event gatt_event_mtu 1755 * @param Event packet 1756 * @return MTU 1757 * @note: btstack_type 2 1758 */ 1759 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 1760 return little_endian_read_16(event, 4); 1761 } 1762 #endif 1763 1764 #ifdef ENABLE_BLE 1765 /** 1766 * @brief Get field handle from event sm_event_just_works_request 1767 * @param Event packet 1768 * @return handle 1769 * @note: btstack_type H 1770 */ 1771 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 1772 return little_endian_read_16(event, 2); 1773 } 1774 /** 1775 * @brief Get field addr_type from event sm_event_just_works_request 1776 * @param Event packet 1777 * @return addr_type 1778 * @note: btstack_type 1 1779 */ 1780 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 1781 return event[4]; 1782 } 1783 /** 1784 * @brief Get field address from event sm_event_just_works_request 1785 * @param Event packet 1786 * @param Pointer to storage for address 1787 * @note: btstack_type B 1788 */ 1789 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 1790 reverse_bd_addr(&event[5], address); 1791 } 1792 #endif 1793 1794 #ifdef ENABLE_BLE 1795 /** 1796 * @brief Get field handle from event sm_event_just_works_cancel 1797 * @param Event packet 1798 * @return handle 1799 * @note: btstack_type H 1800 */ 1801 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 1802 return little_endian_read_16(event, 2); 1803 } 1804 /** 1805 * @brief Get field addr_type from event sm_event_just_works_cancel 1806 * @param Event packet 1807 * @return addr_type 1808 * @note: btstack_type 1 1809 */ 1810 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 1811 return event[4]; 1812 } 1813 /** 1814 * @brief Get field address from event sm_event_just_works_cancel 1815 * @param Event packet 1816 * @param Pointer to storage for address 1817 * @note: btstack_type B 1818 */ 1819 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1820 reverse_bd_addr(&event[5], address); 1821 } 1822 #endif 1823 1824 #ifdef ENABLE_BLE 1825 /** 1826 * @brief Get field handle from event sm_event_passkey_display_number 1827 * @param Event packet 1828 * @return handle 1829 * @note: btstack_type H 1830 */ 1831 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 1832 return little_endian_read_16(event, 2); 1833 } 1834 /** 1835 * @brief Get field addr_type from event sm_event_passkey_display_number 1836 * @param Event packet 1837 * @return addr_type 1838 * @note: btstack_type 1 1839 */ 1840 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 1841 return event[4]; 1842 } 1843 /** 1844 * @brief Get field address from event sm_event_passkey_display_number 1845 * @param Event packet 1846 * @param Pointer to storage for address 1847 * @note: btstack_type B 1848 */ 1849 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 1850 reverse_bd_addr(&event[5], address); 1851 } 1852 /** 1853 * @brief Get field passkey from event sm_event_passkey_display_number 1854 * @param Event packet 1855 * @return passkey 1856 * @note: btstack_type 4 1857 */ 1858 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 1859 return little_endian_read_32(event, 11); 1860 } 1861 #endif 1862 1863 #ifdef ENABLE_BLE 1864 /** 1865 * @brief Get field handle from event sm_event_passkey_display_cancel 1866 * @param Event packet 1867 * @return handle 1868 * @note: btstack_type H 1869 */ 1870 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 1871 return little_endian_read_16(event, 2); 1872 } 1873 /** 1874 * @brief Get field addr_type from event sm_event_passkey_display_cancel 1875 * @param Event packet 1876 * @return addr_type 1877 * @note: btstack_type 1 1878 */ 1879 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 1880 return event[4]; 1881 } 1882 /** 1883 * @brief Get field address from event sm_event_passkey_display_cancel 1884 * @param Event packet 1885 * @param Pointer to storage for address 1886 * @note: btstack_type B 1887 */ 1888 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1889 reverse_bd_addr(&event[5], address); 1890 } 1891 #endif 1892 1893 #ifdef ENABLE_BLE 1894 /** 1895 * @brief Get field handle from event sm_event_passkey_input_number 1896 * @param Event packet 1897 * @return handle 1898 * @note: btstack_type H 1899 */ 1900 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 1901 return little_endian_read_16(event, 2); 1902 } 1903 /** 1904 * @brief Get field addr_type from event sm_event_passkey_input_number 1905 * @param Event packet 1906 * @return addr_type 1907 * @note: btstack_type 1 1908 */ 1909 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 1910 return event[4]; 1911 } 1912 /** 1913 * @brief Get field address from event sm_event_passkey_input_number 1914 * @param Event packet 1915 * @param Pointer to storage for address 1916 * @note: btstack_type B 1917 */ 1918 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 1919 reverse_bd_addr(&event[5], address); 1920 } 1921 #endif 1922 1923 #ifdef ENABLE_BLE 1924 /** 1925 * @brief Get field handle from event sm_event_passkey_input_cancel 1926 * @param Event packet 1927 * @return handle 1928 * @note: btstack_type H 1929 */ 1930 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 1931 return little_endian_read_16(event, 2); 1932 } 1933 /** 1934 * @brief Get field addr_type from event sm_event_passkey_input_cancel 1935 * @param Event packet 1936 * @return addr_type 1937 * @note: btstack_type 1 1938 */ 1939 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 1940 return event[4]; 1941 } 1942 /** 1943 * @brief Get field address from event sm_event_passkey_input_cancel 1944 * @param Event packet 1945 * @param Pointer to storage for address 1946 * @note: btstack_type B 1947 */ 1948 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1949 reverse_bd_addr(&event[5], address); 1950 } 1951 #endif 1952 1953 #ifdef ENABLE_BLE 1954 /** 1955 * @brief Get field handle from event sm_event_identity_resolving_started 1956 * @param Event packet 1957 * @return handle 1958 * @note: btstack_type H 1959 */ 1960 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 1961 return little_endian_read_16(event, 2); 1962 } 1963 /** 1964 * @brief Get field addr_type from event sm_event_identity_resolving_started 1965 * @param Event packet 1966 * @return addr_type 1967 * @note: btstack_type 1 1968 */ 1969 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 1970 return event[4]; 1971 } 1972 /** 1973 * @brief Get field address from event sm_event_identity_resolving_started 1974 * @param Event packet 1975 * @param Pointer to storage for address 1976 * @note: btstack_type B 1977 */ 1978 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 1979 reverse_bd_addr(&event[5], address); 1980 } 1981 #endif 1982 1983 #ifdef ENABLE_BLE 1984 /** 1985 * @brief Get field handle from event sm_event_identity_resolving_failed 1986 * @param Event packet 1987 * @return handle 1988 * @note: btstack_type H 1989 */ 1990 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 1991 return little_endian_read_16(event, 2); 1992 } 1993 /** 1994 * @brief Get field addr_type from event sm_event_identity_resolving_failed 1995 * @param Event packet 1996 * @return addr_type 1997 * @note: btstack_type 1 1998 */ 1999 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 2000 return event[4]; 2001 } 2002 /** 2003 * @brief Get field address from event sm_event_identity_resolving_failed 2004 * @param Event packet 2005 * @param Pointer to storage for address 2006 * @note: btstack_type B 2007 */ 2008 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 2009 reverse_bd_addr(&event[5], address); 2010 } 2011 #endif 2012 2013 #ifdef ENABLE_BLE 2014 /** 2015 * @brief Get field handle from event sm_event_identity_resolving_succeeded 2016 * @param Event packet 2017 * @return handle 2018 * @note: btstack_type H 2019 */ 2020 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 2021 return little_endian_read_16(event, 2); 2022 } 2023 /** 2024 * @brief Get field addr_type from event sm_event_identity_resolving_succeeded 2025 * @param Event packet 2026 * @return addr_type 2027 * @note: btstack_type 1 2028 */ 2029 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 2030 return event[4]; 2031 } 2032 /** 2033 * @brief Get field address from event sm_event_identity_resolving_succeeded 2034 * @param Event packet 2035 * @param Pointer to storage for address 2036 * @note: btstack_type B 2037 */ 2038 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 2039 reverse_bd_addr(&event[5], address); 2040 } 2041 /** 2042 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 2043 * @param Event packet 2044 * @return le_device_db_index 2045 * @note: btstack_type 2 2046 */ 2047 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 2048 return little_endian_read_16(event, 11); 2049 } 2050 #endif 2051 2052 #ifdef ENABLE_BLE 2053 /** 2054 * @brief Get field handle from event sm_event_authorization_request 2055 * @param Event packet 2056 * @return handle 2057 * @note: btstack_type H 2058 */ 2059 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 2060 return little_endian_read_16(event, 2); 2061 } 2062 /** 2063 * @brief Get field addr_type from event sm_event_authorization_request 2064 * @param Event packet 2065 * @return addr_type 2066 * @note: btstack_type 1 2067 */ 2068 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 2069 return event[4]; 2070 } 2071 /** 2072 * @brief Get field address from event sm_event_authorization_request 2073 * @param Event packet 2074 * @param Pointer to storage for address 2075 * @note: btstack_type B 2076 */ 2077 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 2078 reverse_bd_addr(&event[5], address); 2079 } 2080 #endif 2081 2082 #ifdef ENABLE_BLE 2083 /** 2084 * @brief Get field handle from event sm_event_authorization_result 2085 * @param Event packet 2086 * @return handle 2087 * @note: btstack_type H 2088 */ 2089 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 2090 return little_endian_read_16(event, 2); 2091 } 2092 /** 2093 * @brief Get field addr_type from event sm_event_authorization_result 2094 * @param Event packet 2095 * @return addr_type 2096 * @note: btstack_type 1 2097 */ 2098 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 2099 return event[4]; 2100 } 2101 /** 2102 * @brief Get field address from event sm_event_authorization_result 2103 * @param Event packet 2104 * @param Pointer to storage for address 2105 * @note: btstack_type B 2106 */ 2107 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 2108 reverse_bd_addr(&event[5], address); 2109 } 2110 /** 2111 * @brief Get field authorization_result from event sm_event_authorization_result 2112 * @param Event packet 2113 * @return authorization_result 2114 * @note: btstack_type 1 2115 */ 2116 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 2117 return event[11]; 2118 } 2119 #endif 2120 2121 /** 2122 * @brief Get field subevent_code from event hsp_subevent_audio_connection_complete 2123 * @param Event packet 2124 * @return subevent_code 2125 * @note: btstack_type 1 2126 */ 2127 static inline uint8_t hsp_subevent_audio_connection_complete_get_subevent_code(const uint8_t * event){ 2128 return event[2]; 2129 } 2130 /** 2131 * @brief Get field status from event hsp_subevent_audio_connection_complete 2132 * @param Event packet 2133 * @return status 2134 * @note: btstack_type 1 2135 */ 2136 static inline uint8_t hsp_subevent_audio_connection_complete_get_status(const uint8_t * event){ 2137 return event[3]; 2138 } 2139 /** 2140 * @brief Get field handle from event hsp_subevent_audio_connection_complete 2141 * @param Event packet 2142 * @return handle 2143 * @note: btstack_type H 2144 */ 2145 static inline hci_con_handle_t hsp_subevent_audio_connection_complete_get_handle(const uint8_t * event){ 2146 return little_endian_read_16(event, 4); 2147 } 2148 2149 /** 2150 * @brief Get field subevent_code from event hsp_subevent_audio_disconnection_complete 2151 * @param Event packet 2152 * @return subevent_code 2153 * @note: btstack_type 1 2154 */ 2155 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_subevent_code(const uint8_t * event){ 2156 return event[2]; 2157 } 2158 /** 2159 * @brief Get field status from event hsp_subevent_audio_disconnection_complete 2160 * @param Event packet 2161 * @return status 2162 * @note: btstack_type 1 2163 */ 2164 static inline uint8_t hsp_subevent_audio_disconnection_complete_get_status(const uint8_t * event){ 2165 return event[3]; 2166 } 2167 2168 /** 2169 * @brief Get field subevent_code from event hsp_subevent_ring 2170 * @param Event packet 2171 * @return subevent_code 2172 * @note: btstack_type 1 2173 */ 2174 static inline uint8_t hsp_subevent_ring_get_subevent_code(const uint8_t * event){ 2175 return event[2]; 2176 } 2177 2178 /** 2179 * @brief Get field subevent_code from event hsp_subevent_microphone_gain_changed 2180 * @param Event packet 2181 * @return subevent_code 2182 * @note: btstack_type 1 2183 */ 2184 static inline uint8_t hsp_subevent_microphone_gain_changed_get_subevent_code(const uint8_t * event){ 2185 return event[2]; 2186 } 2187 /** 2188 * @brief Get field gain from event hsp_subevent_microphone_gain_changed 2189 * @param Event packet 2190 * @return gain 2191 * @note: btstack_type 1 2192 */ 2193 static inline uint8_t hsp_subevent_microphone_gain_changed_get_gain(const uint8_t * event){ 2194 return event[3]; 2195 } 2196 2197 /** 2198 * @brief Get field subevent_code from event hsp_subevent_speaker_gain_changed 2199 * @param Event packet 2200 * @return subevent_code 2201 * @note: btstack_type 1 2202 */ 2203 static inline uint8_t hsp_subevent_speaker_gain_changed_get_subevent_code(const uint8_t * event){ 2204 return event[2]; 2205 } 2206 /** 2207 * @brief Get field gain from event hsp_subevent_speaker_gain_changed 2208 * @param Event packet 2209 * @return gain 2210 * @note: btstack_type 1 2211 */ 2212 static inline uint8_t hsp_subevent_speaker_gain_changed_get_gain(const uint8_t * event){ 2213 return event[3]; 2214 } 2215 2216 /** 2217 * @brief Get field subevent_code from event hsp_subevent_hs_command 2218 * @param Event packet 2219 * @return subevent_code 2220 * @note: btstack_type 1 2221 */ 2222 static inline uint8_t hsp_subevent_hs_command_get_subevent_code(const uint8_t * event){ 2223 return event[2]; 2224 } 2225 /** 2226 * @brief Get field value_length from event hsp_subevent_hs_command 2227 * @param Event packet 2228 * @return value_length 2229 * @note: btstack_type J 2230 */ 2231 static inline int hsp_subevent_hs_command_get_value_length(const uint8_t * event){ 2232 return event[3]; 2233 } 2234 /** 2235 * @brief Get field value from event hsp_subevent_hs_command 2236 * @param Event packet 2237 * @return value 2238 * @note: btstack_type V 2239 */ 2240 static inline const uint8_t * hsp_subevent_hs_command_get_value(const uint8_t * event){ 2241 return &event[4]; 2242 } 2243 2244 /** 2245 * @brief Get field subevent_code from event hsp_subevent_ag_indication 2246 * @param Event packet 2247 * @return subevent_code 2248 * @note: btstack_type 1 2249 */ 2250 static inline uint8_t hsp_subevent_ag_indication_get_subevent_code(const uint8_t * event){ 2251 return event[2]; 2252 } 2253 /** 2254 * @brief Get field value_length from event hsp_subevent_ag_indication 2255 * @param Event packet 2256 * @return value_length 2257 * @note: btstack_type J 2258 */ 2259 static inline int hsp_subevent_ag_indication_get_value_length(const uint8_t * event){ 2260 return event[3]; 2261 } 2262 /** 2263 * @brief Get field value from event hsp_subevent_ag_indication 2264 * @param Event packet 2265 * @return value 2266 * @note: btstack_type V 2267 */ 2268 static inline const uint8_t * hsp_subevent_ag_indication_get_value(const uint8_t * event){ 2269 return &event[4]; 2270 } 2271 2272 #ifdef ENABLE_BLE 2273 /** 2274 * @brief Get field subevent_code from event ancs_subevent_client_connected 2275 * @param Event packet 2276 * @return subevent_code 2277 * @note: btstack_type 1 2278 */ 2279 static inline uint8_t ancs_subevent_client_connected_get_subevent_code(const uint8_t * event){ 2280 return event[2]; 2281 } 2282 /** 2283 * @brief Get field handle from event ancs_subevent_client_connected 2284 * @param Event packet 2285 * @return handle 2286 * @note: btstack_type H 2287 */ 2288 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 2289 return little_endian_read_16(event, 3); 2290 } 2291 #endif 2292 2293 #ifdef ENABLE_BLE 2294 /** 2295 * @brief Get field subevent_code from event ancs_subevent_client_notification 2296 * @param Event packet 2297 * @return subevent_code 2298 * @note: btstack_type 1 2299 */ 2300 static inline uint8_t ancs_subevent_client_notification_get_subevent_code(const uint8_t * event){ 2301 return event[2]; 2302 } 2303 /** 2304 * @brief Get field handle from event ancs_subevent_client_notification 2305 * @param Event packet 2306 * @return handle 2307 * @note: btstack_type H 2308 */ 2309 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 2310 return little_endian_read_16(event, 3); 2311 } 2312 /** 2313 * @brief Get field attribute_id from event ancs_subevent_client_notification 2314 * @param Event packet 2315 * @return attribute_id 2316 * @note: btstack_type 2 2317 */ 2318 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 2319 return little_endian_read_16(event, 5); 2320 } 2321 /** 2322 * @brief Get field text from event ancs_subevent_client_notification 2323 * @param Event packet 2324 * @return text 2325 * @note: btstack_type T 2326 */ 2327 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 2328 return (const char *) &event[7]; 2329 } 2330 #endif 2331 2332 #ifdef ENABLE_BLE 2333 /** 2334 * @brief Get field subevent_code from event ancs_subevent_client_disconnected 2335 * @param Event packet 2336 * @return subevent_code 2337 * @note: btstack_type 1 2338 */ 2339 static inline uint8_t ancs_subevent_client_disconnected_get_subevent_code(const uint8_t * event){ 2340 return event[2]; 2341 } 2342 /** 2343 * @brief Get field handle from event ancs_subevent_client_disconnected 2344 * @param Event packet 2345 * @return handle 2346 * @note: btstack_type H 2347 */ 2348 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 2349 return little_endian_read_16(event, 3); 2350 } 2351 #endif 2352 2353 2354 2355 /* API_END */ 2356 2357 #if defined __cplusplus 2358 } 2359 #endif 2360 2361 #endif // __BTSTACK_EVENT_H 2362