OSDN Git Service

Freedoms scientific driver: Support only USB and a general bluetooth port (will use...
authorrui Batista <ruiandrebatista@gmail.com>
Sun, 11 Nov 2012 13:01:50 +0000 (13:01 +0000)
committerrui Batista <ruiandrebatista@gmail.com>
Sun, 11 Nov 2012 13:01:50 +0000 (13:01 +0000)
source/brailleDisplayDrivers/freedomScientific.py

index 6eade46..97fc49a 100755 (executable)
@@ -120,11 +120,17 @@ class BrailleDisplayDriver(braille.BrailleDisplayDriver,ScriptableObject):
        @classmethod\r
        def getPossiblePorts(cls):\r
                ports = OrderedDict([("USB", "USB",)])\r
-               for port in (p for p in hwPortUtils.listComPorts() \r
-               if p.get("bluetoothName") in bluetoothNames):\r
-                       ports[port["port"].encode("MBCS")] = "Bluetooth: %s" % port.get("bluetoothName")\r
+               try:\r
+                       cls._getBluetoothPorts().next()\r
+                       ports["bluetooth"] = "Bluetooth"\r
+               except StopIteration:\r
+                       pass\r
                return ports\r
 \r
+       @classmethod\r
+       def _getBluetoothPorts(cls):\r
+               return (p["port"].encode("mbcs") for p in hwPortUtils.listComPorts() if p.get("bluetoothName") in bluetoothNames)\r
+\r
        wizWheelActions=[\r
                # Translators: The name of a key on a braille display, that scrolls the display to show previous/next part of a long line.\r
                (_("display scroll"),("globalCommands","GlobalCommands","braille_scrollBack"),("globalCommands","GlobalCommands","braille_scrollForward")),\r
@@ -145,9 +151,11 @@ class BrailleDisplayDriver(braille.BrailleDisplayDriver,ScriptableObject):
                self._messageWindowClassAtom=windll.user32.RegisterClassExW(byref(nvdaFsBrlWndCls))\r
                self._messageWindow=windll.user32.CreateWindowExW(0,self._messageWindowClassAtom,u"nvdaFsBrlWndCls window",0,0,0,0,0,None,None,appInstance,None)\r
                if port is None:\r
-                       portsToTry = self.getPossiblePorts().iterkeys()\r
-               else:\r
-                       portsToTry = (port,)\r
+                       portsToTry = itertools.chain(["USB"], self._getBluetoothPorts())\r
+               elif port == "bluetooth":\r
+                       portsToTry = self._getBluetoothPorts()\r
+               else: # USB\r
+                       portsToTry = [port]\r
                fbHandle=-1\r
                for port in portsToTry:\r
                        fbHandle=fbOpen(port,self._messageWindow,nvdaFsBrlWm)\r