Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Media Control Client (MCC)

Bluetooth Media Control Client (MCC) interface. More...

Data Structures

struct  bt_mcc_cb
 Media control client callbacks. More...
 

Typedefs

typedef void(* bt_mcc_discover_mcs_cb) (struct bt_conn *conn, int err)
 Callback function for bt_mcc_discover_mcs()
 
typedef void(* bt_mcc_read_player_name_cb) (struct bt_conn *conn, int err, const char *name)
 Callback function for bt_mcc_read_player_name()
 
typedef void(* bt_mcc_read_icon_url_cb) (struct bt_conn *conn, int err, const char *icon_url)
 Callback function for bt_mcc_read_icon_url()
 
typedef void(* bt_mcc_track_changed_ntf_cb) (struct bt_conn *conn, int err)
 Callback function for track changed notifications.
 
typedef void(* bt_mcc_read_track_title_cb) (struct bt_conn *conn, int err, const char *title)
 Callback function for bt_mcc_read_track_title()
 
typedef void(* bt_mcc_read_track_duration_cb) (struct bt_conn *conn, int err, int32_t dur)
 Callback function for bt_mcc_read_track_duration()
 
typedef void(* bt_mcc_read_track_position_cb) (struct bt_conn *conn, int err, int32_t pos)
 Callback function for bt_mcc_read_track_position()
 
typedef void(* bt_mcc_set_track_position_cb) (struct bt_conn *conn, int err, int32_t pos)
 Callback function for bt_mcc_set_track_position()
 
typedef void(* bt_mcc_read_playback_speed_cb) (struct bt_conn *conn, int err, int8_t speed)
 Callback function for bt_mcc_read_playback_speed()
 
typedef void(* bt_mcc_set_playback_speed_cb) (struct bt_conn *conn, int err, int8_t speed)
 Callback function for bt_mcc_set_playback_speed()
 
typedef void(* bt_mcc_read_seeking_speed_cb) (struct bt_conn *conn, int err, int8_t speed)
 Callback function for bt_mcc_read_seeking_speed()
 
typedef void(* bt_mcc_read_playing_order_cb) (struct bt_conn *conn, int err, uint8_t order)
 Callback function for bt_mcc_read_playing_order()
 
typedef void(* bt_mcc_set_playing_order_cb) (struct bt_conn *conn, int err, uint8_t order)
 Callback function for bt_mcc_set_playing_order()
 
typedef void(* bt_mcc_read_playing_orders_supported_cb) (struct bt_conn *conn, int err, uint16_t orders)
 Callback function for bt_mcc_read_playing_orders_supported()
 
typedef void(* bt_mcc_read_media_state_cb) (struct bt_conn *conn, int err, uint8_t state)
 Callback function for bt_mcc_read_media_state()
 
typedef void(* bt_mcc_send_cmd_cb) (struct bt_conn *conn, int err, const struct mpl_cmd *cmd)
 Callback function for bt_mcc_send_cmd()
 
typedef void(* bt_mcc_cmd_ntf_cb) (struct bt_conn *conn, int err, const struct mpl_cmd_ntf *ntf)
 Callback function for command notifications.
 
typedef void(* bt_mcc_read_opcodes_supported_cb) (struct bt_conn *conn, int err, uint32_t opcodes)
 Callback function for bt_mcc_read_opcodes_supported()
 
typedef void(* bt_mcc_read_content_control_id_cb) (struct bt_conn *conn, int err, uint8_t ccid)
 Callback function for bt_mcc_read_content_control_id()
 

Functions

int bt_mcc_init (struct bt_mcc_cb *cb)
 Initialize Media Control Client.
 
int bt_mcc_discover_mcs (struct bt_conn *conn, bool subscribe)
 Discover Media Control Service.
 
int bt_mcc_read_player_name (struct bt_conn *conn)
 Read Media Player Name.
 
int bt_mcc_read_icon_url (struct bt_conn *conn)
 Read Icon Object URL.
 
int bt_mcc_read_track_title (struct bt_conn *conn)
 Read Track Title.
 
int bt_mcc_read_track_duration (struct bt_conn *conn)
 Read Track Duration.
 
int bt_mcc_read_track_position (struct bt_conn *conn)
 Read Track Position.
 
int bt_mcc_set_track_position (struct bt_conn *conn, int32_t pos)
 Set Track position.
 
int bt_mcc_read_playback_speed (struct bt_conn *conn)
 Read Playback speed.
 
int bt_mcc_set_playback_speed (struct bt_conn *conn, int8_t speed)
 Set Playback Speed.
 
int bt_mcc_read_seeking_speed (struct bt_conn *conn)
 Read Seeking speed.
 
int bt_mcc_read_playing_order (struct bt_conn *conn)
 Read Playing Order.
 
int bt_mcc_set_playing_order (struct bt_conn *conn, uint8_t order)
 Set Playing Order.
 
int bt_mcc_read_playing_orders_supported (struct bt_conn *conn)
 Read Playing Orders Supported.
 
int bt_mcc_read_media_state (struct bt_conn *conn)
 Read Media State.
 
int bt_mcc_send_cmd (struct bt_conn *conn, const struct mpl_cmd *cmd)
 Send a command.
 
int bt_mcc_read_opcodes_supported (struct bt_conn *conn)
 Read Opcodes Supported.
 
int bt_mcc_read_content_control_id (struct bt_conn *conn)
 Read Content Control ID.
 

Detailed Description

Bluetooth Media Control Client (MCC) interface.

Updated to the Media Control Profile specification revision 1.0

[Experimental] Users should note that the APIs can change as a part of ongoing development.

Typedef Documentation

◆ bt_mcc_cmd_ntf_cb

typedef void(* bt_mcc_cmd_ntf_cb) (struct bt_conn *conn, int err, const struct mpl_cmd_ntf *ntf)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for command notifications.

Called when the media control point is notified

Notifications for commands (i.e. for writes to the media control point) use a different parameter structure than what is used for sending commands (writing to the media control point)

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
ntfThe command notification

◆ bt_mcc_discover_mcs_cb

typedef void(* bt_mcc_discover_mcs_cb) (struct bt_conn *conn, int err)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_discover_mcs()

Called when a media control server is discovered

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail

◆ bt_mcc_read_content_control_id_cb

typedef void(* bt_mcc_read_content_control_id_cb) (struct bt_conn *conn, int err, uint8_t ccid)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_content_control_id()

Called when the content control ID is read

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
ccidThe Content Control ID

◆ bt_mcc_read_icon_url_cb

typedef void(* bt_mcc_read_icon_url_cb) (struct bt_conn *conn, int err, const char *icon_url)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_icon_url()

Called when the icon URL is read

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
icon_urlThe URL of the Icon

◆ bt_mcc_read_media_state_cb

typedef void(* bt_mcc_read_media_state_cb) (struct bt_conn *conn, int err, uint8_t state)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_media_state()

Called when the media state is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
stateThe Media State

◆ bt_mcc_read_opcodes_supported_cb

typedef void(* bt_mcc_read_opcodes_supported_cb) (struct bt_conn *conn, int err, uint32_t opcodes)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_opcodes_supported()

Called when the supported opcodes (commands) are read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
opcodesThe supported opcodes

◆ bt_mcc_read_playback_speed_cb

typedef void(* bt_mcc_read_playback_speed_cb) (struct bt_conn *conn, int err, int8_t speed)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_playback_speed()

Called when the playback speed is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
speedThe Playback Speed

◆ bt_mcc_read_player_name_cb

typedef void(* bt_mcc_read_player_name_cb) (struct bt_conn *conn, int err, const char *name)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_player_name()

Called when the player name is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
namePlayer name

◆ bt_mcc_read_playing_order_cb

typedef void(* bt_mcc_read_playing_order_cb) (struct bt_conn *conn, int err, uint8_t order)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_playing_order()

Called when the playing order is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
orderThe playback order

◆ bt_mcc_read_playing_orders_supported_cb

typedef void(* bt_mcc_read_playing_orders_supported_cb) (struct bt_conn *conn, int err, uint16_t orders)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_playing_orders_supported()

Called when the supported playing orders are read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
ordersThe playing orders supported (bitmap)

◆ bt_mcc_read_seeking_speed_cb

typedef void(* bt_mcc_read_seeking_speed_cb) (struct bt_conn *conn, int err, int8_t speed)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_seeking_speed()

Called when the seeking speed is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
speedThe Seeking Speed

◆ bt_mcc_read_track_duration_cb

typedef void(* bt_mcc_read_track_duration_cb) (struct bt_conn *conn, int err, int32_t dur)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_track_duration()

Called when the track duration is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
durThe duration of the track

◆ bt_mcc_read_track_position_cb

typedef void(* bt_mcc_read_track_position_cb) (struct bt_conn *conn, int err, int32_t pos)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_track_position()

Called when the track position is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
posThe Track Position

◆ bt_mcc_read_track_title_cb

typedef void(* bt_mcc_read_track_title_cb) (struct bt_conn *conn, int err, const char *title)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_read_track_title()

Called when the track title is read or notified

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
titleThe title of the track

◆ bt_mcc_send_cmd_cb

typedef void(* bt_mcc_send_cmd_cb) (struct bt_conn *conn, int err, const struct mpl_cmd *cmd)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_send_cmd()

Called when a command is sent, i.e. when the media control point is set

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
cmdThe command sent

◆ bt_mcc_set_playback_speed_cb

typedef void(* bt_mcc_set_playback_speed_cb) (struct bt_conn *conn, int err, int8_t speed)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_set_playback_speed()

Called when the playback speed is set

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
speedThe Playback Speed set (or attempted to set)

◆ bt_mcc_set_playing_order_cb

typedef void(* bt_mcc_set_playing_order_cb) (struct bt_conn *conn, int err, uint8_t order)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_set_playing_order()

Called when the playing order is set

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
orderThe Playing Order set (or attempted to set)

◆ bt_mcc_set_track_position_cb

typedef void(* bt_mcc_set_track_position_cb) (struct bt_conn *conn, int err, int32_t pos)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for bt_mcc_set_track_position()

Called when the track position is set

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail
posThe Track Position set (or attempted to set)

◆ bt_mcc_track_changed_ntf_cb

typedef void(* bt_mcc_track_changed_ntf_cb) (struct bt_conn *conn, int err)

#include <zephyr/bluetooth/audio/mcc.h>

Callback function for track changed notifications.

Called when a track change is notified.

The track changed characteristic is a special case. It can not be read or set, it can only be notified.

Parameters
connThe connection that was used to initialise the media control client
errError value. 0 on success, GATT error or errno on fail

Function Documentation

◆ bt_mcc_discover_mcs()

int bt_mcc_discover_mcs ( struct bt_conn *  conn,
bool  subscribe 
)

#include <zephyr/bluetooth/audio/mcc.h>

Discover Media Control Service.

Discover Media Control Service (MCS) on the server given by the connection Optionally subscribe to notifications.

Shall be called once, after media control client initialization and before using other media control client functionality.

Parameters
connConnection to the peer device
subscribeWhether to subscribe to notifications
Returns
0 if success, errno on failure.

◆ bt_mcc_init()

int bt_mcc_init ( struct bt_mcc_cb cb)

#include <zephyr/bluetooth/audio/mcc.h>

Initialize Media Control Client.

Parameters
cbCallbacks to be used
Returns
0 if success, errno on failure.

◆ bt_mcc_read_content_control_id()

int bt_mcc_read_content_control_id ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Content Control ID.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_icon_url()

int bt_mcc_read_icon_url ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Icon Object URL.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_media_state()

int bt_mcc_read_media_state ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Media State.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_opcodes_supported()

int bt_mcc_read_opcodes_supported ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Opcodes Supported.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_playback_speed()

int bt_mcc_read_playback_speed ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Playback speed.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_player_name()

int bt_mcc_read_player_name ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Media Player Name.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_playing_order()

int bt_mcc_read_playing_order ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Playing Order.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_playing_orders_supported()

int bt_mcc_read_playing_orders_supported ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Playing Orders Supported.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_seeking_speed()

int bt_mcc_read_seeking_speed ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Seeking speed.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_track_duration()

int bt_mcc_read_track_duration ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Track Duration.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_track_position()

int bt_mcc_read_track_position ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Track Position.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_read_track_title()

int bt_mcc_read_track_title ( struct bt_conn *  conn)

#include <zephyr/bluetooth/audio/mcc.h>

Read Track Title.

Parameters
connConnection to the peer device
Returns
0 if success, errno on failure.

◆ bt_mcc_send_cmd()

int bt_mcc_send_cmd ( struct bt_conn *  conn,
const struct mpl_cmd cmd 
)

#include <zephyr/bluetooth/audio/mcc.h>

Send a command.

Write a command (e.g. "play", "pause") to the server's media control point.

Parameters
connConnection to the peer device
cmdThe command to send
Returns
0 if success, errno on failure.

◆ bt_mcc_set_playback_speed()

int bt_mcc_set_playback_speed ( struct bt_conn *  conn,
int8_t  speed 
)

#include <zephyr/bluetooth/audio/mcc.h>

Set Playback Speed.

Parameters
connConnection to the peer device
speedPlayback speed
Returns
0 if success, errno on failure.

◆ bt_mcc_set_playing_order()

int bt_mcc_set_playing_order ( struct bt_conn *  conn,
uint8_t  order 
)

#include <zephyr/bluetooth/audio/mcc.h>

Set Playing Order.

Parameters
connConnection to the peer device
orderPlaying order
Returns
0 if success, errno on failure.

◆ bt_mcc_set_track_position()

int bt_mcc_set_track_position ( struct bt_conn *  conn,
int32_t  pos 
)

#include <zephyr/bluetooth/audio/mcc.h>

Set Track position.

Parameters
connConnection to the peer device
posTrack position
Returns
0 if success, errno on failure.