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 0x01
142#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_REPEAT 0x02
144#define MEDIA_PROXY_PLAYING_ORDER_INORDER_ONCE 0x03
146#define MEDIA_PROXY_PLAYING_ORDER_INORDER_REPEAT 0x04
148#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_ONCE 0x05
150#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_REPEAT 0x06
152#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_ONCE 0x07
154#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_REPEAT 0x08
156#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_ONCE 0x09
158#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_REPEAT 0x0a
169#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE BIT(0)
171#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT BIT(1)
173#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE BIT(2)
175#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT BIT(3)
177#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE BIT(4)
179#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT BIT(5)
181#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE BIT(6)
183#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT BIT(7)
185#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE BIT(8)
187#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT BIT(9)
195#define MEDIA_PROXY_STATE_INACTIVE 0x00
197#define MEDIA_PROXY_STATE_PLAYING 0x01
199#define MEDIA_PROXY_STATE_PAUSED 0x02
201#define MEDIA_PROXY_STATE_SEEKING 0x03
203#define MEDIA_PROXY_STATE_LAST 0x04
211#define MEDIA_PROXY_OP_PLAY 0x01
213#define MEDIA_PROXY_OP_PAUSE 0x02
215#define MEDIA_PROXY_OP_FAST_REWIND 0x03
217#define MEDIA_PROXY_OP_FAST_FORWARD 0x04
222#define MEDIA_PROXY_OP_STOP 0x05
225#define MEDIA_PROXY_OP_MOVE_RELATIVE 0x10
231#define MEDIA_PROXY_OP_PREV_SEGMENT 0x20
236#define MEDIA_PROXY_OP_NEXT_SEGMENT 0x21
241#define MEDIA_PROXY_OP_FIRST_SEGMENT 0x22
246#define MEDIA_PROXY_OP_LAST_SEGMENT 0x23
251#define MEDIA_PROXY_OP_GOTO_SEGMENT 0x24
254#define MEDIA_PROXY_OP_PREV_TRACK 0x30
256#define MEDIA_PROXY_OP_NEXT_TRACK 0x31
258#define MEDIA_PROXY_OP_FIRST_TRACK 0x32
260#define MEDIA_PROXY_OP_LAST_TRACK 0x33
262#define MEDIA_PROXY_OP_GOTO_TRACK 0x34
265#define MEDIA_PROXY_OP_PREV_GROUP 0x40
267#define MEDIA_PROXY_OP_NEXT_GROUP 0x41
269#define MEDIA_PROXY_OP_FIRST_GROUP 0x42
271#define MEDIA_PROXY_OP_LAST_GROUP 0x43
273#define MEDIA_PROXY_OP_GOTO_GROUP 0x44
279#define MEDIA_PROXY_OPCODES_SUPPORTED_LEN 4
286#define MEDIA_PROXY_OP_SUP_PLAY BIT(0)
288#define MEDIA_PROXY_OP_SUP_PAUSE BIT(1)
290#define MEDIA_PROXY_OP_SUP_FAST_REWIND BIT(2)
292#define MEDIA_PROXY_OP_SUP_FAST_FORWARD BIT(3)
294#define MEDIA_PROXY_OP_SUP_STOP BIT(4)
297#define MEDIA_PROXY_OP_SUP_MOVE_RELATIVE BIT(5)
300#define MEDIA_PROXY_OP_SUP_PREV_SEGMENT BIT(6)
302#define MEDIA_PROXY_OP_SUP_NEXT_SEGMENT BIT(7)
304#define MEDIA_PROXY_OP_SUP_FIRST_SEGMENT BIT(8)
306#define MEDIA_PROXY_OP_SUP_LAST_SEGMENT BIT(9)
308#define MEDIA_PROXY_OP_SUP_GOTO_SEGMENT BIT(10)
311#define MEDIA_PROXY_OP_SUP_PREV_TRACK BIT(11)
313#define MEDIA_PROXY_OP_SUP_NEXT_TRACK BIT(12)
315#define MEDIA_PROXY_OP_SUP_FIRST_TRACK BIT(13)
317#define MEDIA_PROXY_OP_SUP_LAST_TRACK BIT(14)
319#define MEDIA_PROXY_OP_SUP_GOTO_TRACK BIT(15)
322#define MEDIA_PROXY_OP_SUP_PREV_GROUP BIT(16)
324#define MEDIA_PROXY_OP_SUP_NEXT_GROUP BIT(17)
326#define MEDIA_PROXY_OP_SUP_FIRST_GROUP BIT(18)
328#define MEDIA_PROXY_OP_SUP_LAST_GROUP BIT(19)
330#define MEDIA_PROXY_OP_SUP_GOTO_GROUP BIT(20)
338#define MEDIA_PROXY_CMD_SUCCESS 0x01
340#define MEDIA_PROXY_CMD_NOT_SUPPORTED 0x02
346#define MEDIA_PROXY_CMD_PLAYER_INACTIVE 0x03
351#define MEDIA_PROXY_CMD_CANNOT_BE_COMPLETED 0x04
359#define MEDIA_PROXY_SEARCH_TYPE_TRACK_NAME 0x01
361#define MEDIA_PROXY_SEARCH_TYPE_ARTIST_NAME 0x02
363#define MEDIA_PROXY_SEARCH_TYPE_ALBUM_NAME 0x03
365#define MEDIA_PROXY_SEARCH_TYPE_GROUP_NAME 0x04
367#define MEDIA_PROXY_SEARCH_TYPE_EARLIEST_YEAR 0x05
369#define MEDIA_PROXY_SEARCH_TYPE_LATEST_YEAR 0x06
371#define MEDIA_PROXY_SEARCH_TYPE_GENRE 0x07
373#define MEDIA_PROXY_SEARCH_TYPE_ONLY_TRACKS 0x08
375#define MEDIA_PROXY_SEARCH_TYPE_ONLY_GROUPS 0x09
384#define MEDIA_PROXY_SEARCH_SUCCESS 0x01
386#define MEDIA_PROXY_SEARCH_FAILURE 0x02
395#define MEDIA_PROXY_GROUP_OBJECT_TRACK_TYPE 0x00
397#define MEDIA_PROXY_GROUP_OBJECT_GROUP_TYPE 0x01
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
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[62]
Search parameter.
Definition: media_proxy.h:86
Search.
Definition: media_proxy.h:92
uint8_t len
The length of the mpl_search::search value.
Definition: media_proxy.h:94
char search[64]
Concatenated search control items - (type, length, param)
Definition: media_proxy.h:96