aboutsummaryrefslogtreecommitdiffstats
path: root/binding/bluetooth-api.c
diff options
context:
space:
mode:
authorsaman <mahmoudi.saman1@gmail.com>2020-11-29 17:25:42 +0330
committerScott Murray <scott.murray@konsulko.com>2021-01-05 14:26:46 +0000
commitb4ebff5a25cf1346b9ea86379a8d25275bb64a32 (patch)
tree40d38cca5ff22f24612b2968870c97828338bd2f /binding/bluetooth-api.c
parent494ce56f88fc377e703896723fdd80c26aa64550 (diff)
More attention to bluez player propertieskoi_10.93.0koi_10.92.0koi/10.93.0koi/10.92.010.93.010.92.0
It is possible the bluez player does not assign to default bluez player (player0) and assign to other player such as playerN. For fixing this issue we can access to correct bluez player from "Player" property in "org.bluez.MediaControl1" interface. By reading Player property on "org.bluez.MediaControl1" interface we could access to player path and ther is not need to define a const string variable like "player0"! Bug-AGL: SPEC-3722 Signed-off-by: saman <mahmoudi.saman1@gmail.com> Change-Id: I8a5f948c511bbb61ccc67db09ad17aeb02ab5bd1
Diffstat (limited to 'binding/bluetooth-api.c')
-rw-r--r--binding/bluetooth-api.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/binding/bluetooth-api.c b/binding/bluetooth-api.c
index 33b5cac..49ae4e7 100644
--- a/binding/bluetooth-api.c
+++ b/binding/bluetooth-api.c
@@ -1367,9 +1367,10 @@ static void bluetooth_avrcp_controls(afb_req_t request)
{
struct bluetooth_state *ns = bluetooth_get_userdata(request);
const char *action = afb_req_value(request, "action");
- gchar *device, *player;
+ gchar *device, *player = NULL;
GVariant *reply;
GError *error = NULL;
+ json_object *jval = NULL;
if (!action) {
afb_req_fail(request, "failed", "No action given");
@@ -1379,7 +1380,14 @@ static void bluetooth_avrcp_controls(afb_req_t request)
device = return_bluez_path(request);
if (device) {
/* TODO: handle multiple players per device */
- player = g_strconcat(device, "/", BLUEZ_DEFAULT_PLAYER, NULL);
+ jval = bluez_get_property(ns, BLUEZ_AT_MEDIACONTROL, device, FALSE, "Player", NULL);
+ if (jval) {
+ player = (gchar *)json_object_get_string(jval);
+ json_object_put(jval);
+ jval = NULL;
+ }
+ if (!player)
+ player = g_strconcat(device, "/", BLUEZ_DEFAULT_PLAYER, NULL);
g_free(device);
} else {
player = g_strdup(ns->mediaplayer_path);