diff --git a/profiles/audio/media.c b/profiles/audio/media.c
index cad9cce..6c25363 100644
--- a/profiles/audio/media.c
+++ b/profiles/audio/media.c
bool next;
bool previous;
bool control;
+ char *name;
};
static GSList *adapters = NULL;
g_free(mp->sender);
g_free(mp->path);
g_free(mp->status);
+ g_free(mp->name);
g_free(mp);
}
return TRUE;
}
+static gboolean set_name(struct media_player *mp, DBusMessageIter *iter)
+{
+ const char *value;
+
+ if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_STRING)
+ return FALSE;
+
+ dbus_message_iter_get_basic(iter, &value);
+
+ if (g_strcmp0(mp->name, value) == 0)
+ return TRUE;
+
+ g_free(mp->name);
+
+ mp->name = g_strdup(value);
+
+ return TRUE;
+}
+
static gboolean set_player_property(struct media_player *mp, const char *key,
DBusMessageIter *entry)
{
if (strcasecmp(key, "CanControl") == 0)
return set_flag(mp, &var, &mp->control);
+ if (strcasecmp(key, "Identity") == 0)
+ return set_name(mp, &var);
+
DBG("%s not supported, ignoring", key);
return TRUE;
diff --git a/test/simple-player b/test/simple-player
index a8ae0b1..02754c2 100755
--- a/test/simple-player
+++ b/test/simple-player
self.properties = dbus.Dictionary({
"PlaybackStatus" : "playing",
+ "Identity" : "SimplePlayer",
"LoopStatus" : "None",
"Rate" : dbus.Double(1.0),
"Shuffle" : dbus.Boolean(False),