From 86b052c5712ca8879c768d1727765450a5eb2bcf Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 20 Apr 2023 17:54:59 +0200 Subject: [PATCH] btstack_defines: add BIP_DATA_PACKET and cover art events --- src/btstack_defines.h | 59 +++++++++++++++++++----- src/btstack_event.h | 103 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+), 11 deletions(-) diff --git a/src/btstack_defines.h b/src/btstack_defines.h index e735ac68b..2182ad882 100644 --- a/src/btstack_defines.h +++ b/src/btstack_defines.h @@ -117,17 +117,20 @@ typedef uint8_t sm_key_t[16]; // MAP data #define MAP_DATA_PACKET 0x10u +// BIP data +#define BIP_DATA_PACKET 0x11 + // Mesh Provisioning PDU -#define PROVISIONING_DATA_PACKET 0x11u +#define PROVISIONING_DATA_PACKET 0x12u // Mesh Proxy PDU -#define MESH_PROXY_DATA_PACKET 0x11u +#define MESH_PROXY_DATA_PACKET 0x12u // Mesh Network PDU -#define MESH_NETWORK_PACKET 0x12u +#define MESH_NETWORK_PACKET 0x13u // Mesh Network PDU -#define MESH_BEACON_PACKET 0x13u +#define MESH_BEACON_PACKET 0x14u // debug log messages #define LOG_MESSAGE_PACKET 0xfcu @@ -3388,6 +3391,16 @@ typedef uint8_t sm_key_t[16]; */ #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u +/* +* @format 121JV +* @param subevent_code +* @param avrcp_cid +* @param command_type +* @param value_len +* @param value +*/ +#define AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO 0x22u + /* * @format 1211 * @param subevent_code @@ -3395,7 +3408,7 @@ typedef uint8_t sm_key_t[16]; * @param command_type * @param status */ -#define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x22u +#define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x23u /** * @format 1214 @@ -3404,7 +3417,7 @@ typedef uint8_t sm_key_t[16]; * @param command_type * @param playback_position_ms */ -#define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x23u +#define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x24u /* * @format 12111 @@ -3414,7 +3427,7 @@ typedef uint8_t sm_key_t[16]; * @param status * @param event_id */ -#define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x24u +#define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x25u /* * @format 1211 * @param subevent_code @@ -3422,7 +3435,7 @@ typedef uint8_t sm_key_t[16]; * @param command_type * @param status */ -#define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x25u +#define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x26u /* * @format 12113 @@ -3432,7 +3445,7 @@ typedef uint8_t sm_key_t[16]; * @param status * @param company_id */ -#define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x26u +#define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x27u /* * @format 1211 * @param subevent_code @@ -3440,7 +3453,7 @@ typedef uint8_t sm_key_t[16]; * @param command_type * @param status */ -#define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x27u +#define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x28u /** * @format 1211LV @@ -3451,7 +3464,7 @@ typedef uint8_t sm_key_t[16]; * @param params_len * @param params */ -#define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x28u +#define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x29u /** @@ -3513,6 +3526,30 @@ typedef uint8_t sm_key_t[16]; */ #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u +/** + * @format 11B22 + * @param subevent_code + * @param status 0 == OK + * @param bd_addr + * @param avrcp_cid + * @param cover_art_cid + */ +#define AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED 0x37u + +/** + * @format 121 + * @param subevent_code + * @param cover_art_cid + * @param status + */ +#define AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE 0x38u + +/** + * @format 12 + * @param subevent_code + * @param cover_art_cid + */ +#define AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED 0x39u /** * @format 12BH diff --git a/src/btstack_event.h b/src/btstack_event.h index 1bb63e762..27a7ec9a2 100644 --- a/src/btstack_event.h +++ b/src/btstack_event.h @@ -10912,6 +10912,43 @@ static inline const uint8_t * avrcp_subevent_now_playing_genre_info_get_value(co return &event[7]; } +/** + * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO + * @param event packet + * @return avrcp_cid + * @note: btstack_type 2 + */ +static inline uint16_t avrcp_subevent_now_playing_cover_art_info_get_avrcp_cid(const uint8_t * event){ + return little_endian_read_16(event, 3); +} +/** + * @brief Get field command_type from event AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO + * @param event packet + * @return command_type + * @note: btstack_type 1 + */ +static inline uint8_t avrcp_subevent_now_playing_cover_art_info_get_command_type(const uint8_t * event){ + return event[5]; +} +/** + * @brief Get field value_len from event AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO + * @param event packet + * @return value_len + * @note: btstack_type J + */ +static inline uint8_t avrcp_subevent_now_playing_cover_art_info_get_value_len(const uint8_t * event){ + return event[6]; +} +/** + * @brief Get field value from event AVRCP_SUBEVENT_NOW_PLAYING_COVER_ART_INFO + * @param event packet + * @return value + * @note: btstack_type V + */ +static inline const uint8_t * avrcp_subevent_now_playing_cover_art_info_get_value(const uint8_t * event){ + return &event[7]; +} + /** * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE * @param event packet @@ -11304,6 +11341,72 @@ static inline uint16_t avrcp_subevent_browsing_set_browsed_player_get_player_id( return little_endian_read_16(event, 5); } +/** + * @brief Get field status from event AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED + * @param event packet + * @return status + * @note: btstack_type 1 + */ +static inline uint8_t avrcp_subevent_cover_art_connection_established_get_status(const uint8_t * event){ + return event[3]; +} +/** + * @brief Get field bd_addr from event AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED + * @param event packet + * @param Pointer to storage for bd_addr + * @note: btstack_type B + */ +static inline void avrcp_subevent_cover_art_connection_established_get_bd_addr(const uint8_t * event, bd_addr_t bd_addr){ + reverse_bytes(&event[4], bd_addr, 6); +} +/** + * @brief Get field avrcp_cid from event AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED + * @param event packet + * @return avrcp_cid + * @note: btstack_type 2 + */ +static inline uint16_t avrcp_subevent_cover_art_connection_established_get_avrcp_cid(const uint8_t * event){ + return little_endian_read_16(event, 10); +} +/** + * @brief Get field cover_art_cid from event AVRCP_SUBEVENT_COVER_ART_CONNECTION_ESTABLISHED + * @param event packet + * @return cover_art_cid + * @note: btstack_type 2 + */ +static inline uint16_t avrcp_subevent_cover_art_connection_established_get_cover_art_cid(const uint8_t * event){ + return little_endian_read_16(event, 12); +} + +/** + * @brief Get field cover_art_cid from event AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE + * @param event packet + * @return cover_art_cid + * @note: btstack_type 2 + */ +static inline uint16_t avrcp_subevent_cover_art_operation_complete_get_cover_art_cid(const uint8_t * event){ + return little_endian_read_16(event, 3); +} +/** + * @brief Get field status from event AVRCP_SUBEVENT_COVER_ART_OPERATION_COMPLETE + * @param event packet + * @return status + * @note: btstack_type 1 + */ +static inline uint8_t avrcp_subevent_cover_art_operation_complete_get_status(const uint8_t * event){ + return event[5]; +} + +/** + * @brief Get field cover_art_cid from event AVRCP_SUBEVENT_COVER_ART_CONNECTION_RELEASED + * @param event packet + * @return cover_art_cid + * @note: btstack_type 2 + */ +static inline uint16_t avrcp_subevent_cover_art_connection_released_get_cover_art_cid(const uint8_t * event){ + return little_endian_read_16(event, 3); +} + /** * @brief Get field goep_cid from event GOEP_SUBEVENT_INCOMING_CONNECTION * @param event packet