Diff between c0cc10498df8730d0e9bffe75b255a42bb572d6e and c684389188ba4e176019e863d5ea948c0039fa5e

Changed Files

File Additions Deletions Status
audio/avrcp.h +1 -0 modified
audio/media.c +13 -0 modified

Full Patch

diff --git a/audio/avrcp.h b/audio/avrcp.h
index 66d09bc..360a80a 100644
--- a/audio/avrcp.h
+++ b/audio/avrcp.h
@@ -76,6 +76,7 @@ struct avrcp_player_cb {
 	int (*get_setting) (uint8_t attr, void *user_data);
 	int (*set_setting) (uint8_t attr, uint8_t value, void *user_data);
 	void *(*get_metadata) (uint32_t id, void *user_data);
+	GList *(*list_metadata) (void *user_data);
 	uint8_t (*get_status) (void *user_data);
 	uint32_t (*get_position) (void *user_data);
 };
diff --git a/audio/media.c b/audio/media.c
index ef595b3..5848fb5 100644
--- a/audio/media.c
+++ b/audio/media.c
@@ -1156,6 +1156,18 @@ static int set_setting(uint8_t attr, uint8_t val, void *user_data)
 	return 0;
 }
 
+static GList *list_metadata(void *user_data)
+{
+	struct media_player *mp = user_data;
+
+	DBG("");
+
+	if (mp->track == NULL)
+		return NULL;
+
+	return g_hash_table_get_keys(mp->track);
+}
+
 static void *get_metadata(uint32_t id, void *user_data)
 {
 	struct media_player *mp = user_data;
@@ -1207,6 +1219,7 @@ static uint32_t get_position(void *user_data)
 static struct avrcp_player_cb player_cb = {
 	.get_setting = get_setting,
 	.set_setting = set_setting,
+	.list_metadata = list_metadata,
 	.get_metadata = get_metadata,
 	.get_position = get_position,
 	.get_status = get_status