]> code.delx.au - pulseaudio/commitdiff
bluetooth: ask first for Headset and AudioSink properties, followed by Audio
authorLennart Poettering <lennart@poettering.net>
Sat, 15 Aug 2009 20:25:53 +0000 (22:25 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 15 Aug 2009 20:25:53 +0000 (22:25 +0200)
src/modules/bluetooth/bluetooth-util.c

index d5806b9694286ee47a29bb7d6e4c0330fd51126c..16c292484964184017a8bbe3e5797180460fb250 100644 (file)
@@ -226,10 +226,6 @@ static int parse_device_property(pa_bluetooth_discovery *y, pa_bluetooth_device
                     node = uuid_new(value);
                     PA_LLIST_PREPEND(pa_bluetooth_uuid, d->uuids, node);
 
-                    /* this might eventually be racy if .Audio is not there yet, but the State change will come anyway later, so this call is for cold-detection mostly */
-                    pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.Audio", "GetProperties"));
-                    send_and_add_to_pending(y, d, m, get_properties_reply);
-
                     /* Vudentz said the interfaces are here when the UUIDs are announced */
                     if (strcasecmp(HSP_HS_UUID, value) == 0 || strcasecmp(HFP_HS_UUID, value) == 0) {
                         pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.Headset", "GetProperties"));
@@ -239,6 +235,10 @@ static int parse_device_property(pa_bluetooth_discovery *y, pa_bluetooth_device
                         send_and_add_to_pending(y, d, m, get_properties_reply);
                     }
 
+                    /* this might eventually be racy if .Audio is not there yet, but the State change will come anyway later, so this call is for cold-detection mostly */
+                    pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.Audio", "GetProperties"));
+                    send_and_add_to_pending(y, d, m, get_properties_reply);
+
                     if (!dbus_message_iter_next(&ai))
                         break;
                 }