15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2006-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  AVRCP definition and data types
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef _AVRC_DEFS_H
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define _AVRC_DEFS_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  constants
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Profile revision numbers */
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_REV_1_0        0x0100
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_REV_1_3        0x0103
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_REV_1_4        0x0104
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PACKET_LEN             512 /* Per the spec, you must support 512 byte RC packets */
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MIN_CONTROL_MTU        48  /* Per the spec, minimum MTU for the control channel */
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MIN_BROWSE_MTU         335 /* Per the spec, minimum MTU for the browsing channel */
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_META_PDU_OFFSET        4
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TYPE_LEN           4
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_UID_SIZE               8
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FEATURE_MASK_SIZE      16
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* command type codes */
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CMD_CTRL       0   /* Instruct a target to perform an operation */
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CMD_STATUS     1   /* Check a device�s current status */
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CMD_SPEC_INQ   2   /* Check whether a target supports a particular
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   control command; all operands are included */
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CMD_NOTIF      3   /* Used for receiving notification of a change in a device�s state */
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CMD_GEN_INQ    4   /* Check whether a target supports a particular
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   control command; operands are not included */
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* response type codes */
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_NOT_IMPL   8   /* The target does not implement the command specified
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   by the opcode and operand,
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   or doesn�t implement the specified subunit */
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_ACCEPT     9   /* The target executed or is executing the command */
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_REJ        10  /* The target implements the command specified by the
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   opcode but cannot respond because the current state
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   of the target doesn�t allow it */
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_IN_TRANS   11  /* The target implements the status command but it is
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   in a state of transition; the status command may
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   be retried at a future time */
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_IMPL_STBL  12  /* For specific inquiry or general inquiy commands,
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   the target implements the command; for status
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   commands, the target returns stable and includes
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   the status results */
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_CHANGED    13  /* The response frame contains a notification that the
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   target device�s state has changed */
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP_INTERIM    15  /* For control commands, the target has accepted the
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   request but cannot return information within 100
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   milliseconds; for notify commands, the target accepted
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   the command, and will notify the controller of a change
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   of target state at a future time */
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* subunit type */
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_MONITOR    0x00    /* Monitor */
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_AUDIO      0x01    /* Audio */
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_PRINTER    0x02    /* Printer */
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_DISC       0x03    /* Disc */
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TAPE       0x04    /* Tape recorder/player */
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TUNER      0x05    /* Tuner */
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_CA         0x06    /* CA */
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_CAMERA     0x07    /* Camera */
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_PANEL      0x09    /* Panel */
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_BB         0x0A    /* Bulletin Board */
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_CAM_STOR   0x0B    /* Camera Storage */
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_VENDOR     0x1C    /* Vendor unique */
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_EXT        0x1E    /* Subunit type extended to next byte */
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_UNIT       0x1F    /* Unit */
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* opcodes - defined by 1394ta */
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_OP_UNIT_INFO   0x30    /* Report unit information */
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_OP_SUB_INFO    0x31    /* Report subunit information */
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_OP_VENDOR      0x00    /* Vendor-dependent commands */
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_OP_PASS_THRU   0x7C    /* panel subunit opcode */
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* opcodes 80-9F and E0-FF are not used by 1394ta.Sneak one for the browsing channel */
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_OP_BROWSE      0xFF    /* Browsing */
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_OP_INVALID     0xFE    /* invalid one */
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Company ID's
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CO_BLUETOOTH_SIG   0x00FFFFFF
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CO_WIDCOMM         0x00000361
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CO_BROADCOM        0x00001018
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CO_METADATA        0x00001958  /* Unique COMPANY ID for Metadata messages */
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* State flag for Passthrough commands
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STATE_PRESS    0
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STATE_RELEASE  1
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Operation ID list for Passthrough commands
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_SELECT      0x00    /* select */
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_UP          0x01    /* up */
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_DOWN        0x02    /* down */
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_LEFT        0x03    /* left */
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_RIGHT       0x04    /* right */
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_RIGHT_UP    0x05    /* right-up */
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_RIGHT_DOWN  0x06    /* right-down */
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_LEFT_UP     0x07    /* left-up */
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_LEFT_DOWN   0x08    /* left-down */
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_ROOT_MENU   0x09    /* root menu */
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_SETUP_MENU  0x0A    /* setup menu */
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_CONT_MENU   0x0B    /* contents menu */
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_FAV_MENU    0x0C    /* favorite menu */
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_EXIT        0x0D    /* exit */
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_0           0x20    /* 0 */
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_1           0x21    /* 1 */
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_2           0x22    /* 2 */
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_3           0x23    /* 3 */
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_4           0x24    /* 4 */
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_5           0x25    /* 5 */
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_6           0x26    /* 6 */
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_7           0x27    /* 7 */
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_8           0x28    /* 8 */
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_9           0x29    /* 9 */
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_DOT         0x2A    /* dot */
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_ENTER       0x2B    /* enter */
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_CLEAR       0x2C    /* clear */
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_CHAN_UP     0x30    /* channel up */
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_CHAN_DOWN   0x31    /* channel down */
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_PREV_CHAN   0x32    /* previous channel */
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_SOUND_SEL   0x33    /* sound select */
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_INPUT_SEL   0x34    /* input select */
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_DISP_INFO   0x35    /* display information */
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_HELP        0x36    /* help */
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_PAGE_UP     0x37    /* page up */
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_PAGE_DOWN   0x38    /* page down */
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_POWER       0x40    /* power */
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_VOL_UP      0x41    /* volume up */
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_VOL_DOWN    0x42    /* volume down */
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_MUTE        0x43    /* mute */
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_PLAY        0x44    /* play */
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_STOP        0x45    /* stop */
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_PAUSE       0x46    /* pause */
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_RECORD      0x47    /* record */
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_REWIND      0x48    /* rewind */
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_FAST_FOR    0x49    /* fast forward */
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_EJECT       0x4A    /* eject */
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_FORWARD     0x4B    /* forward */
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_BACKWARD    0x4C    /* backward */
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_ANGLE       0x50    /* angle */
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_SUBPICT     0x51    /* subpicture */
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_F1          0x71    /* F1 */
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_F2          0x72    /* F2 */
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_F3          0x73    /* F3 */
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_F4          0x74    /* F4 */
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_F5          0x75    /* F5 */
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ID_VENDOR      0x7E    /* vendor unique */
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_KEYPRESSED_RELEASE 0x80
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Metadata transfer definitions
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the Metadata Packet types
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PKT_SINGLE           0
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PKT_START            1
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PKT_CONTINUE         2
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PKT_END              3
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PKT_TYPE_MASK        3
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the PDUs carried in the vendor dependant data
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_CAPABILITIES               0x10
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_LIST_PLAYER_APP_ATTR           0x11
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_LIST_PLAYER_APP_VALUES         0x12
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_CUR_PLAYER_APP_VALUE       0x13
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_SET_PLAYER_APP_VALUE           0x14
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_PLAYER_APP_ATTR_TEXT       0x15
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_PLAYER_APP_VALUE_TEXT      0x16
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_INFORM_DISPLAY_CHARSET         0x17
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_INFORM_BATTERY_STAT_OF_CT      0x18
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_ELEMENT_ATTR               0x20
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_PLAY_STATUS                0x30
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_REGISTER_NOTIFICATION          0x31
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_REQUEST_CONTINUATION_RSP       0x40
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_ABORT_CONTINUATION_RSP         0x41
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* added in 1.4 */
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_SET_ABSOLUTE_VOLUME            0x50
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_SET_ADDRESSED_PLAYER           0x60
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_SET_BROWSED_PLAYER             0x70
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_FOLDER_ITEMS               0x71
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_CHANGE_PATH                    0x72
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GET_ITEM_ATTRIBUTES            0x73
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_PLAY_ITEM                      0x74
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_SEARCH                         0x80
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_ADD_TO_NOW_PLAYING             0x90
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_GENERAL_REJECT                 0xA0
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the vendor unique id carried in the pass through data
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_NEXT_GROUP                     0x00
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_PREV_GROUP                     0x01
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the only pass through vendor unique commands defined by AVRC is the group navigation commands
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * The len for vendor unique data is 5 */
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PASS_THRU_GROUP_LEN                5
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PDU_INVALID                        0xff
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 6.15.3 error status code for general reject */
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_CMD        0x00    /* Invalid command, sent if TG received a PDU that it did not understand. */
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_PARAM      0x01    /* Invalid parameter, sent if the TG received a PDU with a parameter ID that it did not understand. Sent if there is only one parameter ID in the PDU. */
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_NOT_FOUND      0x02    /* Specified parameter not found., sent if the parameter ID is understood, but content is wrong or corrupted. */
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_INTERNAL_ERR   0x03    /* Internal Error, sent if there are error conditions not covered by a more specific error code. */
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_NO_ERROR       0x04    /* Operation completed without error.  This is the status that should be returned if the operation was successful. */
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_UID_CHANGED    0x05    /* UID Changed - The UIDs on the device have changed */
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* #define AVRC_STS_GEN_ERROR      0x06    Unknown Error - this is changed to "reserved" */
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_DIR        0x07    /* Invalid Direction - The Direction parameter is invalid - Change Path*/
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_NOT_DIR        0x08    /* Not a Directory - The UID provided does not refer to a folder item  Change Path*/
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_NOT_EXIST      0x09    /* Does Not Exist - The UID provided does not refer to any item    Change Path, PlayItem, AddToNowPlaying, GetItemAttributes*/
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_SCOPE      0x0a    /* Invalid Scope - The scope parameter is invalid  GetFolderItems, PlayItem, AddToNowPlayer, GetItemAttributes, */
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_RANGE      0x0b    /* Range Out of Bounds - The start of range provided is not valid  GetFolderItems*/
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_UID_IS_DIR     0x0c    /* UID is a Directory - The UID provided refers to a directory, which cannot be handled by this media player   PlayItem, AddToNowPlaying */
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_IN_USE         0x0d    /* Media in Use - The media is not able to be used for this operation at this time PlayItem, AddToNowPlaying */
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_NOW_LIST_FULL  0x0e    /* Now Playing List Full - No more items can be added to the Now Playing List  AddToNowPlaying*/
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_SEARCH_NOT_SUP 0x0f    /* Search Not Supported - The Browsed Media Player does not support search Search */
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_SEARCH_BUSY    0x10    /* Search in Progress - A search operation is already in progress  Search*/
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_PLAYER_ID  0x11    /* Invalid Player Id - The specified Player Id does not refer to a valid player    SetAddressedPlayer, SetBrowsedPlayer*/
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_PLAYER_N_BR    0x12    /* Player Not Browsable - The Player Id supplied refers to a Media Player which does not support browsing. SetBrowsedPlayer */
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_PLAYER_N_ADDR  0x13    /* Player Not Addressed.  The Player Id supplied refers to a player which is not currently addressed, and the command is not able to be performed if the player is not set as addressed.   Search, SetBrowsedPlayer*/
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_BAD_SEARCH_RES 0x14    /* No valid Search Results - The Search result list does not contain valid entries, e.g. after being invalidated due to change of browsed player   GetFolderItems */
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_NO_AVAL_PLAYER 0x15    /* No available players ALL */
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_STS_ADDR_PLAYER_CHG 0x16   /* Addressed Player Changed - Register Notification */
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tAVRC_STS;
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the Capability IDs
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CAP_COMPANY_ID                     0x02
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CAP_EVENTS_SUPPORTED               0x03
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_COMPANY_ID_LEN                     3
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CAPABILITY_OFFSET                  2
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the Player Application Settings IDs
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_SETTING_EQUALIZER           0x01
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_SETTING_REPEAT              0x02
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_SETTING_SHUFFLE             0x03
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_SETTING_SCAN                0x04
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_SETTING_LOW_MENU_EXT        0x80
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_SETTING_HIGH_MENU_EXT       0xff
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the possible values of the Player Application Settings
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_OFF                     0x01
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_ON                      0x02
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_SINGLE_REPEAT           0x02
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_ALL_REPEAT              0x03
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_GROUP_REPEAT            0x04
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_ALL_SHUFFLE             0x02
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_GROUP_SHUFFLE           0x03
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_ALL_SCAN                0x02
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYER_VAL_GROUP_SCAN              0x03
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the possible values of Battery Status PDU
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_BATTERY_STATUS_NORMAL              0x00
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_BATTERY_STATUS_WARNING             0x01
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_BATTERY_STATUS_CRITICAL            0x02
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_BATTERY_STATUS_EXTERNAL            0x03
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_BATTERY_STATUS_FULL_CHARGE         0x04
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tAVRC_BATTERY_STATUS;
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define character set */
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CHAR_SET_SIZE                      2
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the Media Attribute IDs
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_TITLE                 0x00000001
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_ARTIST                0x00000002
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_ALBUM                 0x00000003
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_TRACK_NUM             0x00000004
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_NUM_TRACKS            0x00000005
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_GENRE                 0x00000006
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_ATTR_ID_PLAYING_TIME          0x00000007        /* in miliseconds */
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MAX_NUM_MEDIA_ATTR_ID               7
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the possible values of play state
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_RESP_MSG_SIZE            9
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_STOPPED                  0x00    /* Stopped */
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_PLAYING                  0x01    /* Playing */
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_PAUSED                   0x02    /* Paused  */
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_FWD_SEEK                 0x03    /* Fwd Seek*/
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_REV_SEEK                 0x04    /* Rev Seek*/
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PLAYSTATE_ERROR                    0xFF    /* Error   */
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tAVRC_PLAYSTATE;
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the events that can be registered for notifications
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_PLAY_STATUS_CHANGE             0x01
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_TRACK_CHANGE                   0x02
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_TRACK_REACHED_END              0x03
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_TRACK_REACHED_START            0x04
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_PLAY_POS_CHANGED               0x05
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_BATTERY_STATUS_CHANGE          0x06
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_SYSTEM_STATUS_CHANGE           0x07
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_APP_SETTING_CHANGE             0x08
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* added in AVRCP 1.4 */
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_NOW_PLAYING_CHANGE             0x09
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_AVAL_PLAYERS_CHANGE            0x0a
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_ADDR_PLAYER_CHANGE             0x0b
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_UIDS_CHANGE                    0x0c
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_VOLUME_CHANGE                  0x0d
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the number of events that can be registered for notifications */
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_NUM_NOTIF_EVENTS                   0x0d
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_MSG_LEN_1                      0x01
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_MSG_LEN_2                      0x02
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_MSG_LEN_5                      0x05
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_EVT_MSG_LEN_9                      0x09
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MAX_VOLUME                         0x7F
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the possible values of system status
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SYSTEMSTATE_PWR_ON                 0x00
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SYSTEMSTATE_PWR_OFF                0x01
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SYSTEMSTATE_PWR_UNPLUGGED          0x02
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tAVRC_SYSTEMSTATE;
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the frequently used character set ids */
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CHARSET_ID_ASCII                  ((UINT16) 0x0003) /* ASCII */
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CHARSET_ID_UTF8                   ((UINT16) 0x006a) /* UTF-8 */
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CHARSET_ID_UTF16                  ((UINT16) 0x03f7) /* 1015 */
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CHARSET_ID_UTF32                  ((UINT16) 0x03f9) /* 1017 */
3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Advanced Control
3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ITEM_PLAYER            0x01
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ITEM_FOLDER            0x02
3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_ITEM_MEDIA             0x03
3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SCOPE_PLAYER_LIST      0x00  /* Media Player Item - Contains all available media players */
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SCOPE_FILE_SYSTEM      0x01  /* Folder Item, Media Element Item
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             - The virtual filesystem containing the media content of the browsed player */
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SCOPE_SEARCH           0x02  /* Media Element Item  The results of a search operation on the browsed player */
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SCOPE_NOW_PLAYING      0x03  /* Media Element Item  The Now Playing list (or queue) of the addressed player */
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_ITEM_COUNT_NONE 0xFF
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* folder type */
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_MIXED      0x00
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_TITLES     0x01
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_ALNUMS     0x02
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_ARTISTS    0x03
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_GENRES     0x04
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_PLAYLISTS  0x05
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_FOLDER_TYPE_YEARS      0x06
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* major player type */
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MJ_TYPE_AUDIO          0x01  /* Audio */
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MJ_TYPE_VIDEO          0x02  /* Video */
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MJ_TYPE_BC_AUDIO       0x04  /* Broadcasting Audio */
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MJ_TYPE_BC_VIDEO       0x08  /* Broadcasting Video */
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MJ_TYPE_INVALID        0xF0
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* player sub type */
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TYPE_NONE          0x00
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TYPE_AUDIO_BOOK    0x01  /* Audio Book */
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TYPE_PODCAST       0x02  /* Podcast */
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_SUB_TYPE_INVALID       0xFC
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* media item - media type */
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_TYPE_AUDIO       0x00
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MEDIA_TYPE_VIDEO       0x01
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_DIR_UP                 0x00  /* Folder Up */
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_DIR_DOWN               0x01  /* Folder Down */
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_UID_SIZE               8
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tAVRC_UID[AVRC_UID_SIZE];
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  player attribute - supported features
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SELECT_BIT_NO           0
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SELECT_MASK             0x01
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SELECT_OFF              0
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SELECT_SUPPORTED(x)     ((x)[AVRC_PF_SELECT_OFF] & AVRC_PF_SELECT_MASK)
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UP_BIT_NO               1
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UP_MASK                 0x02
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UP_OFF                  0
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UP_SUPPORTED(x)         ((x)[AVRC_PF_UP_OFF] & AVRC_PF_UP_MASK)
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOWN_BIT_NO             2
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOWN_MASK               0x04
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOWN_OFF                0
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOWN_SUPPORTED(x)       ((x)[AVRC_PF_DOWN_OFF] & AVRC_PF_DOWN_MASK)
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFT_BIT_NO             3
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFT_MASK               0x08
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFT_OFF                0
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFT_SUPPORTED(x)       ((x)[AVRC_PF_LEFT_OFF] & AVRC_PF_LEFT_MASK)
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHT_BIT_NO            4
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHT_MASK              0x10
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHT_OFF               0
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHT_SUPPORTED(x)      ((x)[AVRC_PF_RIGHT_OFF] & AVRC_PF_RIGHT_MASK)
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTUP_BIT_NO          5
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTUP_MASK            0x20
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTUP_OFF             0
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTUP_SUPPORTED(x)    ((x)[AVRC_PF_RIGHTUP_OFF] & AVRC_PF_RIGHTUP_MASK)
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTDOWN_BIT_NO        6
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTDOWN_MASK          0x40
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTDOWN_OFF           0
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RIGHTDOWN_SUPPORTED(x)  ((x)[AVRC_PF_RIGHTDOWN_OFF] & AVRC_PF_RIGHTDOWN_MASK)
4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTUP_BIT_NO           7
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTUP_MASK             0x80
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTUP_OFF              0
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTUP_SUPPORTED(x)     ((x)[AVRC_PF_LEFTUP_OFF] & AVRC_PF_LEFTUP_MASK)
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTDOWN_BIT_NO         8
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTDOWN_MASK           0x01
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTDOWN_OFF            1
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_LEFTDOWN_SUPPORTED(x)   ((x)[AVRC_PF_LEFTDOWN_OFF] & AVRC_PF_LEFTDOWN_MASK)
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ROOT_MENU_BIT_NO        9
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ROOT_MENU_MASK          0x02
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ROOT_MENU_OFF           1
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ROOT_MENU_SUPPORTED(x)  ((x)[AVRC_PF_ROOT_MENU_OFF] & AVRC_PF_ROOT_MENU_MASK)
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SETUP_MENU_BIT_NO       10
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SETUP_MENU_MASK         0x04
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SETUP_MENU_OFF          1
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SETUP_MENU_SUPPORTED(x) ((x)[AVRC_PF_SETUP_MENU_OFF] & AVRC_PF_SETUP_MENU_MASK)
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CONTENTS_MENU_BIT_NO    11
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CONTENTS_MENU_MASK      0x08
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CONTENTS_MENU_OFF       1
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CONTENTS_MENU_SUPPORTED(x)  ((x)[AVRC_PF_CONTENTS_MENU_OFF] & AVRC_PF_CONTENTS_MENU_MASK)
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAVORITE_MENU_BIT_NO    12
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAVORITE_MENU_MASK      0x10
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAVORITE_MENU_OFF       1
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAVORITE_MENU_SUPPORTED(x)  ((x)[AVRC_PF_FAVORITE_MENU_OFF] & AVRC_PF_FAVORITE_MENU_MASK)
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EXIT_BIT_NO             13
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EXIT_MASK               0x20
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EXIT_OFF                1
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EXIT_SUPPORTED(x)       ((x)[AVRC_PF_EXIT_OFF] & AVRC_PF_EXIT_MASK)
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_0_BIT_NO                14
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_0_MASK                  0x40
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_0_OFF                   1
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_0_SUPPORTED(x)          ((x)[AVRC_PF_0_OFF] & AVRC_PF_0_MASK)
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_1_BIT_NO                15
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_1_MASK                  0x80
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_1_OFF                   1
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_1_SUPPORTED(x)          ((x)[AVRC_PF_1_OFF] & AVRC_PF_1_MASK)
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_2_BIT_NO                16
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_2_MASK                  0x01
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_2_OFF                   2
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_2_SUPPORTED(x)          ((x)[AVRC_PF_2_OFF] & AVRC_PF_2_MASK)
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_3_BIT_NO                17
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_3_MASK                  0x02
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_3_OFF                   2
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_3_SUPPORTED(x)          ((x)[AVRC_PF_3_OFF] & AVRC_PF_3_MASK)
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_4_BIT_NO                18
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_4_MASK                  0x04
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_4_OFF                   2
4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_4_SUPPORTED(x)          ((x)[AVRC_PF_4_OFF] & AVRC_PF_4_MASK)
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_5_BIT_NO                19
5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_5_MASK                  0x08
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_5_OFF                   2
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_5_SUPPORTED(x)          ((x)[AVRC_PF_5_OFF] & AVRC_PF_5_MASK)
5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_6_BIT_NO                20
5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_6_MASK                  0x10
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_6_OFF                   2
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_6_SUPPORTED(x)          ((x)[AVRC_PF_6_OFF] & AVRC_PF_6_MASK)
5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_7_BIT_NO                21
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_7_MASK                  0x20
5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_7_OFF                   2
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_7_SUPPORTED(x)          ((x)[AVRC_PF_7_OFF] & AVRC_PF_7_MASK)
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_8_BIT_NO                22
5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_8_MASK                  0x40
5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_8_OFF                   2
5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_8_SUPPORTED(x)          ((x)[AVRC_PF_8_OFF] & AVRC_PF_8_MASK)
5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_9_BIT_NO                23
5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_9_MASK                  0x80
5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_9_OFF                   2
5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_9_SUPPORTED(x)          ((x)[AVRC_PF_9_OFF] & AVRC_PF_9_MASK)
5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOT_BIT_NO              24
5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOT_MASK                0x01
5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOT_OFF                 3
5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DOT_SUPPORTED(x)        ((x)[AVRC_PF_DOT_OFF] & AVRC_PF_DOT_MASK)
5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ENTER_BIT_NO            25
5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ENTER_MASK              0x02
5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ENTER_OFF               3
5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ENTER_SUPPORTED(x)      ((x)[AVRC_PF_ENTER_OFF] & AVRC_PF_ENTER_MASK)
5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CLEAR_BIT_NO            26
5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CLEAR_MASK              0x04
5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CLEAR_OFF               3
5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CLEAR_SUPPORTED(x)      ((x)[AVRC_PF_CLEAR_OFF] & AVRC_PF_CLEAR_MASK)
5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_UP_BIT_NO          27
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_UP_MASK            0x08
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_UP_OFF             3
5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_UP_SUPPORTED(x)    ((x)[AVRC_PF_CHNL_UP_OFF] & AVRC_PF_CHNL_UP_MASK)
5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_DOWN_BIT_NO        28
5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_DOWN_MASK          0x10
5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_DOWN_OFF           3
5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_CHNL_DOWN_SUPPORTED(x)  ((x)[AVRC_PF_CHNL_DOWN_OFF] & AVRC_PF_CHNL_DOWN_MASK)
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PREV_CHNL_BIT_NO        29
5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PREV_CHNL_MASK          0x20
5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PREV_CHNL_OFF           3
5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PREV_CHNL_SUPPORTED(x)  ((x)[AVRC_PF_PREV_CHNL_OFF] & AVRC_PF_PREV_CHNL_MASK)
5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SOUND_SEL_BIT_NO        30
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SOUND_SEL_MASK          0x40
5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SOUND_SEL_OFF           3
5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SOUND_SEL_SUPPORTED(x)  ((x)[AVRC_PF_SOUND_SEL_OFF] & AVRC_PF_SOUND_SEL_MASK)
5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_INPUT_SEL_BIT_NO        31
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_INPUT_SEL_MASK          0x80
5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_INPUT_SEL_OFF           3
5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_INPUT_SEL_SUPPORTED(x)  ((x)[AVRC_PF_INPUT_SEL_OFF] & AVRC_PF_INPUT_SEL_MASK)
5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DISP_INFO_BIT_NO        32
5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DISP_INFO_MASK          0x01
5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DISP_INFO_OFF           4
5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_DISP_INFO_SUPPORTED(x)  ((x)[AVRC_PF_DISP_INFO_OFF] & AVRC_PF_DISP_INFO_MASK)
5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_HELP_BIT_NO             33
5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_HELP_MASK               0x02
5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_HELP_OFF                4
5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_HELP_SUPPORTED(x)       ((x)[AVRC_PF_HELP_OFF] & AVRC_PF_HELP_MASK)
5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_UP_BIT_NO          34
5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_UP_MASK            0x04
5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_UP_OFF             4
5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_UP_SUPPORTED(x)    ((x)[AVRC_PF_PAGE_UP_OFF] & AVRC_PF_PAGE_UP_MASK)
5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_DOWN_BIT_NO        35
5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_DOWN_MASK          0x08
5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_DOWN_OFF           4
5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAGE_DOWN_SUPPORTED(x)  ((x)[AVRC_PF_PAGE_DOWN_OFF] & AVRC_PF_PAGE_DOWN_MASK)
5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_POWER_BIT_NO            36
5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_POWER_MASK              0x10
5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_POWER_OFF               4
5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_POWER_SUPPORTED(x)      ((x)[AVRC_PF_POWER_OFF] & AVRC_PF_POWER_MASK)
5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_UP_BIT_NO           37
5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_UP_MASK             0x20
5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_UP_OFF              4
5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_UP_SUPPORTED(x)     ((x)[AVRC_PF_VOL_UP_OFF] & AVRC_PF_VOL_UP_MASK)
5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_DOWN_BIT_NO         38
5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_DOWN_MASK           0x40
5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_DOWN_OFF            4
5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VOL_DOWN_SUPPORTED(x)   ((x)[AVRC_PF_VOL_DOWN_OFF] & AVRC_PF_VOL_DOWN_MASK)
5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_MUTE_BIT_NO             39
6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_MUTE_MASK               0x80
6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_MUTE_OFF                4
6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_MUTE_SUPPORTED(x)       ((x)[AVRC_PF_MUTE_OFF] & AVRC_PF_MUTE_MASK)
6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PLAY_BIT_NO             40
6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PLAY_MASK               0x01
6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PLAY_OFF                5
6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PLAY_SUPPORTED(x)       ((x)[AVRC_PF_PLAY_OFF] & AVRC_PF_PLAY_MASK)
6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_STOP_BIT_NO             41
6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_STOP_MASK               0x02
6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_STOP_OFF                5
6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_STOP_SUPPORTED(x)       ((x)[AVRC_PF_STOP_OFF] & AVRC_PF_STOP_MASK)
6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAUSE_BIT_NO            42
6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAUSE_MASK              0x04
6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAUSE_OFF               5
6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_PAUSE_SUPPORTED(x)      ((x)[AVRC_PF_PAUSE_OFF] & AVRC_PF_PAUSE_MASK)
6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RECORD_BIT_NO           43
6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RECORD_MASK             0x08
6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RECORD_OFF              5
6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_RECORD_SUPPORTED(x)     ((x)[AVRC_PF_RECORD_OFF] & AVRC_PF_RECORD_MASK)
6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_REWIND_BIT_NO           44
6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_REWIND_MASK             0x10
6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_REWIND_OFF              5
6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_REWIND_SUPPORTED(x)     ((x)[AVRC_PF_REWIND_OFF] & AVRC_PF_REWIND_MASK)
6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAST_FWD_BIT_NO         45
6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAST_FWD_MASK           0x20
6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAST_FWD_OFF            5
6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FAST_FWD_SUPPORTED(x)   ((x)[AVRC_PF_FAST_FWD_OFF] & AVRC_PF_FAST_FWD_MASK)
6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EJECT_BIT_NO            46
6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EJECT_MASK              0x40
6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EJECT_OFF               5
6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_EJECT_SUPPORTED(x)      ((x)[AVRC_PF_EJECT_OFF] & AVRC_PF_EJECT_MASK)
6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FORWARD_BIT_NO          47
6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FORWARD_MASK            0x80
6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FORWARD_OFF             5
6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_FORWARD_SUPPORTED(x)    ((x)[AVRC_PF_FORWARD_OFF] & AVRC_PF_FORWARD_MASK)
6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BACKWARD_BIT_NO         48
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BACKWARD_MASK           0x01
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BACKWARD_OFF            6
6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BACKWARD_SUPPORTED(x)   ((x)[AVRC_PF_BACKWARD_OFF] & AVRC_PF_BACKWARD_MASK)
6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ANGLE_BIT_NO            49
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ANGLE_MASK              0x02
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ANGLE_OFF               6
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ANGLE_SUPPORTED(x)      ((x)[AVRC_PF_ANGLE_OFF] & AVRC_PF_ANGLE_MASK)
6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SUBPICTURE_BIT_NO       50
6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SUBPICTURE_MASK         0x04
6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SUBPICTURE_OFF          6
6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SUBPICTURE_SUPPORTED(x) ((x)[AVRC_PF_SUBPICTURE_OFF] & AVRC_PF_SUBPICTURE_MASK)
6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F1_BIT_NO               51
6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F1_MASK                 0x08
6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F1_OFF                  6
6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F1_SUPPORTED(x)         ((x)[AVRC_PF_F1_OFF] & AVRC_PF_F1_MASK)
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F2_BIT_NO               52
6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F2_MASK                 0x10
6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F2_OFF                  6
6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F2_SUPPORTED(x)         ((x)[AVRC_PF_F2_OFF] & AVRC_PF_F2_MASK)
6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F3_BIT_NO               53
6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F3_MASK                 0x20
6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F3_OFF                  6
6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F3_SUPPORTED(x)         ((x)[AVRC_PF_F3_OFF] & AVRC_PF_F3_MASK)
6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F4_BIT_NO               54
6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F4_MASK                 0x40
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F4_OFF                  6
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F4_SUPPORTED(x)         ((x)[AVRC_PF_F4_OFF] & AVRC_PF_F4_MASK)
6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F5_BIT_NO               55
6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F5_MASK                 0x80
6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F5_OFF                  6
6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_F5_SUPPORTED(x)         ((x)[AVRC_PF_F5_OFF] & AVRC_PF_F5_MASK)
6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Vendor unique. This PASSTHROUGH command is supported. */
6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VENDOR_BIT_NO           56
6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VENDOR_MASK             0x01
6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VENDOR_OFF              7
6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_VENDOR_SUPPORTED(x)     ((x)[AVRC_PF_VENDOR_OFF] & AVRC_PF_VENDOR_MASK)
6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Basic Group Navigation.  This overrules the SDP entry as it is set per player.7 */
6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_GROUP_NAVI_BIT_NO       57
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_GROUP_NAVI_MASK         0x02
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_GROUP_NAVI_OFF          7
6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_GROUP_NAVI_SUPPORTED(x) ((x)[AVRC_PF_GROUP_NAVI_OFF] & AVRC_PF_GROUP_NAVI_MASK)
6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Advanced Control Player.  This bit is set if the player supports at least AVRCP 1.4. */
6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADV_CTRL_BIT_NO         58
6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADV_CTRL_MASK           0x04
6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADV_CTRL_OFF            7
7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADV_CTRL_SUPPORTED(x)   ((x)[AVRC_PF_ADV_CTRL_OFF] & AVRC_PF_ADV_CTRL_MASK)
7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Browsing.  This bit is set if the player supports browsing. */
7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BROWSE_BIT_NO           59
7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BROWSE_MASK             0x08
7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BROWSE_OFF              7
7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BROWSE_SUPPORTED(x)     ((x)[AVRC_PF_BROWSE_OFF] & AVRC_PF_BROWSE_MASK)
7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Searching. This bit is set if the player supports searching. */
7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_BIT_NO           60
7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_MASK             0x10
7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_OFF              7
7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_SUPPORTED(x)     ((x)[AVRC_PF_SEARCH_OFF] & AVRC_PF_SEARCH_MASK)
7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AddToNowPlaying.  This bit is set if the player supports the AddToNowPlaying command. */
7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADD2NOWPLAY_BIT_NO      61
7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADD2NOWPLAY_MASK        0x20
7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADD2NOWPLAY_OFF         7
7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_ADD2NOWPLAY_SUPPORTED(x) ((x)[AVRC_PF_ADD2NOWPLAY_OFF] & AVRC_PF_ADD2NOWPLAY_MASK)
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* UIDs unique in player browse tree.  This bit is set if the player is able to maintain unique UIDs across the player browse tree. */
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_UNIQUE_BIT_NO       62
7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_UNIQUE_MASK         0x40
7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_UNIQUE_OFF          7
7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_UNIQUE_SUPPORTED(x) ((x)[AVRC_PF_UID_UNIQUE_OFF] & AVRC_PF_UID_UNIQUE_MASK)
7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* OnlyBrowsableWhenAddressed.  This bit is set if the player is only able to be browsed when it is set as the Addressed Player. */
7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BR_WH_ADDR_BIT_NO       63
7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BR_WH_ADDR_MASK         0x80
7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BR_WH_ADDR_OFF          7
7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_BR_WH_ADDR_SUPPORTED(x) ((x)[AVRC_PF_BR_WH_ADDR_OFF] & AVRC_PF_BR_WH_ADDR_MASK)
7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* OnlySearchableWhenAddressed.  This bit is set if the player is only able to be searched when it is set as the Addressed player. */
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_WH_ADDR_BIT_NO   64
7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_WH_ADDR_MASK     0x01
7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_WH_ADDR_OFF      8
7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_SEARCH_WH_ADDR_SUPPORTED(x) ((x)[AVRC_PF_SEARCH_WH_ADDR_OFF] & AVRC_PF_SEARCH_WH_ADDR_MASK)
7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* NowPlaying.  This bit is set if the player supports the NowPlaying folder.  Note that for all players that support browsing this bit shall be set */
7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_NOW_PLAY_BIT_NO         65
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_NOW_PLAY_MASK           0x02
7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_NOW_PLAY_OFF            8
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_NOW_PLAY_SUPPORTED(x)   ((x)[AVRC_PF_NOW_PLAY_OFF] & AVRC_PF_NOW_PLAY_MASK)
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* UIDPersistency.  This bit is set if the Player is able to persist UID values between AVRCP Browse Reconnect */
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_PERSIST_BIT_NO      66
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_PERSIST_MASK        0x04
7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_PERSIST_OFF         8
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_PF_UID_PERSIST_SUPPORTED(x) ((x)[AVRC_PF_UID_PERSIST_OFF] & AVRC_PF_UID_PERSIST_MASK)
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  data type definitions
7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectThis structure contains the header parameters of an AV/C message.
7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   ctype;          /* Command type.  */
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   subunit_type;   /* Subunit type. */
7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   subunit_id;     /* Subunit ID.  This value is typically ignored in AVRCP,
7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * except for VENDOR DEPENDENT messages when the value is
7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * vendor-dependent.  Value range is 0-7. */
7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   opcode;         /* Op Code (passthrough, vendor, etc) */
7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_HDR;
7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This structure contains a UNIT INFO message. */
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR   hdr;        /* Message header. */
7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      company_id; /* Company identifier. */
7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       unit_type;  /* Unit type.  Uses the same values as subunit type. */
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       unit;       /* This value is vendor dependent and typically zero.  */
7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_MSG_UNIT;
7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This structure contains a SUBUNIT INFO message. */
7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR   hdr;        /* Message header. */
7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       subunit_type[AVRC_SUB_TYPE_LEN];
7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                            /* Array containing subunit type values.  */
7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN     panel;      /* TRUE if the panel subunit type is in the
7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * subunit_type array, FALSE otherwise. */
7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       page;       /* Specifies which part of the subunit type table is
7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * returned.  For AVRCP it is typically zero.
7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * Value range is 0-7. */
7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_MSG_SUB;
7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This structure contains a VENDOR DEPENDENT message. */
7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR   hdr;        /* Message header. */
7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      company_id; /* Company identifier. */
7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8      *p_vendor_data;/* Pointer to vendor dependent data. */
7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      vendor_len; /* Length in bytes of vendor dependent data. */
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_MSG_VENDOR;
7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PASS THROUGH message structure */
7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR   hdr;        /* hdr.ctype Unused.
8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * hdr.subunit_type Unused.
8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * hdr.subunit_id Unused. */
8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       op_id;      /* Operation ID.  */
8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       state;      /* Keypress state.  */
8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8      *p_pass_data;/* Pointer to data.  This parameter is only valid
8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * when the op_id is AVRC_ID_VENDOR.*/
8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pass_len;   /* Length in bytes of data. This parameter is only
8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                             * valid when the op_id is AVRC_ID_VENDOR.*/
8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_MSG_PASS;
8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command/Response indicator. */
8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CMD            AVCT_CMD    /* Command message */
8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_RSP            AVCT_RSP    /* Response message */
8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Browsing channel message structure */
8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR   hdr;            /* hdr.ctype AVRC_CMD or AVRC_RSP.
8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                 * hdr.subunit_type Unused.
8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                 * hdr.subunit_id Unused. */
8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8      *p_browse_data;  /* Pointer to data.  */
8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      browse_len;     /* Length in bytes of data. */
8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR     *p_browse_pkt;   /* The GKI buffer received. Set to NULL, if the callback function wants to keep the buffer */
8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_MSG_BROWSE;
8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This is a union of all message type structures. */
8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_HDR           hdr;    /* Message header. */
8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_MSG_UNIT      unit;   /* UNIT INFO message. */
8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_MSG_SUB       sub;    /* SUBUNIT INFO message. */
8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_MSG_VENDOR    vendor; /* VENDOR DEPENDENT message. */
8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_MSG_PASS      pass;   /* PASS THROUGH message. */
8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_MSG_BROWSE    browse; /* messages thru browsing channel */
8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_MSG;
8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* macros */
8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_CAP_ID(a)           (((a == AVRC_CAP_COMPANY_ID) || (a == AVRC_CAP_EVENTS_SUPPORTED)) ? TRUE : FALSE)
8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_EVENT_ID(a)           (((a >= AVRC_EVT_PLAY_STATUS_CHANGE) && \
8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              (a <= AVRC_EVT_APP_SETTING_CHANGE)) ? TRUE : FALSE)
8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_ATTRIBUTE(a)          (((((a > 0) && a <= AVRC_PLAYER_SETTING_SCAN)) || \
845d6750ef014c13bbfebc88a7b6789579b919e1becMike J. Chen					      (a >= AVRC_PLAYER_SETTING_LOW_MENU_EXT)) ? TRUE : FALSE)
8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_MEDIA_ATTRIBUTE(a)    ((a >= AVRC_MEDIA_ATTR_ID_TITLE) && \
8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                             (a <= AVRC_MEDIA_ATTR_ID_PLAYING_TIME) ? TRUE : FALSE)
8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_BATTERY_STATUS(a)    ((a <= AVRC_BATTERY_STATUS_FULL_CHARGE) ? TRUE : FALSE)
8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_SYSTEM_STATUS(a)    ((a <= AVRC_SYSTEMSTATE_PWR_UNPLUGGED) ? TRUE : FALSE)
8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_IS_VALID_GROUP(a)    ((a <= AVRC_PDU_PREV_GROUP) ? TRUE : FALSE)
8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Company ID is 24-bit integer We can not use the macros in bt_types.h */
8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CO_ID_TO_BE_STREAM(p, u32) {*(p)++ = (UINT8)((u32) >> 16); *(p)++ = (UINT8)((u32) >> 8); *(p)++ = (UINT8)(u32); }
8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_BE_STREAM_TO_CO_ID(u32, p) {u32 = (((UINT32)(*((p) + 2))) + (((UINT32)(*((p) + 1))) << 8) + (((UINT32)(*(p))) << 16)); (p) += 3;}
8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  data type definitions
8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MAX_APP_ATTR_SIZE      16
8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MAX_CHARSET_SIZE       16
8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MAX_ELEM_ATTR_SIZE     8
8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Metadata transfer Building/Parsing definitions
8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              charset_id;
8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              str_len;
8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               *p_str;
8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_FULL_NAME;
8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              str_len;
8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               *p_str;
8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_NAME;
8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef AVRC_CAP_MAX_NUM_COMP_ID
8855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CAP_MAX_NUM_COMP_ID    4
8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef AVRC_CAP_MAX_NUM_EVT_ID
8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_CAP_MAX_NUM_EVT_ID     16
8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
8915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32  company_id[AVRC_CAP_MAX_NUM_COMP_ID];
8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   event_id[AVRC_CAP_MAX_NUM_EVT_ID];
8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_CAPS_PARAM;
8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   attr_id;
9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   attr_val;
9025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_APP_SETTING;
9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   attr_id;
9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16  charset_id;
9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   str_len;
9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   *p_str;
9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_APP_SETTING_TEXT;
9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tAVRC_FEATURE_MASK[AVRC_FEATURE_MASK_SIZE];
9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              player_id;      /* A unique identifier for this media player.*/
9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               major_type;     /* Use AVRC_MJ_TYPE_AUDIO, AVRC_MJ_TYPE_VIDEO, AVRC_MJ_TYPE_BC_AUDIO, or AVRC_MJ_TYPE_BC_VIDEO.*/
9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32              sub_type;       /* Use AVRC_SUB_TYPE_NONE, AVRC_SUB_TYPE_AUDIO_BOOK, or AVRC_SUB_TYPE_PODCAST*/
9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               play_status;    /* Use AVRC_PLAYSTATE_STOPPED, AVRC_PLAYSTATE_PLAYING, AVRC_PLAYSTATE_PAUSED, AVRC_PLAYSTATE_FWD_SEEK,
9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                            AVRC_PLAYSTATE_REV_SEEK, or AVRC_PLAYSTATE_ERROR*/
9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_FEATURE_MASK  features;       /* Supported feature bit mask*/
9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_FULL_NAME     name;           /* The player name, name length and character set id.*/
9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ITEM_PLAYER;
9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID           uid;            /* The uid of this folder */
9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               type;           /* Use AVRC_FOLDER_TYPE_MIXED, AVRC_FOLDER_TYPE_TITLES,
9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           AVRC_FOLDER_TYPE_ALNUMS, AVRC_FOLDER_TYPE_ARTISTS, AVRC_FOLDER_TYPE_GENRES,
9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           AVRC_FOLDER_TYPE_PLAYLISTS, or AVRC_FOLDER_TYPE_YEARS.*/
9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN             playable;       /* TRUE, if the folder can be played. */
9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_FULL_NAME     name;           /* The folder name, name length and character set id. */
9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ITEM_FOLDER;
9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32              attr_id;        /* Use AVRC_MEDIA_ATTR_ID_TITLE, AVRC_MEDIA_ATTR_ID_ARTIST, AVRC_MEDIA_ATTR_ID_ALBUM,
9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           AVRC_MEDIA_ATTR_ID_TRACK_NUM, AVRC_MEDIA_ATTR_ID_NUM_TRACKS,
9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           AVRC_MEDIA_ATTR_ID_GENRE, AVRC_MEDIA_ATTR_ID_PLAYING_TIME */
9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_FULL_NAME     name;           /* The attribute value, value length and character set id. */
9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ATTR_ENTRY;
9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID           uid;            /* The uid of this media element item */
9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               type;           /* Use AVRC_MEDIA_TYPE_AUDIO or AVRC_MEDIA_TYPE_VIDEO. */
9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_FULL_NAME     name;           /* The media name, name length and character set id. */
9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               attr_count;     /* The number of attributes in p_attr_list */
9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_ATTR_ENTRY*   p_attr_list;    /* Attribute entry list. */
9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ITEM_MEDIA;
9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   item_type;  /* AVRC_ITEM_PLAYER, AVRC_ITEM_FOLDER, or AVRC_ITEM_MEDIA */
9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    union
9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        tAVRC_ITEM_PLAYER   player;     /* The properties of a media player item.*/
9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        tAVRC_ITEM_FOLDER   folder;     /* The properties of a folder item.*/
9595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        tAVRC_ITEM_MEDIA    media;      /* The properties of a media item.*/
9605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    } u;
9615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ITEM;
9625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetCapability */
9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
9675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       capability_id;
9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_CAPS_CMD;
9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ListPlayerAppValues */
9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attr_id;
9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_LIST_APP_VALUES_CMD;
9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetCurAppValue */
9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_attr;
9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attrs[AVRC_MAX_APP_ATTR_SIZE];
9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_CUR_APP_VALUE_CMD;
9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SetAppValue */
9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_val;
9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_APP_SETTING   *p_vals;
9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SET_APP_VALUE_CMD;
10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetAppAttrTxt */
10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_attr;
10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attrs[AVRC_MAX_APP_ATTR_SIZE];
10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_APP_ATTR_TXT_CMD;
10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetAppValueTxt */
10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attr_id;
10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_val;
10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       vals[AVRC_MAX_APP_ATTR_SIZE];
10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_APP_VAL_TXT_CMD;
10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* InformCharset */
10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_id;
10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      charsets[AVRC_MAX_CHARSET_SIZE];
10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_INFORM_CHARSET_CMD;
10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* InformBatteryStatus */
10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       battery_status;
10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_BATTERY_STATUS_CMD;
10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetElemAttrs */
10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_attr;
10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      attrs[AVRC_MAX_ELEM_ATTR_SIZE];
10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_ELEM_ATTRS_CMD;
10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* RegNotify */
10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       event_id;
10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      param;
10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_REG_NOTIF_CMD;
10605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SetAddrPlayer */
10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      player_id;
10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SET_ADDR_PLAYER_CMD;
10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SetBrowsedPlayer */
10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      player_id;
10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SET_BR_PLAYER_CMD;
10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SetAbsVolume */
10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       volume;
10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SET_VOLUME_CMD;
10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetFolderItems */
10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
10935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
10945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       scope;
10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      start_item;
10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      end_item;
10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attr_count;
10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      *p_attr_list;
10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_ITEMS_CMD;
11005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ChangePath */
11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      uid_counter;
11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       direction;
11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID   folder_uid;
11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_CHG_PATH_CMD;
11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetItemAttrs */
11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       scope;
11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID   uid;
11205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      uid_counter;
11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attr_count;
11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      *p_attr_list;
11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_ATTRS_CMD;
11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search */
11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           pdu;
11295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS       status;
11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_FULL_NAME string;
11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SEARCH_CMD;
11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PlayItem */
11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       scope;
11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID   uid;
11425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      uid_counter;
11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_PLAY_ITEM_CMD;
11445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AddToNowPlaying */
11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       scope;
11525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID   uid;
11535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      uid_counter;
11545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ADD_TO_PLAY_CMD;
11555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_CMD;
11625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Continue and Abort */
11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
11655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
11675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (assigned by AVRC_BldCommand according to pdu) */
11695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       target_pdu;
11705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_NEXT_CMD;
11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                       pdu;
11755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_CMD                   cmd;
11765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_CAPS_CMD          get_caps;               /* GetCapability */
11775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_CMD                   list_app_attr;          /* ListPlayerAppAttr */
11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_LIST_APP_VALUES_CMD   list_app_values;        /* ListPlayerAppValues */
11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_CUR_APP_VALUE_CMD get_cur_app_val;        /* GetCurAppValue */
11805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SET_APP_VALUE_CMD     set_app_val;            /* SetAppValue */
11815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_APP_ATTR_TXT_CMD  get_app_attr_txt;       /* GetAppAttrTxt */
11825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_APP_VAL_TXT_CMD   get_app_val_txt;        /* GetAppValueTxt */
11835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_INFORM_CHARSET_CMD    inform_charset;         /* InformCharset */
11845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_BATTERY_STATUS_CMD    inform_battery_status;  /* InformBatteryStatus */
11855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_ELEM_ATTRS_CMD    get_elem_attrs;         /* GetElemAttrs */
11865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_CMD                   get_play_status;        /* GetPlayStatus */
11875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_REG_NOTIF_CMD         reg_notif;              /* RegNotify */
11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_NEXT_CMD              continu;                /* Continue */
11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_NEXT_CMD              abort;                  /* Abort */
11905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SET_ADDR_PLAYER_CMD   addr_player;            /* SetAddrPlayer */
11925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SET_VOLUME_CMD        volume;                 /* SetAbsVolume */
11935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SET_BR_PLAYER_CMD     br_player;              /* SetBrowsedPlayer */
11945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_ITEMS_CMD         get_items;              /* GetFolderItems */
11955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_CHG_PATH_CMD          chg_path;               /* ChangePath */
11965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_ATTRS_CMD         get_attrs;              /* GetItemAttrs */
11975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SEARCH_CMD            search;                 /* Search */
11985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_PLAY_ITEM_CMD         play_item;              /* PlayItem */
11995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_ADD_TO_PLAY_CMD       add_to_play;            /* AddToNowPlaying */
12005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_COMMAND;
12015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetCapability */
12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       capability_id;
12095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       count;
12105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_CAPS_PARAM param;
12115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_CAPS_RSP;
12125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ListPlayerAppAttr */
12145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_attr;
12205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       attrs[AVRC_MAX_APP_ATTR_SIZE];
12215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_LIST_APP_ATTR_RSP;
12225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ListPlayerAppValues */
12245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_val;
12305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       vals[AVRC_MAX_APP_ATTR_SIZE];
12315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_LIST_APP_VALUES_RSP;
12325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetCurAppValue */
12345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_val;
12405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_APP_SETTING   *p_vals;
12415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_CUR_APP_VALUE_RSP;
12425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetAppAttrTxt */
12445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_attr;
12505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_APP_SETTING_TEXT   *p_attrs;
12515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_APP_ATTR_TXT_RSP;
12525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetElemAttrs */
12545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       num_attr;
12605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_ATTR_ENTRY   *p_attrs;
12615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_ELEM_ATTRS_RSP;
12625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetPlayStatus */
12645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
12675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
12685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
12695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      song_len;
12705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      song_pos;
12715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       play_status;
12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_PLAY_STATUS_RSP;
12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* notification event parameter for AddressedPlayer change */
12755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              player_id;
12785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              uid_counter;
12795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_ADDR_PLAYER_PARAM;
12805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef AVRC_MAX_APP_SETTINGS
12825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define AVRC_MAX_APP_SETTINGS    8
12835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
12845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* notification event parameter for Player Application setting change */
12865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
12875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               num_attr;
12895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               attr_id[AVRC_MAX_APP_SETTINGS];
12905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               attr_value[AVRC_MAX_APP_SETTINGS];
12915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_PLAYER_APP_PARAM;
12925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
12945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
12955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_PLAYSTATE         play_status;
12965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_UID               track;
12975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32                  play_pos;
12985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_BATTERY_STATUS    battery_status;
12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SYSTEMSTATE       system_status;
13005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_PLAYER_APP_PARAM  player_setting;
13015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_ADDR_PLAYER_PARAM addr_player;
13025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16                  uid_counter;
13035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   volume;
13045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_NOTIF_RSP_PARAM;
13055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* RegNotify */
13075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   pdu;
13105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS               status;
13115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   event_id;
13135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_NOTIF_RSP_PARAM   param;
13145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_REG_NOTIF_RSP;
13155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SetAbsVolume */
13175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               pdu;
13205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS           status;
13215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               volume;
13235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SET_VOLUME_RSP;
13245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SetBrowsedPlayer */
13265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               pdu;
13295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS           status;
13305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              uid_counter;
13325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32              num_items;
13335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              charset_id;
13345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               folder_depth;
13355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_NAME          *p_folders;
13365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SET_BR_PLAYER_RSP;
13375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetFolderItems */
13395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               pdu;
13425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS           status;
13435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              uid_counter;
13455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              item_count;
13465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_ITEM          *p_item_list;
13475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_ITEMS_RSP;
13485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ChangePath */
13505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               pdu;
13535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS           status;
13545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32              num_items;
13565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_CHG_PATH_RSP;
13575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* GetItemAttrs */
13595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               pdu;
13625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS           status;
13635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               attr_count;
13655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_ATTR_ENTRY    *p_attr_list;
13665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_GET_ATTRS_RSP;
13675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search */
13695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               pdu;
13725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS           status;
13735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8               opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16              uid_counter;
13755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32              num_items;
13765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_SEARCH_RSP;
13775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       pdu;
13825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_STS   status;
13835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       opcode;         /* Op Code (copied from avrc_cmd.opcode by AVRC_BldResponse user. invalid one to generate according to pdu) */
13845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_RSP;
13855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union
13875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                           pdu;
13895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       rsp;
13905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_CAPS_RSP              get_caps;               /* GetCapability */
13915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_LIST_APP_ATTR_RSP         list_app_attr;          /* ListPlayerAppAttr */
13925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_LIST_APP_VALUES_RSP       list_app_values;        /* ListPlayerAppValues */
13935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_CUR_APP_VALUE_RSP     get_cur_app_val;        /* GetCurAppValue */
13945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       set_app_val;            /* SetAppValue */
13955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_APP_ATTR_TXT_RSP      get_app_attr_txt;       /* GetAppAttrTxt */
13965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_APP_ATTR_TXT_RSP      get_app_val_txt;        /* GetAppValueTxt */
13975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       inform_charset;         /* InformCharset */
13985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       inform_battery_status;  /* InformBatteryStatus */
13995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_ELEM_ATTRS_RSP        get_elem_attrs;         /* GetElemAttrs */
14005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_PLAY_STATUS_RSP       get_play_status;        /* GetPlayStatus */
14015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_REG_NOTIF_RSP             reg_notif;              /* RegNotify */
14025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       continu;                /* Continue */
14035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       abort;                  /* Abort */
14045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       addr_player;            /* SetAddrPlayer */
14065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SET_VOLUME_RSP            volume;                 /* SetAbsVolume */
14075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SET_BR_PLAYER_RSP         br_player;              /* SetBrowsedPlayer */
14085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_ITEMS_RSP             get_items;              /* GetFolderItems */
14095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_CHG_PATH_RSP              chg_path;               /* ChangePath */
14105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_GET_ATTRS_RSP             get_attrs;              /* GetItemAttrs */
14115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_SEARCH_RSP                search;                 /* Search */
14125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       play_item;              /* PlayItem */
14135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tAVRC_RSP                       add_to_play;            /* AddToNowPlaying */
14145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tAVRC_RESPONSE;
14155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1418