From ff065d5d6ee425717222c30b7cc38c462e7cc380 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Sat, 25 May 2013 15:25:22 -0700 Subject: [PATCH] audio/player: Add function media_item_set_playable --- profiles/audio/avrcp.c | 9 ++++++++- profiles/audio/player.c | 11 +++++++++++ profiles/audio/player.h | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c index 539684df2..d46e59825 100644 --- a/profiles/audio/avrcp.c +++ b/profiles/audio/avrcp.c @@ -2096,6 +2096,7 @@ static struct media_item *parse_media_element(struct avrcp *session, { struct avrcp_player *player; struct media_player *mp; + struct media_item *item; uint16_t namelen; char name[255]; uint64_t uid; @@ -2114,7 +2115,13 @@ static struct media_item *parse_media_element(struct avrcp *session, player = session->player; mp = player->user_data; - return media_player_create_item(mp, name, PLAYER_ITEM_TYPE_AUDIO, uid); + item = media_player_create_item(mp, name, PLAYER_ITEM_TYPE_AUDIO, uid); + if (item == NULL) + return NULL; + + media_item_set_playable(item, true); + + return item; } static struct media_item *parse_media_folder(struct avrcp *session, diff --git a/profiles/audio/player.c b/profiles/audio/player.c index c151560d8..69e8cd510 100644 --- a/profiles/audio/player.c +++ b/profiles/audio/player.c @@ -1466,6 +1466,17 @@ static const GDBusPropertyTable media_item_properties[] = { { } }; +void media_item_set_playable(struct media_item *item, bool value) +{ + if (item->playable == value) + return; + + item->playable = value; + + g_dbus_emit_property_changed(btd_get_dbus_connection(), item->path, + MEDIA_ITEM_INTERFACE, "Playable"); +} + struct media_item *media_player_create_item(struct media_player *mp, const char *name, player_item_type_t type, diff --git a/profiles/audio/player.h b/profiles/audio/player.h index 3a388d289..20de0b8bb 100644 --- a/profiles/audio/player.h +++ b/profiles/audio/player.h @@ -88,6 +88,7 @@ struct media_item *media_player_create_item(struct media_player *mp, player_item_type_t type, uint64_t uid); +void media_item_set_playable(struct media_item *item, bool value); void media_player_list_complete(struct media_player *mp, GSList *items, int err); -- 2.11.0