12#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MEDIA_PROXY_H_
13#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MEDIA_PROXY_H_
106#define MEDIA_PROXY_PLAYBACK_SPEED_MIN -128
108#define MEDIA_PROXY_PLAYBACK_SPEED_QUARTER -128
110#define MEDIA_PROXY_PLAYBACK_SPEED_HALF -64
112#define MEDIA_PROXY_PLAYBACK_SPEED_UNITY 0
114#define MEDIA_PROXY_PLAYBACK_SPEED_DOUBLE 64
116#define MEDIA_PROXY_PLAYBACK_SPEED_MAX 127
128#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_MAX 64
130#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_MIN 4
132#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_ZERO 0
140#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_ONCE 0x01U
142#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_REPEAT 0x02U
144#define MEDIA_PROXY_PLAYING_ORDER_INORDER_ONCE 0x03U
146#define MEDIA_PROXY_PLAYING_ORDER_INORDER_REPEAT 0x04U
148#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_ONCE 0x05U
150#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_REPEAT 0x06U
152#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_ONCE 0x07U
154#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_REPEAT 0x08U
156#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_ONCE 0x09U
158#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_REPEAT 0x0AU
169#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE BIT(0U)
171#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT BIT(1U)
173#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE BIT(2U)
175#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT BIT(3U)
177#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE BIT(4U)
179#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT BIT(5U)
181#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE BIT(6U)
183#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT BIT(7U)
185#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE BIT(8U)
187#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT BIT(9U)
195#define MEDIA_PROXY_STATE_INACTIVE 0x00U
197#define MEDIA_PROXY_STATE_PLAYING 0x01U
199#define MEDIA_PROXY_STATE_PAUSED 0x02U
201#define MEDIA_PROXY_STATE_SEEKING 0x03U
203#define MEDIA_PROXY_STATE_LAST 0x04U
211#define MEDIA_PROXY_OP_PLAY 0x01U
213#define MEDIA_PROXY_OP_PAUSE 0x02U
215#define MEDIA_PROXY_OP_FAST_REWIND 0x03U
217#define MEDIA_PROXY_OP_FAST_FORWARD 0x04U
222#define MEDIA_PROXY_OP_STOP 0x05U
225#define MEDIA_PROXY_OP_MOVE_RELATIVE 0x10U
231#define MEDIA_PROXY_OP_PREV_SEGMENT 0x20U
236#define MEDIA_PROXY_OP_NEXT_SEGMENT 0x21U
241#define MEDIA_PROXY_OP_FIRST_SEGMENT 0x22U
246#define MEDIA_PROXY_OP_LAST_SEGMENT 0x23U
251#define MEDIA_PROXY_OP_GOTO_SEGMENT 0x24U
254#define MEDIA_PROXY_OP_PREV_TRACK 0x30U
256#define MEDIA_PROXY_OP_NEXT_TRACK 0x31U
258#define MEDIA_PROXY_OP_FIRST_TRACK 0x32U
260#define MEDIA_PROXY_OP_LAST_TRACK 0x33U
262#define MEDIA_PROXY_OP_GOTO_TRACK 0x34U
265#define MEDIA_PROXY_OP_PREV_GROUP 0x40U
267#define MEDIA_PROXY_OP_NEXT_GROUP 0x41U
269#define MEDIA_PROXY_OP_FIRST_GROUP 0x42U
271#define MEDIA_PROXY_OP_LAST_GROUP 0x43U
273#define MEDIA_PROXY_OP_GOTO_GROUP 0x44U
279#define MEDIA_PROXY_OPCODES_SUPPORTED_LEN 4U
286#define MEDIA_PROXY_OP_SUP_PLAY BIT(0U)
288#define MEDIA_PROXY_OP_SUP_PAUSE BIT(1U)
290#define MEDIA_PROXY_OP_SUP_FAST_REWIND BIT(2U)
292#define MEDIA_PROXY_OP_SUP_FAST_FORWARD BIT(3U)
294#define MEDIA_PROXY_OP_SUP_STOP BIT(4U)
297#define MEDIA_PROXY_OP_SUP_MOVE_RELATIVE BIT(5U)
300#define MEDIA_PROXY_OP_SUP_PREV_SEGMENT BIT(6U)
302#define MEDIA_PROXY_OP_SUP_NEXT_SEGMENT BIT(7U)
304#define MEDIA_PROXY_OP_SUP_FIRST_SEGMENT BIT(8U)
306#define MEDIA_PROXY_OP_SUP_LAST_SEGMENT BIT(9U)
308#define MEDIA_PROXY_OP_SUP_GOTO_SEGMENT BIT(10U)
311#define MEDIA_PROXY_OP_SUP_PREV_TRACK BIT(11U)
313#define MEDIA_PROXY_OP_SUP_NEXT_TRACK BIT(12U)
315#define MEDIA_PROXY_OP_SUP_FIRST_TRACK BIT(13U)
317#define MEDIA_PROXY_OP_SUP_LAST_TRACK BIT(14U)
319#define MEDIA_PROXY_OP_SUP_GOTO_TRACK BIT(15U)
322#define MEDIA_PROXY_OP_SUP_PREV_GROUP BIT(16U)
324#define MEDIA_PROXY_OP_SUP_NEXT_GROUP BIT(17U)
326#define MEDIA_PROXY_OP_SUP_FIRST_GROUP BIT(18U)
328#define MEDIA_PROXY_OP_SUP_LAST_GROUP BIT(19U)
330#define MEDIA_PROXY_OP_SUP_GOTO_GROUP BIT(20U)
338#define MEDIA_PROXY_CMD_SUCCESS 0x01U
340#define MEDIA_PROXY_CMD_NOT_SUPPORTED 0x02U
346#define MEDIA_PROXY_CMD_PLAYER_INACTIVE 0x03U
351#define MEDIA_PROXY_CMD_CANNOT_BE_COMPLETED 0x04U
359#define MEDIA_PROXY_SEARCH_TYPE_TRACK_NAME 0x01U
361#define MEDIA_PROXY_SEARCH_TYPE_ARTIST_NAME 0x02U
363#define MEDIA_PROXY_SEARCH_TYPE_ALBUM_NAME 0x03U
365#define MEDIA_PROXY_SEARCH_TYPE_GROUP_NAME 0x04U
367#define MEDIA_PROXY_SEARCH_TYPE_EARLIEST_YEAR 0x05U
369#define MEDIA_PROXY_SEARCH_TYPE_LATEST_YEAR 0x06U
371#define MEDIA_PROXY_SEARCH_TYPE_GENRE 0x07U
373#define MEDIA_PROXY_SEARCH_TYPE_ONLY_TRACKS 0x08U
375#define MEDIA_PROXY_SEARCH_TYPE_ONLY_GROUPS 0x09U
384#define MEDIA_PROXY_SEARCH_SUCCESS 0x01U
386#define MEDIA_PROXY_SEARCH_FAILURE 0x02U
395#define MEDIA_PROXY_GROUP_OBJECT_TRACK_TYPE 0x00U
397#define MEDIA_PROXY_GROUP_OBJECT_GROUP_TYPE 0x01U
427#ifdef CONFIG_MCTL_REMOTE_PLAYER_CONTROL
439 void (*discover_player)(
struct media_player *player,
int err);
479 void (*
icon_url_recv)(
struct media_player *player,
int err,
const char *url);
1279 const char *(*get_player_name)(void);
1301 const char *(*get_icon_url)(void);
1308 const char *(*get_track_title)(void);
Bluetooth subsystem core APIs.
#define SEARCH_PARAM_MAX
Search parameters maximum length.
Definition mcs.h:339
#define SEARCH_LEN_MAX
Search control point maximum length.
Definition mcs.h:328
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition ft8xx_reference_api.h:153
Bluetooth Media Control Service (MCS) APIs.
state
Definition parser_state.h:29
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__INT32_TYPE__ int32_t
Definition stdint.h:74
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT8_TYPE__ int8_t
Definition stdint.h:72
Opaque type representing a connection to a remote device.
Media command notification.
Definition media_proxy.h:73
uint8_t result_code
The result of the operation.
Definition media_proxy.h:77
uint8_t requested_opcode
The opcode that was sent.
Definition media_proxy.h:75
Media player command.
Definition media_proxy.h:61
uint8_t opcode
The opcode.
Definition media_proxy.h:63
bool use_param
Whether or not the mpl_cmd::param is used.
Definition media_proxy.h:65
int32_t param
A 32-bit signed parameter.
Definition media_proxy.h:67
Search control item.
Definition media_proxy.h:83
uint8_t type
MEDIA_PROXY_SEARCH_TYPE_<...>.
Definition media_proxy.h:85
uint8_t len
Length of type and parameter.
Definition media_proxy.h:84
char param[62U]
Search parameter.
Definition media_proxy.h:86
Search.
Definition media_proxy.h:92
char search[64U]
Concatenated search control items - (type, length, param).
Definition media_proxy.h:96
uint8_t len
The length of the mpl_search::search value.
Definition media_proxy.h:94