Microchip® Advanced Software Framework

avrcp.h File Reference
#include <stdint.h>
#include "btstack_run_loop.h"
#include "btstack_linked_list.h"

Data Structures

struct  avrcp_connection_t
 
struct  avrcp_context_t
 
struct  avrcp_now_playing_info_item_t
 
struct  avrcp_track_t
 

Macros

#define AVRCP_ATTRIBUTE_HEADER_LEN   8
 
#define AVRCP_MAX_ATTRIBUTTE_SIZE   100
 
#define AVRCP_MEDIA_ATTR_COUNT   7
 
#define BT_SIG_COMPANY_ID   0x001958
 

Enumerations

enum  avctp_connection_state_t {
  AVCTP_CONNECTION_IDLE,
  AVCTP_SIGNALING_W4_SDP_QUERY_COMPLETE,
  AVCTP_CONNECTION_W4_L2CAP_CONNECTED,
  AVCTP_CONNECTION_OPENED,
  AVCTP_W2_SEND_PRESS_COMMAND,
  AVCTP_W2_SEND_RELEASE_COMMAND,
  AVCTP_W4_STOP,
  AVCTP_W2_SEND_COMMAND,
  AVCTP_W2_SEND_RESPONSE,
  AVCTP_W2_RECEIVE_PRESS_RESPONSE,
  AVCTP_W2_RECEIVE_RESPONSE
}
 
enum  avrcp_battery_status_t {
  AVRCP_BATTERY_STATUS_NORMAL = 0x00,
  AVRCP_BATTERY_STATUS_WARNING,
  AVRCP_BATTERY_STATUS_CRITICAL,
  AVRCP_BATTERY_STATUS_EXTERNAL,
  AVRCP_BATTERY_STATUS_FULL_CHARGE
}
 
enum  avrcp_capability_id_t {
  AVRCP_CAPABILITY_ID_COMPANY = 0x02,
  AVRCP_CAPABILITY_ID_EVENT = 0x03
}
 
enum  avrcp_command_opcode_t {
  AVRCP_CMD_OPCODE_VENDOR_DEPENDENT = 0x00,
  AVRCP_CMD_OPCODE_UNIT_INFO = 0x30,
  AVRCP_CMD_OPCODE_SUBUNIT_INFO = 0x31,
  AVRCP_CMD_OPCODE_PASS_THROUGH = 0x7C,
  AVRCP_CMD_OPCODE_UNDEFINED = 0xFF
}
 
enum  avrcp_command_type_t {
  AVRCP_CTYPE_CONTROL = 0,
  AVRCP_CTYPE_STATUS,
  AVRCP_CTYPE_SPECIFIC_INQUIRY,
  AVRCP_CTYPE_NOTIFY,
  AVRCP_CTYPE_GENERAL_INQUIRY,
  AVRCP_CTYPE_RESERVED5,
  AVRCP_CTYPE_RESERVED6,
  AVRCP_CTYPE_RESERVED7,
  AVRCP_CTYPE_RESPONSE_NOT_IMPLEMENTED = 8,
  AVRCP_CTYPE_RESPONSE_ACCEPTED,
  AVRCP_CTYPE_RESPONSE_REJECTED,
  AVRCP_CTYPE_RESPONSE_IN_TRANSITION,
  AVRCP_CTYPE_RESPONSE_IMPLEMENTED_STABLE,
  AVRCP_CTYPE_RESPONSE_CHANGED_STABLE,
  AVRCP_CTYPE_RESPONSE_RESERVED,
  AVRCP_CTYPE_RESPONSE_INTERIM
}
 
enum  avrcp_frame_type_t {
  AVRCP_COMMAND_FRAME = 0,
  AVRCP_RESPONSE_FRAME
}
 
enum  avrcp_media_attribute_id_t {
  AVRCP_MEDIA_ATTR_NONE = 0,
  AVRCP_MEDIA_ATTR_TITLE,
  AVRCP_MEDIA_ATTR_ARTIST,
  AVRCP_MEDIA_ATTR_ALBUM,
  AVRCP_MEDIA_ATTR_TRACK,
  AVRCP_MEDIA_ATTR_TOTAL_TRACKS,
  AVRCP_MEDIA_ATTR_GENRE,
  AVRCP_MEDIA_ATTR_SONG_LENGTH
}
 
enum  avrcp_notification_event_id_t {
  AVRCP_NOTIFICATION_EVENT_PLAYBACK_STATUS_CHANGED = 0x01,
  AVRCP_NOTIFICATION_EVENT_TRACK_CHANGED = 0x02,
  AVRCP_NOTIFICATION_EVENT_TRACK_REACHED_END = 0x03,
  AVRCP_NOTIFICATION_EVENT_TRACK_REACHED_START = 0x04,
  AVRCP_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED = 0x05,
  AVRCP_NOTIFICATION_EVENT_BATT_STATUS_CHANGED = 0x06,
  AVRCP_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED = 0x07,
  AVRCP_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED = 0x08,
  AVRCP_NOTIFICATION_EVENT_NOW_PLAYING_CONTENT_CHANGED = 0x09,
  AVRCP_NOTIFICATION_EVENT_AVAILABLE_PLAYERS_CHANGED = 0x0a,
  AVRCP_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0b,
  AVRCP_NOTIFICATION_EVENT_UIDS_CHANGED = 0x0c,
  AVRCP_NOTIFICATION_EVENT_VOLUME_CHANGED = 0x0d
}
 
enum  avrcp_operation_id_t {
  AVRCP_OPERATION_ID_SKIP = 0x3C,
  AVRCP_OPERATION_ID_VOLUME_UP = 0x41,
  AVRCP_OPERATION_ID_VOLUME_DOWN = 0x42,
  AVRCP_OPERATION_ID_MUTE = 0x43,
  AVRCP_OPERATION_ID_PLAY = 0x44,
  AVRCP_OPERATION_ID_STOP = 0x45,
  AVRCP_OPERATION_ID_PAUSE = 0x46,
  AVRCP_OPERATION_ID_REWIND = 0x48,
  AVRCP_OPERATION_ID_FAST_FORWARD = 0x49,
  AVRCP_OPERATION_ID_FORWARD = 0x4B,
  AVRCP_OPERATION_ID_BACKWARD = 0x4C,
  AVRCP_OPERATION_ID_UNDEFINED = 0xFF
}
 
enum  avrcp_packet_type_t {
  AVRCP_SINGLE_PACKET = 0,
  AVRCP_START_PACKET,
  AVRCP_CONTINUE_PACKET,
  AVRCP_END_PACKET
}
 
enum  avrcp_parser_state_t {
  AVRCP_PARSER_IDLE = 0,
  AVRCP_PARSER_GET_ATTRIBUTE_HEADER,
  AVRCP_PARSER_GET_ATTRIBUTE_VALUE,
  AVRCP_PARSER_IGNORE_ATTRIBUTE_VALUE
}
 
enum  avrcp_pdu_id_t {
  AVRCP_PDU_ID_GET_CAPABILITIES = 0x10,
  AVRCP_PDU_ID_GetCurrentPlayerApplicationSettingValue = 0x13,
  AVRCP_PDU_ID_SetPlayerApplicationSettingValue = 0x14,
  AVRCP_PDU_ID_GET_ELEMENT_ATTRIBUTES = 0x20,
  AVRCP_PDU_ID_GET_PLAY_STATUS = 0x30,
  AVRCP_PDU_ID_REGISTER_NOTIFICATION = 0x31,
  AVRCP_PDU_ID_REQUEST_CONTINUING_RESPONSE = 0x40,
  AVRCP_PDU_ID_REQUEST_ABORT_CONTINUING_RESPONSE = 0x41,
  AVRCP_PDU_ID_SET_ABSOLUTE_VOLUME = 0x50,
  AVRCP_PDU_ID_UNDEFINED = 0xFF
}
 
enum  avrcp_playback_status_t {
  AVRCP_PLAYBACK_STATUS_STOPPED = 0x00,
  AVRCP_PLAYBACK_STATUS_PLAYING,
  AVRCP_PLAYBACK_STATUS_PAUSED,
  AVRCP_PLAYBACK_STATUS_FWD_SEEK,
  AVRCP_PLAYBACK_STATUS_REV_SEEK,
  AVRCP_PLAYBACK_STATUS_ERROR = 0xFF
}
 
enum  avrcp_repeat_mode_t {
  AVRCP_REPEAT_MODE_INVALID,
  AVRCP_REPEAT_MODE_OFF,
  AVRCP_REPEAT_MODE_SINGLE_TRACK,
  AVRCP_REPEAT_MODE_ALL_TRACKS,
  AVRCP_REPEAT_MODE_GROUP
}
 
enum  avrcp_role_t {
  AVRCP_CONTROLLER = 0,
  AVRCP_TARGET
}
 
enum  avrcp_shuffle_mode_t {
  AVRCP_SHUFFLE_MODE_INVALID,
  AVRCP_SHUFFLE_MODE_OFF,
  AVRCP_SHUFFLE_MODE_ALL_TRACKS,
  AVRCP_SHUFFLE_MODE_GROUP
}
 
enum  avrcp_status_code_t {
  AVRCP_STATUS_INVALID_COMMAND = 0,
  AVRCP_STATUS_INVALID_PARAMETER,
  AVRCP_STATUS_SPECIFIED_PARAMETER_NOT_FOUND,
  AVRCP_STATUS_INTERNAL_ERROR,
  AVRCP_STATUS_SUCCESS,
  AVRCP_STATUS_UID_CHANGED,
  AVRCP_STATUS_RESERVED_6,
  AVRCP_STATUS_INVALID_DIRECTION,
  AVRCP_STATUS_NOT_A_DIRECTORY,
  AVRCP_STATUS_DOES_NOT_EXIST,
  AVRCP_STATUS_INVALID_SCOPE,
  AVRCP_STATUS_RANGE_OUT_OF_BOUNDS,
  AVRCP_STATUS_UID_IS_A_DIRECTORY,
  AVRCP_STATUS_MEDIA_IN_USE,
  AVRCP_STATUS_NOW_PLAYING_LIST_FULL,
  AVRCP_STATUS_SEARCH_NOT_SUPPORTED,
  AVRCP_STATUS_SEARCH_IN_PROGRESS,
  AVRCP_STATUS_INVALID_PLAYER_ID,
  AVRCP_STATUS_PLAYER_NOT_BROWSABLE,
  AVRCP_STATUS_PLAYER_NOT_ADDRESSED,
  AVRCP_STATUS_NO_VALID_SEARCH_RESULTS,
  AVRCP_STATUS_NO_AVAILABLE_PLAYERS,
  AVRCP_STATUS_ADDRESSED_PLAYER_CHANGED,
  AVRCP_STATUS_RESERVED
}
 
enum  avrcp_subunit_id_t {
  AVRCP_SUBUNIT_ID = 0,
  AVRCP_SUBUNIT_ID_IGNORE = 7
}
 
enum  avrcp_subunit_type_t {
  AVRCP_SUBUNIT_TYPE_MONITOR = 0,
  AVRCP_SUBUNIT_TYPE_AUDIO = 1,
  AVRCP_SUBUNIT_TYPE_PRINTER,
  AVRCP_SUBUNIT_TYPE_DISC,
  AVRCP_SUBUNIT_TYPE_TAPE_RECORDER_PLAYER,
  AVRCP_SUBUNIT_TYPE_TUNER,
  AVRCP_SUBUNIT_TYPE_CA,
  AVRCP_SUBUNIT_TYPE_CAMERA,
  AVRCP_SUBUNIT_TYPE_RESERVED,
  AVRCP_SUBUNIT_TYPE_PANEL = 9,
  AVRCP_SUBUNIT_TYPE_BULLETIN_BOARD,
  AVRCP_SUBUNIT_TYPE_CAMERA_STORAGE,
  AVRCP_SUBUNIT_TYPE_VENDOR_UNIQUE = 0x1C,
  AVRCP_SUBUNIT_TYPE_RESERVED_FOR_ALL_SUBUNIT_TYPES,
  AVRCP_SUBUNIT_TYPE_EXTENDED_TO_NEXT_BYTE,
  AVRCP_SUBUNIT_TYPE_UNIT = 0x1F
}
 
enum  rfc2978_charset_mib_enumid_t { UTF8 = 106 }
 

Functions

const char * avrcp_attribute2str (uint8_t index)
 
uint8_t avrcp_cmd_opcode (uint8_t *packet, uint16_t size)
 
uint8_t avrcp_connect (bd_addr_t bd_addr, avrcp_context_t *context, uint16_t *avrcp_cid)
 
void avrcp_create_sdp_record (uint8_t controller, uint8_t *service, uint32_t service_record_handle, uint8_t browsing, uint16_t supported_features, const char *service_name, const char *service_provider_name)
 
const char * avrcp_ctype2str (uint8_t index)
 
void avrcp_emit_connection_closed (btstack_packet_handler_t callback, uint16_t avrcp_cid)
 
void avrcp_emit_connection_established (btstack_packet_handler_t callback, uint16_t avrcp_cid, bd_addr_t addr, uint8_t status)
 
const char * avrcp_event2str (uint16_t index)
 
const char * avrcp_operation2str (uint8_t index)
 
void avrcp_packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size, avrcp_context_t *context)
 
const char * avrcp_play_status2str (uint8_t index)
 
const char * avrcp_repeat2str (uint8_t index)
 
void avrcp_request_can_send_now (avrcp_connection_t *connection, uint16_t l2cap_cid)
 
const char * avrcp_shuffle2str (uint8_t index)
 
const char * avrcp_subunit2str (uint16_t index)
 
avrcp_connection_tget_avrcp_connection_for_avrcp_cid (uint16_t avrcp_cid, avrcp_context_t *context)
 
avrcp_connection_tget_avrcp_connection_for_l2cap_signaling_cid (uint16_t l2cap_cid, avrcp_context_t *context)
 

#define AVRCP_ATTRIBUTE_HEADER_LEN   8
#define AVRCP_MAX_ATTRIBUTTE_SIZE   100
#define AVRCP_MEDIA_ATTR_COUNT   7
#define BT_SIG_COMPANY_ID   0x001958

Enumerator
AVCTP_CONNECTION_IDLE 
AVCTP_SIGNALING_W4_SDP_QUERY_COMPLETE 
AVCTP_CONNECTION_W4_L2CAP_CONNECTED 
AVCTP_CONNECTION_OPENED 
AVCTP_W2_SEND_PRESS_COMMAND 
AVCTP_W2_SEND_RELEASE_COMMAND 
AVCTP_W4_STOP 
AVCTP_W2_SEND_COMMAND 
AVCTP_W2_SEND_RESPONSE 
AVCTP_W2_RECEIVE_PRESS_RESPONSE 
AVCTP_W2_RECEIVE_RESPONSE 
Enumerator
AVRCP_BATTERY_STATUS_NORMAL 
AVRCP_BATTERY_STATUS_WARNING 
AVRCP_BATTERY_STATUS_CRITICAL 
AVRCP_BATTERY_STATUS_EXTERNAL 
AVRCP_BATTERY_STATUS_FULL_CHARGE 
Enumerator
AVRCP_CAPABILITY_ID_COMPANY 
AVRCP_CAPABILITY_ID_EVENT 
Enumerator
AVRCP_CMD_OPCODE_VENDOR_DEPENDENT 
AVRCP_CMD_OPCODE_UNIT_INFO 
AVRCP_CMD_OPCODE_SUBUNIT_INFO 
AVRCP_CMD_OPCODE_PASS_THROUGH 
AVRCP_CMD_OPCODE_UNDEFINED 
Enumerator
AVRCP_CTYPE_CONTROL 
AVRCP_CTYPE_STATUS 
AVRCP_CTYPE_SPECIFIC_INQUIRY 
AVRCP_CTYPE_NOTIFY 
AVRCP_CTYPE_GENERAL_INQUIRY 
AVRCP_CTYPE_RESERVED5 
AVRCP_CTYPE_RESERVED6 
AVRCP_CTYPE_RESERVED7 
AVRCP_CTYPE_RESPONSE_NOT_IMPLEMENTED 
AVRCP_CTYPE_RESPONSE_ACCEPTED 
AVRCP_CTYPE_RESPONSE_REJECTED 
AVRCP_CTYPE_RESPONSE_IN_TRANSITION 
AVRCP_CTYPE_RESPONSE_IMPLEMENTED_STABLE 
AVRCP_CTYPE_RESPONSE_CHANGED_STABLE 
AVRCP_CTYPE_RESPONSE_RESERVED 
AVRCP_CTYPE_RESPONSE_INTERIM 
Enumerator
AVRCP_COMMAND_FRAME 
AVRCP_RESPONSE_FRAME 
Enumerator
AVRCP_MEDIA_ATTR_NONE 
AVRCP_MEDIA_ATTR_TITLE 
AVRCP_MEDIA_ATTR_ARTIST 
AVRCP_MEDIA_ATTR_ALBUM 
AVRCP_MEDIA_ATTR_TRACK 
AVRCP_MEDIA_ATTR_TOTAL_TRACKS 
AVRCP_MEDIA_ATTR_GENRE 
AVRCP_MEDIA_ATTR_SONG_LENGTH 
Enumerator
AVRCP_NOTIFICATION_EVENT_PLAYBACK_STATUS_CHANGED 
AVRCP_NOTIFICATION_EVENT_TRACK_CHANGED 
AVRCP_NOTIFICATION_EVENT_TRACK_REACHED_END 
AVRCP_NOTIFICATION_EVENT_TRACK_REACHED_START 
AVRCP_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 
AVRCP_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 
AVRCP_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 
AVRCP_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 
AVRCP_NOTIFICATION_EVENT_NOW_PLAYING_CONTENT_CHANGED 
AVRCP_NOTIFICATION_EVENT_AVAILABLE_PLAYERS_CHANGED 
AVRCP_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED 
AVRCP_NOTIFICATION_EVENT_UIDS_CHANGED 
AVRCP_NOTIFICATION_EVENT_VOLUME_CHANGED 
Enumerator
AVRCP_OPERATION_ID_SKIP 
AVRCP_OPERATION_ID_VOLUME_UP 
AVRCP_OPERATION_ID_VOLUME_DOWN 
AVRCP_OPERATION_ID_MUTE 
AVRCP_OPERATION_ID_PLAY 
AVRCP_OPERATION_ID_STOP 
AVRCP_OPERATION_ID_PAUSE 
AVRCP_OPERATION_ID_REWIND 
AVRCP_OPERATION_ID_FAST_FORWARD 
AVRCP_OPERATION_ID_FORWARD 
AVRCP_OPERATION_ID_BACKWARD 
AVRCP_OPERATION_ID_UNDEFINED 
Enumerator
AVRCP_SINGLE_PACKET 
AVRCP_START_PACKET 
AVRCP_CONTINUE_PACKET 
AVRCP_END_PACKET 
Enumerator
AVRCP_PARSER_IDLE 
AVRCP_PARSER_GET_ATTRIBUTE_HEADER 
AVRCP_PARSER_GET_ATTRIBUTE_VALUE 
AVRCP_PARSER_IGNORE_ATTRIBUTE_VALUE 
Enumerator
AVRCP_PDU_ID_GET_CAPABILITIES 
AVRCP_PDU_ID_GetCurrentPlayerApplicationSettingValue 
AVRCP_PDU_ID_SetPlayerApplicationSettingValue 
AVRCP_PDU_ID_GET_ELEMENT_ATTRIBUTES 
AVRCP_PDU_ID_GET_PLAY_STATUS 
AVRCP_PDU_ID_REGISTER_NOTIFICATION 
AVRCP_PDU_ID_REQUEST_CONTINUING_RESPONSE 
AVRCP_PDU_ID_REQUEST_ABORT_CONTINUING_RESPONSE 
AVRCP_PDU_ID_SET_ABSOLUTE_VOLUME 
AVRCP_PDU_ID_UNDEFINED 
Enumerator
AVRCP_PLAYBACK_STATUS_STOPPED 
AVRCP_PLAYBACK_STATUS_PLAYING 
AVRCP_PLAYBACK_STATUS_PAUSED 
AVRCP_PLAYBACK_STATUS_FWD_SEEK 
AVRCP_PLAYBACK_STATUS_REV_SEEK 
AVRCP_PLAYBACK_STATUS_ERROR 
Enumerator
AVRCP_REPEAT_MODE_INVALID 
AVRCP_REPEAT_MODE_OFF 
AVRCP_REPEAT_MODE_SINGLE_TRACK 
AVRCP_REPEAT_MODE_ALL_TRACKS 
AVRCP_REPEAT_MODE_GROUP 
Enumerator
AVRCP_CONTROLLER 
AVRCP_TARGET 
Enumerator
AVRCP_SHUFFLE_MODE_INVALID 
AVRCP_SHUFFLE_MODE_OFF 
AVRCP_SHUFFLE_MODE_ALL_TRACKS 
AVRCP_SHUFFLE_MODE_GROUP 
Enumerator
AVRCP_STATUS_INVALID_COMMAND 
AVRCP_STATUS_INVALID_PARAMETER 
AVRCP_STATUS_SPECIFIED_PARAMETER_NOT_FOUND 
AVRCP_STATUS_INTERNAL_ERROR 
AVRCP_STATUS_SUCCESS 
AVRCP_STATUS_UID_CHANGED 
AVRCP_STATUS_RESERVED_6 
AVRCP_STATUS_INVALID_DIRECTION 
AVRCP_STATUS_NOT_A_DIRECTORY 
AVRCP_STATUS_DOES_NOT_EXIST 
AVRCP_STATUS_INVALID_SCOPE 
AVRCP_STATUS_RANGE_OUT_OF_BOUNDS 
AVRCP_STATUS_UID_IS_A_DIRECTORY 
AVRCP_STATUS_MEDIA_IN_USE 
AVRCP_STATUS_NOW_PLAYING_LIST_FULL 
AVRCP_STATUS_SEARCH_NOT_SUPPORTED 
AVRCP_STATUS_SEARCH_IN_PROGRESS 
AVRCP_STATUS_INVALID_PLAYER_ID 
AVRCP_STATUS_PLAYER_NOT_BROWSABLE 
AVRCP_STATUS_PLAYER_NOT_ADDRESSED 
AVRCP_STATUS_NO_VALID_SEARCH_RESULTS 
AVRCP_STATUS_NO_AVAILABLE_PLAYERS 
AVRCP_STATUS_ADDRESSED_PLAYER_CHANGED 
AVRCP_STATUS_RESERVED 
Enumerator
AVRCP_SUBUNIT_ID 
AVRCP_SUBUNIT_ID_IGNORE 
Enumerator
AVRCP_SUBUNIT_TYPE_MONITOR 
AVRCP_SUBUNIT_TYPE_AUDIO 
AVRCP_SUBUNIT_TYPE_PRINTER 
AVRCP_SUBUNIT_TYPE_DISC 
AVRCP_SUBUNIT_TYPE_TAPE_RECORDER_PLAYER 
AVRCP_SUBUNIT_TYPE_TUNER 
AVRCP_SUBUNIT_TYPE_CA 
AVRCP_SUBUNIT_TYPE_CAMERA 
AVRCP_SUBUNIT_TYPE_RESERVED 
AVRCP_SUBUNIT_TYPE_PANEL 
AVRCP_SUBUNIT_TYPE_BULLETIN_BOARD 
AVRCP_SUBUNIT_TYPE_CAMERA_STORAGE 
AVRCP_SUBUNIT_TYPE_VENDOR_UNIQUE 
AVRCP_SUBUNIT_TYPE_RESERVED_FOR_ALL_SUBUNIT_TYPES 
AVRCP_SUBUNIT_TYPE_EXTENDED_TO_NEXT_BYTE 
AVRCP_SUBUNIT_TYPE_UNIT 
Enumerator
UTF8 

const char* avrcp_attribute2str ( uint8_t  index)
uint8_t avrcp_cmd_opcode ( uint8_t *  packet,
uint16_t  size 
)
uint8_t avrcp_connect ( bd_addr_t  bd_addr,
avrcp_context_t context,
uint16_t *  avrcp_cid 
)
void avrcp_create_sdp_record ( uint8_t  controller,
uint8_t *  service,
uint32_t  service_record_handle,
uint8_t  browsing,
uint16_t  supported_features,
const char *  service_name,
const char *  service_provider_name 
)
const char* avrcp_ctype2str ( uint8_t  index)
void avrcp_emit_connection_closed ( btstack_packet_handler_t  callback,
uint16_t  avrcp_cid 
)
void avrcp_emit_connection_established ( btstack_packet_handler_t  callback,
uint16_t  avrcp_cid,
bd_addr_t  addr,
uint8_t  status 
)
const char* avrcp_event2str ( uint16_t  index)
const char* avrcp_operation2str ( uint8_t  index)
void avrcp_packet_handler ( uint8_t  packet_type,
uint16_t  channel,
uint8_t *  packet,
uint16_t  size,
avrcp_context_t context 
)
const char* avrcp_play_status2str ( uint8_t  index)
const char* avrcp_repeat2str ( uint8_t  index)
void avrcp_request_can_send_now ( avrcp_connection_t connection,
uint16_t  l2cap_cid 
)
const char* avrcp_shuffle2str ( uint8_t  index)
const char* avrcp_subunit2str ( uint16_t  index)
avrcp_connection_t* get_avrcp_connection_for_avrcp_cid ( uint16_t  avrcp_cid,
avrcp_context_t context 
)
avrcp_connection_t* get_avrcp_connection_for_l2cap_signaling_cid ( uint16_t  l2cap_cid,
avrcp_context_t context 
)