summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBharat Panda <bharat.panda@samsung.com>2015-08-28 20:02:31 +0530
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-08-31 14:03:43 +0300
commiteac1f5d9356684f5ce2a61dd236372606425a231 (patch)
treef40eb0698986d56b33543f2940918673b59ef334
parent24e8a284302468657d73d63179017e2b389760dd (diff)
downloadbluez-eac1f5d9356684f5ce2a61dd236372606425a231.tar.gz
audio/avrcp: Add player name support
Add support to player name mapping it to Identity property from MPRIS.
-rw-r--r--profiles/audio/media.c24
-rwxr-xr-xtest/simple-player1
2 files changed, 25 insertions, 0 deletions
diff --git a/profiles/audio/media.c b/profiles/audio/media.c
index cad9cceac..6c253634c 100644
--- a/profiles/audio/media.c
+++ b/profiles/audio/media.c
@@ -112,6 +112,7 @@ struct media_player {
bool next;
bool previous;
bool control;
+ char *name;
};
static GSList *adapters = NULL;
@@ -964,6 +965,7 @@ static void media_player_free(gpointer data)
g_free(mp->sender);
g_free(mp->path);
g_free(mp->status);
+ g_free(mp->name);
g_free(mp);
}
@@ -1607,6 +1609,25 @@ static gboolean set_flag(struct media_player *mp, DBusMessageIter *iter,
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)
{
@@ -1647,6 +1668,9 @@ static gboolean set_player_property(struct media_player *mp, const char *key,
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 a8ae0b1cd..02754c2f4 100755
--- a/test/simple-player
+++ b/test/simple-player
@@ -43,6 +43,7 @@ class Player(dbus.service.Object):
self.properties = dbus.Dictionary({
"PlaybackStatus" : "playing",
+ "Identity" : "SimplePlayer",
"LoopStatus" : "None",
"Rate" : dbus.Double(1.0),
"Shuffle" : dbus.Boolean(False),