diff --git a/audio/avrcp.h b/audio/avrcp.h
index 66d09bc..360a80a 100644
--- a/audio/avrcp.h
+++ b/audio/avrcp.h
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
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;
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