aboutsummaryrefslogtreecommitdiffstats
path: root/binding
diff options
context:
space:
mode:
Diffstat (limited to 'binding')
-rw-r--r--binding/bluetooth-api.c10
-rw-r--r--binding/bluetooth-api.h4
2 files changed, 9 insertions, 5 deletions
diff --git a/binding/bluetooth-api.c b/binding/bluetooth-api.c
index 8fdb0f8..8905c6a 100644
--- a/binding/bluetooth-api.c
+++ b/binding/bluetooth-api.c
@@ -356,13 +356,14 @@ static void bluez_devices_signal_callback(
event = ns->media_event;
}
json_object_object_add(jresp, "properties", jobj);
- } else if (is_mediaplayer1_interface(path) &&
- g_str_has_suffix(path, BLUEZ_DEFAULT_PLAYER)) {
-
+ } else if (is_mediaplayer1_interface(path)) {
+ gchar *player = find_index(path, 5);
json_object_object_add(jresp, "connected",
json_object_new_boolean(TRUE));
json_object_object_add(jresp, "type",
json_object_new_string("playback"));
+ json_object_object_add(jresp, "player",
+ json_object_new_string(player));
mediaplayer1_set_path(ns, path);
event = ns->media_event;
} else {
@@ -390,10 +391,13 @@ static void bluez_devices_signal_callback(
event = ns->media_event;
} else if (is_mediaplayer1_interface(path)) {
+ gchar *player = find_index(path, 5);
json_object_object_add(jresp, "connected",
json_object_new_boolean(FALSE));
json_object_object_add(jresp, "type",
json_object_new_string("playback"));
+ json_object_object_add(jresp, "player",
+ json_object_new_string(player));
event = ns->media_event;
/* adapter removal */
} else if (split_length(path) == 4) {
diff --git a/binding/bluetooth-api.h b/binding/bluetooth-api.h
index 6b24d13..a0b807b 100644
--- a/binding/bluetooth-api.h
+++ b/binding/bluetooth-api.h
@@ -116,9 +116,9 @@ static inline gboolean is_mediaplayer1_interface(const char *path)
if (split_length(path) != 6)
return FALSE;
- // TODO: allow mutiple players per device
+ // Check for 'playerX' suffix, not always player0
data = find_index(path, 5);
- ret = !g_strcmp0(data, BLUEZ_DEFAULT_PLAYER);
+ ret = !strncmp(data, BLUEZ_DEFAULT_PLAYER, sizeof(BLUEZ_DEFAULT_PLAYER) - 1);
g_free(data);
return ret;