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 l2cap_event_channel_opened 65 * @param Event packet 66 * @return status 67 * @note: btstack_type 1 68 */ 69 static inline uint8_t l2cap_event_channel_opened_get_status(const uint8_t * event){ 70 return event[2]; 71 } 72 /** 73 * @brief Get field address from event l2cap_event_channel_opened 74 * @param Event packet 75 * @param Pointer to storage for address 76 * @note: btstack_type B 77 */ 78 static inline void l2cap_event_channel_opened_get_address(const uint8_t * event, bd_addr_t address){ 79 reverse_bd_addr(&event[3], address); 80 } 81 /** 82 * @brief Get field handle from event l2cap_event_channel_opened 83 * @param Event packet 84 * @return handle 85 * @note: btstack_type H 86 */ 87 static inline hci_con_handle_t l2cap_event_channel_opened_get_handle(const uint8_t * event){ 88 return little_endian_read_16(event, 9); 89 } 90 /** 91 * @brief Get field psm from event l2cap_event_channel_opened 92 * @param Event packet 93 * @return psm 94 * @note: btstack_type 2 95 */ 96 static inline uint16_t l2cap_event_channel_opened_get_psm(const uint8_t * event){ 97 return little_endian_read_16(event, 11); 98 } 99 /** 100 * @brief Get field local_cid from event l2cap_event_channel_opened 101 * @param Event packet 102 * @return local_cid 103 * @note: btstack_type 2 104 */ 105 static inline uint16_t l2cap_event_channel_opened_get_local_cid(const uint8_t * event){ 106 return little_endian_read_16(event, 13); 107 } 108 /** 109 * @brief Get field remote_cid from event l2cap_event_channel_opened 110 * @param Event packet 111 * @return remote_cid 112 * @note: btstack_type 2 113 */ 114 static inline uint16_t l2cap_event_channel_opened_get_remote_cid(const uint8_t * event){ 115 return little_endian_read_16(event, 15); 116 } 117 /** 118 * @brief Get field local_mtu from event l2cap_event_channel_opened 119 * @param Event packet 120 * @return local_mtu 121 * @note: btstack_type 2 122 */ 123 static inline uint16_t l2cap_event_channel_opened_get_local_mtu(const uint8_t * event){ 124 return little_endian_read_16(event, 17); 125 } 126 /** 127 * @brief Get field remote_mtu from event l2cap_event_channel_opened 128 * @param Event packet 129 * @return remote_mtu 130 * @note: btstack_type 2 131 */ 132 static inline uint16_t l2cap_event_channel_opened_get_remote_mtu(const uint8_t * event){ 133 return little_endian_read_16(event, 19); 134 } 135 /** 136 * @brief Get field flush_timeout from event l2cap_event_channel_opened 137 * @param Event packet 138 * @return flush_timeout 139 * @note: btstack_type 2 140 */ 141 static inline uint16_t l2cap_event_channel_opened_get_flush_timeout(const uint8_t * event){ 142 return little_endian_read_16(event, 21); 143 } 144 145 /** 146 * @brief Get field local_cid from event l2cap_event_channel_closed 147 * @param Event packet 148 * @return local_cid 149 * @note: btstack_type 2 150 */ 151 static inline uint16_t l2cap_event_channel_closed_get_local_cid(const uint8_t * event){ 152 return little_endian_read_16(event, 2); 153 } 154 155 /** 156 * @brief Get field status from event l2cap_event_incoming_connection 157 * @param Event packet 158 * @return status 159 * @note: btstack_type 1 160 */ 161 static inline uint8_t l2cap_event_incoming_connection_get_status(const uint8_t * event){ 162 return event[2]; 163 } 164 /** 165 * @brief Get field address from event l2cap_event_incoming_connection 166 * @param Event packet 167 * @param Pointer to storage for address 168 * @note: btstack_type B 169 */ 170 static inline void l2cap_event_incoming_connection_get_address(const uint8_t * event, bd_addr_t address){ 171 reverse_bd_addr(&event[3], address); 172 } 173 /** 174 * @brief Get field handle from event l2cap_event_incoming_connection 175 * @param Event packet 176 * @return handle 177 * @note: btstack_type H 178 */ 179 static inline hci_con_handle_t l2cap_event_incoming_connection_get_handle(const uint8_t * event){ 180 return little_endian_read_16(event, 9); 181 } 182 /** 183 * @brief Get field psm from event l2cap_event_incoming_connection 184 * @param Event packet 185 * @return psm 186 * @note: btstack_type 2 187 */ 188 static inline uint16_t l2cap_event_incoming_connection_get_psm(const uint8_t * event){ 189 return little_endian_read_16(event, 11); 190 } 191 /** 192 * @brief Get field local_cid from event l2cap_event_incoming_connection 193 * @param Event packet 194 * @return local_cid 195 * @note: btstack_type 2 196 */ 197 static inline uint16_t l2cap_event_incoming_connection_get_local_cid(const uint8_t * event){ 198 return little_endian_read_16(event, 13); 199 } 200 /** 201 * @brief Get field remote_cid from event l2cap_event_incoming_connection 202 * @param Event packet 203 * @return remote_cid 204 * @note: btstack_type 2 205 */ 206 static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint8_t * event){ 207 return little_endian_read_16(event, 15); 208 } 209 210 /** 211 * @brief Get field status from event l2cap_event_service_registered 212 * @param Event packet 213 * @return status 214 * @note: btstack_type 1 215 */ 216 static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){ 217 return event[2]; 218 } 219 /** 220 * @brief Get field psm from event l2cap_event_service_registered 221 * @param Event packet 222 * @return psm 223 * @note: btstack_type 2 224 */ 225 static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){ 226 return little_endian_read_16(event, 3); 227 } 228 229 /** 230 * @brief Get field handle from event l2cap_event_connection_parameter_update_request 231 * @param Event packet 232 * @return handle 233 * @note: btstack_type H 234 */ 235 static inline hci_con_handle_t l2cap_event_connection_parameter_update_request_get_handle(const uint8_t * event){ 236 return little_endian_read_16(event, 2); 237 } 238 /** 239 * @brief Get field interval_min from event l2cap_event_connection_parameter_update_request 240 * @param Event packet 241 * @return interval_min 242 * @note: btstack_type 2 243 */ 244 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_min(const uint8_t * event){ 245 return little_endian_read_16(event, 4); 246 } 247 /** 248 * @brief Get field interval_max from event l2cap_event_connection_parameter_update_request 249 * @param Event packet 250 * @return interval_max 251 * @note: btstack_type 2 252 */ 253 static inline uint16_t l2cap_event_connection_parameter_update_request_get_interval_max(const uint8_t * event){ 254 return little_endian_read_16(event, 6); 255 } 256 /** 257 * @brief Get field latencey from event l2cap_event_connection_parameter_update_request 258 * @param Event packet 259 * @return latencey 260 * @note: btstack_type 2 261 */ 262 static inline uint16_t l2cap_event_connection_parameter_update_request_get_latencey(const uint8_t * event){ 263 return little_endian_read_16(event, 8); 264 } 265 /** 266 * @brief Get field timeout_multiplier from event l2cap_event_connection_parameter_update_request 267 * @param Event packet 268 * @return timeout_multiplier 269 * @note: btstack_type 2 270 */ 271 static inline uint16_t l2cap_event_connection_parameter_update_request_get_timeout_multiplier(const uint8_t * event){ 272 return little_endian_read_16(event, 10); 273 } 274 275 /** 276 * @brief Get field handle from event l2cap_event_connection_parameter_update_response 277 * @param Event packet 278 * @return handle 279 * @note: btstack_type H 280 */ 281 static inline hci_con_handle_t l2cap_event_connection_parameter_update_response_get_handle(const uint8_t * event){ 282 return little_endian_read_16(event, 2); 283 } 284 285 /** 286 * @brief Get field local_cid from event l2cap_event_can_send_now 287 * @param Event packet 288 * @return local_cid 289 * @note: btstack_type 2 290 */ 291 static inline uint16_t l2cap_event_can_send_now_get_local_cid(const uint8_t * event){ 292 return little_endian_read_16(event, 2); 293 } 294 295 /** 296 * @brief Get field status from event rfcomm_event_open_channel_complete 297 * @param Event packet 298 * @return status 299 * @note: btstack_type 1 300 */ 301 static inline uint8_t rfcomm_event_open_channel_complete_get_status(const uint8_t * event){ 302 return event[2]; 303 } 304 /** 305 * @brief Get field bd_addr from event rfcomm_event_open_channel_complete 306 * @param Event packet 307 * @param Pointer to storage for bd_addr 308 * @note: btstack_type B 309 */ 310 static inline void rfcomm_event_open_channel_complete_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 311 reverse_bd_addr(&event[3], bd_addr); 312 } 313 /** 314 * @brief Get field con_handle from event rfcomm_event_open_channel_complete 315 * @param Event packet 316 * @return con_handle 317 * @note: btstack_type 2 318 */ 319 static inline uint16_t rfcomm_event_open_channel_complete_get_con_handle(const uint8_t * event){ 320 return little_endian_read_16(event, 9); 321 } 322 /** 323 * @brief Get field server_channel from event rfcomm_event_open_channel_complete 324 * @param Event packet 325 * @return server_channel 326 * @note: btstack_type 1 327 */ 328 static inline uint8_t rfcomm_event_open_channel_complete_get_server_channel(const uint8_t * event){ 329 return event[11]; 330 } 331 /** 332 * @brief Get field rfcomm_cid from event rfcomm_event_open_channel_complete 333 * @param Event packet 334 * @return rfcomm_cid 335 * @note: btstack_type 2 336 */ 337 static inline uint16_t rfcomm_event_open_channel_complete_get_rfcomm_cid(const uint8_t * event){ 338 return little_endian_read_16(event, 12); 339 } 340 /** 341 * @brief Get field max_frame_size from event rfcomm_event_open_channel_complete 342 * @param Event packet 343 * @return max_frame_size 344 * @note: btstack_type 2 345 */ 346 static inline uint16_t rfcomm_event_open_channel_complete_get_max_frame_size(const uint8_t * event){ 347 return little_endian_read_16(event, 14); 348 } 349 350 /** 351 * @brief Get field rfcomm_cid from event rfcomm_event_channel_closed 352 * @param Event packet 353 * @return rfcomm_cid 354 * @note: btstack_type 2 355 */ 356 static inline uint16_t rfcomm_event_channel_closed_get_rfcomm_cid(const uint8_t * event){ 357 return little_endian_read_16(event, 2); 358 } 359 360 /** 361 * @brief Get field bd_addr from event rfcomm_event_incoming_connection 362 * @param Event packet 363 * @param Pointer to storage for bd_addr 364 * @note: btstack_type B 365 */ 366 static inline void rfcomm_event_incoming_connection_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ 367 reverse_bd_addr(&event[2], bd_addr); 368 } 369 /** 370 * @brief Get field server_channel from event rfcomm_event_incoming_connection 371 * @param Event packet 372 * @return server_channel 373 * @note: btstack_type 1 374 */ 375 static inline uint8_t rfcomm_event_incoming_connection_get_server_channel(const uint8_t * event){ 376 return event[8]; 377 } 378 /** 379 * @brief Get field rfcomm_cid from event rfcomm_event_incoming_connection 380 * @param Event packet 381 * @return rfcomm_cid 382 * @note: btstack_type 2 383 */ 384 static inline uint16_t rfcomm_event_incoming_connection_get_rfcomm_cid(const uint8_t * event){ 385 return little_endian_read_16(event, 9); 386 } 387 388 /** 389 * @brief Get field rfcomm_cid from event rfcomm_event_remote_line_status 390 * @param Event packet 391 * @return rfcomm_cid 392 * @note: btstack_type 2 393 */ 394 static inline uint16_t rfcomm_event_remote_line_status_get_rfcomm_cid(const uint8_t * event){ 395 return little_endian_read_16(event, 2); 396 } 397 /** 398 * @brief Get field line_status from event rfcomm_event_remote_line_status 399 * @param Event packet 400 * @return line_status 401 * @note: btstack_type 1 402 */ 403 static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint8_t * event){ 404 return event[4]; 405 } 406 407 /** 408 * @brief Get field rfcomm_cid from event rfcomm_event_credits 409 * @param Event packet 410 * @return rfcomm_cid 411 * @note: btstack_type 2 412 */ 413 static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){ 414 return little_endian_read_16(event, 2); 415 } 416 /** 417 * @brief Get field credits from event rfcomm_event_credits 418 * @param Event packet 419 * @return credits 420 * @note: btstack_type 1 421 */ 422 static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){ 423 return event[4]; 424 } 425 426 /** 427 * @brief Get field status from event rfcomm_event_service_registered 428 * @param Event packet 429 * @return status 430 * @note: btstack_type 1 431 */ 432 static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){ 433 return event[2]; 434 } 435 /** 436 * @brief Get field channel_id from event rfcomm_event_service_registered 437 * @param Event packet 438 * @return channel_id 439 * @note: btstack_type 1 440 */ 441 static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){ 442 return event[3]; 443 } 444 445 /** 446 * @brief Get field status from event rfcomm_event_persistent_channel 447 * @param Event packet 448 * @return status 449 * @note: btstack_type 1 450 */ 451 static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){ 452 return event[2]; 453 } 454 /** 455 * @brief Get field server_channel_id from event rfcomm_event_persistent_channel 456 * @param Event packet 457 * @return server_channel_id 458 * @note: btstack_type 1 459 */ 460 static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){ 461 return event[3]; 462 } 463 464 /** 465 * @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status 466 * @param Event packet 467 * @return rfcomm_cid 468 * @note: btstack_type 2 469 */ 470 static inline uint16_t rfcomm_event_remote_modem_status_get_rfcomm_cid(const uint8_t * event){ 471 return little_endian_read_16(event, 2); 472 } 473 /** 474 * @brief Get field modem_status from event rfcomm_event_remote_modem_status 475 * @param Event packet 476 * @return modem_status 477 * @note: btstack_type 1 478 */ 479 static inline uint8_t rfcomm_event_remote_modem_status_get_modem_status(const uint8_t * event){ 480 return event[4]; 481 } 482 483 /** 484 * @brief Get field local_cid from event rfcomm_event_can_send_now 485 * @param Event packet 486 * @return local_cid 487 * @note: btstack_type 2 488 */ 489 static inline uint16_t rfcomm_event_can_send_now_get_local_cid(const uint8_t * event){ 490 return little_endian_read_16(event, 2); 491 } 492 493 /** 494 * @brief Get field status from event sdp_event_service_registered 495 * @param Event packet 496 * @return status 497 * @note: btstack_type 1 498 */ 499 static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){ 500 return event[2]; 501 } 502 /** 503 * @brief Get field service_record_handle from event sdp_event_service_registered 504 * @param Event packet 505 * @return service_record_handle 506 * @note: btstack_type 4 507 */ 508 static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){ 509 return little_endian_read_32(event, 3); 510 } 511 512 /** 513 * @brief Get field status from event sdp_event_query_complete 514 * @param Event packet 515 * @return status 516 * @note: btstack_type 1 517 */ 518 static inline uint8_t sdp_event_query_complete_get_status(const uint8_t * event){ 519 return event[2]; 520 } 521 522 /** 523 * @brief Get field rfcomm_channel from event sdp_event_query_rfcomm_service 524 * @param Event packet 525 * @return rfcomm_channel 526 * @note: btstack_type 1 527 */ 528 static inline uint8_t sdp_event_query_rfcomm_service_get_rfcomm_channel(const uint8_t * event){ 529 return event[2]; 530 } 531 /** 532 * @brief Get field name from event sdp_event_query_rfcomm_service 533 * @param Event packet 534 * @return name 535 * @note: btstack_type T 536 */ 537 static inline const char * sdp_event_query_rfcomm_service_get_name(const uint8_t * event){ 538 return (const char *) &event[3]; 539 } 540 541 /** 542 * @brief Get field record_id from event sdp_event_query_attribute_byte 543 * @param Event packet 544 * @return record_id 545 * @note: btstack_type 2 546 */ 547 static inline uint16_t sdp_event_query_attribute_byte_get_record_id(const uint8_t * event){ 548 return little_endian_read_16(event, 2); 549 } 550 /** 551 * @brief Get field attribute_id from event sdp_event_query_attribute_byte 552 * @param Event packet 553 * @return attribute_id 554 * @note: btstack_type 2 555 */ 556 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_id(const uint8_t * event){ 557 return little_endian_read_16(event, 4); 558 } 559 /** 560 * @brief Get field attribute_length from event sdp_event_query_attribute_byte 561 * @param Event packet 562 * @return attribute_length 563 * @note: btstack_type 2 564 */ 565 static inline uint16_t sdp_event_query_attribute_byte_get_attribute_length(const uint8_t * event){ 566 return little_endian_read_16(event, 6); 567 } 568 /** 569 * @brief Get field data_offset from event sdp_event_query_attribute_byte 570 * @param Event packet 571 * @return data_offset 572 * @note: btstack_type 2 573 */ 574 static inline uint16_t sdp_event_query_attribute_byte_get_data_offset(const uint8_t * event){ 575 return little_endian_read_16(event, 8); 576 } 577 /** 578 * @brief Get field data from event sdp_event_query_attribute_byte 579 * @param Event packet 580 * @return data 581 * @note: btstack_type 1 582 */ 583 static inline uint8_t sdp_event_query_attribute_byte_get_data(const uint8_t * event){ 584 return event[10]; 585 } 586 587 /** 588 * @brief Get field record_id from event sdp_event_query_attribute_value 589 * @param Event packet 590 * @return record_id 591 * @note: btstack_type 2 592 */ 593 static inline uint16_t sdp_event_query_attribute_value_get_record_id(const uint8_t * event){ 594 return little_endian_read_16(event, 2); 595 } 596 /** 597 * @brief Get field attribute_id from event sdp_event_query_attribute_value 598 * @param Event packet 599 * @return attribute_id 600 * @note: btstack_type 2 601 */ 602 static inline uint16_t sdp_event_query_attribute_value_get_attribute_id(const uint8_t * event){ 603 return little_endian_read_16(event, 4); 604 } 605 /** 606 * @brief Get field attribute_length from event sdp_event_query_attribute_value 607 * @param Event packet 608 * @return attribute_length 609 * @note: btstack_type L 610 */ 611 static inline int sdp_event_query_attribute_value_get_attribute_length(const uint8_t * event){ 612 return little_endian_read_16(event, 6); 613 } 614 /** 615 * @brief Get field attribute_value from event sdp_event_query_attribute_value 616 * @param Event packet 617 * @return attribute_value 618 * @note: btstack_type V 619 */ 620 static inline const uint8_t * sdp_event_query_attribute_value_get_attribute_value(const uint8_t * event){ 621 return &event[8]; 622 } 623 624 /** 625 * @brief Get field total_count from event sdp_event_query_service_record_handle 626 * @param Event packet 627 * @return total_count 628 * @note: btstack_type 2 629 */ 630 static inline uint16_t sdp_event_query_service_record_handle_get_total_count(const uint8_t * event){ 631 return little_endian_read_16(event, 2); 632 } 633 /** 634 * @brief Get field record_index from event sdp_event_query_service_record_handle 635 * @param Event packet 636 * @return record_index 637 * @note: btstack_type 2 638 */ 639 static inline uint16_t sdp_event_query_service_record_handle_get_record_index(const uint8_t * event){ 640 return little_endian_read_16(event, 4); 641 } 642 /** 643 * @brief Get field record_handle from event sdp_event_query_service_record_handle 644 * @param Event packet 645 * @return record_handle 646 * @note: btstack_type 4 647 */ 648 static inline uint32_t sdp_event_query_service_record_handle_get_record_handle(const uint8_t * event){ 649 return little_endian_read_32(event, 6); 650 } 651 652 #ifdef ENABLE_BLE 653 /** 654 * @brief Get field handle from event gatt_event_query_complete 655 * @param Event packet 656 * @return handle 657 * @note: btstack_type H 658 */ 659 static inline hci_con_handle_t gatt_event_query_complete_get_handle(const uint8_t * event){ 660 return little_endian_read_16(event, 2); 661 } 662 /** 663 * @brief Get field status from event gatt_event_query_complete 664 * @param Event packet 665 * @return status 666 * @note: btstack_type 1 667 */ 668 static inline uint8_t gatt_event_query_complete_get_status(const uint8_t * event){ 669 return event[4]; 670 } 671 #endif 672 673 #ifdef ENABLE_BLE 674 /** 675 * @brief Get field handle from event gatt_event_service_query_result 676 * @param Event packet 677 * @return handle 678 * @note: btstack_type H 679 */ 680 static inline hci_con_handle_t gatt_event_service_query_result_get_handle(const uint8_t * event){ 681 return little_endian_read_16(event, 2); 682 } 683 /** 684 * @brief Get field service from event gatt_event_service_query_result 685 * @param Event packet 686 * @param Pointer to storage for service 687 * @note: btstack_type X 688 */ 689 static inline void gatt_event_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 690 gatt_client_deserialize_service(event, 4, service); 691 } 692 #endif 693 694 #ifdef ENABLE_BLE 695 /** 696 * @brief Get field handle from event gatt_event_characteristic_query_result 697 * @param Event packet 698 * @return handle 699 * @note: btstack_type H 700 */ 701 static inline hci_con_handle_t gatt_event_characteristic_query_result_get_handle(const uint8_t * event){ 702 return little_endian_read_16(event, 2); 703 } 704 /** 705 * @brief Get field characteristic from event gatt_event_characteristic_query_result 706 * @param Event packet 707 * @param Pointer to storage for characteristic 708 * @note: btstack_type Y 709 */ 710 static inline void gatt_event_characteristic_query_result_get_characteristic(const uint8_t * event, gatt_client_characteristic_t * characteristic){ 711 gatt_client_deserialize_characteristic(event, 4, characteristic); 712 } 713 #endif 714 715 #ifdef ENABLE_BLE 716 /** 717 * @brief Get field handle from event gatt_event_included_service_query_result 718 * @param Event packet 719 * @return handle 720 * @note: btstack_type H 721 */ 722 static inline hci_con_handle_t gatt_event_included_service_query_result_get_handle(const uint8_t * event){ 723 return little_endian_read_16(event, 2); 724 } 725 /** 726 * @brief Get field include_handle from event gatt_event_included_service_query_result 727 * @param Event packet 728 * @return include_handle 729 * @note: btstack_type 2 730 */ 731 static inline uint16_t gatt_event_included_service_query_result_get_include_handle(const uint8_t * event){ 732 return little_endian_read_16(event, 4); 733 } 734 /** 735 * @brief Get field service from event gatt_event_included_service_query_result 736 * @param Event packet 737 * @param Pointer to storage for service 738 * @note: btstack_type X 739 */ 740 static inline void gatt_event_included_service_query_result_get_service(const uint8_t * event, gatt_client_service_t * service){ 741 gatt_client_deserialize_service(event, 6, service); 742 } 743 #endif 744 745 #ifdef ENABLE_BLE 746 /** 747 * @brief Get field handle from event gatt_event_all_characteristic_descriptors_query_result 748 * @param Event packet 749 * @return handle 750 * @note: btstack_type H 751 */ 752 static inline hci_con_handle_t gatt_event_all_characteristic_descriptors_query_result_get_handle(const uint8_t * event){ 753 return little_endian_read_16(event, 2); 754 } 755 /** 756 * @brief Get field characteristic_descriptor from event gatt_event_all_characteristic_descriptors_query_result 757 * @param Event packet 758 * @param Pointer to storage for characteristic_descriptor 759 * @note: btstack_type Z 760 */ 761 static inline void gatt_event_all_characteristic_descriptors_query_result_get_characteristic_descriptor(const uint8_t * event, gatt_client_characteristic_descriptor_t * characteristic_descriptor){ 762 gatt_client_deserialize_characteristic_descriptor(event, 4, characteristic_descriptor); 763 } 764 #endif 765 766 #ifdef ENABLE_BLE 767 /** 768 * @brief Get field handle from event gatt_event_characteristic_value_query_result 769 * @param Event packet 770 * @return handle 771 * @note: btstack_type H 772 */ 773 static inline hci_con_handle_t gatt_event_characteristic_value_query_result_get_handle(const uint8_t * event){ 774 return little_endian_read_16(event, 2); 775 } 776 /** 777 * @brief Get field value_handle from event gatt_event_characteristic_value_query_result 778 * @param Event packet 779 * @return value_handle 780 * @note: btstack_type 2 781 */ 782 static inline uint16_t gatt_event_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 783 return little_endian_read_16(event, 4); 784 } 785 /** 786 * @brief Get field value_length from event gatt_event_characteristic_value_query_result 787 * @param Event packet 788 * @return value_length 789 * @note: btstack_type L 790 */ 791 static inline int gatt_event_characteristic_value_query_result_get_value_length(const uint8_t * event){ 792 return little_endian_read_16(event, 6); 793 } 794 /** 795 * @brief Get field value from event gatt_event_characteristic_value_query_result 796 * @param Event packet 797 * @return value 798 * @note: btstack_type V 799 */ 800 static inline const uint8_t * gatt_event_characteristic_value_query_result_get_value(const uint8_t * event){ 801 return &event[8]; 802 } 803 #endif 804 805 #ifdef ENABLE_BLE 806 /** 807 * @brief Get field handle from event gatt_event_long_characteristic_value_query_result 808 * @param Event packet 809 * @return handle 810 * @note: btstack_type H 811 */ 812 static inline hci_con_handle_t gatt_event_long_characteristic_value_query_result_get_handle(const uint8_t * event){ 813 return little_endian_read_16(event, 2); 814 } 815 /** 816 * @brief Get field value_handle from event gatt_event_long_characteristic_value_query_result 817 * @param Event packet 818 * @return value_handle 819 * @note: btstack_type 2 820 */ 821 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_handle(const uint8_t * event){ 822 return little_endian_read_16(event, 4); 823 } 824 /** 825 * @brief Get field value_offset from event gatt_event_long_characteristic_value_query_result 826 * @param Event packet 827 * @return value_offset 828 * @note: btstack_type 2 829 */ 830 static inline uint16_t gatt_event_long_characteristic_value_query_result_get_value_offset(const uint8_t * event){ 831 return little_endian_read_16(event, 6); 832 } 833 /** 834 * @brief Get field value_length from event gatt_event_long_characteristic_value_query_result 835 * @param Event packet 836 * @return value_length 837 * @note: btstack_type L 838 */ 839 static inline int gatt_event_long_characteristic_value_query_result_get_value_length(const uint8_t * event){ 840 return little_endian_read_16(event, 8); 841 } 842 /** 843 * @brief Get field value from event gatt_event_long_characteristic_value_query_result 844 * @param Event packet 845 * @return value 846 * @note: btstack_type V 847 */ 848 static inline const uint8_t * gatt_event_long_characteristic_value_query_result_get_value(const uint8_t * event){ 849 return &event[10]; 850 } 851 #endif 852 853 #ifdef ENABLE_BLE 854 /** 855 * @brief Get field handle from event gatt_event_notification 856 * @param Event packet 857 * @return handle 858 * @note: btstack_type H 859 */ 860 static inline hci_con_handle_t gatt_event_notification_get_handle(const uint8_t * event){ 861 return little_endian_read_16(event, 2); 862 } 863 /** 864 * @brief Get field value_handle from event gatt_event_notification 865 * @param Event packet 866 * @return value_handle 867 * @note: btstack_type 2 868 */ 869 static inline uint16_t gatt_event_notification_get_value_handle(const uint8_t * event){ 870 return little_endian_read_16(event, 4); 871 } 872 /** 873 * @brief Get field value_length from event gatt_event_notification 874 * @param Event packet 875 * @return value_length 876 * @note: btstack_type L 877 */ 878 static inline int gatt_event_notification_get_value_length(const uint8_t * event){ 879 return little_endian_read_16(event, 6); 880 } 881 /** 882 * @brief Get field value from event gatt_event_notification 883 * @param Event packet 884 * @return value 885 * @note: btstack_type V 886 */ 887 static inline const uint8_t * gatt_event_notification_get_value(const uint8_t * event){ 888 return &event[8]; 889 } 890 #endif 891 892 #ifdef ENABLE_BLE 893 /** 894 * @brief Get field handle from event gatt_event_indication 895 * @param Event packet 896 * @return handle 897 * @note: btstack_type H 898 */ 899 static inline hci_con_handle_t gatt_event_indication_get_handle(const uint8_t * event){ 900 return little_endian_read_16(event, 2); 901 } 902 /** 903 * @brief Get field value_handle from event gatt_event_indication 904 * @param Event packet 905 * @return value_handle 906 * @note: btstack_type 2 907 */ 908 static inline uint16_t gatt_event_indication_get_value_handle(const uint8_t * event){ 909 return little_endian_read_16(event, 4); 910 } 911 /** 912 * @brief Get field value_length from event gatt_event_indication 913 * @param Event packet 914 * @return value_length 915 * @note: btstack_type L 916 */ 917 static inline int gatt_event_indication_get_value_length(const uint8_t * event){ 918 return little_endian_read_16(event, 6); 919 } 920 /** 921 * @brief Get field value from event gatt_event_indication 922 * @param Event packet 923 * @return value 924 * @note: btstack_type V 925 */ 926 static inline const uint8_t * gatt_event_indication_get_value(const uint8_t * event){ 927 return &event[8]; 928 } 929 #endif 930 931 #ifdef ENABLE_BLE 932 /** 933 * @brief Get field descriptor_handle from event gatt_event_characteristic_descriptor_query_result 934 * @param Event packet 935 * @return descriptor_handle 936 * @note: btstack_type H 937 */ 938 static inline hci_con_handle_t gatt_event_characteristic_descriptor_query_result_get_descriptor_handle(const uint8_t * event){ 939 return little_endian_read_16(event, 2); 940 } 941 /** 942 * @brief Get field descriptor_length from event gatt_event_characteristic_descriptor_query_result 943 * @param Event packet 944 * @return descriptor_length 945 * @note: btstack_type 2 946 */ 947 static inline uint16_t gatt_event_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 948 return little_endian_read_16(event, 4); 949 } 950 /** 951 * @brief Get field descriptor from event gatt_event_characteristic_descriptor_query_result 952 * @param Event packet 953 * @return descriptor 954 * @note: btstack_type L 955 */ 956 static inline int gatt_event_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 957 return little_endian_read_16(event, 6); 958 } 959 #endif 960 961 #ifdef ENABLE_BLE 962 /** 963 * @brief Get field handle from event gatt_event_long_characteristic_descriptor_query_result 964 * @param Event packet 965 * @return handle 966 * @note: btstack_type H 967 */ 968 static inline hci_con_handle_t gatt_event_long_characteristic_descriptor_query_result_get_handle(const uint8_t * event){ 969 return little_endian_read_16(event, 2); 970 } 971 /** 972 * @brief Get field descriptor_offset from event gatt_event_long_characteristic_descriptor_query_result 973 * @param Event packet 974 * @return descriptor_offset 975 * @note: btstack_type 2 976 */ 977 static inline uint16_t gatt_event_long_characteristic_descriptor_query_result_get_descriptor_offset(const uint8_t * event){ 978 return little_endian_read_16(event, 4); 979 } 980 /** 981 * @brief Get field descriptor_length from event gatt_event_long_characteristic_descriptor_query_result 982 * @param Event packet 983 * @return descriptor_length 984 * @note: btstack_type L 985 */ 986 static inline int gatt_event_long_characteristic_descriptor_query_result_get_descriptor_length(const uint8_t * event){ 987 return little_endian_read_16(event, 6); 988 } 989 /** 990 * @brief Get field descriptor from event gatt_event_long_characteristic_descriptor_query_result 991 * @param Event packet 992 * @return descriptor 993 * @note: btstack_type V 994 */ 995 static inline const uint8_t * gatt_event_long_characteristic_descriptor_query_result_get_descriptor(const uint8_t * event){ 996 return &event[8]; 997 } 998 #endif 999 1000 #ifdef ENABLE_BLE 1001 /** 1002 * @brief Get field handle from event gatt_event_mtu 1003 * @param Event packet 1004 * @return handle 1005 * @note: btstack_type H 1006 */ 1007 static inline hci_con_handle_t gatt_event_mtu_get_handle(const uint8_t * event){ 1008 return little_endian_read_16(event, 2); 1009 } 1010 /** 1011 * @brief Get field MTU from event gatt_event_mtu 1012 * @param Event packet 1013 * @return MTU 1014 * @note: btstack_type 2 1015 */ 1016 static inline uint16_t gatt_event_mtu_get_MTU(const uint8_t * event){ 1017 return little_endian_read_16(event, 4); 1018 } 1019 #endif 1020 1021 #ifdef ENABLE_BLE 1022 /** 1023 * @brief Get field handle from event sm_event_just_works_request 1024 * @param Event packet 1025 * @return handle 1026 * @note: btstack_type H 1027 */ 1028 static inline hci_con_handle_t sm_event_just_works_request_get_handle(const uint8_t * event){ 1029 return little_endian_read_16(event, 2); 1030 } 1031 /** 1032 * @brief Get field addr_type from event sm_event_just_works_request 1033 * @param Event packet 1034 * @return addr_type 1035 * @note: btstack_type 1 1036 */ 1037 static inline uint8_t sm_event_just_works_request_get_addr_type(const uint8_t * event){ 1038 return event[4]; 1039 } 1040 /** 1041 * @brief Get field address from event sm_event_just_works_request 1042 * @param Event packet 1043 * @param Pointer to storage for address 1044 * @note: btstack_type B 1045 */ 1046 static inline void sm_event_just_works_request_get_address(const uint8_t * event, bd_addr_t address){ 1047 reverse_bd_addr(&event[5], address); 1048 } 1049 #endif 1050 1051 #ifdef ENABLE_BLE 1052 /** 1053 * @brief Get field handle from event sm_event_just_works_cancel 1054 * @param Event packet 1055 * @return handle 1056 * @note: btstack_type H 1057 */ 1058 static inline hci_con_handle_t sm_event_just_works_cancel_get_handle(const uint8_t * event){ 1059 return little_endian_read_16(event, 2); 1060 } 1061 /** 1062 * @brief Get field addr_type from event sm_event_just_works_cancel 1063 * @param Event packet 1064 * @return addr_type 1065 * @note: btstack_type 1 1066 */ 1067 static inline uint8_t sm_event_just_works_cancel_get_addr_type(const uint8_t * event){ 1068 return event[4]; 1069 } 1070 /** 1071 * @brief Get field address from event sm_event_just_works_cancel 1072 * @param Event packet 1073 * @param Pointer to storage for address 1074 * @note: btstack_type B 1075 */ 1076 static inline void sm_event_just_works_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1077 reverse_bd_addr(&event[5], address); 1078 } 1079 #endif 1080 1081 #ifdef ENABLE_BLE 1082 /** 1083 * @brief Get field handle from event sm_event_passkey_display_number 1084 * @param Event packet 1085 * @return handle 1086 * @note: btstack_type H 1087 */ 1088 static inline hci_con_handle_t sm_event_passkey_display_number_get_handle(const uint8_t * event){ 1089 return little_endian_read_16(event, 2); 1090 } 1091 /** 1092 * @brief Get field addr_type from event sm_event_passkey_display_number 1093 * @param Event packet 1094 * @return addr_type 1095 * @note: btstack_type 1 1096 */ 1097 static inline uint8_t sm_event_passkey_display_number_get_addr_type(const uint8_t * event){ 1098 return event[4]; 1099 } 1100 /** 1101 * @brief Get field address from event sm_event_passkey_display_number 1102 * @param Event packet 1103 * @param Pointer to storage for address 1104 * @note: btstack_type B 1105 */ 1106 static inline void sm_event_passkey_display_number_get_address(const uint8_t * event, bd_addr_t address){ 1107 reverse_bd_addr(&event[5], address); 1108 } 1109 /** 1110 * @brief Get field passkey from event sm_event_passkey_display_number 1111 * @param Event packet 1112 * @return passkey 1113 * @note: btstack_type 4 1114 */ 1115 static inline uint32_t sm_event_passkey_display_number_get_passkey(const uint8_t * event){ 1116 return little_endian_read_32(event, 11); 1117 } 1118 #endif 1119 1120 #ifdef ENABLE_BLE 1121 /** 1122 * @brief Get field handle from event sm_event_passkey_display_cancel 1123 * @param Event packet 1124 * @return handle 1125 * @note: btstack_type H 1126 */ 1127 static inline hci_con_handle_t sm_event_passkey_display_cancel_get_handle(const uint8_t * event){ 1128 return little_endian_read_16(event, 2); 1129 } 1130 /** 1131 * @brief Get field addr_type from event sm_event_passkey_display_cancel 1132 * @param Event packet 1133 * @return addr_type 1134 * @note: btstack_type 1 1135 */ 1136 static inline uint8_t sm_event_passkey_display_cancel_get_addr_type(const uint8_t * event){ 1137 return event[4]; 1138 } 1139 /** 1140 * @brief Get field address from event sm_event_passkey_display_cancel 1141 * @param Event packet 1142 * @param Pointer to storage for address 1143 * @note: btstack_type B 1144 */ 1145 static inline void sm_event_passkey_display_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1146 reverse_bd_addr(&event[5], address); 1147 } 1148 #endif 1149 1150 #ifdef ENABLE_BLE 1151 /** 1152 * @brief Get field handle from event sm_event_passkey_input_number 1153 * @param Event packet 1154 * @return handle 1155 * @note: btstack_type H 1156 */ 1157 static inline hci_con_handle_t sm_event_passkey_input_number_get_handle(const uint8_t * event){ 1158 return little_endian_read_16(event, 2); 1159 } 1160 /** 1161 * @brief Get field addr_type from event sm_event_passkey_input_number 1162 * @param Event packet 1163 * @return addr_type 1164 * @note: btstack_type 1 1165 */ 1166 static inline uint8_t sm_event_passkey_input_number_get_addr_type(const uint8_t * event){ 1167 return event[4]; 1168 } 1169 /** 1170 * @brief Get field address from event sm_event_passkey_input_number 1171 * @param Event packet 1172 * @param Pointer to storage for address 1173 * @note: btstack_type B 1174 */ 1175 static inline void sm_event_passkey_input_number_get_address(const uint8_t * event, bd_addr_t address){ 1176 reverse_bd_addr(&event[5], address); 1177 } 1178 #endif 1179 1180 #ifdef ENABLE_BLE 1181 /** 1182 * @brief Get field handle from event sm_event_passkey_input_cancel 1183 * @param Event packet 1184 * @return handle 1185 * @note: btstack_type H 1186 */ 1187 static inline hci_con_handle_t sm_event_passkey_input_cancel_get_handle(const uint8_t * event){ 1188 return little_endian_read_16(event, 2); 1189 } 1190 /** 1191 * @brief Get field addr_type from event sm_event_passkey_input_cancel 1192 * @param Event packet 1193 * @return addr_type 1194 * @note: btstack_type 1 1195 */ 1196 static inline uint8_t sm_event_passkey_input_cancel_get_addr_type(const uint8_t * event){ 1197 return event[4]; 1198 } 1199 /** 1200 * @brief Get field address from event sm_event_passkey_input_cancel 1201 * @param Event packet 1202 * @param Pointer to storage for address 1203 * @note: btstack_type B 1204 */ 1205 static inline void sm_event_passkey_input_cancel_get_address(const uint8_t * event, bd_addr_t address){ 1206 reverse_bd_addr(&event[5], address); 1207 } 1208 #endif 1209 1210 #ifdef ENABLE_BLE 1211 /** 1212 * @brief Get field handle from event sm_event_identity_resolving_started 1213 * @param Event packet 1214 * @return handle 1215 * @note: btstack_type H 1216 */ 1217 static inline hci_con_handle_t sm_event_identity_resolving_started_get_handle(const uint8_t * event){ 1218 return little_endian_read_16(event, 2); 1219 } 1220 /** 1221 * @brief Get field addr_type from event sm_event_identity_resolving_started 1222 * @param Event packet 1223 * @return addr_type 1224 * @note: btstack_type 1 1225 */ 1226 static inline uint8_t sm_event_identity_resolving_started_get_addr_type(const uint8_t * event){ 1227 return event[4]; 1228 } 1229 /** 1230 * @brief Get field address from event sm_event_identity_resolving_started 1231 * @param Event packet 1232 * @param Pointer to storage for address 1233 * @note: btstack_type B 1234 */ 1235 static inline void sm_event_identity_resolving_started_get_address(const uint8_t * event, bd_addr_t address){ 1236 reverse_bd_addr(&event[5], address); 1237 } 1238 #endif 1239 1240 #ifdef ENABLE_BLE 1241 /** 1242 * @brief Get field handle from event sm_event_identity_resolving_failed 1243 * @param Event packet 1244 * @return handle 1245 * @note: btstack_type H 1246 */ 1247 static inline hci_con_handle_t sm_event_identity_resolving_failed_get_handle(const uint8_t * event){ 1248 return little_endian_read_16(event, 2); 1249 } 1250 /** 1251 * @brief Get field addr_type from event sm_event_identity_resolving_failed 1252 * @param Event packet 1253 * @return addr_type 1254 * @note: btstack_type 1 1255 */ 1256 static inline uint8_t sm_event_identity_resolving_failed_get_addr_type(const uint8_t * event){ 1257 return event[4]; 1258 } 1259 /** 1260 * @brief Get field address from event sm_event_identity_resolving_failed 1261 * @param Event packet 1262 * @param Pointer to storage for address 1263 * @note: btstack_type B 1264 */ 1265 static inline void sm_event_identity_resolving_failed_get_address(const uint8_t * event, bd_addr_t address){ 1266 reverse_bd_addr(&event[5], address); 1267 } 1268 #endif 1269 1270 #ifdef ENABLE_BLE 1271 /** 1272 * @brief Get field handle from event sm_event_identity_resolving_succeeded 1273 * @param Event packet 1274 * @return handle 1275 * @note: btstack_type H 1276 */ 1277 static inline hci_con_handle_t sm_event_identity_resolving_succeeded_get_handle(const uint8_t * event){ 1278 return little_endian_read_16(event, 2); 1279 } 1280 /** 1281 * @brief Get field addr_type from event sm_event_identity_resolving_succeeded 1282 * @param Event packet 1283 * @return addr_type 1284 * @note: btstack_type 1 1285 */ 1286 static inline uint8_t sm_event_identity_resolving_succeeded_get_addr_type(const uint8_t * event){ 1287 return event[4]; 1288 } 1289 /** 1290 * @brief Get field address from event sm_event_identity_resolving_succeeded 1291 * @param Event packet 1292 * @param Pointer to storage for address 1293 * @note: btstack_type B 1294 */ 1295 static inline void sm_event_identity_resolving_succeeded_get_address(const uint8_t * event, bd_addr_t address){ 1296 reverse_bd_addr(&event[5], address); 1297 } 1298 /** 1299 * @brief Get field le_device_db_index from event sm_event_identity_resolving_succeeded 1300 * @param Event packet 1301 * @return le_device_db_index 1302 * @note: btstack_type 2 1303 */ 1304 static inline uint16_t sm_event_identity_resolving_succeeded_get_le_device_db_index(const uint8_t * event){ 1305 return little_endian_read_16(event, 11); 1306 } 1307 #endif 1308 1309 #ifdef ENABLE_BLE 1310 /** 1311 * @brief Get field handle from event sm_event_authorization_request 1312 * @param Event packet 1313 * @return handle 1314 * @note: btstack_type H 1315 */ 1316 static inline hci_con_handle_t sm_event_authorization_request_get_handle(const uint8_t * event){ 1317 return little_endian_read_16(event, 2); 1318 } 1319 /** 1320 * @brief Get field addr_type from event sm_event_authorization_request 1321 * @param Event packet 1322 * @return addr_type 1323 * @note: btstack_type 1 1324 */ 1325 static inline uint8_t sm_event_authorization_request_get_addr_type(const uint8_t * event){ 1326 return event[4]; 1327 } 1328 /** 1329 * @brief Get field address from event sm_event_authorization_request 1330 * @param Event packet 1331 * @param Pointer to storage for address 1332 * @note: btstack_type B 1333 */ 1334 static inline void sm_event_authorization_request_get_address(const uint8_t * event, bd_addr_t address){ 1335 reverse_bd_addr(&event[5], address); 1336 } 1337 #endif 1338 1339 #ifdef ENABLE_BLE 1340 /** 1341 * @brief Get field handle from event sm_event_authorization_result 1342 * @param Event packet 1343 * @return handle 1344 * @note: btstack_type H 1345 */ 1346 static inline hci_con_handle_t sm_event_authorization_result_get_handle(const uint8_t * event){ 1347 return little_endian_read_16(event, 2); 1348 } 1349 /** 1350 * @brief Get field addr_type from event sm_event_authorization_result 1351 * @param Event packet 1352 * @return addr_type 1353 * @note: btstack_type 1 1354 */ 1355 static inline uint8_t sm_event_authorization_result_get_addr_type(const uint8_t * event){ 1356 return event[4]; 1357 } 1358 /** 1359 * @brief Get field address from event sm_event_authorization_result 1360 * @param Event packet 1361 * @param Pointer to storage for address 1362 * @note: btstack_type B 1363 */ 1364 static inline void sm_event_authorization_result_get_address(const uint8_t * event, bd_addr_t address){ 1365 reverse_bd_addr(&event[5], address); 1366 } 1367 /** 1368 * @brief Get field authorization_result from event sm_event_authorization_result 1369 * @param Event packet 1370 * @return authorization_result 1371 * @note: btstack_type 1 1372 */ 1373 static inline uint8_t sm_event_authorization_result_get_authorization_result(const uint8_t * event){ 1374 return event[11]; 1375 } 1376 #endif 1377 1378 #ifdef ENABLE_BLE 1379 /** 1380 * @brief Get field subevent_code from event ancs_subevent_client_connected 1381 * @param Event packet 1382 * @return subevent_code 1383 * @note: btstack_type 1 1384 */ 1385 static inline uint8_t ancs_subevent_client_connected_get_subevent_code(const uint8_t * event){ 1386 return event[2]; 1387 } 1388 /** 1389 * @brief Get field handle from event ancs_subevent_client_connected 1390 * @param Event packet 1391 * @return handle 1392 * @note: btstack_type H 1393 */ 1394 static inline hci_con_handle_t ancs_subevent_client_connected_get_handle(const uint8_t * event){ 1395 return little_endian_read_16(event, 3); 1396 } 1397 #endif 1398 1399 #ifdef ENABLE_BLE 1400 /** 1401 * @brief Get field subevent_code from event ancs_subevent_client_notification 1402 * @param Event packet 1403 * @return subevent_code 1404 * @note: btstack_type 1 1405 */ 1406 static inline uint8_t ancs_subevent_client_notification_get_subevent_code(const uint8_t * event){ 1407 return event[2]; 1408 } 1409 /** 1410 * @brief Get field handle from event ancs_subevent_client_notification 1411 * @param Event packet 1412 * @return handle 1413 * @note: btstack_type H 1414 */ 1415 static inline hci_con_handle_t ancs_subevent_client_notification_get_handle(const uint8_t * event){ 1416 return little_endian_read_16(event, 3); 1417 } 1418 /** 1419 * @brief Get field attribute_id from event ancs_subevent_client_notification 1420 * @param Event packet 1421 * @return attribute_id 1422 * @note: btstack_type 2 1423 */ 1424 static inline uint16_t ancs_subevent_client_notification_get_attribute_id(const uint8_t * event){ 1425 return little_endian_read_16(event, 5); 1426 } 1427 /** 1428 * @brief Get field text from event ancs_subevent_client_notification 1429 * @param Event packet 1430 * @return text 1431 * @note: btstack_type T 1432 */ 1433 static inline const char * ancs_subevent_client_notification_get_text(const uint8_t * event){ 1434 return (const char *) &event[7]; 1435 } 1436 #endif 1437 1438 #ifdef ENABLE_BLE 1439 /** 1440 * @brief Get field subevent_code from event ancs_subevent_client_disconnected 1441 * @param Event packet 1442 * @return subevent_code 1443 * @note: btstack_type 1 1444 */ 1445 static inline uint8_t ancs_subevent_client_disconnected_get_subevent_code(const uint8_t * event){ 1446 return event[2]; 1447 } 1448 /** 1449 * @brief Get field handle from event ancs_subevent_client_disconnected 1450 * @param Event packet 1451 * @return handle 1452 * @note: btstack_type H 1453 */ 1454 static inline hci_con_handle_t ancs_subevent_client_disconnected_get_handle(const uint8_t * event){ 1455 return little_endian_read_16(event, 3); 1456 } 1457 #endif 1458 1459 1460 1461 /* API_END */ 1462 1463 #if defined __cplusplus 1464 } 1465 #endif 1466 1467 #endif // __BTSTACK_EVENT_H 1468