Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
34#include <stdbool.h>
35#include <zephyr/types.h>
36#include <bluetooth/bluetooth.h>
37
38/* TODO: Remove dependency on mcs.h */
39#include "mcs.h"
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45
49struct mpl_cmd {
53};
54
61};
62
66struct mpl_sci {
70};
71
75struct mpl_search {
77 char search[SEARCH_LEN_MAX]; /* Concatenated search control items */
78}; /* - (type, length, param) */
79
85#define MEDIA_PROXY_PLAYBACK_SPEED_MIN -128
86#define MEDIA_PROXY_PLAYBACK_SPEED_QUARTER -128
87#define MEDIA_PROXY_PLAYBACK_SPEED_HALF -64
88#define MEDIA_PROXY_PLAYBACK_SPEED_UNITY 0
89#define MEDIA_PROXY_PLAYBACK_SPEED_DOUBLE 64
90#define MEDIA_PROXY_PLAYBACK_SPEED_MAX 127
91
99#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_MAX 64
100#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_MIN 4
101#define MEDIA_PROXY_SEEKING_SPEED_FACTOR_ZERO 0
102
106#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_ONCE 0x01
107#define MEDIA_PROXY_PLAYING_ORDER_SINGLE_REPEAT 0x02
108#define MEDIA_PROXY_PLAYING_ORDER_INORDER_ONCE 0x03
109#define MEDIA_PROXY_PLAYING_ORDER_INORDER_REPEAT 0x04
110#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_ONCE 0x05
111#define MEDIA_PROXY_PLAYING_ORDER_OLDEST_REPEAT 0x06
112#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_ONCE 0x07
113#define MEDIA_PROXY_PLAYING_ORDER_NEWEST_REPEAT 0x08
114#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_ONCE 0x09
115#define MEDIA_PROXY_PLAYING_ORDER_SHUFFLE_REPEAT 0x0a
116
123#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_ONCE BIT(0)
124#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SINGLE_REPEAT BIT(1)
125#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_ONCE BIT(2)
126#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_INORDER_REPEAT BIT(3)
127#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_ONCE BIT(4)
128#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_OLDEST_REPEAT BIT(5)
129#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_ONCE BIT(6)
130#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_NEWEST_REPEAT BIT(7)
131#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_ONCE BIT(8)
132#define MEDIA_PROXY_PLAYING_ORDERS_SUPPORTED_SHUFFLE_REPEAT BIT(9)
133
137#define MEDIA_PROXY_STATE_INACTIVE 0x00
138#define MEDIA_PROXY_STATE_PLAYING 0x01
139#define MEDIA_PROXY_STATE_PAUSED 0x02
140#define MEDIA_PROXY_STATE_SEEKING 0x03
141#define MEDIA_PROXY_STATE_LAST 0x04
142
146#define MEDIA_PROXY_OP_PLAY 0x01
147#define MEDIA_PROXY_OP_PAUSE 0x02
148#define MEDIA_PROXY_OP_FAST_REWIND 0x03
149#define MEDIA_PROXY_OP_FAST_FORWARD 0x04
150#define MEDIA_PROXY_OP_STOP 0x05
151
152#define MEDIA_PROXY_OP_MOVE_RELATIVE 0x10
153
154#define MEDIA_PROXY_OP_PREV_SEGMENT 0x20
155#define MEDIA_PROXY_OP_NEXT_SEGMENT 0x21
156#define MEDIA_PROXY_OP_FIRST_SEGMENT 0x22
157#define MEDIA_PROXY_OP_LAST_SEGMENT 0x23
158#define MEDIA_PROXY_OP_GOTO_SEGMENT 0x24
159
160#define MEDIA_PROXY_OP_PREV_TRACK 0x30
161#define MEDIA_PROXY_OP_NEXT_TRACK 0x31
162#define MEDIA_PROXY_OP_FIRST_TRACK 0x32
163#define MEDIA_PROXY_OP_LAST_TRACK 0x33
164#define MEDIA_PROXY_OP_GOTO_TRACK 0x34
165
166#define MEDIA_PROXY_OP_PREV_GROUP 0x40
167#define MEDIA_PROXY_OP_NEXT_GROUP 0x41
168#define MEDIA_PROXY_OP_FIRST_GROUP 0x42
169#define MEDIA_PROXY_OP_LAST_GROUP 0x43
170#define MEDIA_PROXY_OP_GOTO_GROUP 0x44
171
175#define MEDIA_PROXY_OPCODES_SUPPORTED_LEN 4
176
180#define MEDIA_PROXY_OP_SUP_PLAY BIT(0)
181#define MEDIA_PROXY_OP_SUP_PAUSE BIT(1)
182#define MEDIA_PROXY_OP_SUP_FAST_REWIND BIT(2)
183#define MEDIA_PROXY_OP_SUP_FAST_FORWARD BIT(3)
184#define MEDIA_PROXY_OP_SUP_STOP BIT(4)
185
186#define MEDIA_PROXY_OP_SUP_MOVE_RELATIVE BIT(5)
187
188#define MEDIA_PROXY_OP_SUP_PREV_SEGMENT BIT(6)
189#define MEDIA_PROXY_OP_SUP_NEXT_SEGMENT BIT(7)
190#define MEDIA_PROXY_OP_SUP_FIRST_SEGMENT BIT(8)
191#define MEDIA_PROXY_OP_SUP_LAST_SEGMENT BIT(9)
192#define MEDIA_PROXY_OP_SUP_GOTO_SEGMENT BIT(10)
193
194#define MEDIA_PROXY_OP_SUP_PREV_TRACK BIT(11)
195#define MEDIA_PROXY_OP_SUP_NEXT_TRACK BIT(12)
196#define MEDIA_PROXY_OP_SUP_FIRST_TRACK BIT(13)
197#define MEDIA_PROXY_OP_SUP_LAST_TRACK BIT(14)
198#define MEDIA_PROXY_OP_SUP_GOTO_TRACK BIT(15)
199
200#define MEDIA_PROXY_OP_SUP_PREV_GROUP BIT(16)
201#define MEDIA_PROXY_OP_SUP_NEXT_GROUP BIT(17)
202#define MEDIA_PROXY_OP_SUP_FIRST_GROUP BIT(18)
203#define MEDIA_PROXY_OP_SUP_LAST_GROUP BIT(19)
204#define MEDIA_PROXY_OP_SUP_GOTO_GROUP BIT(20)
205
209#define MEDIA_PROXY_CMD_SUCCESS 0x01
210#define MEDIA_PROXY_CMD_NOT_SUPPORTED 0x02
211#define MEDIA_PROXY_CMD_PLAYER_INACTIVE 0x03
212#define MEDIA_PROXY_CMD_CANNOT_BE_COMPLETED 0x04
213
217#define MEDIA_PROXY_SEARCH_TYPE_TRACK_NAME 0x01
218#define MEDIA_PROXY_SEARCH_TYPE_ARTIST_NAME 0x02
219#define MEDIA_PROXY_SEARCH_TYPE_ALBUM_NAME 0x03
220#define MEDIA_PROXY_SEARCH_TYPE_GROUP_NAME 0x04
221#define MEDIA_PROXY_SEARCH_TYPE_EARLIEST_YEAR 0x05
222#define MEDIA_PROXY_SEARCH_TYPE_LATEST_YEAR 0x06
223#define MEDIA_PROXY_SEARCH_TYPE_GENRE 0x07
224#define MEDIA_PROXY_SEARCH_TYPE_ONLY_TRACKS 0x08
225#define MEDIA_PROXY_SEARCH_TYPE_ONLY_GROUPS 0x09
226
230#define MEDIA_PROXY_SEARCH_SUCCESS 0x01
231#define MEDIA_PROXY_SEARCH_FAILURE 0x02
232
233
237struct media_player;
238
239/* PUBLIC API FOR CONTROLLERS */
240
246
258 void (*local_player_instance)(struct media_player *player, int err);
259
271 void (*discover_player)(struct media_player *player, int err);
272
284 void (*player_name_recv)(struct media_player *player, int err, const char *name);
285
297 void (*icon_id_recv)(struct media_player *player, int err, uint64_t id);
298
310 void (*icon_url_recv)(struct media_player *player, int err, const char *url);
311
321 void (*track_changed_recv)(struct media_player *player, int err);
322
334 void (*track_title_recv)(struct media_player *player, int err, const char *title);
335
347 void (*track_duration_recv)(struct media_player *player, int err, int32_t duration);
348
361 void (*track_position_recv)(struct media_player *player, int err, int32_t position);
362
374 void (*track_position_write)(struct media_player *player, int err, int32_t position);
375
388 void (*playback_speed_recv)(struct media_player *player, int err, int8_t speed);
389
401 void (*playback_speed_write)(struct media_player *player, int err, int8_t speed);
402
414 void (*seeking_speed_recv)(struct media_player *player, int err, int8_t speed);
415
427 void (*track_segments_id_recv)(struct media_player *player, int err, uint64_t id);
428
441 void (*current_track_id_recv)(struct media_player *player, int err, uint64_t id);
442
454 void (*current_track_id_write)(struct media_player *player, int err, uint64_t id);
455
468 void (*next_track_id_recv)(struct media_player *player, int err, uint64_t id);
469
481 void (*next_track_id_write)(struct media_player *player, int err, uint64_t id);
482
494 void (*parent_group_id_recv)(struct media_player *player, int err, uint64_t id);
495
508 void (*current_group_id_recv)(struct media_player *player, int err, uint64_t id);
509
521 void (*current_group_id_write)(struct media_player *player, int err, uint64_t id);
522
535 void (*playing_order_recv)(struct media_player *player, int err, uint8_t order);
536
548 void (*playing_order_write)(struct media_player *player, int err, uint8_t order);
549
561 void (*playing_orders_supported_recv)(struct media_player *player, int err,
562 uint16_t orders);
563
576 void (*media_state_recv)(struct media_player *player, int err, uint8_t state);
577
589 void (*command_send)(struct media_player *player, int err, struct mpl_cmd cmd);
590
602 void (*command_recv)(struct media_player *player, int err, struct mpl_cmd_ntf result);
603
615 void (*commands_supported_recv)(struct media_player *player, int err, uint32_t opcodes);
616
628 void (*search_send)(struct media_player *player, int err, struct mpl_search search);
629
646 void (*search_recv)(struct media_player *player, int err, uint8_t result_code);
647
659 void (*search_results_id_recv)(struct media_player *player, int err, uint64_t id);
660
672 void (*content_ctrl_id_recv)(struct media_player *player, int err, uint8_t ccid);
673};
674
683
701int media_proxy_ctrl_discover_player(struct bt_conn *conn);
702
710int media_proxy_ctrl_get_player_name(struct media_player *player);
711
727int media_proxy_ctrl_get_icon_id(struct media_player *player);
728
736int media_proxy_ctrl_get_icon_url(struct media_player *player);
737
745int media_proxy_ctrl_get_track_title(struct media_player *player);
746
757int media_proxy_ctrl_get_track_duration(struct media_player *player);
758
770int media_proxy_ctrl_get_track_position(struct media_player *player);
771
786int media_proxy_ctrl_set_track_position(struct media_player *player, int32_t position);
787
805int media_proxy_ctrl_get_playback_speed(struct media_player *player);
806
826int media_proxy_ctrl_set_playback_speed(struct media_player *player, int8_t speed);
827
844int media_proxy_ctrl_get_seeking_speed(struct media_player *player);
845
861int media_proxy_ctrl_get_track_segments_id(struct media_player *player);
862
878int media_proxy_ctrl_get_current_track_id(struct media_player *player);
879
893int media_proxy_ctrl_set_current_track_id(struct media_player *player, uint64_t id);
894
907int media_proxy_ctrl_get_next_track_id(struct media_player *player);
908
921int media_proxy_ctrl_set_next_track_id(struct media_player *player, uint64_t id);
922
940int media_proxy_ctrl_get_parent_group_id(struct media_player *player);
941
957int media_proxy_ctrl_get_current_group_id(struct media_player *player);
958
972int media_proxy_ctrl_set_current_group_id(struct media_player *player, uint64_t id);
973
981int media_proxy_ctrl_get_playing_order(struct media_player *player);
982
993int media_proxy_ctrl_set_playing_order(struct media_player *player, uint8_t order);
994
1005int media_proxy_ctrl_get_playing_orders_supported(struct media_player *player);
1006
1016int media_proxy_ctrl_get_media_state(struct media_player *player);
1017
1031int media_proxy_ctrl_send_command(struct media_player *player, struct mpl_cmd command);
1032
1043int media_proxy_ctrl_get_commands_supported(struct media_player *player);
1044
1064int media_proxy_ctrl_send_search(struct media_player *player, struct mpl_search search);
1065
1082int media_proxy_ctrl_get_search_results_id(struct media_player *player);
1083
1096
1097
1098/* PUBLIC API FOR PLAYERS */
1099
1105
1111 const char *(*get_player_name)(void);
1112
1125
1133 const char *(*get_icon_url)(void);
1134
1140 const char *(*get_track_title)(void);
1141
1151
1162
1174 void (*set_track_position)(int32_t position);
1175
1192
1210
1226
1239
1252
1262
1272
1281
1296
1309
1319
1326
1337
1350
1361
1372 void (*send_command)(struct mpl_cmd command);
1373
1385
1396
1410
1421};
1422
1437
1438/* Initialize player - TODO: Move to player header file */
1440
1441/* TODO: Find best location for this call, and move this one also */
1442struct bt_ots *bt_mcs_get_ots(void);
1443
1444/* Callbacks from the player to the media proxy */
1445
1452
1461
1473
1490
1499
1508
1518
1527
1536
1545
1554
1563
1575
1584
1599
1609
1610#ifdef __cplusplus
1611}
1612#endif
1613
1614#endif /* ZEPHYR_INCLUDE_BLUETOOTH_AUDIO_MEDIA_PROXY_H_ */
Bluetooth subsystem core APIs.
#define SEARCH_PARAM_MAX
Definition: mcs.h:170
#define SEARCH_LEN_MAX
Definition: mcs.h:168
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:30
int media_proxy_ctrl_get_playing_orders_supported(struct media_player *player)
Read Playing Orders Supported.
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.
void media_proxy_pl_command_cb(struct mpl_cmd_ntf cmd_ntf)
Command callback.
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_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_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_send_search(struct media_player *player, struct mpl_search search)
Set Search.
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.
int media_proxy_ctrl_send_command(struct media_player *player, struct mpl_cmd command)
Send Command.
struct bt_ots * bt_mcs_get_ots(void)
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__INT32_TYPE__ int32_t
Definition: stdint.h:44
__UINT64_TYPE__ uint64_t
Definition: stdint.h:61
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
__INT8_TYPE__ int8_t
Definition: stdint.h:42
Callbacks to a controller, from the media proxy.
Definition: media_proxy.h:245
void(* search_recv)(struct media_player *player, int err, uint8_t result_code)
Search result code receive callback.
Definition: media_proxy.h:646
void(* commands_supported_recv)(struct media_player *player, int err, uint32_t opcodes)
Commands supported receive callback.
Definition: media_proxy.h:615
void(* next_track_id_write)(struct media_player *player, int err, uint64_t id)
Next Track Object ID write callback.
Definition: media_proxy.h:481
void(* content_ctrl_id_recv)(struct media_player *player, int err, uint8_t ccid)
Content Control ID receive callback.
Definition: media_proxy.h:672
void(* seeking_speed_recv)(struct media_player *player, int err, int8_t speed)
Seeking Speed receive callback.
Definition: media_proxy.h:414
void(* parent_group_id_recv)(struct media_player *player, int err, uint64_t id)
Parent Group Object ID receive callback.
Definition: media_proxy.h:494
void(* icon_url_recv)(struct media_player *player, int err, const char *url)
Media Player Icon URL receive callback.
Definition: media_proxy.h:310
void(* track_position_write)(struct media_player *player, int err, int32_t position)
Track Position write callback.
Definition: media_proxy.h:374
void(* next_track_id_recv)(struct media_player *player, int err, uint64_t id)
Next Track Object ID receive callback.
Definition: media_proxy.h:468
void(* playback_speed_recv)(struct media_player *player, int err, int8_t speed)
Playback Speed receive callback.
Definition: media_proxy.h:388
void(* current_track_id_write)(struct media_player *player, int err, uint64_t id)
Current Track Object ID write callback.
Definition: media_proxy.h:454
void(* playing_order_write)(struct media_player *player, int err, uint8_t order)
Playing Order write callback.
Definition: media_proxy.h:548
void(* track_position_recv)(struct media_player *player, int err, int32_t position)
Track Position receive callback.
Definition: media_proxy.h:361
void(* command_send)(struct media_player *player, int err, struct mpl_cmd cmd)
Command send callback.
Definition: media_proxy.h:589
void(* playing_orders_supported_recv)(struct media_player *player, int err, uint16_t orders)
Playing Orders Supported receive callback.
Definition: media_proxy.h:561
void(* current_group_id_recv)(struct media_player *player, int err, uint64_t id)
Current Group Object ID receive callback.
Definition: media_proxy.h:508
void(* track_duration_recv)(struct media_player *player, int err, int32_t duration)
Track Duration receive callback.
Definition: media_proxy.h:347
void(* discover_player)(struct media_player *player, int err)
Discover Player Instance callback.
Definition: media_proxy.h:271
void(* search_send)(struct media_player *player, int err, struct mpl_search search)
Search send callback.
Definition: media_proxy.h:628
void(* playing_order_recv)(struct media_player *player, int err, uint8_t order)
Playing Order receive callback.
Definition: media_proxy.h:535
void(* player_name_recv)(struct media_player *player, int err, const char *name)
Media Player Name receive callback.
Definition: media_proxy.h:284
void(* current_track_id_recv)(struct media_player *player, int err, uint64_t id)
Current Track Object ID receive callback.
Definition: media_proxy.h:441
void(* track_segments_id_recv)(struct media_player *player, int err, uint64_t id)
Track Segments Object ID receive callback.
Definition: media_proxy.h:427
void(* icon_id_recv)(struct media_player *player, int err, uint64_t id)
Media Player Icon Object ID receive callback.
Definition: media_proxy.h:297
void(* track_title_recv)(struct media_player *player, int err, const char *title)
Track Title receive callback.
Definition: media_proxy.h:334
void(* current_group_id_write)(struct media_player *player, int err, uint64_t id)
Current Group Object ID write callback.
Definition: media_proxy.h:521
void(* media_state_recv)(struct media_player *player, int err, uint8_t state)
Media State receive callback.
Definition: media_proxy.h:576
void(* playback_speed_write)(struct media_player *player, int err, int8_t speed)
Playback Speed write callback.
Definition: media_proxy.h:401
void(* track_changed_recv)(struct media_player *player, int err)
Track changed receive callback.
Definition: media_proxy.h:321
void(* command_recv)(struct media_player *player, int err, struct mpl_cmd_ntf result)
Command result receive callback.
Definition: media_proxy.h:602
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:659
void(* local_player_instance)(struct media_player *player, int err)
Media Player Instance callback.
Definition: media_proxy.h:258
Availalable calls in a player, that the media proxy can call.
Definition: media_proxy.h:1104
void(* set_track_position)(int32_t position)
Set Track Position.
Definition: media_proxy.h:1174
int32_t(* get_track_position)(void)
Read Track Position.
Definition: media_proxy.h:1161
uint64_t(* get_parent_group_id)(void)
Read Parent Group Object ID.
Definition: media_proxy.h:1295
int32_t(* get_track_duration)(void)
Read Track Duration.
Definition: media_proxy.h:1150
void(* set_current_track_id)(uint64_t id)
Set Current Track Object ID.
Definition: media_proxy.h:1261
void(* set_current_group_id)(uint64_t id)
Set Current Group Object ID.
Definition: media_proxy.h:1318
uint8_t(* get_content_ctrl_id)(void)
Read Content Control ID.
Definition: media_proxy.h:1420
uint8_t(* get_media_state)(void)
Read Media State.
Definition: media_proxy.h:1360
void(* send_command)(struct mpl_cmd command)
Send Command.
Definition: media_proxy.h:1372
void(* set_playback_speed)(int8_t speed)
Set Playback Speed.
Definition: media_proxy.h:1209
uint64_t(* get_current_track_id)(void)
Read Current Track Object ID.
Definition: media_proxy.h:1251
uint64_t(* get_track_segments_id)(void)
Read Current Track Segments Object ID.
Definition: media_proxy.h:1238
void(* send_search)(struct mpl_search search)
Set Search.
Definition: media_proxy.h:1395
uint8_t(* get_playing_order)(void)
Read Playing Order.
Definition: media_proxy.h:1325
uint64_t(* get_current_group_id)(void)
Read Current Group Object ID.
Definition: media_proxy.h:1308
uint16_t(* get_playing_orders_supported)(void)
Read Playing Orders Supported.
Definition: media_proxy.h:1349
void(* set_next_track_id)(uint64_t id)
Set Next Track Object ID.
Definition: media_proxy.h:1280
uint64_t(* get_icon_id)(void)
Read Icon Object ID.
Definition: media_proxy.h:1124
void(* set_playing_order)(uint8_t order)
Set Playing Order.
Definition: media_proxy.h:1336
uint64_t(* get_search_results_id)(void)
Read Search Results Object ID.
Definition: media_proxy.h:1409
uint32_t(* get_commands_supported)(void)
Read Commands Supported.
Definition: media_proxy.h:1384
int8_t(* get_playback_speed)(void)
Get Playback Speed.
Definition: media_proxy.h:1191
int8_t(* get_seeking_speed)(void)
Get Seeking Speed.
Definition: media_proxy.h:1225
uint64_t(* get_next_track_id)(void)
Read Next Track Object ID.
Definition: media_proxy.h:1271
Media command notification.
Definition: media_proxy.h:58
uint8_t result_code
Definition: media_proxy.h:60
uint8_t requested_opcode
Definition: media_proxy.h:59
Media proxy module.
Definition: media_proxy.h:49
uint8_t opcode
Definition: media_proxy.h:50
bool use_param
Definition: media_proxy.h:51
int32_t param
Definition: media_proxy.h:52
Search control item.
Definition: media_proxy.h:66
uint8_t type
Definition: media_proxy.h:68
uint8_t len
Definition: media_proxy.h:67
char param[62]
Definition: media_proxy.h:69
Search.
Definition: media_proxy.h:75
uint8_t len
Definition: media_proxy.h:76
char search[64]
Definition: media_proxy.h:77
Definition: errno.c:36