You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
708 lines
29 KiB
708 lines
29 KiB
/****************************************************************************** |
|
* |
|
* Copyright (C) 2006-2012 Broadcom Corporation |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at: |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
* |
|
******************************************************************************/ |
|
|
|
/****************************************************************************** |
|
* |
|
* nterface to AVRCP Application Programming Interface |
|
* |
|
******************************************************************************/ |
|
#ifndef AVRC_API_H |
|
#define AVRC_API_H |
|
#include "avct_api.h" |
|
#include "avrc_defs.h" |
|
#include "bt_target.h" |
|
#include "sdp_api.h" |
|
|
|
/***************************************************************************** |
|
* constants |
|
****************************************************************************/ |
|
|
|
/* API function return value result codes. */ |
|
/* 0 Function successful */ |
|
#define AVRC_SUCCESS AVCT_SUCCESS |
|
/* 1 Not enough resources */ |
|
#define AVRC_NO_RESOURCES AVCT_NO_RESOURCES |
|
/* 2 Bad handle */ |
|
#define AVRC_BAD_HANDLE AVCT_BAD_HANDLE |
|
/* 3 PID already in use */ |
|
#define AVRC_PID_IN_USE AVCT_PID_IN_USE |
|
/* 4 Connection not open */ |
|
#define AVRC_NOT_OPEN AVCT_NOT_OPEN |
|
/* 5 the message length exceed the MTU of the browsing channel */ |
|
#define AVRC_MSG_TOO_BIG 5 |
|
/* 0x10 generic failure */ |
|
#define AVRC_FAIL 0x10 |
|
/* 0x11 bad parameter */ |
|
#define AVRC_BAD_PARAM 0x11 |
|
|
|
/* Control role - same as AVCT_TARGET/AVCT_CONTROL */ |
|
/* target */ |
|
#define AVRC_CT_TARGET 1 |
|
/* controller */ |
|
#define AVRC_CT_CONTROL 2 |
|
/* If conflict, allow the other side to succeed */ |
|
#define AVRC_CT_PASSIVE 4 |
|
|
|
/* Connection role */ |
|
/* initiator */ |
|
#define AVRC_CONN_INT AVCT_INT |
|
/* Acceptor */ |
|
#define AVRC_CONN_ACP AVCT_ACP |
|
|
|
/* AVRC CTRL events */ |
|
/* AVRC_OPEN_IND_EVT event is sent when the connection is successfully opened. |
|
* This eventis sent in response to an AVRC_Open(). */ |
|
#define AVRC_OPEN_IND_EVT 0 |
|
|
|
/* AVRC_CLOSE_IND_EVT event is sent when a connection is closed. |
|
* This event can result from a call to AVRC_Close() or when the peer closes |
|
* the connection. It is also sent when a connection attempted through |
|
* AVRC_Open() fails. */ |
|
#define AVRC_CLOSE_IND_EVT 1 |
|
|
|
/* AVRC_CONG_IND_EVT event indicates that AVCTP is congested and cannot send |
|
* any more messages. */ |
|
#define AVRC_CONG_IND_EVT 2 |
|
|
|
/* AVRC_UNCONG_IND_EVT event indicates that AVCTP is uncongested and ready to |
|
* send messages. */ |
|
#define AVRC_UNCONG_IND_EVT 3 |
|
|
|
/* AVRC_BROWSE_OPEN_IND_EVT event is sent when the browse channel is |
|
* successfully opened. |
|
* This eventis sent in response to an AVRC_Open() or AVRC_OpenBrowse() . */ |
|
#define AVRC_BROWSE_OPEN_IND_EVT 4 |
|
|
|
/* AVRC_BROWSE_CLOSE_IND_EVT event is sent when a browse channel is closed. |
|
* This event can result from a call to AVRC_Close(), AVRC_CloseBrowse() or |
|
* when the peer closes the connection. It is also sent when a connection |
|
* attempted through AVRC_OpenBrowse() fails. */ |
|
#define AVRC_BROWSE_CLOSE_IND_EVT 5 |
|
|
|
/* AVRC_BROWSE_CONG_IND_EVT event indicates that AVCTP browse channel is |
|
* congested and cannot send any more messages. */ |
|
#define AVRC_BROWSE_CONG_IND_EVT 6 |
|
|
|
/* AVRC_BROWSE_UNCONG_IND_EVT event indicates that AVCTP browse channel is |
|
* uncongested and ready to send messages. */ |
|
#define AVRC_BROWSE_UNCONG_IND_EVT 7 |
|
|
|
/* AVRC_CMD_TIMEOUT_EVT event indicates timeout waiting for AVRC command |
|
* response from the peer */ |
|
#define AVRC_CMD_TIMEOUT_EVT 8 |
|
|
|
/* Supported categories */ |
|
#define AVRC_SUPF_CT_CAT1 0x0001 /* Category 1 */ |
|
#define AVRC_SUPF_CT_CAT2 0x0002 /* Category 2 */ |
|
#define AVRC_SUPF_CT_CAT3 0x0004 /* Category 3 */ |
|
#define AVRC_SUPF_CT_CAT4 0x0008 /* Category 4 */ |
|
#define AVRC_SUPF_CT_APP_SETTINGS 0x0010 /* Player Application Settings */ |
|
#define AVRC_SUPF_CT_GROUP_NAVI 0x0020 /* Group Navigation */ |
|
#define AVRC_SUPF_CT_BROWSE 0x0040 /* Browsing */ |
|
|
|
/* Cover Art, get image property */ |
|
#define AVRC_SUPF_CT_COVER_ART_GET_IMAGE_PROP 0x0080 |
|
/* Cover Art, get image */ |
|
#define AVRC_SUPF_CT_COVER_ART_GET_IMAGE 0x0100 |
|
/* Cover Art, get Linked Thumbnail */ |
|
#define AVRC_SUPF_CT_COVER_ART_GET_THUMBNAIL 0x0200 |
|
|
|
#define AVRC_SUPF_TG_CAT1 0x0001 /* Category 1 */ |
|
#define AVRC_SUPF_TG_CAT2 0x0002 /* Category 2 */ |
|
#define AVRC_SUPF_TG_CAT3 0x0004 /* Category 3 */ |
|
#define AVRC_SUPF_TG_CAT4 0x0008 /* Category 4 */ |
|
#define AVRC_SUPF_TG_APP_SETTINGS 0x0010 /* Player Application Settings */ |
|
#define AVRC_SUPF_TG_GROUP_NAVI 0x0020 /* Group Navigation */ |
|
#define AVRC_SUPF_TG_BROWSE 0x0040 /* Browsing */ |
|
#define AVRC_SUPF_TG_MULTI_PLAYER 0x0080 /* Muliple Media Player */ |
|
#define AVRC_SUPF_TG_PLAYER_COVER_ART 0x0100 /* Cover Art */ |
|
|
|
#define AVRC_META_SUCCESS AVRC_SUCCESS |
|
#define AVRC_META_FAIL AVRC_FAIL |
|
#define AVRC_METADATA_CMD 0x0000 |
|
#define AVRC_METADATA_RESP 0x0001 |
|
|
|
/***************************************************************************** |
|
* data type definitions |
|
****************************************************************************/ |
|
|
|
/* This data type is used in AVRC_FindService() to initialize the SDP database |
|
* to hold the result service search. */ |
|
typedef struct { |
|
uint32_t db_len; /* Length, in bytes, of the discovery database */ |
|
tSDP_DISCOVERY_DB* p_db; /* Pointer to the discovery database */ |
|
uint16_t num_attr; /* The number of attributes in p_attrs */ |
|
uint16_t* p_attrs; /* The attributes filter. If NULL, AVRCP API sets the |
|
* attribute filter |
|
* to be ATTR_ID_SERVICE_CLASS_ID_LIST, |
|
* ATTR_ID_BT_PROFILE_DESC_LIST, |
|
* ATTR_ID_SUPPORTED_FEATURES, ATTR_ID_SERVICE_NAME and |
|
* ATTR_ID_PROVIDER_NAME. |
|
* If not NULL, the input is taken as the filter. */ |
|
} tAVRC_SDP_DB_PARAMS; |
|
|
|
/* This callback function returns service discovery information to the |
|
* application after the AVRC_FindService() API function is called. The |
|
* implementation of this callback function must copy the p_service_name |
|
* and p_provider_name parameters passed to it as they are not guaranteed |
|
* to remain after the callback function exits. */ |
|
typedef void(tAVRC_FIND_CBACK)(uint16_t status); |
|
|
|
/* This is the control callback function. This function passes events |
|
* listed in Table 20 to the application. */ |
|
typedef void(tAVRC_CTRL_CBACK)(uint8_t handle, uint8_t event, uint16_t result, |
|
const RawAddress* peer_addr); |
|
|
|
/* This is the message callback function. It is executed when AVCTP has |
|
* a message packet ready for the application. The implementation of this |
|
* callback function must copy the tAVRC_MSG structure passed to it as it |
|
* is not guaranteed to remain after the callback function exits. */ |
|
typedef void(tAVRC_MSG_CBACK)(uint8_t handle, uint8_t label, uint8_t opcode, |
|
tAVRC_MSG* p_msg); |
|
|
|
typedef struct { |
|
tAVRC_CTRL_CBACK* p_ctrl_cback; /* pointer to application control callback */ |
|
tAVRC_MSG_CBACK* p_msg_cback; /* pointer to application message callback */ |
|
uint32_t company_id; /* the company ID */ |
|
uint8_t conn; /* Connection role (Initiator/acceptor) */ |
|
uint8_t control; /* Control role (Control/Target) */ |
|
} tAVRC_CONN_CB; |
|
|
|
typedef struct { |
|
uint8_t handle; |
|
uint8_t label; |
|
uint8_t msg_mask; |
|
} tAVRC_PARAM; |
|
|
|
/***************************************************************************** |
|
* external function declarations |
|
****************************************************************************/ |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_AddRecord |
|
* |
|
* Description This function is called to build an AVRCP SDP record. |
|
* Prior to calling this function the application must |
|
* call SDP_CreateRecord() to create an SDP record. |
|
* |
|
* Input Parameters: |
|
* service_uuid: Indicates |
|
* TG(UUID_SERVCLASS_AV_REM_CTRL_TARGET) |
|
* or CT(UUID_SERVCLASS_AV_REMOTE_CONTROL) |
|
* |
|
* p_service_name: Pointer to a null-terminated character |
|
* string containing the service name. |
|
* If service name is not used set this to NULL. |
|
* |
|
* p_provider_name: Pointer to a null-terminated character |
|
* string containing the provider name. |
|
* If provider name is not used set this to NULL. |
|
* |
|
* categories: Supported categories. |
|
* |
|
* sdp_handle: SDP handle returned by SDP_CreateRecord(). |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_NO_RESOURCES if not enough resources to build the SDP |
|
* record. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_AddRecord(uint16_t service_uuid, |
|
const char* p_service_name, |
|
const char* p_provider_name, uint16_t categories, |
|
uint32_t sdp_handle, bool browse_supported, |
|
uint16_t profile_version); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_FindService |
|
* |
|
* Description This function is called by the application to perform |
|
* service discovery and retrieve AVRCP SDP record information |
|
* from a peer device. Information is returned for the first |
|
* service record found on the server that matches the service |
|
* UUID. The callback function will be executed when service |
|
* discovery is complete. There can only be one outstanding |
|
* call to AVRC_FindService() at a time; the application must |
|
* wait for the callback before it makes another call to the |
|
* function. The application is responsible for allocating |
|
* memory for the discovery database. It is recommended that |
|
* the size of the discovery database be at least 300 bytes. |
|
* The application can deallocate the memory after the |
|
* callback function has executed. |
|
* |
|
* Input Parameters: |
|
* service_uuid: Indicates |
|
* TG(UUID_SERVCLASS_AV_REM_CTRL_TARGET) |
|
* or CT(UUID_SERVCLASS_AV_REMOTE_CONTROL) |
|
* |
|
* bd_addr: BD address of the peer device. |
|
* |
|
* p_db: SDP discovery database parameters. |
|
* |
|
* p_cback: Pointer to the callback function. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_PARAMS if discovery database parameters are |
|
* invalid. |
|
* AVRC_NO_RESOURCES if there are not enough resources to |
|
* perform the service search. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_FindService(uint16_t service_uuid, |
|
const RawAddress& bd_addr, |
|
tAVRC_SDP_DB_PARAMS* p_db, |
|
tAVRC_FIND_CBACK* p_cback); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_Open |
|
* |
|
* Description This function is called to open a connection to AVCTP. |
|
* The connection can be either an initiator or acceptor, as |
|
* determined by the p_ccb->stream parameter. |
|
* The connection can be a target, a controller or for both |
|
* roles, as determined by the p_ccb->control parameter. |
|
* By definition, a target connection is an acceptor connection |
|
* that waits for an incoming AVCTP connection from the peer. |
|
* The connection remains available to the application until |
|
* the application closes it by calling AVRC_Close(). The |
|
* application does not need to reopen the connection after an |
|
* AVRC_CLOSE_IND_EVT is received. |
|
* |
|
* Input Parameters: |
|
* p_ccb->company_id: Company Identifier. |
|
* |
|
* p_ccb->p_ctrl_cback: Pointer to the control callback |
|
* function. |
|
* |
|
* p_ccb->p_msg_cback: Pointer to the message callback |
|
* function. |
|
* |
|
* p_ccb->conn: AVCTP connection role. This is set to |
|
* AVCTP_INT for initiator connections and AVCTP_ACP |
|
* for acceptor connections. |
|
* |
|
* p_ccb->control: Control role. This is set to |
|
* AVRC_CT_TARGET for target connections, AVRC_CT_CONTROL |
|
* for control connections or |
|
* (AVRC_CT_TARGET|AVRC_CT_CONTROL) for connections that |
|
* support both roles. |
|
* |
|
* peer_addr: BD address of peer device. This value is |
|
* only used for initiator connections; for acceptor |
|
* connections it can be set to NULL. |
|
* |
|
* Output Parameters: |
|
* p_handle: Pointer to handle. This parameter is only |
|
* valid if AVRC_SUCCESS is returned. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_NO_RESOURCES if there are not enough resources to open |
|
* the connection. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_Open(uint8_t* p_handle, tAVRC_CONN_CB* p_ccb, |
|
const RawAddress& peer_addr); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_Close |
|
* |
|
* Description Close a connection opened with AVRC_Open(). |
|
* This function is called when the |
|
* application is no longer using a connection. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_Close(uint8_t handle); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_OpenBrowse |
|
* |
|
* Description This function is called to open a browsing connection to |
|
* AVCTP. The connection can be either an initiator or |
|
* acceptor, as determined by the conn_role. |
|
* The handle is returned by a previous call to AVRC_Open. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_NO_RESOURCES if there are not enough resources to open |
|
* the connection. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_OpenBrowse(uint8_t handle, uint8_t conn_role); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_CloseBrowse |
|
* |
|
* Description Close a connection opened with AVRC_OpenBrowse(). |
|
* This function is called when the |
|
* application is no longer using a connection. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_CloseBrowse(uint8_t handle); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_MsgReq |
|
* |
|
* Description This function is used to send the AVRCP byte stream in p_pkt |
|
* down to AVCTP. |
|
* |
|
* It is expected that: |
|
* p_pkt->offset is at least AVCT_MSG_OFFSET |
|
* p_pkt->layer_specific is AVCT_DATA_CTRL or AVCT_DATA_BROWSE |
|
* p_pkt->event is AVRC_OP_VENDOR, AVRC_OP_PASS_THRU or |
|
* AVRC_OP_BROWSING |
|
* The above BT_HDR settings are set by the AVRC_Bld* |
|
* functions. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_MsgReq(uint8_t handle, uint8_t label, uint8_t ctype, |
|
BT_HDR* p_pkt); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_UnitCmd |
|
* |
|
* Description Send a UNIT INFO command to the peer device. This |
|
* function can only be called for controller role connections. |
|
* Any response message from the peer is passed back through |
|
* the tAVRC_MSG_CBACK callback function. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* label: Transaction label. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_UnitCmd(uint8_t handle, uint8_t label); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_SubCmd |
|
* |
|
* Description Send a SUBUNIT INFO command to the peer device. This |
|
* function can only be called for controller role connections. |
|
* Any response message from the peer is passed back through |
|
* the tAVRC_MSG_CBACK callback function. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* label: Transaction label. |
|
* |
|
* page: Specifies which part of the subunit type table |
|
* is requested. For AVRCP it is typically zero. |
|
* Value range is 0-7. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_SubCmd(uint8_t handle, uint8_t label, uint8_t page); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_PassCmd |
|
* |
|
* Description Send a PASS THROUGH command to the peer device. This |
|
* function can only be called for controller role connections. |
|
* Any response message from the peer is passed back through |
|
* the tAVRC_MSG_CBACK callback function. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* label: Transaction label. |
|
* |
|
* p_msg: Pointer to PASS THROUGH message structure. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_PassCmd(uint8_t handle, uint8_t label, |
|
tAVRC_MSG_PASS* p_msg); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_PassRsp |
|
* |
|
* Description Send a PASS THROUGH response to the peer device. This |
|
* function can only be called for target role connections. |
|
* This function must be called when a PASS THROUGH command |
|
* message is received from the peer through the |
|
* tAVRC_MSG_CBACK callback function. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* label: Transaction label. Must be the same value as |
|
* passed with the command message in the callback |
|
* function. |
|
* |
|
* p_msg: Pointer to PASS THROUGH message structure. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_PassRsp(uint8_t handle, uint8_t label, |
|
tAVRC_MSG_PASS* p_msg); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_VendorCmd |
|
* |
|
* Description Send a VENDOR DEPENDENT command to the peer device. This |
|
* function can only be called for controller role connections. |
|
* Any response message from the peer is passed back through |
|
* the tAVRC_MSG_CBACK callback function. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* label: Transaction label. |
|
* |
|
* p_msg: Pointer to VENDOR DEPENDENT message structure. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_VendorCmd(uint8_t handle, uint8_t label, |
|
tAVRC_MSG_VENDOR* p_msg); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_VendorRsp |
|
* |
|
* Description Send a VENDOR DEPENDENT response to the peer device. This |
|
* function can only be called for target role connections. |
|
* This function must be called when a VENDOR DEPENDENT |
|
* command message is received from the peer through the |
|
* tAVRC_MSG_CBACK callback function. |
|
* |
|
* Input Parameters: |
|
* handle: Handle of this connection. |
|
* |
|
* label: Transaction label. Must be the same value as |
|
* passed with the command message in the callback |
|
* function. |
|
* |
|
* p_msg: Pointer to VENDOR DEPENDENT message structure. |
|
* |
|
* Output Parameters: |
|
* None. |
|
* |
|
* Returns AVRC_SUCCESS if successful. |
|
* AVRC_BAD_HANDLE if handle is invalid. |
|
* |
|
*****************************************************************************/ |
|
extern uint16_t AVRC_VendorRsp(uint8_t handle, uint8_t label, |
|
tAVRC_MSG_VENDOR* p_msg); |
|
|
|
/****************************************************************************** |
|
* |
|
* Function AVRC_SetTraceLevel |
|
* |
|
* Description Sets the trace level for AVRC. If 0xff is passed, the |
|
* current trace level is returned. |
|
* |
|
* Input Parameters: |
|
* new_level: The level to set the AVRC tracing to: |
|
* 0xff-returns the current setting. |
|
* 0-turns off tracing. |
|
* >= 1-Errors. |
|
* >= 2-Warnings. |
|
* >= 3-APIs. |
|
* >= 4-Events. |
|
* >= 5-Debug. |
|
* |
|
* Returns The new trace level or current trace level if |
|
* the input parameter is 0xff. |
|
* |
|
*****************************************************************************/ |
|
extern uint8_t AVRC_SetTraceLevel(uint8_t new_level); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_Init |
|
* |
|
* Description This function is called at stack startup to allocate the |
|
* control block (if using dynamic memory), and initializes the |
|
* control block and tracing level. |
|
* |
|
* Returns void |
|
* |
|
******************************************************************************/ |
|
extern void AVRC_Init(void); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_Ctrl_ParsCommand |
|
* |
|
* Description This function is used to parse cmds received for CTRL |
|
* Currently it is for SetAbsVolume and Volume Change |
|
* Notification.. |
|
* |
|
* Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed |
|
* successfully. |
|
* Otherwise, the error code defined by AVRCP 1.4 |
|
* |
|
******************************************************************************/ |
|
extern tAVRC_STS AVRC_Ctrl_ParsCommand(tAVRC_MSG* p_msg, |
|
tAVRC_COMMAND* p_result); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_ParsCommand |
|
* |
|
* Description This function is used to parse the received command. |
|
* |
|
* Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed |
|
* successfully. |
|
* Otherwise, the error code defined by AVRCP 1.4 |
|
* |
|
******************************************************************************/ |
|
extern tAVRC_STS AVRC_ParsCommand(tAVRC_MSG* p_msg, tAVRC_COMMAND* p_result, |
|
uint8_t* p_buf, uint16_t buf_len); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_ParsResponse |
|
* |
|
* Description This function is used to parse the received response. |
|
* |
|
* Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed |
|
* successfully. |
|
* Otherwise, the error code defined by AVRCP 1.4 |
|
* |
|
******************************************************************************/ |
|
extern tAVRC_STS AVRC_ParsResponse(tAVRC_MSG* p_msg, tAVRC_RESPONSE* p_result, |
|
uint8_t* p_buf, uint16_t buf_len); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_Ctrl_ParsResponse |
|
* |
|
* Description This function is a parse response for AVRCP Controller. |
|
* |
|
* Returns AVRC_STS_NO_ERROR, if the message in p_data is parsed |
|
* successfully. |
|
* Otherwise, the error code defined by AVRCP 1.4 |
|
* |
|
******************************************************************************/ |
|
extern tAVRC_STS AVRC_Ctrl_ParsResponse(tAVRC_MSG* p_msg, |
|
tAVRC_RESPONSE* p_result, |
|
uint8_t* p_buf, uint16_t* buf_len); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_BldCommand |
|
* |
|
* Description This function builds the given AVRCP command to the given |
|
* GKI buffer |
|
* |
|
* Returns AVRC_STS_NO_ERROR, if the command is built successfully |
|
* Otherwise, the error code. |
|
* |
|
******************************************************************************/ |
|
extern tAVRC_STS AVRC_BldCommand(tAVRC_COMMAND* p_cmd, BT_HDR** pp_pkt); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_BldResponse |
|
* |
|
* Description This function builds the given AVRCP response to the given |
|
* GKI buffer |
|
* |
|
* Returns AVRC_STS_NO_ERROR, if the response is built successfully |
|
* Otherwise, the error code. |
|
* |
|
******************************************************************************/ |
|
extern tAVRC_STS AVRC_BldResponse(uint8_t handle, tAVRC_RESPONSE* p_rsp, |
|
BT_HDR** pp_pkt); |
|
|
|
/************************************************************************** |
|
* |
|
* Function AVRC_IsValidAvcType |
|
* |
|
* Description Check if correct AVC type is specified |
|
* |
|
* Returns returns true if it is valid |
|
* |
|
* |
|
******************************************************************************/ |
|
extern bool AVRC_IsValidAvcType(uint8_t pdu_id, uint8_t avc_type); |
|
|
|
/******************************************************************************* |
|
* |
|
* Function AVRC_IsValidPlayerAttr |
|
* |
|
* Description Check if the given attrib value is a valid one |
|
* |
|
* |
|
* Returns returns true if it is valid |
|
* |
|
******************************************************************************/ |
|
extern bool AVRC_IsValidPlayerAttr(uint8_t attr); |
|
|
|
#endif /* AVRC_API_H */
|
|
|