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 /* API_START */ 58 59 60 /** 61 * @brief Get field status from event sdp_query_complete_event 62 * @param Event packet 63 * @return status 64 * @note: btstack_type 1 65 */ 66 static inline uint8_t sdp_query_complete_event_get_status(const uint8_t * event){ 67 return event[2]; 68 } 69 70 /** 71 * @brief Get field rfcomm_channel from event sdp_query_rfcomm_service_event 72 * @param Event packet 73 * @return rfcomm_channel 74 * @note: btstack_type 1 75 */ 76 static inline uint8_t sdp_query_rfcomm_service_event_get_rfcomm_channel(const uint8_t * event){ 77 return event[2]; 78 } 79 80 /** 81 * @brief Get field name from event sdp_query_rfcomm_service_event 82 * @param Event packet 83 * @return name 84 * @note: btstack_type T 85 */ 86 static inline const char * sdp_query_rfcomm_service_event_get_name(const uint8_t * event){ 87 return (const char *) &event[3]; 88 } 89 90 /** 91 * @brief Get field record_id from event sdp_query_attribute_byte_event 92 * @param Event packet 93 * @return record_id 94 * @note: btstack_type 2 95 */ 96 static inline uint16_t sdp_query_attribute_byte_event_get_record_id(const uint8_t * event){ 97 return little_endian_read_16(event, 2); 98 } 99 100 /** 101 * @brief Get field attribute_id from event sdp_query_attribute_byte_event 102 * @param Event packet 103 * @return attribute_id 104 * @note: btstack_type 2 105 */ 106 static inline uint16_t sdp_query_attribute_byte_event_get_attribute_id(const uint8_t * event){ 107 return little_endian_read_16(event, 4); 108 } 109 110 /** 111 * @brief Get field attribute_length from event sdp_query_attribute_byte_event 112 * @param Event packet 113 * @return attribute_length 114 * @note: btstack_type 2 115 */ 116 static inline uint16_t sdp_query_attribute_byte_event_get_attribute_length(const uint8_t * event){ 117 return little_endian_read_16(event, 6); 118 } 119 120 /** 121 * @brief Get field data_offset from event sdp_query_attribute_byte_event 122 * @param Event packet 123 * @return data_offset 124 * @note: btstack_type 2 125 */ 126 static inline uint16_t sdp_query_attribute_byte_event_get_data_offset(const uint8_t * event){ 127 return little_endian_read_16(event, 8); 128 } 129 130 /** 131 * @brief Get field data from event sdp_query_attribute_byte_event 132 * @param Event packet 133 * @return data 134 * @note: btstack_type 1 135 */ 136 static inline uint8_t sdp_query_attribute_byte_event_get_data(const uint8_t * event){ 137 return event[10]; 138 } 139 140 /** 141 * @brief Get field total_count from event sdp_query_service_record_handle_event 142 * @param Event packet 143 * @return total_count 144 * @note: btstack_type 2 145 */ 146 static inline uint16_t sdp_query_service_record_handle_event_get_total_count(const uint8_t * event){ 147 return little_endian_read_16(event, 2); 148 } 149 150 /** 151 * @brief Get field record_index from event sdp_query_service_record_handle_event 152 * @param Event packet 153 * @return record_index 154 * @note: btstack_type 2 155 */ 156 static inline uint16_t sdp_query_service_record_handle_event_get_record_index(const uint8_t * event){ 157 return little_endian_read_16(event, 4); 158 } 159 160 /** 161 * @brief Get field record_handle from event sdp_query_service_record_handle_event 162 * @param Event packet 163 * @return record_handle 164 * @note: btstack_type 4 165 */ 166 static inline uint32_t sdp_query_service_record_handle_event_get_record_handle(const uint8_t * event){ 167 return little_endian_read_32(event, 6); 168 } 169 170 /** 171 * @brief Get field handle from event ancs_client_connected_event 172 * @param Event packet 173 * @return handle 174 * @note: btstack_type H 175 */ 176 static inline hci_con_handle_t ancs_client_connected_event_get_handle(const uint8_t * event){ 177 return little_endian_read_16(event, 2); 178 } 179 180 /** 181 * @brief Get field handle from event ancs_client_notification_event 182 * @param Event packet 183 * @return handle 184 * @note: btstack_type H 185 */ 186 static inline hci_con_handle_t ancs_client_notification_event_get_handle(const uint8_t * event){ 187 return little_endian_read_16(event, 2); 188 } 189 190 /** 191 * @brief Get field attribute_id from event ancs_client_notification_event 192 * @param Event packet 193 * @return attribute_id 194 * @note: btstack_type 2 195 */ 196 static inline uint16_t ancs_client_notification_event_get_attribute_id(const uint8_t * event){ 197 return little_endian_read_16(event, 4); 198 } 199 200 /** 201 * @brief Get field text from event ancs_client_notification_event 202 * @param Event packet 203 * @return text 204 * @note: btstack_type T 205 */ 206 static inline const char * ancs_client_notification_event_get_text(const uint8_t * event){ 207 return (const char *) &event[6]; 208 } 209 210 /** 211 * @brief Get field handle from event ancs_client_disconnected_event 212 * @param Event packet 213 * @return handle 214 * @note: btstack_type H 215 */ 216 static inline hci_con_handle_t ancs_client_disconnected_event_get_handle(const uint8_t * event){ 217 return little_endian_read_16(event, 2); 218 } 219 220 221 /* API_END */ 222 223 #if defined __cplusplus 224 } 225 #endif 226 227 #endif // __BTSTACK_EVENT_H 228