Files
MuditaOS/module-bluetooth/lib/Bluetopia/profiles/AVRCP/include/AVRCPAPI.h

2793 lines
158 KiB
C

/*
* Copyright 2006 - 2014 Stonestreet One.
* All Rights Reserved.
* Author: Nikhil Deo
*** MODIFICATION HISTORY ****************************************************
*
* mm/dd/yy F. Lastname Description of Modification
* -------- ----------- ------------------------------------------------
* 01/09/06 N. Deo Initial creation.
****************************************************************************
*/
/**
* @file AVRCPAPI.h
*
* @brief Stonestreet One Bluetooth Stack Audio/Video Remote Control
* Profile Type Definitions and Constants.
*
* @code
* #include "SS1BTAVR.h"
* @endcode
* ============================================================================
*/
#ifndef __AVRCPAPIH__
#define __AVRCPAPIH__
#include "SS1BTPS.h" /*! Bluetooth Stack API Prototypes/Constants. */
#include "AVRTypes.h" /*! Audio/Video Remote Control Type Definitions. */
/*! Error Return Codes.
* Error Codes that are smaller than these (less than -1000) are
* related to the Bluetooth Protocol Stack itself (see BTERRORS.H).
*/
#define BTAVRCP_ERROR_INVALID_PARAMETER (-2000)
#define BTAVRCP_ERROR_NOT_INITIALIZED (-2001)
#define BTAVRCP_ERROR_INVALID_BLUETOOTH_STACK_ID (-2002)
#define BTAVRCP_ERROR_LIBRARY_INITIALIZATION_ERROR (-2003)
#define BTAVRCP_ERROR_INSUFFICIENT_RESOURCES (-2004)
#define BTAVRCP_ERROR_MESSAGE_TOO_LONG (-2005)
#define BTAVRCP_ERROR_BUFFER_TOO_SMALL (-2006)
#define BTAVRCP_ERROR_UNABLE_TO_DECODE_MESSAGE (-2007)
#define BTAVRCP_ERROR_INVALID_MESSAGE_FRAGMENT_DATA (-2008)
#define BTAVRCP_ERROR_BROWSING_CHANNEL_MTU_SIZE_TO_SMALL (-2009)
#define BTAVRCP_ERROR_UNABLE_TO_DECODE_VENDOR_DEPENDENT (-2010)
/*! The underlying Transport for AVRCP is the Audio/Video Control
* Transport Protocol (AVCTP). Rather than duplicate ALL profile
* connection management functions, AVRCP will need to call the
* functions provided in the AVCTP library to perform AVRCP actions.
* This library will merely provide utility functions that can be used
* to build AVRCP messages that can be directly passed to AVCTP
* directly.
* The following enumerated type is used with the
* AVRCP_Register_SDP_Record_Version() function to specify a specific
* AVRCP Version to be supported. This allows a device to only
* support a certain version and not some of the more advanced
* features introduced in later profile versions.
* \note The original SDP Registration function,
* AVRCP_Register_SDP_Record(), merely registers an SDP
* record claiming support for the latest profile version.
*/
typedef enum
{
apvVersion1_0,
apvVersion1_3,
apvVersion1_4
} AVRCP_Version_t;
/*! The following enumerated type represents all of the packet types
* that can be decoded in a AVRCP_Message_Information_t structure.
*/
typedef enum
{
amtUnknown,
amtUnitInfo,
amtSubunitInfo,
amtPassThrough,
amtVendorDependent_Generic,
amtBrowsingChannel_Generic,
amtFragmentedMessage,
amtGroupNavigation,
amtGetCapabilities,
amtListPlayerApplicationSettingAttributes,
amtListPlayerApplicationSettingValues,
amtGetCurrentPlayerApplicationSettingValue,
amtSetPlayerApplicationSettingValue,
amtGetPlayerApplicationSettingAttributeText,
amtGetPlayerApplicationSettingValueText,
amtInformDisplayableCharacterSet,
amtInformBatteryStatusOfCT,
amtGetElementAttributes,
amtGetPlayStatus,
amtRegisterNotification,
amtRequestContinuingResponse,
amtAbortContinuingResponse,
amtSetAbsoluteVolume,
amtCommandRejectResponse,
amtSetAddressedPlayer,
amtPlayItem,
amtAddToNowPlaying,
amtSetBrowsedPlayer,
amtChangePath,
amtGetItemAttributes,
amtSearch,
amtGetFolderItems,
amtGeneralReject
} AVRCP_Message_Type_t;
/*! The following structure represents an AV/C Message or Browsing
* Message that was decoded from the AVRCP_Decode_Message() function
* and it is of unknown type (amtUnknown).
* \note This is only returned for AV/C formatted Messages and
* Browsing messages.
*/
typedef struct _tagAVRCP_Unknown_Command_Data_t
{
Byte_t PDU_ID;
Word_t ParameterLength;
Byte_t *ParameterData;
} AVRCP_Unknown_Command_Data_t;
#define AVRCP_UNKNOWN_COMMAND_DATA_SIZE (sizeof(AVRCP_Unknown_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Unit_Info_Command() function to build a UNIT INFO
* Command based on the specified parameters.
*/
typedef struct _tagAVRCP_Unit_Info_Command_Data_t
{
Byte_t CommandType;
Byte_t SubunitType;
Byte_t SubunitID;
Byte_t UnitType;
Byte_t Unit;
} AVRCP_Unit_Info_Command_Data_t;
#define AVRCP_UNIT_INFO_COMMAND_DATA_SIZE (sizeof(AVRCP_Unit_Info_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Unit_Info_Response() function to build a UNIT INFO
* Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Unit_Info_Response_Data_t
{
Byte_t ResponseCode;
Byte_t SubunitType;
Byte_t SubunitID;
Byte_t UnitType;
Byte_t Unit;
AVRCP_Company_ID_t CompanyID;
} AVRCP_Unit_Info_Response_Data_t;
#define AVRCP_UNIT_INFO_RESPONSE_DATA_SIZE (sizeof(AVRCP_Unit_Info_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Subunit_Info_Command() function to build a SUBUNIT
* INFO Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Subunit_Info_Command_Data_t
{
Byte_t CommandType;
Byte_t SubunitType;
Byte_t SubunitID;
Byte_t Page;
} AVRCP_Subunit_Info_Command_Data_t;
#define AVRCP_SUBUNIT_INFO_COMMAND_DATA_SIZE (sizeof(AVRCP_Subunit_Info_Command_Data_t))
/*! The following structure is a container structure used to hold an
* individual SUBUNIT Table Entry in the SUBUNIT INFO Response.
*/
typedef struct _tagAVRCP_Subunit_Table_List_Entry_t
{
Byte_t SubunitType;
Byte_t MaxSubunitID;
} AVRCP_Subunit_Table_List_Entry_t;
#define AVRCP_SUBUNIT_TABLE_LIST_ENTRY_SIZE (sizeof(AVRCP_Subunit_Table_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Subunit_Info_Response() function to build a SUBUNIT
* INFO Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Subunit_Info_Response_Data_t
{
Byte_t ResponseCode;
Byte_t SubunitType;
Byte_t SubunitID;
Byte_t Page;
Byte_t NumberSubunitEntries;
AVRCP_Subunit_Table_List_Entry_t *SubunitTable;
} AVRCP_Subunit_Info_Response_Data_t;
#define AVRCP_SUBUNIT_INFO_RESPONSE_DATA_SIZE (sizeof(AVRCP_Subunit_Info_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Pass_Through_Command() function to build a Pass
* Through Command message based on the specified parameters.
* \note The StateFlag member specifies button down (FALSE) or
* button up (TRUE).
*/
typedef struct _tagAVRCP_Pass_Through_Command_Data_t
{
Byte_t CommandType;
Byte_t SubunitType;
Byte_t SubunitID;
Byte_t OperationID;
Boolean_t StateFlag;
Byte_t OperationDataLength;
Byte_t *OperationData;
} AVRCP_Pass_Through_Command_Data_t;
#define AVRCP_PASS_THROUGH_COMMAND_DATA_SIZE (sizeof(AVRCP_Pass_Through_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Pass_Through_Response() function to build a Pass
* Through Response message based on the specified parameters.
* \note The StateFlag member specifies button down (FALSE) or
* button up (TRUE).
*/
typedef struct _tagAVRCP_Pass_Through_Response_Data_t
{
Byte_t ResponseCode;
Byte_t SubunitType;
Byte_t SubunitID;
Byte_t OperationID;
Boolean_t StateFlag;
Byte_t OperationDataLength;
Byte_t *OperationData;
} AVRCP_Pass_Through_Response_Data_t;
#define AVRCP_PASS_THROUGH_RESPONSE_DATA_SIZE (sizeof(AVRCP_Pass_Through_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Vendor_Dependent_Generic_Command() function to build
* a Generic Vendor Dependent Command message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Vendor_Dependent_Generic_Command_Data_t
{
Byte_t CommandType;
Byte_t SubunitType;
Byte_t SubunitID;
AVRCP_Company_ID_t CompanyID;
unsigned int DataLength;
Byte_t *DataBuffer;
} AVRCP_Vendor_Dependent_Generic_Command_Data_t;
#define AVRCP_VENDOR_DEPENDENT_GENERIC_COMMAND_DATA_SIZE (sizeof(AVRCP_Vendor_Dependent_Generic_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Vendor_Dependent_Generic_Response() function to build
* a Generic Vendor Dependent Response message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Vendor_Dependent_Generic_Response_Data_t
{
Byte_t ResponseCode;
Byte_t SubunitType;
Byte_t SubunitID;
AVRCP_Company_ID_t CompanyID;
unsigned int DataLength;
Byte_t *DataBuffer;
} AVRCP_Vendor_Dependent_Generic_Response_Data_t;
#define AVRCP_VENDOR_DEPENDENT_GENERIC_RESPONSE_DATA_SIZE (sizeof(AVRCP_Vendor_Dependent_Generic_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Browsing_Channel_Generic_Message() function to build
* a Generic Browsing Channel message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Browsing_Channel_Generic_Message_Data_t
{
Byte_t PDU_ID;
Word_t ParameterLength;
Byte_t *ParameterData;
} AVRCP_Browsing_Channel_Generic_Message_Data_t;
#define AVRCP_BROWSING_CHANNEL_GENERIC_MESSAGE_DATA_SIZE (sizeof(AVRCP_Browsing_Channel_Generic_Message_Data_t))
/*! The following structure is used with AVRCP Specific AV/C Response
* Formatting functions to build a Response. This state information
* is required because it is possible that the messages require
* fragmentation.
*/
typedef struct _tagAVRCP_Response_Message_State_Info_t
{
Boolean_t Complete;
unsigned int Offset;
} AVRCP_Response_Message_State_Info_t;
#define AVRCP_RESPONSE_MESSAGE_STATE_INFO_SIZE (sizeof(AVRCP_Response_Message_State_Info_t))
/*! The following structure is used to encapsulate an AVRCP Specific
* AV/C Response Fragment. Once all Fragments have been retrieved
* the entire message can be decoded with the
* AVRCP_Decode_Fragmented_Message() function.
* \note Once all message fragments are retrieved, they can be
* decoded via a call to the
* AVRCP_Decode_Fragmented_Message_List() function.
* \note Each individual fragment *MUST* be freed by either
* calling AVRCP_Free_Decoded_Message() on each individual
* fragment OR calling AVRCP_Free_Fragmented_Message_List()
* with the fragment list.
*/
typedef struct _tagAVRCP_Message_Fragment_Data_t
{
Byte_t PDU_ID;
unsigned int FragmentLength;
unsigned char *FragmentData;
} AVRCP_Message_Fragment_Data_t;
#define AVRCP_MESSAGE_FRAGMENT_DATA_SIZE (sizeof(AVRCP_Message_Fragment_Data_t))
/*! The following type is used to specify the various button states
* (used with Vendor Pass-through formatted messages).
*/
typedef enum
{
bsPressed,
bsReleased
} AVRCP_Button_State_t;
/*! The following structure is used with the
* AVRCP_Format_Group_Navigation_Command() function to build a Group
* Navigation Command message based on the specified parameters.
* \note The NavigationType member maps to the Vendor Unique ID
* field of the Pass-through command.
*/
typedef struct _tagAVRCP_Group_Navigation_Command_Data_t
{
AVRCP_Button_State_t ButtonState;
Word_t NavigationType;
} AVRCP_Group_Navigation_Command_Data_t;
#define AVRCP_GROUP_NAVIGATION_COMMAND_DATA_SIZE (sizeof(AVRCP_Group_Navigation_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Group_Navigation_Response() function to build a Group
* Navigation Response message based on the specified parameters.
* \note The NavigationType member maps to the Vendor Unique ID
* field of the Pass-through command.
*/
typedef struct _tagAVRCP_Group_Navigation_Response_Data_t
{
Byte_t ResponseCode;
AVRCP_Button_State_t ButtonState;
Word_t NavigationType;
} AVRCP_Group_Navigation_Response_Data_t;
#define AVRCP_GROUP_NAVIGATION_RESPONSE_DATA_SIZE (sizeof(AVRCP_Group_Navigation_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Capabilities_Command() function to build a Get
* Capabilities Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Capabilities_Command_Data_t
{
Byte_t CapabilityID;
} AVRCP_Get_Capabilities_Command_Data_t;
#define AVRCP_GET_CAPABILITIES_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Capabilities_Command_Data_t))
/*! The following structure is container structure that is used with
* the CapabilityInfoList member of the
* AVRCP_Get_Capabilities_Response_Data_t structure to denote an
* individual Capability.
*/
typedef struct _tagAVRCP_Capability_Info_t
{
union
{
AVRCP_Company_ID_t CompanyID;
Byte_t EventID;
} CapabilityInfo;
} AVRCP_Capability_Info_t;
#define AVRCP_CAPABILITY_INFO_SIZE (sizeof(AVRCP_Capability_Info_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Capabilities_Response() function to build a Get
* Capabilities Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Capabilities_Response_Data_t
{
Byte_t ResponseCode;
Byte_t CapabilityID;
Byte_t NumberCapabilities;
AVRCP_Capability_Info_t *CapabilityInfoList;
} AVRCP_Get_Capabilities_Response_Data_t;
#define AVRCP_GET_CAPABILITIES_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Capabilities_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_List_Player_Application_Setting_Attributes_Response()
* function to build a List Player Application Setting Attributes
* Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_List_Player_Application_Setting_Attributes_Response_Data_t
{
Byte_t ResponseCode;
Byte_t NumberAttributes;
Byte_t *AttributeIDList;
} AVRCP_List_Player_Application_Setting_Attributes_Response_Data_t;
#define AVRCP_LIST_PLAYER_APPLICATION_SETTING_ATTRIBUTES_RESPONSE_DATA_SIZE (sizeof(AVRCP_List_Player_Application_Setting_Attributes_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_List_Player_Application_Setting_Values_Command()
* function to build a List Player Application Setting Values Command
* message based on the specified parameters.
*/
typedef struct _tagAVRCP_List_Player_Application_Setting_Values_Command_Data_t
{
Byte_t AttributeID;
} AVRCP_List_Player_Application_Setting_Values_Command_Data_t;
#define AVRCP_LIST_PLAYER_APPLICATION_SETTING_VALUES_COMMAND_DATA_SIZE (sizeof(AVRCP_List_Player_Application_Setting_Values_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_List_Player_Application_Setting_Values_Response()
* function to build a List Player Application Setting Values
* Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_List_Player_Application_Setting_Values_Response_Data_t
{
Byte_t ResponseCode;
Byte_t NumberValueIDs;
Byte_t *ValueIDList;
} AVRCP_List_Player_Application_Setting_Values_Response_Data_t;
#define AVRCP_LIST_PLAYER_APPLICATION_SETTING_VALUES_RESPONSE_DATA_SIZE (sizeof(AVRCP_List_Player_Application_Setting_Values_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Current_Player_Application_Setting_Value_Command
* function to build a Get Current Player Application Setting Value
* Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Current_Player_Application_Setting_Value_Command_Data_t
{
Byte_t NumberAttributeIDs;
Byte_t *AttributeIDList;
} AVRCP_Get_Current_Player_Application_Setting_Value_Command_Data_t;
#define AVRCP_GET_CURRENT_PLAYER_APPLICATION_SETTING_VALUE_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Current_Player_Application_Setting_Value_Command_Data_t))
/*! The following structure is container structure that is used with
* the AttributeValueIDList member of the
* AVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t
* and AVRCP_Set_Player_Application_Setting_Value_Command_Data_t
* structures to denote an individual AttributeID/Value ID pair.
*/
typedef struct _tagAVRCP_Attribute_Value_ID_List_Entry_t
{
Byte_t AttributeID;
Byte_t ValueID;
} AVRCP_Attribute_Value_ID_List_Entry_t;
#define AVRCP_ATTRIBUTE_VALUE_ID_LIST_ENTRY_SIZE (sizeof(AVRCP_Attribute_Value_ID_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Current_Player_Application_Setting_Value_Response
* function to build a Get Current Player Application Setting Value
* Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t
{
Byte_t ResponseCode;
Byte_t NumberAttributeValueIDs;
AVRCP_Attribute_Value_ID_List_Entry_t *AttributeValueIDList;
} AVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t;
#define AVRCP_GET_CURRENT_PLAYER_APPLICATION_SETTING_VALUE_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Player_Application_Setting_Value_Command()
* function to build a Set Player Application Setting Value Command
* message based on the specified parameters.
*/
typedef struct _tagAVRCP_Set_Player_Application_Setting_Value_Command_Data_t
{
Byte_t NumberAttributeValueIDs;
AVRCP_Attribute_Value_ID_List_Entry_t *AttributeValueIDList;
} AVRCP_Set_Player_Application_Setting_Value_Command_Data_t;
#define AVRCP_SET_PLAYER_APPLICATION_SETTING_VALUE_COMMAND_DATA_SIZE (sizeof(AVRCP_Set_Player_Application_Setting_Value_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Player_Application_Setting_Value_Response()
* function to build a Set Player Application Setting Value Response
* message based on the specified parameters.
*/
typedef struct _tagAVRCP_Set_Player_Application_Setting_Value_Response_Data_t
{
Byte_t ResponseCode;
} AVRCP_Set_Player_Application_Setting_Value_Response_Data_t;
#define AVRCP_SET_PLAYER_APPLICATION_SETTING_VALUE_RESPONSE_DATA_SIZE (sizeof(AVRCP_Set_Player_Application_Setting_Value_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Player_Application_Setting_Attribute_Text_Command
* function to build a Get Player Application Setting Attribute Text
* Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Player_Application_Setting_Attribute_Text_Command_Data_t
{
Byte_t NumberAttributeIDs;
Byte_t *AttributeIDList;
} AVRCP_Get_Player_Application_Setting_Attribute_Text_Command_Data_t;
#define AVRCP_GET_PLAYER_APPLICATION_SETTING_ATTRIBUTE_TEXT_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Player_Application_Setting_Attribute_Text_Command_Data_t))
/*! The following structure is container structure that is used with
* the AttributeTextEntryList member of the
* AVRCP_Get_Player_Application_Setting_Attribute_...
* ...Text_Response_Data_t structure to denote an individual
* Attribute Text Entry.
*/
typedef struct _tagAVRCP_Attribute_Text_List_Entry_t
{
Byte_t AttributeID;
Word_t CharacterSet;
Byte_t AttributeStringLength;
Byte_t *AttributeStringData;
} AVRCP_Attribute_Text_List_Entry_t;
#define AVRCP_ATTRIBUTE_TEXT_LIST_ENTRY_SIZE (sizeof(AVRCP_Attribute_Text_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Player_Application_Setting_...
* ...Attribute_Text_Response() function to build a Get Player
* Application Setting Attribute Text Response message based on the
* specified parameters.
*/
typedef struct _tagAVRCP_Get_Player_Application_Setting_Attribute_Text_Response_Data_t
{
Byte_t ResponseCode;
Byte_t NumberAttributeTextEntries;
AVRCP_Attribute_Text_List_Entry_t *AttributeTextEntryList;
} AVRCP_Get_Player_Application_Setting_Attribute_Text_Response_Data_t;
#define AVRCP_GET_PLAYER_APPLICATION_SETTING_ATTRIBUTE_TEXT_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Player_Application_Setting_Attribute_Text_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Player_Application_Setting_Value_Text_Command
* function to build a Get Player Application Setting Value Text
* Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Player_Application_Setting_Value_Text_Command_Data_t
{
Byte_t AttributeID;
Byte_t NumberValueIDs;
Byte_t *ValueIDList;
} AVRCP_Get_Player_Application_Setting_Value_Text_Command_Data_t;
#define AVRCP_GET_PLAYER_APPLICATION_SETTING_VALUE_TEXT_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Player_Application_Setting_Value_Text_Command_Data_t))
/*! The following structure is container structure that is used with
* the ValueTextEntryList member of the
* AVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t
* structure to denote an individual Value Text Entry.
*/
typedef struct _tagAVRCP_Value_Text_List_Entry_t
{
Byte_t ValueID;
Word_t CharacterSet;
Byte_t ValueStringLength;
Byte_t *ValueStringData;
} AVRCP_Value_Text_List_Entry_t;
#define AVRCP_VALUE_TEXT_LIST_ENTRY_SIZE (sizeof(AVRCP_Value_Text_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Player_Application_Setting_Value_Text_Response()
* function to build a Get Player Application Setting Value Text
* Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t
{
Byte_t ResponseCode;
Byte_t NumberValueTextEntries;
AVRCP_Value_Text_List_Entry_t *ValueTextEntryList;
} AVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t;
#define AVRCP_GET_PLAYER_APPLICATION_SETTING_VALUE_TEXT_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Inform_Displayable_Character_Set_Command() function
* to build an Inform Displayable Character Set Command message based
* on the specified parameters.
*/
typedef struct _tagAVRCP_Inform_Displayable_Character_Set_Command_Data_t
{
Byte_t NumberCharacterSets;
Word_t *CharacterSetList;
} AVRCP_Inform_Displayable_Character_Set_Command_Data_t;
#define AVRCP_INFORM_DISPLAYABLE_CHARACTER_SET_COMMAND_DATA_SIZE (sizeof(AVRCP_Inform_Displayable_Character_Set_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Inform_Displayable_Character_Set_Response() function
* to build an Inform Displayable Character Set Response message
* based on the specified parameters.
*/
typedef struct _tagAVRCP_Inform_Displayable_Character_Set_Response_Data_t
{
Byte_t ResponseCode;
} AVRCP_Inform_Displayable_Character_Set_Response_Data_t;
#define AVRCP_INFORM_DISPLAYABLE_CHARACTER_SET_RESPONSE_DATA_SIZE (sizeof(AVRCP_Inform_Displayable_Character_Set_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Inform_Battery_Status_Of_CT_Command() function to
* build an Inform Battery Status Of CT Command message based on the
* specified parameters.
*/
typedef struct _tagAVRCP_Inform_Battery_Status_Of_CT_Command_Data_t
{
Byte_t BatteryStatus;
} AVRCP_Inform_Battery_Status_Of_CT_Command_Data_t;
#define AVRCP_INFORM_BATTERY_STATUS_OF_CT_COMMAND_DATA_SIZE (sizeof(AVRCP_Inform_Battery_Status_Of_CT_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Inform_Battery_Status_Of_CT_Response() function to
* build an Inform Battery Status Of CT Response message based on the
* specified parameters.
*/
typedef struct _tagAVRCP_Inform_Battery_Status_Of_CT_Response_Data_t
{
Byte_t ResponseCode;
} AVRCP_Inform_Battery_Status_Of_CT_Response_Data_t;
#define AVRCP_INFORM_BATTERY_STATUS_OF_CT_RESPONSE_DATA_SIZE (sizeof(AVRCP_Inform_Battery_Status_Of_CT_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Element_Attributes_Command() function to build a
* Get Element Attributes Command message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Get_Element_Attributes_Command_Data_t
{
QWord_t Identifier;
Byte_t NumberAttributes;
DWord_t *AttributeIDList;
} AVRCP_Get_Element_Attributes_Command_Data_t;
#define AVRCP_GET_ELEMENT_ATTRIBUTES_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Element_Attributes_Command_Data_t))
/*! The following structure is container structure that is used with
* the ElementAttributeList member of the
* AVRCP_Get_Element_Attributes_Response_Data_t and
* AVRCP_Media_Element_Item_Data_t structures to denote an individual
* Element Attribute Entry.
*/
typedef struct _tagAVRCP_Element_Attribute_List_Entry_t
{
DWord_t AttributeID;
Word_t CharacterSet;
Word_t AttributeValueLength;
Byte_t *AttributeValueData;
} AVRCP_Element_Attribute_List_Entry_t;
#define AVRCP_ELEMENT_ATTRIBUTE_LIST_ENTRY_SIZE (sizeof(AVRCP_Element_Attribute_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Element_Attributes_Response() function to build a
* Get Element Attributes Response message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Get_Element_Attributes_Response_Data_t
{
Byte_t ResponseCode;
Byte_t NumberAttributes;
AVRCP_Element_Attribute_List_Entry_t *AttributeList;
} AVRCP_Get_Element_Attributes_Response_Data_t;
#define AVRCP_GET_ELEMENT_ATTRIBUTES_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Element_Attributes_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Play_Status_Response() function to build a Get
* Play Status Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Get_Play_Status_Response_Data_t
{
Byte_t ResponseCode;
DWord_t SongLength;
DWord_t SongPosition;
Byte_t PlayStatus;
} AVRCP_Get_Play_Status_Response_Data_t;
#define AVRCP_GET_PLAY_STATUS_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Play_Status_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Register_Notification_Command() function to build a
* Register Notification Command message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Register_Notification_Command_Data_t
{
Byte_t EventID;
DWord_t PlaybackInterval;
} AVRCP_Register_Notification_Command_Data_t;
#define AVRCP_REGISTER_NOTIFICATION_COMMAND_DATA_SIZE (sizeof(AVRCP_Register_Notification_Command_Data_t))
/*! The following structure is a container structure for the Playback
* Status Changed Event Registration Notification. This is used with
* the AVRCP_Register_Notification_Response_Data_t structure for
* Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Playback_Status_Changed_Data_t
{
Byte_t PlayStatus;
} AVRCP_Event_Playback_Status_Changed_Data_t;
#define AVRCP_EVENT_PLAYBACK_STATUS_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Playback_Status_Changed_Data_t))
/*! The following structure is a container structure for the Track
* Changed Event Registration Notification. This is used with the
* AVRCP_Register_Notification_Response_Data_t structure for Event
* Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Track_Changed_Data_t
{
QWord_t Identifier;
} AVRCP_Event_Track_Changed_Data_t;
#define AVRCP_EVENT_TRACK_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Track_Changed_Data_t))
/*! The following structure is a container structure for the Playback
* Position Changed Event Registration Notification. This is used
* with the AVRCP_Register_Notification_Response_Data_t structure for
* Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Playback_Pos_Changed_Data_t
{
DWord_t PlaybackPosition;
} AVRCP_Event_Playback_Pos_Changed_Data_t;
#define AVRCP_EVENT_PLAYBACK_POS_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Playback_Pos_Changed_Data_t))
/*! The following structure is a container structure for the Battery
* Status Changed Event Registration Notification. This is used with
* the AVRCP_Register_Notification_Response_Data_t structure for
* Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Batt_Status_Changed_Data_t
{
Byte_t BatteryStatus;
} AVRCP_Event_Batt_Status_Changed_Data_t;
#define AVRCP_EVENT_BATT_STATUS_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Batt_Status_Changed_Data_t))
/*! The following structure is a container structure for the System
* Status Changed Event Registration Notification. This is used with
* the AVRCP_Register_Notification_Response_Data_t structure for
* Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_System_Status_Changed_Data_t
{
Byte_t SystemStatus;
} AVRCP_Event_System_Status_Changed_Data_t;
#define AVRCP_EVENT_SYSTEM_STATUS_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_System_Status_Changed_Data_t))
/*! The following structure is a container structure for the Player
* Application Setting Changed Event Registration Notification. This
* is used with the AVRCP_Register_Notification_Response_Data_t
* structure for Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Player_Application_Setting_Changed_Data_t
{
Byte_t NumberAttributeValueIDs;
AVRCP_Attribute_Value_ID_List_Entry_t *AttributeValueIDList;
} AVRCP_Event_Player_Application_Setting_Changed_Data_t;
#define AVRCP_EVENT_PLAYER_APPLICATION_SETTING_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Player_Application_Setting_Changed_Data_t))
/*! The following structure is a container structure for the Event
* Volume Changed Event Registration Notification. This is used with
* the AVRCP_Register_Notification_Response_Data_t structure for
* Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Volume_Changed_Data_t
{
Byte_t AbsoluteVolume;
} AVRCP_Event_Volume_Changed_Data_t;
#define AVRCP_EVENT_VOLUME_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Volume_Changed_Data_t))
/*! The following structure is a container structure for the Addressed
* Player Changed Event Registration Notification. This is used with
* the AVRCP_Register_Notification_Response_Data_t structure for
* Event Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_Addressed_Player_Changed_Data_t
{
Word_t MediaPlayerID;
Word_t UIDCounter;
} AVRCP_Event_Addressed_Player_Changed_Data_t;
#define AVRCP_EVENT_ADDRESSED_PLAYER_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_Addressed_Player_Changed_Data_t))
/*! The following structure is a container structure for the UIDs
* Changed Event Registration Notification. This is used with the
* AVRCP_Register_Notification_Response_Data_t structure for Event
* Registration/Notifications.
*/
typedef struct _tagAVRCP_Event_UIDs_Changed_Data_t
{
Word_t UIDCounter;
} AVRCP_Event_UIDs_Changed_Data_t;
#define AVRCP_EVENT_UIDS_CHANGED_DATA_SIZE (sizeof(AVRCP_Event_UIDs_Changed_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Register_Notification_Response() to build a Register
* Notification Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Register_Notification_Response_Data_t
{
Byte_t ResponseCode;
Byte_t EventID;
union
{
AVRCP_Event_Playback_Status_Changed_Data_t PlaybackStatusChangedData;
AVRCP_Event_Track_Changed_Data_t TrackChangedData;
AVRCP_Event_Playback_Pos_Changed_Data_t PlaybackPosChangedData;
AVRCP_Event_Batt_Status_Changed_Data_t BattStatusChangedData;
AVRCP_Event_System_Status_Changed_Data_t SystemStatusChangedData;
AVRCP_Event_Player_Application_Setting_Changed_Data_t PlayerApplicationSettingChangedData;
AVRCP_Event_Volume_Changed_Data_t VolumeChangedData;
AVRCP_Event_Addressed_Player_Changed_Data_t AddressedPlayerChangedData;
AVRCP_Event_UIDs_Changed_Data_t UIDsChangedData;
} NotificationData;
} AVRCP_Register_Notification_Response_Data_t;
#define AVRCP_REGISTER_NOTIFICATION_RESPONSE_DATA_SIZE (sizeof(AVRCP_Register_Notification_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Request_Continuing_Response_Command() function to
* build a Request Continuing Response Command message based on the
* specified parameters.
*/
typedef struct _tagAVRCP_Request_Continuing_Response_Command_Data_t
{
AVRCP_Message_Type_t MessageType;
} AVRCP_Request_Continuing_Response_Command_Data_t ;
#define AVRCP_REQUEST_CONTINUING_RESPONSE_COMMAND_DATA_SIZE (sizeof(AVRCP_Request_Continuing_Response_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Abort_Continuing_Response_Command() function to build
* an Abort Continuing Response Command message based on the
* specified parameters.
*/
typedef struct _tagAVRCP_Abort_Continuing_Response_Command_Data_t
{
AVRCP_Message_Type_t MessageType;
} AVRCP_Abort_Continuing_Response_Command_Data_t ;
#define AVRCP_ABORT_CONTINUING_RESPONSE_COMMAND_DATA_SIZE (sizeof(AVRCP_Abort_Continuing_Response_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Abort_Continuing_Response_Response() function to
* build an Abort Continuing Response Response message based on the
* specified parameters.
*/
typedef struct _tagAVRCP_Abort_Continuing_Response_Response_Data_t
{
Byte_t ResponseCode;
} AVRCP_Abort_Continuing_Response_Response_Data_t ;
#define AVRCP_ABORT_CONTINUING_RESPONSE_RESPONSE_DATA_SIZE (sizeof(AVRCP_Abort_Continuing_Response_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Absolute_Volume_Command() function to build a Set
* Absolute Volume Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Set_Absolute_Volume_Command_Data_t
{
Byte_t AbsoluteVolume;
} AVRCP_Set_Absolute_Volume_Command_Data_t ;
#define AVRCP_SET_ABSOLUTE_VOLUME_COMMAND_DATA_SIZE (sizeof(AVRCP_Set_Absolute_Volume_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Absolute_Volume_Response() function to build a
* Set Absolute Volume Response message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Set_Absolute_Volume_Response_Data_t
{
Byte_t ResponseCode;
Byte_t AbsoluteVolume;
} AVRCP_Set_Absolute_Volume_Response_Data_t ;
#define AVRCP_SET_ABSOLUTE_VOLUME_RESPONSE_DATA_SIZE (sizeof(AVRCP_Set_Absolute_Volume_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Command_Reject_Response() function to build a Generic
* Command Reject Response message based on the specified parameters.
* \note If the MessageType member specifies amtUnknown then the
* PDU_ID value is used directly in the Reject Response.
*/
typedef struct _tagAVRCP_Command_Reject_Response_Data_t
{
Byte_t ResponseCode;
AVRCP_Message_Type_t MessageType;
Byte_t PDU_ID;
Byte_t ErrorCode;
} AVRCP_Command_Reject_Response_Data_t;
#define AVRCP_COMMAND_REJECT_RESPONSE_DATA_SIZE (sizeof(AVRCP_Command_Reject_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Addressed_Player_Command() function to build a
* Set Addressed Player Command message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Set_Addressed_Player_Command_Data_t
{
Word_t MediaPlayerID;
} AVRCP_Set_Addressed_Player_Command_Data_t;
#define AVRCP_SET_ADDRESSED_PLAYER_COMMAND_DATA_SIZE (sizeof(AVRCP_Set_Addressed_Player_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Addressed_Player_Response() function to build a
* Set Addressed Player Response message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Set_Addressed_Player_Response_Data_t
{
Byte_t ResponseCode;
Byte_t Status;
} AVRCP_Set_Addressed_Player_Response_Data_t ;
#define AVRCP_SET_ADDRESSED_PLAYER_RESPONSE_DATA_SIZE (sizeof(AVRCP_Set_Addressed_Player_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Play_Item_Command() function to build a Play Item
* Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Play_Item_Command_Data_t
{
Byte_t Scope;
QWord_t UID;
Word_t UIDCounter;
} AVRCP_Play_Item_Command_Data_t;
#define AVRCP_PLAY_ITEM_COMMAND_DATA_SIZE (sizeof(AVRCP_Play_Item_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Play_Item_Response() function to build a Play Item
* Response message based on the specified parameters.
*/
typedef struct _tagAVRCP_Play_Item_Response_Data_t
{
Byte_t ResponseCode;
Byte_t Status;
} AVRCP_Play_Item_Response_Data_t ;
#define AVRCP_PLAY_ITEM_RESPONSE_DATA_SIZE (sizeof(AVRCP_Play_Item_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Add_To_Now_Playing_Command() function to build an Add
* To Now Playing Command message based on the specified parameters.
*/
typedef struct _tagAVRCP_Add_To_Now_Playing_Command_Data_t
{
Byte_t Scope;
QWord_t UID;
Word_t UIDCounter;
} AVRCP_Add_To_Now_Playing_Command_Data_t;
#define AVRCP_ADD_TO_NOW_PLAYING_COMMAND_DATA_SIZE (sizeof(AVRCP_Add_To_Now_Playing_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Add_To_Now_Playing_Response() function to build an
* Add To Now Playing Response message based on the specified
* parameters.
*/
typedef struct _tagAVRCP_Add_To_Now_Playing_Response_Data_t
{
Byte_t ResponseCode;
Byte_t Status;
} AVRCP_Add_To_Now_Playing_Response_Data_t ;
#define AVRCP_ADD_TO_NOW_PLAYING_RESPONSE_DATA_SIZE (sizeof(AVRCP_Add_To_Now_Playing_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Browsed_Player_Command() function to build a Set
* Browsed Player Command message based on the specified parameters
* (this message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Set_Browsed_Player_Command_Data_t
{
Word_t PlayerID;
} AVRCP_Set_Browsed_Player_Command_Data_t;
#define AVRCP_SET_BROWSED_PLAYER_COMMAND_DATA_SIZE (sizeof(AVRCP_Set_Browsed_Player_Command_Data_t))
/*! The following structure is container structure that is used with
* the FolderNameList member of the
* AVRCP_Set_Browsed_Player_Response_Data_t structure to denote an
* individual Folder Name (in the overall path).
*/
typedef struct _tagAVRCP_Folder_Name_List_Entry_t
{
Word_t FolderNameLength;
Byte_t *FolderName;
} AVRCP_Folder_Name_List_Entry_t;
#define AVRCP_FOLDER_NAME_LIST_ENTRY_SIZE (sizeof(AVRCP_Folder_Name_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Set_Browsed_Player_Response() function to build a Set
* Browsed Player Response message based on the specified parameters
* (this message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Set_Browsed_Player_Response_Data_t
{
Byte_t Status;
Word_t UIDCounter;
DWord_t NumberItems;
Word_t CharacterSet;
Byte_t FolderDepth;
AVRCP_Folder_Name_List_Entry_t *FolderNameList;
} AVRCP_Set_Browsed_Player_Response_Data_t;
#define AVRCP_SET_BROWSED_PLAYER_RESPONSE_DATA_SIZE (sizeof(AVRCP_Set_Browsed_Player_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Change_Path_Command() function to build a Change Path
* Command message based on the specified parameters (this message is
* only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Change_Path_Command_Data_t
{
Word_t UIDCounter;
Byte_t Direction;
QWord_t FolderUID;
} AVRCP_Change_Path_Command_Data_t;
#define AVRCP_CHANGE_PATH_COMMAND_DATA_SIZE (sizeof(AVRCP_Change_Path_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Change_Path_Response() function to build a Change
* Path Response message based on the specified parameters (this
* message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Change_Path_Response_Data_t
{
Byte_t Status;
DWord_t NumberItems;
} AVRCP_Change_Path_Response_Data_t;
#define AVRCP_CHANGE_PATH_RESPONSE_DATA_SIZE (sizeof(AVRCP_Change_Path_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Item_Attributes_Command() function to build a Get
* Item Attributes Command message based on the specified parameters
* (this message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Get_Item_Attributes_Command_Data_t
{
Byte_t Scope;
QWord_t UID;
Word_t UIDCounter;
Byte_t NumberAttributeIDs;
DWord_t *AttributeIDList;
} AVRCP_Get_Item_Attributes_Command_Data_t;
#define AVRCP_GET_ITEM_ATTRIBUTES_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Item_Attributes_Command_Data_t))
/*! The following structure is container structure that is used with
* the AttributeValueList member of the
* AVRCP_Get_Item_Attributes_Response_Data_t structure to denote an
* individual Attribute Value Entry.
*/
typedef struct _tagAVRCP_Attribute_Value_List_Entry_t
{
DWord_t AttributeID;
Word_t CharacterSet;
Word_t AttributeValueLength;
Byte_t *AttributeValueData;
} AVRCP_Attribute_Value_List_Entry_t;
#define AVRCP_ATTRIBUTE_VALUE_LIST_ENTRY_SIZE (sizeof(AVRCP_Attribute_Value_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Item_Attributes_Response() function to build a
* Get Item Attributes Response message based on the specified
* parameters (this message is only applicable for the Browsing
* Channel).
*/
typedef struct _tagAVRCP_Get_Item_Attributes_Response_Data_t
{
Byte_t Status;
Byte_t NumberAttributes;
AVRCP_Attribute_Value_List_Entry_t *AttributeValueList;
} AVRCP_Get_Item_Attributes_Response_Data_t;
#define AVRCP_GET_ITEM_ATTRIBUTES_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Item_Attributes_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Search_Command() function to build a Search Command
* message based on the specified parameters (this message is only
* applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Search_Command_Data_t
{
Word_t CharacterSet;
Word_t Length;
Byte_t *SearchString;
} AVRCP_Search_Command_Data_t;
#define AVRCP_SEARCH_COMMAND_DATA_SIZE (sizeof(AVRCP_Search_Command_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Search_Response() function to build a Search Response
* message based on the specified parameters (this message is only
* applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Search_Response_Data_t
{
Byte_t Status;
Word_t UIDCounter;
DWord_t NumberItems;
} AVRCP_Search_Response_Data_t;
#define AVRCP_SEARCH_RESPONSE_DATA_SIZE (sizeof(AVRCP_Search_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Folder_Items_Command() function to build a Get
* Folder Items Command message based on the specified parameters
* (this message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Get_Folder_Items_Command_Data_t
{
Byte_t Scope;
DWord_t StartItem;
DWord_t EndItem;
Byte_t NumberAttributeIDs;
DWord_t *AttributeIDList;
} AVRCP_Get_Folder_Items_Command_Data_t;
#define AVRCP_GET_FOLDER_ITEMS_COMMAND_DATA_SIZE (sizeof(AVRCP_Get_Folder_Items_Command_Data_t))
/*! The following structure defines all the members that are present
* in a Media Player Item which is part of the ItemList member of the
* AVRCP_Get_Folder_Items_Response_Data_t structure.
*/
typedef struct _tagAVRCP_Media_Player_Item_Data_t
{
Word_t PlayerID;
Byte_t MajorPlayerType;
DWord_t PlayerSubType;
Byte_t PlayStatus;
AVRCP_Media_Player_Item_Features_Mask_t FeaturesMask;
Word_t CharacterSet;
Word_t DisplayableNameLength;
Byte_t *DisplayableName;
} AVRCP_Media_Player_Item_Data_t;
#define AVRCP_MEDIA_PLAYER_ITEM_DATA_SIZE (sizeof(AVRCP_Media_Player_Item_Data_t))
/*! The following structure defines all the members that are present
* in a Folder Item which is part of the ItemList member of the
* AVRCP_Get_Folder_Items_Response_Data_t structure.
*/
typedef struct _tagAVRCP_Folder_Item_Data_t
{
QWord_t FolderUID;
Byte_t FolderType;
Byte_t IsPlayable;
Word_t CharacterSet;
Word_t DisplayableNameLength;
Byte_t *DisplayableName;
} AVRCP_Folder_Item_Data_t;
#define AVRCP_FOLDER_ITEM_DATA_SIZE (sizeof(AVRCP_Folder_Item_Data_t))
/*! The following structure defines all the members that are present
* in a Media Element Item which is part of the ItemList member of
* the AVRCP_Get_Folder_Items_Response_Data_t structure.
*/
typedef struct _tagAVRCP_Media_Element_Item_Data_t
{
QWord_t UID;
Byte_t MediaType;
Word_t CharacterSet;
Word_t DisplayableNameLength;
Byte_t *DisplayableName;
Byte_t NumberAttributes;
AVRCP_Element_Attribute_List_Entry_t *ElementAttributeList;
} AVRCP_Media_Element_Item_Data_t;
#define AVRCP_MEDIA_ELEMENT_ITEM_DATA_SIZE (sizeof(AVRCP_Media_Element_Item_Data_t))
/*! The following structure is container structure that is used with
* the ItemList member of the AVRCP_Get_Folder_Items_Response_Data_t
* structure to denote an individual Folder Item.
*/
typedef struct _tagAVRCP_Folder_Item_List_Entry_t
{
Byte_t ItemType;
union
{
AVRCP_Media_Player_Item_Data_t MediaPlayerItemData;
AVRCP_Folder_Item_Data_t FolderItemData;
AVRCP_Media_Element_Item_Data_t MediaElementItemData;
} ItemData;
} AVRCP_Folder_Item_List_Entry_t;
#define AVRCP_FOLDER_ITEM_LIST_ENTRY_SIZE (sizeof(AVRCP_Folder_Item_List_Entry_t))
/*! The following structure is used with the
* AVRCP_Format_Get_Folder_Items_Response() function to build a Get
* Folder Items Response message based on the specified parameters
* (this message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_Get_Folder_Items_Response_Data_t
{
Byte_t Status;
Word_t UIDCounter;
Word_t NumberItems;
AVRCP_Folder_Item_List_Entry_t *ItemList;
} AVRCP_Get_Folder_Items_Response_Data_t;
#define AVRCP_GET_FOLDER_ITEMS_RESPONSE_DATA_SIZE (sizeof(AVRCP_Get_Folder_Items_Response_Data_t))
/*! The following structure is used with the
* AVRCP_Format_General_Reject_Response() function to build a General
* Reject Response message based on the specified parameters (this
* message is only applicable for the Browsing Channel).
*/
typedef struct _tagAVRCP_General_Reject_Response_Data_t
{
Byte_t RejectReason;
} AVRCP_General_Reject_Response_Data_t;
#define AVRCP_GENERAL_REJECT_RESPONSE_DATA_SIZE (sizeof(AVRCP_General_Reject_Response_Data_t))
/*! The following structure is used with the AVRCP_Decode_Message()
* function to decode a received AVRCP Message.
*/
typedef struct _tagAVRCP_Message_Information_t
{
AVRCP_Message_Type_t MessageType;
Boolean_t Response;
Boolean_t FinalMessage;
union
{
AVRCP_Unit_Info_Command_Data_t UnitInfoCommandData;
AVRCP_Unit_Info_Response_Data_t UnitInfoResponseData;
AVRCP_Subunit_Info_Command_Data_t SubunitInfoCommandData;
AVRCP_Subunit_Info_Response_Data_t SubunitInfoResponseData;
AVRCP_Pass_Through_Command_Data_t PassThroughCommandData;
AVRCP_Pass_Through_Response_Data_t PassThroughResponseData;
AVRCP_Vendor_Dependent_Generic_Command_Data_t VendorDependentGenericCommandData;
AVRCP_Vendor_Dependent_Generic_Response_Data_t VendorDependentGenericResponseData;
AVRCP_Browsing_Channel_Generic_Message_Data_t BrowsingChannelGenericMessageData;
AVRCP_Message_Fragment_Data_t MessageFragmentData;
AVRCP_Group_Navigation_Command_Data_t GroupNavigationCommandData;
AVRCP_Group_Navigation_Response_Data_t GroupNavigationResponseData;
AVRCP_Get_Capabilities_Command_Data_t GetCapabilitiesCommandData;
AVRCP_Get_Capabilities_Response_Data_t GetCapabilitiesResponseData;
AVRCP_List_Player_Application_Setting_Attributes_Response_Data_t ListPlayerApplicationSettingAttributesResponseData;
AVRCP_List_Player_Application_Setting_Values_Command_Data_t ListPlayerApplicationSettingValuesCommandData;
AVRCP_List_Player_Application_Setting_Values_Response_Data_t ListPlayerApplicationSettingValuesResponseData;
AVRCP_Get_Current_Player_Application_Setting_Value_Command_Data_t GetCurrentPlayerApplicationSettingValueCommandData;
AVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t GetCurrentPlayerApplicationSettingValueResponseData;
AVRCP_Set_Player_Application_Setting_Value_Command_Data_t SetPlayerApplicationSettingValueCommandData;
AVRCP_Set_Player_Application_Setting_Value_Response_Data_t SetPlayerApplicationSettingValueResponseData;
AVRCP_Get_Player_Application_Setting_Attribute_Text_Command_Data_t GetPlayerApplicationSettingAttributeTextCommandData;
AVRCP_Get_Player_Application_Setting_Attribute_Text_Response_Data_t GetPlayerApplicationSettingAttributeTextResponseData;
AVRCP_Get_Player_Application_Setting_Value_Text_Command_Data_t GetPlayerApplicationSettingValueTextCommandData;
AVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t GetPlayerApplicationSettingValueTextResponseData;
AVRCP_Inform_Displayable_Character_Set_Command_Data_t InformDisplayableCharacterSetCommandData;
AVRCP_Inform_Displayable_Character_Set_Response_Data_t InformDisplayableCharacterSetResponseData;
AVRCP_Inform_Battery_Status_Of_CT_Command_Data_t InformBatteryStatusOfCTCommandData;
AVRCP_Inform_Battery_Status_Of_CT_Response_Data_t InformBatteryStatusOfCTResponseData;
AVRCP_Get_Element_Attributes_Command_Data_t GetElementAttributesCommandData;
AVRCP_Get_Element_Attributes_Response_Data_t GetElementAttributesResponseData;
AVRCP_Get_Play_Status_Response_Data_t GetPlayStatusResponseData;
AVRCP_Register_Notification_Command_Data_t RegisterNotificationCommandData;
AVRCP_Register_Notification_Response_Data_t RegisterNotificationResponseData;
AVRCP_Request_Continuing_Response_Command_Data_t RequestContinuingResponseCommandData;
AVRCP_Abort_Continuing_Response_Command_Data_t AbortContinuingResponseCommandData;
AVRCP_Abort_Continuing_Response_Response_Data_t AbortContinuingResponseResponseData;
AVRCP_Set_Absolute_Volume_Command_Data_t SetAbsoluteVolumeCommandData;
AVRCP_Set_Absolute_Volume_Response_Data_t SetAbsoluteVolumeResponseData;
AVRCP_Command_Reject_Response_Data_t CommandRejectResponseData;
AVRCP_Set_Addressed_Player_Command_Data_t SetAddressedPlayerCommandData;
AVRCP_Set_Addressed_Player_Response_Data_t SetAddressedPlayerResponseData;
AVRCP_Play_Item_Command_Data_t PlayItemCommandData;
AVRCP_Play_Item_Response_Data_t PlayItemResponseData;
AVRCP_Add_To_Now_Playing_Command_Data_t AddToNowPlayingCommandData;
AVRCP_Add_To_Now_Playing_Response_Data_t AddToNowPlayingResponseData;
AVRCP_Unknown_Command_Data_t UnknownCommandData;
AVRCP_Set_Browsed_Player_Command_Data_t SetBrowsedPlayerCommandData;
AVRCP_Set_Browsed_Player_Response_Data_t SetBrowsedPlayerResponseData;
AVRCP_Change_Path_Command_Data_t ChangePathCommandData;
AVRCP_Change_Path_Response_Data_t ChangePathResponseData;
AVRCP_Get_Item_Attributes_Command_Data_t GetItemAttributesCommandData;
AVRCP_Get_Item_Attributes_Response_Data_t GetItemAttributesResponseData;
AVRCP_Search_Command_Data_t SearchCommandData;
AVRCP_Search_Response_Data_t SearchResponseData;
AVRCP_Get_Folder_Items_Command_Data_t GetFolderItemsCommandData;
AVRCP_Get_Folder_Items_Response_Data_t GetFolderItemsResponseData;
AVRCP_General_Reject_Response_Data_t GeneralRejectResponseData;
} MessageInformation;
} AVRCP_Message_Information_t;
/*! AVRCP SDP Registration functions. */
/*! @brief The following function is responsible for registering an AVRCP
* Controller or Target service record to the SDP database.
* @param BluetoothStackID The first parameter to this function is the Bluetooth Stack ID of the
* Bluetooth Stack associated with the AVRCP Controller or Target
* Server for which this service record is being registered.
* @param Controller The second parameter to this function specifies whether this record is
* to specify a Controller (TRUE) or a Target (FALSE) SDP Record.
* @param ServiceName The third parameter to this function is the Service Name to be
* associated with this service record. @param ProviderName The fourth parameter to this
* function is the Provider name to be associated with this service
* record. @param SupportedFeaturesMask The fifth parameter specifies a bit mask that identifies
* the features supported by the local AVRCP server.
* @param SDPServiceRecordHandle The first parameter to this function is a pointer to a DWord_t which
* receives the SDP Service Record Handle if this function
* successfully creates a service record. If @return This function returns
* zero, then the SDPServiceRecordHandle entry will contain the
* Service Record Handle of the added SDP Service Record. If this
* function fails, a negative return error code will be returned (see
* BTERRORS.H) and the SDPServiceRecordHandle value will be
* undefined.
* \note This function registers an SDP Record with the latest
* AVRCP version. If a prior version of AVRCP is required,
* then the AVRCP_Register_SDP_Record_Version() function
* should be called to specify a specific version.
* \note The Service Record Handle that is returned from this
* function will remain in the SDP Record Database until it
* is deleted by calling the SDP_Delete_Service_Record()
* function.
* \note A MACRO is provided to Delete the Service Record from the
* SDP Data Base. This MACRO maps the
* AVRCP_Un_Register_SDP_Record() to the
* SDP_Delete_Service_Record() function.
* \note The Service Name is always added at Attribute ID 0x0100.
* A Language Base Attribute ID List is created that
* specifies that 0x0100 is UTF-8 Encoded, English Language.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Register_SDP_Record(unsigned int BluetoothStackID, Boolean_t Controller, char *ServiceName, char *ProviderName, Word_t SupportedFeaturesMask, DWord_t *SDPServiceRecordHandle);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Register_SDP_Record_t)(unsigned int BluetoothStackID, Boolean_t Controller, char *ServiceName, char *ProviderName, Word_t SupportedFeaturesMask, DWord_t *SDPServiceRecordHandle);
#endif
/*! @brief The following function is responsible for registering an AVRCP
* Controller or Target service record to the SDP database
* (specifying a specific AVRCP version). @param BluetoothStackID The first parameter to
* this function is the Bluetooth Stack ID of the Bluetooth Stack
* associated with the AVRCP Controller or Target Server for which
* this service record is being registered. @param Controller The second parameter to
* this function specifies whether this record is to specify a
* Controller (TRUE) or a Target (FALSE) SDP Record. @param ServiceName The third parameter to this function is the Service Name to be associated
* with this service record. @param ProviderName The fourth parameter to this function
* is the Provider name to be associated with this service record.
* @param SupportedFeaturesMask The fifth parameter specifies a bit mask that identifies the
* features supported by the local AVRCP server. @param AVRCPVersion The sixth parameter
* specifies the actual AVRCP version that is to be published.
* @param SDPServiceRecordHandle The first parameter to this function is a pointer to a DWord_t which
* receives the SDP Service Record Handle if this function
* successfully creates a service record. If @return This function returns
* zero, then the SDPServiceRecordHandle entry will contain the
* Service Record Handle of the added SDP Service Record. If this
* function fails, a negative return error code will be returned (see
* BTERRORS.H) and the SDPServiceRecordHandle value will be
* undefined.
* \note The Service Record Handle that is returned from this
* function will remain in the SDP Record Database until it
* is deleted by calling the SDP_Delete_Service_Record()
* function.
* \note A MACRO is provided to Delete the Service Record from the
* SDP Data Base. This MACRO maps the
* AVRCP_Un_Register_SDP_Record() to the
* SDP_Delete_Service_Record() function.
* \note The Service Name is always added at Attribute ID 0x0100.
* A Language Base Attribute ID List is created that
* specifies that 0x0100 is UTF-8 Encoded, English Language.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Register_SDP_Record_Version(unsigned int BluetoothStackID, Boolean_t Controller, char *ServiceName, char *ProviderName, Word_t SupportedFeaturesMask, AVRCP_Version_t AVRCPVersion, DWord_t *SDPServiceRecordHandle);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Register_SDP_Record_Version_t)(unsigned int BluetoothStackID, Boolean_t Controller, char *ServiceName, char *ProviderName, Word_t SupportedFeaturesMask, AVRCP_Version_t AVRCPVersion, DWord_t *SDPServiceRecordHandle);
#endif
/*! The following MACRO is a utility MACRO that simply deletes the
* AVRCP SDP Service Record (specified by the second parameter) from
* the SDP Database. This MACRO simply maps to the
* SDP_Delete_Service_Record() function. This MACRO is only provided
* so that the caller doesn't have to sift through the SDP API for
* very simplistic applications. This function accepts as input the
* Bluetooth Stack ID of the Bluetooth Protocol Stack that the
* Service Record exists on and the SDP Service Record Handle. The
* SDP Service Record Handle was returned via a successful call to
* the AVRCP_Register_SDP_Record() function. This MACRO returns the
* result of the SDP_Delete_Service_Record() function, which is zero
* for success or a negative return error code (see BTERRORS.H).
*/
#define AVRCP_Un_Register_SDP_Record(__BluetoothStackID, __SDPRecordHandle) \
(SDP_Delete_Service_Record(__BluetoothStackID, __SDPRecordHandle))
/*! Generic AVRCP IEEE 1394 A/V Commands/Responses. */
/*! @brief The following function is a utility function that exists to format
* an AVRCP Unit Info Command. @param BluetoothStackID Unique identifier
* assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param BufferLength Length of the provided buffer to which the command data will be written.
* @param Buffer Pointer to a buffer to which the command data will be written.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the command (if successful, positive) or function returns a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Unit_Info_Command(unsigned int BluetoothStackID, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Unit_Info_Command_t)(unsigned int BluetoothStackID, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Unit Info Response. @param BluetoothStackID Unique identifier
* assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param UnitInfoResponseData Pointer to a structure containing the data to
* write into the provided buffer. @param BufferLength Length of the provided buffer
* to which the response data will be written. @param Buffer Pointer to a buffer
* to which the response data will be written.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Unit_Info_Response(unsigned int BluetoothStackID, AVRCP_Unit_Info_Response_Data_t *UnitInfoResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Unit_Info_Response_t)(unsigned int BluetoothStackID, AVRCP_Unit_Info_Response_Data_t *UnitInfoResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Subunit Info Command. @param BluetoothStackID Unique identifier
* assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SubunitInfoCommandData Pointer to a structure containing the data
* to write into the provided buffer. @param BufferLength Length of the provided
* buffer to which the command data will be written. @param Buffer Pointer to a
* buffer to which the command data will be written.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Subunit_Info_Command(unsigned int BluetoothStackID, AVRCP_Subunit_Info_Command_Data_t *SubunitInfoCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Subunit_Info_Command_t)(unsigned int BluetoothStackID, AVRCP_Subunit_Info_Command_Data_t *SubunitInfoCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Subunit Info Response. @param BluetoothStackID Unique identifier
* assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SubunitInfoResponseData Pointer to a structure containing the
* data to write into the provided buffer.@param BufferLength Length of the
* provided buffer to which the response data will be written.
* @param Buffer Pointer to a buffer to which the response data will be written.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Subunit_Info_Response(unsigned int BluetoothStackID, AVRCP_Subunit_Info_Response_Data_t *SubunitInfoResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Subunit_Info_Response_t)(unsigned int BluetoothStackID, AVRCP_Subunit_Info_Response_Data_t *SubunitInfoResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Pass Through Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth
* Protocol Stack via a call to BSC_Initialize.
* @param PassThroughCommandData Pointer to a structure containing the
* data to write into the provided buffer. @param BufferLength Length of the
* provided buffer to which the command data will be written.
* @param Buffer Pointer to a buffer to which the command data will be written.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Pass_Through_Command(unsigned int BluetoothStackID, AVRCP_Pass_Through_Command_Data_t *PassThroughCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Pass_Through_Command_t)(unsigned int BluetoothStackID, AVRCP_Pass_Through_Command_Data_t *PassThroughCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Pass Through Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param PassThroughResponseData Pointer to a structure containing the data to write into the provided buffer.
* @param BufferLength Length of the provided buffer to which the response data will be written.
* @param Buffer Pointer to a buffer to which the response data will be written.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the response (if successful, positive) ora negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Pass_Through_Response(unsigned int BluetoothStackID, AVRCP_Pass_Through_Response_Data_t *PassThroughResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Pass_Through_Response_t)(unsigned int BluetoothStackID, AVRCP_Pass_Through_Response_Data_t *PassThroughResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/* AVRCP Vendor Dependent AV/C Commands/Responses.
* @brief The following function is a utility function that exists to format
* a Generic AVRCP Vendor Dependent Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param VendorDependentCommandData Pointer to a structure containing the data to write into the provided buffer.
* @param BufferLength Length of the provided buffer to which the command data will be written.
* @param Buffer Pointer to a buffer to which the command data will be written.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the command (if successful,
* positive) or a negative return code if there
* was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Vendor_Dependent_Generic_Command(unsigned int BluetoothStackID, AVRCP_Vendor_Dependent_Generic_Command_Data_t *VendorDependentCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Vendor_Dependent_Generic_Command_t)(unsigned int BluetoothStackID, AVRCP_Vendor_Dependent_Generic_Command_Data_t *VendorDependentCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* a Generic AVRCP Vendor Dependent Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param VendorDependentResponseData Pointer to a structure containing the data to write into the provided buffer.
* @param BufferLength Length of the provided buffer to which the response data will be written.
* @param Buffer Pointer to a buffer to which the response data will be written.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Vendor_Dependent_Generic_Response(unsigned int BluetoothStackID, AVRCP_Vendor_Dependent_Generic_Response_Data_t *VendorDependentResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Vendor_Dependent_Generic_Response_t)(unsigned int BluetoothStackID, AVRCP_Vendor_Dependent_Generic_Response_Data_t *VendorDependentResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* a Generic AVRCP Browsing Channel Message (command or response).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param BrowsingChannelGenericMessageData Pointer to a structure containing the data to write into the provided buffer.
* @param BufferLength Length of the provided buffer to which the response data will be written.
* @param Buffer Pointer to a buffer to which the response data will be written.
* @return This function returns the amount of the
* data that was copied into the specified buffer to build the
* message (if successful, positive) or a
* negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified message.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Browsing_Channel_Generic_Message(unsigned int BluetoothStackID, AVRCP_Browsing_Channel_Generic_Message_Data_t *BrowsingChannelGenericMessageData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Browsing_Channel_Generic_Message_t)(unsigned int BluetoothStackID, AVRCP_Browsing_Channel_Generic_Message_Data_t *BrowsingChannelGenericMessageData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! AVRCP Extensions to IEEE 1394 A/V Commands/Responses. */
/*! @brief The following function is a utility function that exists to format
* an AVRCP Group Navigation Pass Through Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GroupNavigationCommandData The data to populate into the command (required)
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was
* copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Group_Navigation_Command(unsigned int BluetoothStackID, AVRCP_Group_Navigation_Command_Data_t *GroupNavigationCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Group_Navigation_Command_t)(unsigned int BluetoothStackID, AVRCP_Group_Navigation_Command_Data_t *GroupNavigationCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Group Navigation Pass Through Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GroupNavigationResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the response (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Group_Navigation_Response(unsigned int BluetoothStackID, AVRCP_Group_Navigation_Response_Data_t *GroupNavigationResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Group_Navigation_Response_t)(unsigned int BluetoothStackID, AVRCP_Group_Navigation_Response_Data_t *GroupNavigationResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Capabilities Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GetCapabilitiesCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive).
* or a negative return code if there was an
* error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Capabilities_Command(unsigned int BluetoothStackID, AVRCP_Get_Capabilities_Command_Data_t *GetCapabilitiesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Capabilities_Command_t)(unsigned int BluetoothStackID, AVRCP_Get_Capabilities_Command_Data_t *GetCapabilitiesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Capabilities Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MessageStateInfo The Response State Information (required).
* @param GetCapabilitiesResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note The Response Message State Information *MUST* be
* initialized with the correct values:
* - Complete - FALSE
* - Offset - 0
* if, after the first successful invocation of this
* function, the Complete parameter is still FALSE, then
* this means the message was fragmented. Subsequent
* calls to this function require this member to passed
* with the values that are present in the returned
* structure.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response. Note that in this case,
* this function will STILL update the Response Message
* State Information. In this case, the caller *MUST*
* reinitialize the structure to the correct value before
* calling this function to build the correct message.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Capabilities_Response(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Capabilities_Response_Data_t *GetCapabilitiesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Capabilities_Response_t)(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Capabilities_Response_Data_t *GetCapabilitiesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP List Player Application Setting Attributes Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data
* that was copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_List_Player_Application_Setting_Attributes_Command(unsigned int BluetoothStackID, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_List_Player_Application_Setting_Attributes_Command_t)(unsigned int BluetoothStackID, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP List Player Application Setting Attributes Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param ListPlayerApplicationSettingAttributesResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the
* data that was copied into the specified buffer to build the
* response (if successful, positive) or a
* negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_List_Player_Application_Setting_Attributes_Response(unsigned int BluetoothStackID, AVRCP_List_Player_Application_Setting_Attributes_Response_Data_t *ListPlayerApplicationSettingAttributesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_List_Player_Application_Setting_Attributes_Response_t)(unsigned int BluetoothStackID, AVRCP_List_Player_Application_Setting_Attributes_Response_Data_t *ListPlayerApplicationSettingAttributesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP List Player Application Setting Values Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param ListPlayerApplicationSettingValuesCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_List_Player_Application_Setting_Values_Command(unsigned int BluetoothStackID, AVRCP_List_Player_Application_Setting_Values_Command_Data_t *ListPlayerApplicationSettingValuesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_List_Player_Application_Setting_Values_Command_t)(unsigned int BluetoothStackID, AVRCP_List_Player_Application_Setting_Values_Command_Data_t *ListPlayerApplicationSettingValuesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP List Player Application Setting Values Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param ListPlayerApplicationSettingValuesResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into
* @return This function returns the amount of the
* data that was copied into the specified buffer to build the
* response (if successful, positive) or a
* negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_List_Player_Application_Setting_Values_Response(unsigned int BluetoothStackID, AVRCP_List_Player_Application_Setting_Values_Response_Data_t *ListPlayerApplicationSettingValuesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_List_Player_Application_Setting_Values_Response_t)(unsigned int BluetoothStackID, AVRCP_List_Player_Application_Setting_Values_Response_Data_t *ListPlayerApplicationSettingValuesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Current Player Application Setting Value Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GetCurrentPlayerApplicationSettingValueCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the
* data that was copied into the specified buffer to build the
* command (if successful, positive) or a
* negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Current_Player_Application_Setting_Value_Command(unsigned int BluetoothStackID, AVRCP_Get_Current_Player_Application_Setting_Value_Command_Data_t *GetCurrentPlayerApplicationSettingValueCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Current_Player_Application_Setting_Value_Command_t)(unsigned int BluetoothStackID, AVRCP_Get_Current_Player_Application_Setting_Value_Command_Data_t *GetCurrentPlayerApplicationSettingValueCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Current Player Application Setting Value Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MessageStateInfo This function accepts the Response State Information (required).
* @param GetCurrentPlayerApplicationSettingValueResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note The Response Message State Information *MUST* be
* initialized with the correct values:
* - Complete - FALSE
* - Offset - 0
* if, after the first successful invocation of this
* function, the Complete parameter is still FALSE, then
* this means the message was fragmented. Subsequent
* calls to this function require this member to passed
* with the values that are present in the returned
* structure.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response. Note that in this case,
* this function will STILL update the Reponse Message
* State Information. In this case, the caller *MUST*
* reinitialize the structure to the correct value before
* calling this function to build the correct message.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Current_Player_Application_Setting_Value_Response(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t *GetCurrentPlayerApplicationSettingValueResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Current_Player_Application_Setting_Value_Response_t)(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Current_Player_Application_Setting_Value_Response_Data_t *GetCurrentPlayerApplicationSettingValueResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Player Application Setting Value Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SetPlayerApplicationSettingValueCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Player_Application_Setting_Value_Command(unsigned int BluetoothStackID, AVRCP_Set_Player_Application_Setting_Value_Command_Data_t *SetPlayerApplicationSettingValueCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Player_Application_Setting_Value_Command_t)(unsigned int BluetoothStackID, AVRCP_Set_Player_Application_Setting_Value_Command_Data_t *SetPlayerApplicationSettingValueCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Player Application Setting Value Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SetPlayerApplicationSettingValueResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the response (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Player_Application_Setting_Value_Response(unsigned int BluetoothStackID, AVRCP_Set_Player_Application_Setting_Value_Response_Data_t *SetPlayerApplicationSettingValueResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Player_Application_Setting_Value_Response_t)(unsigned int BluetoothStackID, AVRCP_Set_Player_Application_Setting_Value_Response_Data_t *SetPlayerApplicationSettingValueResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Player Application Setting Attribute Text Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GetPlayerApplicationSettingAttributeTextCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount
* of the data that was copied into the specified buffer to build
* the command (if successful, positive) or a
* negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Player_Application_Setting_Attribute_Text_Command(unsigned int BluetoothStackID, AVRCP_Get_Player_Application_Setting_Attribute_Text_Command_Data_t *GetPlayerApplicationSettingAttributeTextCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Player_Application_Setting_Attribute_Text_Command_t)(unsigned int BluetoothStackID, AVRCP_Get_Player_Application_Setting_Attribute_Text_Command_Data_t *GetPlayerApplicationSettingAttributeTextCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Player Application Setting Attribute Text Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MessageStateInfo This function accepts the Response State Information (required).
* @param GetPlayerApplicationSettingAttributeTextResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note The Response Message State Information *MUST* be
* initialized with the correct values:
* - Complete - FALSE
* - Offset - 0
* if, after the first successful invocation of this
* function, the Complete parameter is still FALSE, then
* this means the message was fragmented. Subsequent
* calls to this function require this member to passed
* with the values that are present in the returned
* structure.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response. Note that in this case,
* this function will STILL update the Reponse Message
* State Information. In this case, the caller *MUST*
* reinitialize the structure to the correct value before
* calling this function to build the correct message.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Player_Application_Setting_Attribute_Text_Response(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Player_Application_Setting_Attribute_Text_Response_Data_t *GetPlayerApplicationSettingAttributeTextResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Player_Application_Setting_Attribute_Text_Response_t)(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Player_Application_Setting_Attribute_Text_Response_Data_t *GetPlayerApplicationSettingAttributeTextResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Player Application Setting Value Text Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GetPlayerApplicationSettingValueTextCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Player_Application_Setting_Value_Text_Command(unsigned int BluetoothStackID, AVRCP_Get_Player_Application_Setting_Value_Text_Command_Data_t *GetPlayerApplicationSettingValueTextCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Player_Application_Setting_Value_Text_Command_t)(unsigned int BluetoothStackID, AVRCP_Get_Player_Application_Setting_Value_Text_Command_Data_t *GetPlayerApplicationSettingValueTextCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Player Application Setting Value Text Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MessageStateInfo This function accepts the Response State Information (required).
* @param GetPlayerApplicationSettingValueTextResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note The Response Message State Information *MUST* be
* initialized with the correct values:
* - Complete - FALSE
* - Offset - 0
* if, after the first successful invocation of this
* function, the Complete parameter is still FALSE, then
* this means the message was fragmented. Subsequent calls
* to this function require this member to passed with the
* values that are present in the returned structure.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response. Note that in this case,
* this function will STILL update the Reponse Message State
* Information. In this case, the caller *MUST*
* reinitialize the structure to the correct value before
* calling this function to build the correct message.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Player_Application_Setting_Value_Text_Response(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t *GetPlayerApplicationSettingValueTextResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Player_Application_Setting_Value_Text_Response_t)(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Player_Application_Setting_Value_Text_Response_Data_t *GetPlayerApplicationSettingValueTextResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Inform Displayable Character Set Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param InformDisplayableCharacterSetCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was
* copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Inform_Displayable_Character_Set_Command(unsigned int BluetoothStackID, AVRCP_Inform_Displayable_Character_Set_Command_Data_t *InformDisplayableCharacterSetCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Inform_Displayable_Character_Set_Command_t)(unsigned int BluetoothStackID, AVRCP_Inform_Displayable_Character_Set_Command_Data_t *InformDisplayableCharacterSetCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Inform Displayable Character Set Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param InformDisplayableCharacterSetResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the response (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Inform_Displayable_Character_Set_Response(unsigned int BluetoothStackID, AVRCP_Inform_Displayable_Character_Set_Response_Data_t *InformDisplayableCharacterSetResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Inform_Displayable_Character_Set_Response_t)(unsigned int BluetoothStackID, AVRCP_Inform_Displayable_Character_Set_Response_Data_t *InformDisplayableCharacterSetResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Inform Battery Status of CT Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param InformBatteryStatusOfCTCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was
* copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Inform_Battery_Status_Of_CT_Command(unsigned int BluetoothStackID, AVRCP_Inform_Battery_Status_Of_CT_Command_Data_t *InformBatteryStatusOfCTCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Inform_Battery_Status_Of_CT_Command_t)(unsigned int BluetoothStackID, AVRCP_Inform_Battery_Status_Of_CT_Command_Data_t *InformBatteryStatusOfCTCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Inform Battery Status of CT Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param InformBatteryStatusOfCTResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the response (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Inform_Battery_Status_Of_CT_Response(unsigned int BluetoothStackID, AVRCP_Inform_Battery_Status_Of_CT_Response_Data_t *InformBatteryStatusOfCTResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Inform_Battery_Status_Of_CT_Response_t)(unsigned int BluetoothStackID, AVRCP_Inform_Battery_Status_Of_CT_Response_Data_t *InformBatteryStatusOfCTResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Element Attributes Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GetElementAttributesCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive)
* or a negative return code if there was an
* error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Element_Attributes_Command(unsigned int BluetoothStackID, AVRCP_Get_Element_Attributes_Command_Data_t *GetElementAttributesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Element_Attributes_Command_t)(unsigned int BluetoothStackID, AVRCP_Get_Element_Attributes_Command_Data_t *GetElementAttributesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Element Attributes Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MessageStateInfo This function accepts the Response State Information (required).
* @param GetElementAttributesResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns
* the amount of the data that was copied into the specified buffer
* to build the response (if successful, positive) or a negative return code if there was an error.
* \note The Response Message State Information *MUST* be
* initialized with the correct values:
* - Complete - FALSE
* - Offset - 0
* if, after the first successful invocation of this
* function, the Complete parameter is still FALSE, then
* this means the message was fragmented. Subsequent calls
* to this function require this member to passed with the
* values that are present in the returned structure.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response. Note that in this case,
* this function will STILL update the Reponse Message State
* Information. In this case, the caller *MUST*
* reinitialize the structure to the correct value before
* calling this function to build the correct message.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Element_Attributes_Response(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Element_Attributes_Response_Data_t *GetElementAttributesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Element_Attributes_Response_t)(unsigned int BluetoothStackID, AVRCP_Response_Message_State_Info_t *MessageStateInfo, AVRCP_Get_Element_Attributes_Response_Data_t *GetElementAttributesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Play Status Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive)
* or a negative return code if there was an
* error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Play_Status_Command(unsigned int BluetoothStackID, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Play_Status_Command_t)(unsigned int BluetoothStackID, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Play Status Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GetPlayStatusResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the response (if successful, positive)
* or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Play_Status_Response(unsigned int BluetoothStackID, AVRCP_Get_Play_Status_Response_Data_t *GetPlayStatusResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Play_Status_Response_t)(unsigned int BluetoothStackID, AVRCP_Get_Play_Status_Response_Data_t *GetPlayStatusResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Register Notification Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param RegisterNotificationCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive)
* or a negative return code if there was an
* error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Register_Notification_Command(unsigned int BluetoothStackID, AVRCP_Register_Notification_Command_Data_t *RegisterNotificationCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Register_Notification_Command_t)(unsigned int BluetoothStackID, AVRCP_Register_Notification_Command_Data_t *RegisterNotificationCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Play Status Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param RegisterNotificationResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the response (if successful, positive)
* or a negative return code if there was an
* error.
* \note This function is used to build both the Notification
* Response AND the actual Event Notification itself. The
* specification defines the response as having a
* Response Code of either:
* - AVRCP_RESPONSE_INTERIM (success)
* - AVRCP_RESPONSE_REJECTED (failure)
* - AVRCP_RESPONSE_NOT_IMPLEMENTED (failure)
* Notification Events have a Response Code of:
* - AVRCP_RESPONSE_CHANGED
* See the AVRCP specification for more information.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Register_Notification_Response(unsigned int BluetoothStackID, AVRCP_Register_Notification_Response_Data_t *RegisterNotificationResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Register_Notification_Response_t)(unsigned int BluetoothStackID, AVRCP_Register_Notification_Response_Data_t *RegisterNotificationResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Request Continuing Response Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param RequestContinuingResponseCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was
* copied into the specified buffer to build the command (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Request_Continuing_Response_Command(unsigned int BluetoothStackID, AVRCP_Request_Continuing_Response_Command_Data_t *RequestContinuingResponseCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Request_Continuing_Response_Command_t)(unsigned int BluetoothStackID, AVRCP_Request_Continuing_Response_Command_Data_t *RequestContinuingResponseCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Abort Continuing Response Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param AbortContinuingResponseCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive)
* or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Abort_Continuing_Response_Command(unsigned int BluetoothStackID, AVRCP_Abort_Continuing_Response_Command_Data_t *AbortContinuingResponseCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Abort_Continuing_Response_Command_t)(unsigned int BluetoothStackID, AVRCP_Abort_Continuing_Response_Command_Data_t *AbortContinuingResponseCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Abort Continuing Response Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param AbortContinuingResponseResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that
* was copied into the specified buffer to build the response (if
* successful, positive) or a negative return
* code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Abort_Continuing_Response_Response(unsigned int BluetoothStackID, AVRCP_Abort_Continuing_Response_Response_Data_t *AbortContinuingResponseResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Abort_Continuing_Response_Response_t)(unsigned int BluetoothStackID, AVRCP_Abort_Continuing_Response_Response_Data_t *AbortContinuingResponseResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Absolute Volume Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SetAbsoluteVolumeCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive).
* or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Absolute_Volume_Command(unsigned int BluetoothStackID, AVRCP_Set_Absolute_Volume_Command_Data_t *SetAbsoluteVolumeCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Absolute_Volume_Command_t)(unsigned int BluetoothStackID, AVRCP_Set_Absolute_Volume_Command_Data_t *SetAbsoluteVolumeCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Absolute Volume Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SetAbsoluteVolumeResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Absolute_Volume_Response(unsigned int BluetoothStackID, AVRCP_Set_Absolute_Volume_Response_Data_t *SetAbsoluteVolumeResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Absolute_Volume_Response_t)(unsigned int BluetoothStackID, AVRCP_Set_Absolute_Volume_Response_Data_t *SetAbsoluteVolumeResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Addressed Player Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SetAddressedPlayerCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive)
* or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Addressed_Player_Command(unsigned int BluetoothStackID, AVRCP_Set_Addressed_Player_Command_Data_t *SetAddressedPlayerCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Addressed_Player_Command_t)(unsigned int BluetoothStackID, AVRCP_Set_Addressed_Player_Command_Data_t *SetAddressedPlayerCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Addressed Player Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SetAddressedPlayerResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Addressed_Player_Response(unsigned int BluetoothStackID, AVRCP_Set_Addressed_Player_Response_Data_t *SetAddressedPlayerResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Addressed_Player_Response_t)(unsigned int BluetoothStackID, AVRCP_Set_Addressed_Player_Response_Data_t *SetAddressedPlayerResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Play Item Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param PlayItemCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Play_Item_Command(unsigned int BluetoothStackID, AVRCP_Play_Item_Command_Data_t *PlayItemCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Play_Item_Command_t)(unsigned int BluetoothStackID, AVRCP_Play_Item_Command_Data_t *PlayItemCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Play Item Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param PlayItemResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into the specified
* buffer to build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Play_Item_Response(unsigned int BluetoothStackID, AVRCP_Play_Item_Response_Data_t *PlayItemResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Play_Item_Response_t)(unsigned int BluetoothStackID, AVRCP_Play_Item_Response_Data_t *PlayItemResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Add To Now Playing Command.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param AddToNowPlayingCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the amount of the data that was copied into the
* specified buffer to build the command (if successful, positive)
* or a negative return code if there was an
* error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Add_To_Now_Playing_Command(unsigned int BluetoothStackID, AVRCP_Add_To_Now_Playing_Command_Data_t *AddToNowPlayingCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Add_To_Now_Playing_Command_t)(unsigned int BluetoothStackID, AVRCP_Add_To_Now_Playing_Command_Data_t *AddToNowPlayingCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Add To Now Playing Response.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param AddToNowPlayingResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Add_To_Now_Playing_Response(unsigned int BluetoothStackID, AVRCP_Add_To_Now_Playing_Response_Data_t *AddToNowPlayingResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Add_To_Now_Playing_Response_t)(unsigned int BluetoothStackID, AVRCP_Add_To_Now_Playing_Response_Data_t *AddToNowPlayingResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Command Reject Response (only applicable for AV/C
* Specific Commands - Control Channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param CommandRejectResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the amount of the data that was copied into
* the specified buffer to build the response (if successful,
* positive) or a negative return code if there
* was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Command_Reject_Response(unsigned int BluetoothStackID, AVRCP_Command_Reject_Response_Data_t *CommandRejectResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Command_Reject_Response_t)(unsigned int BluetoothStackID, AVRCP_Command_Reject_Response_Data_t *CommandRejectResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/* AVRCP Browsing Channel AV/C Commands/Responses.
* @brief The following function is a utility function that exists to format
* an AVRCP Set Browsed Player Command (only applicable for the
* Browsing channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param AddToNowPlayingCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns
* the amount of the data that was copied into the specified buffer
* to build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Browsed_Player_Command(unsigned int BluetoothStackID, AVRCP_Set_Browsed_Player_Command_Data_t *SetBrowsedPlayerCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Browsed_Player_Command_t)(unsigned int BluetoothStackID, AVRCP_Set_Browsed_Player_Command_Data_t *SetBrowsedPlayerCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Set Browsed Player Response (only applicable for the
* Browsing Channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MTUSize The maximum allowable PDU Size (MTU) of the Browsing Channel
* @param SetBrowsedPlayerResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Set_Browsed_Player_Response(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Set_Browsed_Player_Response_Data_t *SetBrowsedPlayerResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Set_Browsed_Player_Response_t)(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Set_Browsed_Player_Response_Data_t *SetBrowsedPlayerResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Change Path Command (only applicable for the Browsing
* channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param ChangePathCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Change_Path_Command(unsigned int BluetoothStackID, AVRCP_Change_Path_Command_Data_t *ChangePathCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Change_Path_Command_t)(unsigned int BluetoothStackID, AVRCP_Change_Path_Command_Data_t *ChangePathCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Change Path Response (only applicable for the Browsing
* Channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param ChangePathResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Change_Path_Response(unsigned int BluetoothStackID, AVRCP_Change_Path_Response_Data_t *ChangePathResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Change_Path_Response_t)(unsigned int BluetoothStackID, AVRCP_Change_Path_Response_Data_t *ChangePathResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Item Attributes Command (only applicable for the
* Browsing channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MTUSize The maximum allowable PDU Size (MTU) of the Browsing Channel
* @param GetItemAttributesCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Item_Attributes_Command(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Item_Attributes_Command_Data_t *GetItemAttributesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Item_Attributes_Command_t)(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Item_Attributes_Command_Data_t *GetItemAttributesCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Change Path Response (only applicable for the Browsing
* channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MTUSize The maximum allowable PDU Size (MTU) of the Browsing Channel
* @param GetItemAttributesResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Item_Attributes_Response(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Item_Attributes_Response_Data_t *GetItemAttributesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Item_Attributes_Response_t)(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Item_Attributes_Response_Data_t *GetItemAttributesResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Search Command (only applicable for the Browsing
* channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MTUSize The maximum allowable PDU Size (MTU) of the Browsing Channel
* @param SearchCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Search_Command(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Search_Command_Data_t *SearchCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Search_Command_t)(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Search_Command_Data_t *SearchCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Search Response (only applicable for the Browsing
* Channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param SearchResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Search_Response(unsigned int BluetoothStackID, AVRCP_Search_Response_Data_t *SearchResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Search_Response_t)(unsigned int BluetoothStackID, AVRCP_Search_Response_Data_t *SearchResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Folder Items Command (only applicable for the
* Browsing channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MTUSize The maximum allowable PDU Size (MTU) of the Browsing Channel
* @param GetFolderItemsCommandData The data to populate into the command (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the command into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the command (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified command.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Folder_Items_Command(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Folder_Items_Command_Data_t *GetFolderItemsCommandData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Folder_Items_Command_t)(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Folder_Items_Command_Data_t *GetFolderItemsCommandData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP Get Folder Items Response (only applicable for the
* Browsing channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MTUSize The maximum allowable PDU Size (MTU) of the Browsing Channel
* @param GetFolderItemsResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_Get_Folder_Items_Response(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Folder_Items_Response_Data_t *GetFolderItemsResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_Get_Folder_Items_Response_t)(unsigned int BluetoothStackID, Word_t MTUSize, AVRCP_Get_Folder_Items_Response_Data_t *GetFolderItemsResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is a utility function that exists to format
* an AVRCP General Reject Response (only applicable for the Browsing
* Channel).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param GeneralRejectResponseData The data to populate into the response (required).
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the specified response.
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Format_General_Reject_Response(unsigned int BluetoothStackID, AVRCP_General_Reject_Response_Data_t *GeneralRejectResponseData, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Format_General_Reject_Response_t)(unsigned int BluetoothStackID, AVRCP_General_Reject_Response_Data_t *GeneralRejectResponseData, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is provided to allow a mechanism for
* parsing/decoding the specified AVRCP Response Message.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param BrowsingChannelMessage Set if the message to decode is a Browse Channel message.
* @param Response Set if the message to decode is a Response message.
* @param MessageLength Length of the message in bytes.
* @param MessageData Pointer to a buffer that contains the message to decode.
* @param MessageInformation Pointer to a structure that will contain the parsed message data.
* @return This function returns zero if successful, or a negative return code if
* there was an error.
* \note If @return This function returns success (zero) then the caller
* *MUST* call the AVRCP_Free_Decoded_Message() function
* with the decoded Message buffer that was passed to this
* function. This guarantees that all resources for the
* Message will be freed.
* \note The decoded Message will have pointers in it that point
* to memory that is located within the Message Buffer
* passed to this function (third parameter). The Message
* data cannot be freed or altered until after the
* AVRCP_Free_Decoded_Message() function is called (i.e.
* the caller is finished with the message contents).
*/
BTPSAPI_DECLARATION int BTPSAPI AVRCP_Decode_Message(unsigned int BluetoothStackID, Boolean_t BrowsingChannelMessage, Boolean_t Response, unsigned int MessageLength, Byte_t *MessageData, AVRCP_Message_Information_t *MessageInformation);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef int (BTPSAPI *PFN_AVRCP_Decode_Message_t)(unsigned int BluetoothStackID, Boolean_t BrowsingChannelMessage, Boolean_t Response, unsigned int MessageLength, Byte_t *MessageData, AVRCP_Message_Information_t *MessageInformation);
#endif
/*! @brief The following function is provided to free all the resources
* associated with a AVRCP Decoded Message. This is the data that
* was populated into the AVRCP_Message_Information_t buffer that was
* passed to the AVRCP_Decode_Message() function.
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param MessageInformation Pointer to an AVRCP_Message_Information_t structure to free.
*/
BTPSAPI_DECLARATION void BTPSAPI AVRCP_Free_Decoded_Message(unsigned int BluetoothStackID, AVRCP_Message_Information_t *MessageInformation);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef void (BTPSAPI *PFN_AVRCP_Free_Decoded_Message_t)(unsigned int BluetoothStackID, AVRCP_Message_Information_t *MessageInformation);
#endif
/*! @brief The following function is provided to allow a mechanism for
* rebuilding the specified AVRCP Fragmented Message (based on the
* specified Fragment List).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param NumberMessageFragments The number of message fragments.
* @param MessageFragmentList The Fragmented Message List.
* @param BufferLength The size of the buffer.
* @param Buffer A pointer to the buffer to build the response message into.
* @return This function returns the
* amount of the data that was copied into the specified buffer to
* build the response (if successful, positive) or a negative return code if there was an error.
* \note Passing zero and NULL for the BufferLength and Buffer
* parameters (respectively) instructs this function to
* simply calculate the number of bytes that are required to
* hold the rebuilt response message.
*/
BTPSAPI_DECLARATION long BTPSAPI AVRCP_Rebuild_Fragmented_Message(unsigned int BluetoothStackID, unsigned int NumberMessageFragments, AVRCP_Message_Information_t *MessageFragmentList, unsigned int BufferLength, Byte_t *Buffer);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef long (BTPSAPI *PFN_AVRCP_Rebuild_Fragmented_Message_t)(unsigned int BluetoothStackID, unsigned int NumberMessageFragments, AVRCP_Message_Information_t *MessageFragmentList, unsigned int BufferLength, Byte_t *Buffer);
#endif
/*! @brief The following function is provided to free all the resources
* associated with the specified AVRCP Message Fragment List. This
* is the data that was populated into the
* AVRCP_Message_Information_t buffer that was passed to the
* AVRCP_Decode_Message() function. This function frees all the decoded Message
* Information buffers and frees all resources (except the
* AVRCP_Message_Information_t structures themselves (the array)
* which the caller owns).
* @param BluetoothStackID Unique identifier assigned to this Bluetooth Protocol Stack via a call to BSC_Initialize.
* @param NumberMessageFragments This function accepts the number of Fragment Entries
* that are to be freed.
* @param MessageFragmentList The Fragmented Message List.
*/
BTPSAPI_DECLARATION void BTPSAPI AVRCP_Free_Fragmented_Message_List(unsigned int BluetoothStackID, unsigned int NumberMessageFragments, AVRCP_Message_Information_t *MessageFragmentList);
#ifdef INCLUDE_BLUETOOTH_API_PROTOTYPES
typedef void (BTPSAPI *PFN_AVRCP_Free_Fragmented_Message_List_t)(unsigned int BluetoothStackID, unsigned int NumberMessageFragments, AVRCP_Message_Information_t *MessageFragmentList);
#endif
#endif