diff options
Diffstat (limited to 'binding')
-rw-r--r-- | binding/bluetooth-api.c | 10 | ||||
-rw-r--r-- | binding/bluetooth-api.h | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/binding/bluetooth-api.c b/binding/bluetooth-api.c index 4c1165c..f849301 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; |