OSDN Git Service

sixaxis: Skip controller setup if already connected over Bluetooth
authorSzymon Janc <szymon.janc@gmail.com>
Sun, 1 Dec 2013 13:41:55 +0000 (14:41 +0100)
committerJohan Hedberg <johan.hedberg@intel.com>
Tue, 3 Dec 2013 07:46:56 +0000 (09:46 +0200)
If controller is already connected over Bluetooth but was then
plugged-in via USB (eg. to charge battery) there is no need to do
any setup.

plugins/sixaxis.c

index c3ca267..b8fe287 100644 (file)
@@ -194,6 +194,12 @@ static void setup_device(int fd, int index, struct btd_adapter *adapter)
        if (get_master_bdaddr(fd, &master_bdaddr) < 0)
                return;
 
+       /* This can happen if controller was plugged while already connected
+        * eg. to charge up battery */
+       device = btd_adapter_find_device(adapter, &device_bdaddr);
+       if (device && btd_device_is_connected(device))
+               return;
+
        adapter_bdaddr = btd_adapter_get_address(adapter);
 
        if (bacmp(adapter_bdaddr, &master_bdaddr)) {