Zephyr Project API  3.3.0
A Scalable Open Source RTOS
media_proxy.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 - 2021 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MEDIA_PROXY_H_
8#define ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MEDIA_PROXY_H_
9
39#include <stdbool.h>
40#include <zephyr/types.h>
42
43/* TODO: Remove dependency on mcs.h */
44#include "mcs.h"
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50
54struct mpl_cmd {
58};
59
66};
67
71struct mpl_sci {
75};
76
80struct mpl_search {
82 char search[SEARCH_LEN_MAX]; /* Concatenated search control items */
83}; /* - (type, length, param) */
84
90#define MEDIA_PROXY_PLAYBACK_SPEED_MIN -128
91#define MEDIA_PROXY_PLAYBACK_SPEED_QUARTER -128
92#define MEDIA_PROXY_PLAYBACK_SPEED_HALF -64
93#define MEDIA_PROXY_PLAYBACK_SPEED_UNITY 0
94#define MEDIA_PROXY_PLAYBACK_SPEED_DOUBLE 64
95#define MEDIA_PROXY_PLAYBACK_SPEED_MAX 127
96
104#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_MAX 64
105#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_MIN 4
106#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_ZERO 0
107
111#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_ONCE 0x01
112#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_REPEAT 0x02
113#define MEDIA_PROXY_PLAYING_ORDER_INORDER_ONCE 0x03
114#define MEDIA_PROXY_PLAYING_ORDER_INORDER_REPEAT 0x04
115#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_ONCE 0x05
116#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_REPEAT 0x06
117#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_ONCE 0x07
118#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_REPEAT 0x08
119#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_ONCE 0x09
120#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_REPEAT 0x0a
121
128#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE BIT(0)
129#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT BIT(1)
130#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE BIT(2)
131#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT BIT(3)
132#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE BIT(4)
133#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT BIT(5)
134#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE BIT(6)
135#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT BIT(7)
136#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE BIT(8)
137#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT BIT(9)
138
142#define MEDIA_PROXY_STATE_INACTIVE 0x00
143#define MEDIA_PROXY_STATE_PLAYING 0x01
144#define MEDIA_PROXY_STATE_PAUSED 0x02
145#define MEDIA_PROXY_STATE_SEEKING 0x03
146#define MEDIA_PROXY_STATE_LAST 0x04
147
151#define MEDIA_PROXY_OP_PLAY 0x01
152#define MEDIA_PROXY_OP_PAUSE 0x02
153#define MEDIA_PROXY_OP_FAST_REWIND 0x03
154#define MEDIA_PROXY_OP_FAST_FORWARD 0x04
155#define MEDIA_PROXY_OP_STOP 0x05
156
157#define MEDIA_PROXY_OP_MOVE_RELATIVE 0x10
158
159#define MEDIA_PROXY_OP_PREV_SEGMENT 0x20
160#define MEDIA_PROXY_OP_NEXT_SEGMENT 0x21
161#define MEDIA_PROXY_OP_FIRST_SEGMENT 0x22
162#define MEDIA_PROXY_OP_LAST_SEGMENT 0x23
163#define MEDIA_PROXY_OP_GOTO_SEGMENT 0x24
164
165#define MEDIA_PROXY_OP_PREV_TRACK 0x30
166#define MEDIA_PROXY_OP_NEXT_TRACK 0x31
167#define MEDIA_PROXY_OP_FIRST_TRACK 0x32
168#define MEDIA_PROXY_OP_LAST_TRACK 0x33
169#define MEDIA_PROXY_OP_GOTO_TRACK 0x34
170
171#define MEDIA_PROXY_OP_PREV_GROUP 0x40
172#define MEDIA_PROXY_OP_NEXT_GROUP 0x41
173#define MEDIA_PROXY_OP_FIRST_GROUP 0x42
174#define MEDIA_PROXY_OP_LAST_GROUP 0x43
175#define MEDIA_PROXY_OP_GOTO_GROUP 0x44
176
180#define MEDIA_PROXY_OPCODES_SUPPORTED_LEN 4
181
185#define MEDIA_PROXY_OP_SUP_PLAY BIT(0)
186#define MEDIA_PROXY_OP_SUP_PAUSE BIT(1)
187#define MEDIA_PROXY_OP_SUP_FAST_REWIND BIT(2)
188#define MEDIA_PROXY_OP_SUP_FAST_FORWARD BIT(3)
189#define MEDIA_PROXY_OP_SUP_STOP BIT(4)
190
191#define MEDIA_PROXY_OP_SUP_MOVE_RELATIVE BIT(5)
192
193#define MEDIA_PROXY_OP_SUP_PREV_SEGMENT BIT(6)
194#define MEDIA_PROXY_OP_SUP_NEXT_SEGMENT BIT(7)
195#define MEDIA_PROXY_OP_SUP_FIRST_SEGMENT BIT(8)
196#define MEDIA_PROXY_OP_SUP_LAST_SEGMENT BIT(9)
197#define MEDIA_PROXY_OP_SUP_GOTO_SEGMENT BIT(10)
198
199#define MEDIA_PROXY_OP_SUP_PREV_TRACK BIT(11)
200#define MEDIA_PROXY_OP_SUP_NEXT_TRACK BIT(12)
201#define MEDIA_PROXY_OP_SUP_FIRST_TRACK BIT(13)
202#define MEDIA_PROXY_OP_SUP_LAST_TRACK BIT(14)
203#define MEDIA_PROXY_OP_SUP_GOTO_TRACK BIT(15)
204
205#define MEDIA_PROXY_OP_SUP_PREV_GROUP BIT(16)
206#define MEDIA_PROXY_OP_SUP_NEXT_GROUP BIT(17)
207#define MEDIA_PROXY_OP_SUP_FIRST_GROUP BIT(18)
208#define MEDIA_PROXY_OP_SUP_LAST_GROUP BIT(19)
209#define MEDIA_PROXY_OP_SUP_GOTO_GROUP BIT(20)
210
214#define MEDIA_PROXY_CMD_SUCCESS 0x01
215#define MEDIA_PROXY_CMD_NOT_SUPPORTED 0x02
216#define MEDIA_PROXY_CMD_PLAYER_INACTIVE 0x03
217#define MEDIA_PROXY_CMD_CANNOT_BE_COMPLETED 0x04
218
222#define MEDIA_PROXY_SEARCH_TYPE_TRACK_NAME 0x01
223#define MEDIA_PROXY_SEARCH_TYPE_ARTIST_NAME 0x02
224#define MEDIA_PROXY_SEARCH_TYPE_ALBUM_NAME 0x03
225#define MEDIA_PROXY_SEARCH_TYPE_GROUP_NAME 0x04
226#define MEDIA_PROXY_SEARCH_TYPE_EARLIEST_YEAR 0x05
227#define MEDIA_PROXY_SEARCH_TYPE_LATEST_YEAR 0x06
228#define MEDIA_PROXY_SEARCH_TYPE_GENRE 0x07
229#define MEDIA_PROXY_SEARCH_TYPE_ONLY_TRACKS 0x08
230#define MEDIA_PROXY_SEARCH_TYPE_ONLY_GROUPS 0x09
231
235#define MEDIA_PROXY_SEARCH_SUCCESS 0x01
236#define MEDIA_PROXY_SEARCH_FAILURE 0x02
237
238/* Group object object types */
239#define MEDIA_PROXY_GROUP_OBJECT_TRACK_TYPE 0x00
240#define MEDIA_PROXY_GROUP_OBJECT_GROUP_TYPE 0x01
241
242
246struct media_player;
247
248/* PUBLIC API FOR CONTROLLERS */
249
255
267 void (*local_player_instance)(struct media_player *player, int err);
268
269#ifdef CONFIG_MCTL_REMOTE_PLAYER_CONTROL
281 void (*discover_player)(struct media_player *player, int err);
282#endif /* CONFIG_MCTL_REMOTE_PLAYER_CONTROL */
283
295 void (*player_name_recv)(struct media_player *player, int err, const char *name);
296
308 void (*icon_id_recv)(struct media_player *player, int err, uint64_t id);
309
321 void (*icon_url_recv)(struct media_player *player, int err, const char *url);
322
332 void (*track_changed_recv)(struct media_player *player, int err);
333
345 void (*track_title_recv)(struct media_player *player, int err, const char *title);
346
358 void (*track_duration_recv)(struct media_player *player, int err, int32_t duration);
359
372 void (*track_position_recv)(struct media_player *player, int err, int32_t position);
373
385 void (*track_position_write)(struct media_player *player, int err, int32_t position);
386
399 void (*playback_speed_recv)(struct media_player *player, int err, int8_t speed);
400
412 void (*playback_speed_write)(struct media_player *player, int err, int8_t speed);
413
425 void (*seeking_speed_recv)(struct media_player *player, int err, int8_t speed);
426
438 void (*track_segments_id_recv)(struct media_player *player, int err, uint64_t id);
439
452 void (*current_track_id_recv)(struct media_player *player, int err, uint64_t id);
453
465 void (*current_track_id_write)(struct media_player *player, int err, uint64_t id);
466
479 void (*next_track_id_recv)(struct media_player *player, int err, uint64_t id);
480
492 void (*next_track_id_write)(struct media_player *player, int err, uint64_t id);
493
505 void (*parent_group_id_recv)(struct media_player *player, int err, uint64_t id);
506
519 void (*current_group_id_recv)(struct media_player *player, int err, uint64_t id);
520
532 void (*current_group_id_write)(struct media_player *player, int err, uint64_t id);
533
546 void (*playing_order_recv)(struct media_player *player, int err, uint8_t order);
547
559 void (*playing_order_write)(struct media_player *player, int err, uint8_t order);
560
572 void (*playing_orders_supported_recv)(struct media_player *player, int err,
573 uint16_t orders);
574
587 void (*media_state_recv)(struct media_player *player, int err, uint8_t state);
588
600 void (*command_send)(struct media_player *player, int err, const struct mpl_cmd *cmd);
601
613 void (*command_recv)(struct media_player *player, int err,
614 const struct mpl_cmd_ntf *result);
615
627 void (*commands_supported_recv)(struct media_player *player, int err, uint32_t opcodes);
628
640 void (*search_send)(struct media_player *player, int err, const struct mpl_search *search);
641
658 void (*search_recv)(struct media_player *player, int err, uint8_t result_code);
659
671 void (*search_results_id_recv)(struct media_player *player, int err, uint64_t id);
672
684 void (*content_ctrl_id_recv)(struct media_player *player, int err, uint8_t ccid);
685};
686
695
713int media_proxy_ctrl_discover_player(struct bt_conn *conn);
714
722int media_proxy_ctrl_get_player_name(struct media_player *player);
723
739int media_proxy_ctrl_get_icon_id(struct media_player *player);
740
748int media_proxy_ctrl_get_icon_url(struct media_player *player);
749
757int media_proxy_ctrl_get_track_title(struct media_player *player);
758
769int media_proxy_ctrl_get_track_duration(struct media_player *player);
770
782int media_proxy_ctrl_get_track_position(struct media_player *player);
783
798int media_proxy_ctrl_set_track_position(struct media_player *player, int32_t position);
799
817int media_proxy_ctrl_get_playback_speed(struct media_player *player);
818
838int media_proxy_ctrl_set_playback_speed(struct media_player *player, int8_t speed);
839
856int media_proxy_ctrl_get_seeking_speed(struct media_player *player);
857
873int media_proxy_ctrl_get_track_segments_id(struct media_player *player);
874
890int media_proxy_ctrl_get_current_track_id(struct media_player *player);
891
905int media_proxy_ctrl_set_current_track_id(struct media_player *player, uint64_t id);
906
919int media_proxy_ctrl_get_next_track_id(struct media_player *player);
920
933int media_proxy_ctrl_set_next_track_id(struct media_player *player, uint64_t id);
934
952int media_proxy_ctrl_get_parent_group_id(struct media_player *player);
953
969int media_proxy_ctrl_get_current_group_id(struct media_player *player);
970
984int media_proxy_ctrl_set_current_group_id(struct media_player *player, uint64_t id);
985
993int media_proxy_ctrl_get_playing_order(struct media_player *player);
994
1005int media_proxy_ctrl_set_playing_order(struct media_player *player, uint8_t order);
1006
1017int media_proxy_ctrl_get_playing_orders_supported(struct media_player *player);
1018
1028int media_proxy_ctrl_get_media_state(struct media_player *player);
1029
1043int media_proxy_ctrl_send_command(struct media_player *player, const struct mpl_cmd *command);
1044
1055int media_proxy_ctrl_get_commands_supported(struct media_player *player);
1056
1076int media_proxy_ctrl_send_search(struct media_player *player, const struct mpl_search *search);
1077
1094int media_proxy_ctrl_get_search_results_id(struct media_player *player);
1095
1108
1109
1110/* PUBLIC API FOR PLAYERS */
1111
1117
1123 const char *(*get_player_name)(void);
1124
1137
1145 const char *(*get_icon_url)(void);
1146
1152 const char *(*get_track_title)(void);
1153
1163
1174
1186 void (*set_track_position)(int32_t position);
1187
1204
1222
1238
1251
1264
1274
1284
1293
1308
1321
1331
1338
1348
1359
1369
1379 void (*send_command)(const struct mpl_cmd *command);
1380
1391
1401 void (*send_search)(const struct mpl_search *search);
1402
1416
1427};
1428
1443
1444/* Initialize player - TODO: Move to player header file */
1446
1447/* TODO: Find best location for this call, and move this one also */
1448struct bt_ots *bt_mcs_get_ots(void);
1449
1450/* Callbacks from the player to the media proxy */
1451
1458
1467
1479
1496
1505
1514
1524
1533
1542
1551
1560
1569
1579void media_proxy_pl_command_cb(const struct mpl_cmd_ntf *cmd_ntf);
1580
1589
1603
1613
1614#ifdef __cplusplus
1615}
1616#endif
1617 /* End of group bt_media_proxy */
1619
1620#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MEDIA_PROXY_H_ */
Bluetooth subsystem core APIs.
struct result result[2]
Definition: errno.c:42
#define SEARCH_PARAM_MAX
Definition: mcs.h:170
#define SEARCH_LEN_MAX
Definition: mcs.h:168
int media_proxy_ctrl_get_playing_orders_supported(struct media_player *player)
Read Playing Orders Supported.
int media_proxy_ctrl_send_search(struct media_player *player, const struct mpl_search *search)
Set Search.
int media_proxy_ctrl_get_parent_group_id(struct media_player *player)
Read Parent Group Object ID.
int media_proxy_ctrl_get_commands_supported(struct media_player *player)
Read Commands Supported.
void media_proxy_pl_playback_speed_cb(int8_t speed)
Playback speed callback.
int media_proxy_ctrl_get_track_segments_id(struct media_player *player)
Read Current Track Segments Object ID.
int media_proxy_ctrl_get_player_name(struct media_player *player)
Read Media Player Name.
uint8_t media_proxy_ctrl_get_content_ctrl_id(struct media_player *player)
Read Content Control ID.
int media_proxy_ctrl_get_current_group_id(struct media_player *player)
Read Current Group Object ID.
int media_proxy_ctrl_get_playback_speed(struct media_player *player)
Get Playback Speed.
int media_proxy_ctrl_get_playing_order(struct media_player *player)
Read Playing Order.
int media_proxy_ctrl_register(struct media_proxy_ctrl_cbs *ctrl_cbs)
Register a controller with the media_proxy.
void media_proxy_pl_search_results_id_cb(uint64_t id)
Search Results object ID callback.
int media_proxy_ctrl_set_next_track_id(struct media_player *player, uint64_t id)
Set Next Track Object ID.
int media_proxy_ctrl_get_track_duration(struct media_player *player)
Read Track Duration.
void media_proxy_pl_track_changed_cb(void)
Track changed callback.
int media_proxy_ctrl_get_search_results_id(struct media_player *player)
Read Search Results Object ID.
int media_proxy_ctrl_send_command(struct media_player *player, const struct mpl_cmd *command)
Send Command.
int media_proxy_ctrl_discover_player(struct bt_conn *conn)
Discover a remote media player.
int media_proxy_ctrl_get_icon_id(struct media_player *player)
Read Icon Object ID.
void media_proxy_pl_track_position_cb(int32_t position)
Track position callback.
void media_proxy_pl_parent_group_id_cb(uint64_t id)
Parent group object ID callback.
void media_proxy_pl_command_cb(const struct mpl_cmd_ntf *cmd_ntf)
Command callback.
void media_proxy_pl_commands_supported_cb(uint32_t opcodes)
Commands supported callback.
int media_proxy_ctrl_set_track_position(struct media_player *player, int32_t position)
Set Track Position.
void media_proxy_pl_track_duration_cb(int32_t duration)
Track duration callback.
int media_proxy_ctrl_get_seeking_speed(struct media_player *player)
Get Seeking Speed.
void media_proxy_pl_media_state_cb(uint8_t state)
Media state callback.
void media_proxy_pl_search_cb(uint8_t result_code)
Search callback.
int media_proxy_ctrl_get_media_state(struct media_player *player)
Read Media State.
void media_proxy_pl_track_title_cb(char *title)
Track title callback.
void media_proxy_pl_playing_order_cb(uint8_t order)
Playing order callback.
int media_proxy_ctrl_set_playing_order(struct media_player *player, uint8_t order)
Set Playing Order.
int media_proxy_pl_init(void)
int media_proxy_ctrl_get_icon_url(struct media_player *player)
Read Icon URL.
int media_proxy_ctrl_set_playback_speed(struct media_player *player, int8_t speed)
Set Playback Speed.
int media_proxy_ctrl_get_track_title(struct media_player *player)
Read Track Title.
int media_proxy_pl_register(struct media_proxy_pl_calls *pl_calls)
Register a player with the media proxy.
void media_proxy_pl_current_group_id_cb(uint64_t id)
Current group object ID callback.
void media_proxy_pl_current_track_id_cb(uint64_t id)
Current track object ID callback.
int media_proxy_ctrl_get_track_position(struct media_player *player)
Read Track Position.
int media_proxy_ctrl_get_next_track_id(struct media_player *player)
Read Next Track Object ID.
int media_proxy_ctrl_set_current_group_id(struct media_player *player, uint64_t id)
Set Current Group Object ID.
int media_proxy_ctrl_set_current_track_id(struct media_player *player, uint64_t id)
Set Current Track Object ID.
void media_proxy_pl_seeking_speed_cb(int8_t speed)
Seeking speed callback.
int media_proxy_ctrl_get_current_track_id(struct media_player *player)
Read Current Track Object ID.
void media_proxy_pl_next_track_id_cb(uint64_t id)
Next track object ID callback.
struct bt_ots * bt_mcs_get_ots(void)
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition: ft8xx_reference_api.h:153
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
Callbacks to a controller, from the media proxy.
Definition: media_proxy.h:254
void(* search_recv)(struct media_player *player, int err, uint8_t result_code)
Search result code receive callback.
Definition: media_proxy.h:658
void(* commands_supported_recv)(struct media_player *player, int err, uint32_t opcodes)
Commands supported receive callback.
Definition: media_proxy.h:627
void(* next_track_id_write)(struct media_player *player, int err, uint64_t id)
Next Track Object ID write callback.
Definition: media_proxy.h:492
void(* content_ctrl_id_recv)(struct media_player *player, int err, uint8_t ccid)
Content Control ID receive callback.
Definition: media_proxy.h:684
void(* seeking_speed_recv)(struct media_player *player, int err, int8_t speed)
Seeking Speed receive callback.
Definition: media_proxy.h:425
void(* parent_group_id_recv)(struct media_player *player, int err, uint64_t id)
Parent Group Object ID receive callback.
Definition: media_proxy.h:505
void(* icon_url_recv)(struct media_player *player, int err, const char *url)
Media Player Icon URL receive callback.
Definition: media_proxy.h:321
void(* track_position_write)(struct media_player *player, int err, int32_t position)
Track Position write callback.
Definition: media_proxy.h:385
void(* next_track_id_recv)(struct media_player *player, int err, uint64_t id)
Next Track Object ID receive callback.
Definition: media_proxy.h:479
void(* playback_speed_recv)(struct media_player *player, int err, int8_t speed)
Playback Speed receive callback.
Definition: media_proxy.h:399
void(* current_track_id_write)(struct media_player *player, int err, uint64_t id)
Current Track Object ID write callback.
Definition: media_proxy.h:465
void(* playing_order_write)(struct media_player *player, int err, uint8_t order)
Playing Order write callback.
Definition: media_proxy.h:559
void(* track_position_recv)(struct media_player *player, int err, int32_t position)
Track Position receive callback.
Definition: media_proxy.h:372
void(* playing_orders_supported_recv)(struct media_player *player, int err, uint16_t orders)
Playing Orders Supported receive callback.
Definition: media_proxy.h:572
void(* current_group_id_recv)(struct media_player *player, int err, uint64_t id)
Current Group Object ID receive callback.
Definition: media_proxy.h:519
void(* track_duration_recv)(struct media_player *player, int err, int32_t duration)
Track Duration receive callback.
Definition: media_proxy.h:358
void(* command_send)(struct media_player *player, int err, const struct mpl_cmd *cmd)
Command send callback.
Definition: media_proxy.h:600
void(* command_recv)(struct media_player *player, int err, const struct mpl_cmd_ntf *result)
Command result receive callback.
Definition: media_proxy.h:613
void(* playing_order_recv)(struct media_player *player, int err, uint8_t order)
Playing Order receive callback.
Definition: media_proxy.h:546
void(* player_name_recv)(struct media_player *player, int err, const char *name)
Media Player Name receive callback.
Definition: media_proxy.h:295
void(* current_track_id_recv)(struct media_player *player, int err, uint64_t id)
Current Track Object ID receive callback.
Definition: media_proxy.h:452
void(* track_segments_id_recv)(struct media_player *player, int err, uint64_t id)
Track Segments Object ID receive callback.
Definition: media_proxy.h:438
void(* icon_id_recv)(struct media_player *player, int err, uint64_t id)
Media Player Icon Object ID receive callback.
Definition: media_proxy.h:308
void(* track_title_recv)(struct media_player *player, int err, const char *title)
Track Title receive callback.
Definition: media_proxy.h:345
void(* current_group_id_write)(struct media_player *player, int err, uint64_t id)
Current Group Object ID write callback.
Definition: media_proxy.h:532
void(* media_state_recv)(struct media_player *player, int err, uint8_t state)
Media State receive callback.
Definition: media_proxy.h:587
void(* playback_speed_write)(struct media_player *player, int err, int8_t speed)
Playback Speed write callback.
Definition: media_proxy.h:412
void(* track_changed_recv)(struct media_player *player, int err)
Track changed receive callback.
Definition: media_proxy.h:332
void(* search_send)(struct media_player *player, int err, const struct mpl_search *search)
Search send callback.
Definition: media_proxy.h:640
void(* search_results_id_recv)(struct media_player *player, int err, uint64_t id)
Search Results Object ID receive callback See also media_proxy_ctrl_get_search_results_id()
Definition: media_proxy.h:671
void(* local_player_instance)(struct media_player *player, int err)
Media Player Instance callback.
Definition: media_proxy.h:267
Available calls in a player, that the media proxy can call.
Definition: media_proxy.h:1116
void(* set_track_position)(int32_t position)
Set Track Position.
Definition: media_proxy.h:1186
int32_t(* get_track_position)(void)
Read Track Position.
Definition: media_proxy.h:1173
uint64_t(* get_parent_group_id)(void)
Read Parent Group Object ID.
Definition: media_proxy.h:1307
int32_t(* get_track_duration)(void)
Read Track Duration.
Definition: media_proxy.h:1162
void(* send_search)(const struct mpl_search *search)
Set Search.
Definition: media_proxy.h:1401
void(* set_current_track_id)(uint64_t id)
Set Current Track Object ID.
Definition: media_proxy.h:1273
void(* set_current_group_id)(uint64_t id)
Set Current Group Object ID.
Definition: media_proxy.h:1330
uint8_t(* get_content_ctrl_id)(void)
Read Content Control ID.
Definition: media_proxy.h:1426
uint8_t(* get_media_state)(void)
Read Media State.
Definition: media_proxy.h:1368
void(* set_playback_speed)(int8_t speed)
Set Playback Speed.
Definition: media_proxy.h:1221
uint64_t(* get_current_track_id)(void)
Read Current Track Object ID.
Definition: media_proxy.h:1263
uint64_t(* get_track_segments_id)(void)
Read Current Track Segments Object ID.
Definition: media_proxy.h:1250
uint8_t(* get_playing_order)(void)
Read Playing Order.
Definition: media_proxy.h:1337
uint64_t(* get_current_group_id)(void)
Read Current Group Object ID.
Definition: media_proxy.h:1320
uint16_t(* get_playing_orders_supported)(void)
Read Playing Orders Supported.
Definition: media_proxy.h:1358
void(* send_command)(const struct mpl_cmd *command)
Send Command.
Definition: media_proxy.h:1379
void(* set_next_track_id)(uint64_t id)
Set Next Track Object ID.
Definition: media_proxy.h:1292
uint64_t(* get_icon_id)(void)
Read Icon Object ID.
Definition: media_proxy.h:1136
void(* set_playing_order)(uint8_t order)
Set Playing Order.
Definition: media_proxy.h:1347
uint64_t(* get_search_results_id)(void)
Read Search Results Object ID.
Definition: media_proxy.h:1415
uint32_t(* get_commands_supported)(void)
Read Commands Supported.
Definition: media_proxy.h:1390
int8_t(* get_playback_speed)(void)
Get Playback Speed.
Definition: media_proxy.h:1203
int8_t(* get_seeking_speed)(void)
Get Seeking Speed.
Definition: media_proxy.h:1237
uint64_t(* get_next_track_id)(void)
Read Next Track Object ID.
Definition: media_proxy.h:1283
Media command notification.
Definition: media_proxy.h:63
uint8_t result_code
Definition: media_proxy.h:65
uint8_t requested_opcode
Definition: media_proxy.h:64
Media player command.
Definition: media_proxy.h:54
uint8_t opcode
Definition: media_proxy.h:55
bool use_param
Definition: media_proxy.h:56
int32_t param
Definition: media_proxy.h:57
Search control item.
Definition: media_proxy.h:71
uint8_t type
Definition: media_proxy.h:73
uint8_t len
Definition: media_proxy.h:72
char param[62]
Definition: media_proxy.h:74
Search.
Definition: media_proxy.h:80
uint8_t len
Definition: media_proxy.h:81
char search[64]
Definition: media_proxy.h:82