Bluetooth: Audio: Add media player icon URL changed callback
Add support for notifying MCS a player icon URL change. Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
parent
4d595014ab
commit
281d0a3fc8
7 changed files with 47 additions and 0 deletions
|
@ -1457,6 +1457,15 @@ struct bt_ots *bt_mcs_get_ots(void);
|
|||
*/
|
||||
void media_proxy_pl_name_cb(const char *name);
|
||||
|
||||
/**
|
||||
* @brief Player icon URL changed callback
|
||||
*
|
||||
* To be called when the player's icon URL is changed.
|
||||
*
|
||||
* @param url The URL of the player's icon
|
||||
*/
|
||||
void media_proxy_pl_icon_url_cb(const char *url);
|
||||
|
||||
/**
|
||||
* @brief Track changed callback
|
||||
*
|
||||
|
|
|
@ -830,6 +830,11 @@ void media_proxy_sctrl_player_name_cb(const char *name)
|
|||
notify_string(BT_UUID_MCS_PLAYER_NAME, name);
|
||||
}
|
||||
|
||||
void media_proxy_sctrl_icon_url_cb(const char *name)
|
||||
{
|
||||
/* TODO*/
|
||||
}
|
||||
|
||||
void media_proxy_sctrl_track_changed_cb(void)
|
||||
{
|
||||
LOG_DBG("Notifying track change");
|
||||
|
@ -992,6 +997,7 @@ int bt_mcs_init(struct bt_ots_cb *ots_cbs)
|
|||
|
||||
/* Set up the callback structure */
|
||||
cbs.player_name = media_proxy_sctrl_player_name_cb;
|
||||
cbs.icon_url = media_proxy_sctrl_icon_url_cb;
|
||||
cbs.track_changed = media_proxy_sctrl_track_changed_cb;
|
||||
cbs.track_title = media_proxy_sctrl_track_title_cb;
|
||||
cbs.track_duration = media_proxy_sctrl_track_duration_cb;
|
||||
|
|
|
@ -1891,6 +1891,17 @@ void media_proxy_pl_name_cb(const char *name)
|
|||
}
|
||||
}
|
||||
|
||||
void media_proxy_pl_icon_url_cb(const char *url)
|
||||
{
|
||||
mprx.sctrlr.cbs->icon_url(url);
|
||||
|
||||
if (mprx.ctrlr.cbs && mprx.ctrlr.cbs->player_name_recv) {
|
||||
mprx.ctrlr.cbs->icon_url_recv(&mprx.local_player, 0, url);
|
||||
} else {
|
||||
LOG_DBG("No ctrlr player icon URL callback");
|
||||
}
|
||||
}
|
||||
|
||||
void media_proxy_pl_track_changed_cb(void)
|
||||
{
|
||||
mprx.sctrlr.cbs->track_changed();
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
struct media_proxy_sctrl_cbs {
|
||||
void (*player_name)(const char *name);
|
||||
|
||||
void (*icon_url)(const char *url);
|
||||
|
||||
void (*track_changed)(void);
|
||||
|
||||
void (*track_title)(const char *title);
|
||||
|
|
|
@ -2893,6 +2893,11 @@ void mpl_test_player_name_changed_cb(void)
|
|||
media_proxy_pl_name_cb(pl.name);
|
||||
}
|
||||
|
||||
void mpl_test_player_icon_url_changed_cb(void)
|
||||
{
|
||||
media_proxy_pl_icon_url_cb(pl.icon_url);
|
||||
}
|
||||
|
||||
void mpl_test_track_changed_cb(void)
|
||||
{
|
||||
media_proxy_pl_track_changed_cb();
|
||||
|
|
|
@ -103,6 +103,9 @@ void mpl_test_media_state_set(uint8_t state);
|
|||
/** Trigger player name changed callback */
|
||||
void mpl_test_player_name_changed_cb(void);
|
||||
|
||||
/** Trigger player name changed callback */
|
||||
void mpl_test_player_icon_url_changed_cb(void);
|
||||
|
||||
/* Trigger track changed callback */
|
||||
void mpl_test_track_changed_cb(void);
|
||||
|
||||
|
|
|
@ -80,6 +80,14 @@ int cmd_mpl_test_player_name_cb(const struct shell *sh, size_t argc,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int cmd_mpl_test_player_icon_url_cb(const struct shell *sh, size_t argc,
|
||||
char *argv[])
|
||||
{
|
||||
mpl_test_player_icon_url_changed_cb();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cmd_mpl_test_track_changed_cb(const struct shell *sh, size_t argc,
|
||||
char *argv[])
|
||||
{
|
||||
|
@ -211,6 +219,9 @@ SHELL_STATIC_SUBCMD_SET_CREATE(mpl_cmds,
|
|||
SHELL_CMD_ARG(player_name_changed_cb, NULL,
|
||||
"Trigger Player Name changed callback (test)",
|
||||
cmd_mpl_test_player_name_cb, 1, 0),
|
||||
SHELL_CMD_ARG(player_icon_url_changed_cb, NULL,
|
||||
"Trigger Player icon URL changed callback (test)",
|
||||
cmd_mpl_test_player_icon_url_cb, 1, 0),
|
||||
SHELL_CMD_ARG(track_changed_cb, NULL,
|
||||
"Trigger Track Changed callback (test)",
|
||||
cmd_mpl_test_track_changed_cb, 1, 0),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue