Zephyr Project API  3.1.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
242struct media_player;
243
244/* PUBLIC API FOR CONTROLLERS */
245
251
263 void (*local_player_instance)(struct media_player *player, int err);
264
265#ifdef CONFIG_MCTL_REMOTE_PLAYER_CONTROL
277 void (*discover_player)(struct media_player *player, int err);
278#endif /* CONFIG_MCTL_REMOTE_PLAYER_CONTROL */
279
291 void (*player_name_recv)(struct media_player *player, int err, const char *name);
292
304 void (*icon_id_recv)(struct media_player *player, int err, uint64_t id);
305
317 void (*icon_url_recv)(struct media_player *player, int err, const char *url);
318
328 void (*track_changed_recv)(struct media_player *player, int err);
329
341 void (*track_title_recv)(struct media_player *player, int err, const char *title);
342
354 void (*track_duration_recv)(struct media_player *player, int err, int32_t duration);
355
368 void (*track_position_recv)(struct media_player *player, int err, int32_t position);
369
381 void (*track_position_write)(struct media_player *player, int err, int32_t position);
382
395 void (*playback_speed_recv)(struct media_player *player, int err, int8_t speed);
396
408 void (*playback_speed_write)(struct media_player *player, int err, int8_t speed);
409
421 void (*seeking_speed_recv)(struct media_player *player, int err, int8_t speed);
422
434 void (*track_segments_id_recv)(struct media_player *player, int err, uint64_t id);
435
448 void (*current_track_id_recv)(struct media_player *player, int err, uint64_t id);
449
461 void (*current_track_id_write)(struct media_player *player, int err, uint64_t id);
462
475 void (*next_track_id_recv)(struct media_player *player, int err, uint64_t id);
476
488 void (*next_track_id_write)(struct media_player *player, int err, uint64_t id);
489
501 void (*parent_group_id_recv)(struct media_player *player, int err, uint64_t id);
502
515 void (*current_group_id_recv)(struct media_player *player, int err, uint64_t id);
516
528 void (*current_group_id_write)(struct media_player *player, int err, uint64_t id);
529
542 void (*playing_order_recv)(struct media_player *player, int err, uint8_t order);
543
555 void (*playing_order_write)(struct media_player *player, int err, uint8_t order);
556
568 void (*playing_orders_supported_recv)(struct media_player *player, int err,
569 uint16_t orders);
570
583 void (*media_state_recv)(struct media_player *player, int err, uint8_t state);
584
596 void (*command_send)(struct media_player *player, int err, const struct mpl_cmd *cmd);
597
609 void (*command_recv)(struct media_player *player, int err,
610 const struct mpl_cmd_ntf *result);
611
623 void (*commands_supported_recv)(struct media_player *player, int err, uint32_t opcodes);
624
636 void (*search_send)(struct media_player *player, int err, const struct mpl_search *search);
637
654 void (*search_recv)(struct media_player *player, int err, uint8_t result_code);
655
667 void (*search_results_id_recv)(struct media_player *player, int err, uint64_t id);
668
680 void (*content_ctrl_id_recv)(struct media_player *player, int err, uint8_t ccid);
681};
682
691
709int media_proxy_ctrl_discover_player(struct bt_conn *conn);
710
718int media_proxy_ctrl_get_player_name(struct media_player *player);
719
735int media_proxy_ctrl_get_icon_id(struct media_player *player);
736
744int media_proxy_ctrl_get_icon_url(struct media_player *player);
745
753int media_proxy_ctrl_get_track_title(struct media_player *player);
754
765int media_proxy_ctrl_get_track_duration(struct media_player *player);
766
778int media_proxy_ctrl_get_track_position(struct media_player *player);
779
794int media_proxy_ctrl_set_track_position(struct media_player *player, int32_t position);
795
813int media_proxy_ctrl_get_playback_speed(struct media_player *player);
814
834int media_proxy_ctrl_set_playback_speed(struct media_player *player, int8_t speed);
835
852int media_proxy_ctrl_get_seeking_speed(struct media_player *player);
853
869int media_proxy_ctrl_get_track_segments_id(struct media_player *player);
870
886int media_proxy_ctrl_get_current_track_id(struct media_player *player);
887
901int media_proxy_ctrl_set_current_track_id(struct media_player *player, uint64_t id);
902
915int media_proxy_ctrl_get_next_track_id(struct media_player *player);
916
929int media_proxy_ctrl_set_next_track_id(struct media_player *player, uint64_t id);
930
948int media_proxy_ctrl_get_parent_group_id(struct media_player *player);
949
965int media_proxy_ctrl_get_current_group_id(struct media_player *player);
966
980int media_proxy_ctrl_set_current_group_id(struct media_player *player, uint64_t id);
981
989int media_proxy_ctrl_get_playing_order(struct media_player *player);
990
1001int media_proxy_ctrl_set_playing_order(struct media_player *player, uint8_t order);
1002
1013int media_proxy_ctrl_get_playing_orders_supported(struct media_player *player);
1014
1024int media_proxy_ctrl_get_media_state(struct media_player *player);
1025
1039int media_proxy_ctrl_send_command(struct media_player *player, const struct mpl_cmd *command);
1040
1051int media_proxy_ctrl_get_commands_supported(struct media_player *player);
1052
1072int media_proxy_ctrl_send_search(struct media_player *player, const struct mpl_search *search);
1073
1090int media_proxy_ctrl_get_search_results_id(struct media_player *player);
1091
1104
1105
1106/* PUBLIC API FOR PLAYERS */
1107
1113
1119 const char *(*get_player_name)(void);
1120
1133
1141 const char *(*get_icon_url)(void);
1142
1148 const char *(*get_track_title)(void);
1149
1159
1170
1182 void (*set_track_position)(int32_t position);
1183
1200
1218
1234
1247
1260
1270
1280
1289
1304
1317
1327
1334
1345
1358
1369
1380 void (*send_command)(const struct mpl_cmd *command);
1381
1393
1403 void (*send_search)(const struct mpl_search *search);
1404
1418
1429};
1430
1445
1446/* Initialize player - TODO: Move to player header file */
1448
1449/* TODO: Find best location for this call, and move this one also */
1450struct bt_ots *bt_mcs_get_ots(void);
1451
1452/* Callbacks from the player to the media proxy */
1453
1460
1469
1481
1498
1507
1516
1526
1535
1544
1553
1562
1571
1582void media_proxy_pl_command_cb(const struct mpl_cmd_ntf *cmd_ntf);
1583
1592
1607
1617
1618#ifdef __cplusplus
1619}
1620#endif
1621 /* End of group bt_media_proxy */
1623
1624#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: http_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:250
void(* search_recv)(struct media_player *player, int err, uint8_t result_code)
Search result code receive callback.
Definition: media_proxy.h:654
void(* commands_supported_recv)(struct media_player *player, int err, uint32_t opcodes)
Commands supported receive callback.
Definition: media_proxy.h:623
void(* next_track_id_write)(struct media_player *player, int err, uint64_t id)
Next Track Object ID write callback.
Definition: media_proxy.h:488
void(* content_ctrl_id_recv)(struct media_player *player, int err, uint8_t ccid)
Content Control ID receive callback.
Definition: media_proxy.h:680
void(* seeking_speed_recv)(struct media_player *player, int err, int8_t speed)
Seeking Speed receive callback.
Definition: media_proxy.h:421
void(* parent_group_id_recv)(struct media_player *player, int err, uint64_t id)
Parent Group Object ID receive callback.
Definition: media_proxy.h:501
void(* icon_url_recv)(struct media_player *player, int err, const char *url)
Media Player Icon URL receive callback.
Definition: media_proxy.h:317
void(* track_position_write)(struct media_player *player, int err, int32_t position)
Track Position write callback.
Definition: media_proxy.h:381
void(* next_track_id_recv)(struct media_player *player, int err, uint64_t id)
Next Track Object ID receive callback.
Definition: media_proxy.h:475
void(* playback_speed_recv)(struct media_player *player, int err, int8_t speed)
Playback Speed receive callback.
Definition: media_proxy.h:395
void(* current_track_id_write)(struct media_player *player, int err, uint64_t id)
Current Track Object ID write callback.
Definition: media_proxy.h:461
void(* playing_order_write)(struct media_player *player, int err, uint8_t order)
Playing Order write callback.
Definition: media_proxy.h:555
void(* track_position_recv)(struct media_player *player, int err, int32_t position)
Track Position receive callback.
Definition: media_proxy.h:368
void(* playing_orders_supported_recv)(struct media_player *player, int err, uint16_t orders)
Playing Orders Supported receive callback.
Definition: media_proxy.h:568
void(* current_group_id_recv)(struct media_player *player, int err, uint64_t id)
Current Group Object ID receive callback.
Definition: media_proxy.h:515
void(* track_duration_recv)(struct media_player *player, int err, int32_t duration)
Track Duration receive callback.
Definition: media_proxy.h:354
void(* command_send)(struct media_player *player, int err, const struct mpl_cmd *cmd)
Command send callback.
Definition: media_proxy.h:596
void(* command_recv)(struct media_player *player, int err, const struct mpl_cmd_ntf *result)
Command result receive callback.
Definition: media_proxy.h:609
void(* playing_order_recv)(struct media_player *player, int err, uint8_t order)
Playing Order receive callback.
Definition: media_proxy.h:542
void(* player_name_recv)(struct media_player *player, int err, const char *name)
Media Player Name receive callback.
Definition: media_proxy.h:291
void(* current_track_id_recv)(struct media_player *player, int err, uint64_t id)
Current Track Object ID receive callback.
Definition: media_proxy.h:448
void(* track_segments_id_recv)(struct media_player *player, int err, uint64_t id)
Track Segments Object ID receive callback.
Definition: media_proxy.h:434
void(* icon_id_recv)(struct media_player *player, int err, uint64_t id)
Media Player Icon Object ID receive callback.
Definition: media_proxy.h:304
void(* track_title_recv)(struct media_player *player, int err, const char *title)
Track Title receive callback.
Definition: media_proxy.h:341
void(* current_group_id_write)(struct media_player *player, int err, uint64_t id)
Current Group Object ID write callback.
Definition: media_proxy.h:528
void(* media_state_recv)(struct media_player *player, int err, uint8_t state)
Media State receive callback.
Definition: media_proxy.h:583
void(* playback_speed_write)(struct media_player *player, int err, int8_t speed)
Playback Speed write callback.
Definition: media_proxy.h:408
void(* track_changed_recv)(struct media_player *player, int err)
Track changed receive callback.
Definition: media_proxy.h:328
void(* search_send)(struct media_player *player, int err, const struct mpl_search *search)
Search send callback.
Definition: media_proxy.h:636
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:667
void(* local_player_instance)(struct media_player *player, int err)
Media Player Instance callback.
Definition: media_proxy.h:263
Available calls in a player, that the media proxy can call.
Definition: media_proxy.h:1112
void(* set_track_position)(int32_t position)
Set Track Position.
Definition: media_proxy.h:1182
int32_t(* get_track_position)(void)
Read Track Position.
Definition: media_proxy.h:1169
uint64_t(* get_parent_group_id)(void)
Read Parent Group Object ID.
Definition: media_proxy.h:1303
int32_t(* get_track_duration)(void)
Read Track Duration.
Definition: media_proxy.h:1158
void(* send_search)(const struct mpl_search *search)
Set Search.
Definition: media_proxy.h:1403
void(* set_current_track_id)(uint64_t id)
Set Current Track Object ID.
Definition: media_proxy.h:1269
void(* set_current_group_id)(uint64_t id)
Set Current Group Object ID.
Definition: media_proxy.h:1326
uint8_t(* get_content_ctrl_id)(void)
Read Content Control ID.
Definition: media_proxy.h:1428
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:1217
uint64_t(* get_current_track_id)(void)
Read Current Track Object ID.
Definition: media_proxy.h:1259
uint64_t(* get_track_segments_id)(void)
Read Current Track Segments Object ID.
Definition: media_proxy.h:1246
uint8_t(* get_playing_order)(void)
Read Playing Order.
Definition: media_proxy.h:1333
uint64_t(* get_current_group_id)(void)
Read Current Group Object ID.
Definition: media_proxy.h:1316
uint16_t(* get_playing_orders_supported)(void)
Read Playing Orders Supported.
Definition: media_proxy.h:1357
void(* send_command)(const struct mpl_cmd *command)
Send Command.
Definition: media_proxy.h:1380
void(* set_next_track_id)(uint64_t id)
Set Next Track Object ID.
Definition: media_proxy.h:1288
uint64_t(* get_icon_id)(void)
Read Icon Object ID.
Definition: media_proxy.h:1132
void(* set_playing_order)(uint8_t order)
Set Playing Order.
Definition: media_proxy.h:1344
uint64_t(* get_search_results_id)(void)
Read Search Results Object ID.
Definition: media_proxy.h:1417
uint32_t(* get_commands_supported)(void)
Read Commands Supported.
Definition: media_proxy.h:1392
int8_t(* get_playback_speed)(void)
Get Playback Speed.
Definition: media_proxy.h:1199
int8_t(* get_seeking_speed)(void)
Get Seeking Speed.
Definition: media_proxy.h:1233
uint64_t(* get_next_track_id)(void)
Read Next Track Object ID.
Definition: media_proxy.h:1279
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