diff --git a/src/shared/mcp.c b/src/shared/mcp.c
index 71fc2d1..20a540a 100644
--- a/src/shared/mcp.c
+++ b/src/shared/mcp.c
unsigned int bt_mcp_play(struct bt_mcp *mcp)
{
+ if (!mcp)
+ return 0;
+
if (!(mcp->session.cp_op_supported & BT_MCS_CMD_PLAY_SUPPORTED))
return -ENOTSUP;
unsigned int bt_mcp_pause(struct bt_mcp *mcp)
{
+ if (!mcp)
+ return 0;
+
if (!(mcp->session.cp_op_supported & BT_MCS_CMD_PAUSE_SUPPORTED))
return -ENOTSUP;
unsigned int bt_mcp_stop(struct bt_mcp *mcp)
{
+ if (!mcp)
+ return 0;
+
if (!(mcp->session.cp_op_supported & BT_MCS_CMD_STOP_SUPPORTED))
return -ENOTSUP;
unsigned int bt_mcp_next_track(struct bt_mcp *mcp)
{
+ if (!mcp)
+ return 0;
+
if (!(mcp->session.cp_op_supported & BT_MCS_CMD_NEXT_TRACK_SUPPORTED))
return -ENOTSUP;
unsigned int bt_mcp_previous_track(struct bt_mcp *mcp)
{
+ if (!mcp)
+ return 0;
+
if (!(mcp->session.cp_op_supported & BT_MCS_CMD_PREV_TRACK_SUPPORTED))
return -ENOTSUP;
static void mcp_mp_set_player_name(struct bt_mcp *mcp, const uint8_t *value,
uint16_t length)
{
- struct event_callback *cb = mcp->cb;
+ struct event_callback *cb;
+
+ if (!mcp)
+ return;
+
+ cb = mcp->cb;
if (cb && cb->cbs && cb->cbs->player_name)
cb->cbs->player_name(mcp, value, length);
static void mcp_mp_set_track_title(struct bt_mcp *mcp, const uint8_t *value,
uint16_t length)
{
- struct event_callback *cb = mcp->cb;
+ struct event_callback *cb;
+
+ if (!mcp)
+ return;
+
+ cb = mcp->cb;
if (cb && cb->cbs && cb->cbs->track_title)
cb->cbs->track_title(mcp, value, length);
static void mcp_mp_set_title_duration(struct bt_mcp *mcp, int32_t duration)
{
- struct event_callback *cb = mcp->cb;
+ struct event_callback *cb;
+
+ if (!mcp)
+ return;
+
+ cb = mcp->cb;
DBG(mcp, "Track Duration 0x%08x", duration);
static void mcp_mp_set_title_position(struct bt_mcp *mcp, int32_t position)
{
- struct event_callback *cb = mcp->cb;
+ struct event_callback *cb;
+
+ if (!mcp)
+ return;
+
+ cb = mcp->cb;
DBG(mcp, "Track Position 0x%08x", position);
static void mcp_mp_set_media_state(struct bt_mcp *mcp, uint8_t state)
{
- struct event_callback *cb = mcp->cb;
+ struct event_callback *cb;
+
+ if (!mcp)
+ return;
+
+ cb = mcp->cb;
DBG(mcp, "Media State 0x%02x", state);
{
struct event_callback *cb;
+ if (!mcp)
+ return;
+
if (mcp->cb)
free(mcp->cb);
void bt_mcp_register(struct gatt_db *db)
{
+ if (!db)
+ return;
+
mcp_db_new(db);
}
{
bt_uuid_t uuid;
+ if (!mcp)
+ return false;
+
DBG(mcp, "mcp %p", mcp);
mcp->client = bt_gatt_client_clone(client);
void bt_mcp_detach(struct bt_mcp *mcp)
{
+ if (!mcp)
+ return;
+
DBG(mcp, "%p", mcp);
bt_gatt_client_unref(mcp->client);