@@ -127,8 +127,28 @@ class TrezorPlugin(HW_PluginBase):
|
||||
self.device_manager().register_enumerate_func(self.enumerate)
|
||||
|
||||
def enumerate(self):
|
||||
from trezorlib.device import TrezorDevice
|
||||
return [Device(d.get_path(), -1, d.get_path(), 'TREZOR', 0) for d in TrezorDevice.enumerate()]
|
||||
try:
|
||||
from trezorlib.transport import all_transports
|
||||
except ImportError:
|
||||
# compat for trezorlib < 0.9.2
|
||||
def all_transports():
|
||||
from trezorlib.transport_bridge import BridgeTransport
|
||||
from trezorlib.transport_hid import HidTransport
|
||||
from trezorlib.transport_udp import UdpTransport
|
||||
from trezorlib.transport_webusb import WebUsbTransport
|
||||
return (BridgeTransport, HidTransport, UdpTransport, WebUsbTransport)
|
||||
|
||||
devices = []
|
||||
for transport in all_transports():
|
||||
try:
|
||||
new_devices = transport.enumerate()
|
||||
except BaseException as e:
|
||||
self.print_error('enumerate failed for {}. error {}'
|
||||
.format(transport.__name__, str(e)))
|
||||
else:
|
||||
devices.extend(new_devices)
|
||||
|
||||
return [Device(d.get_path(), -1, d.get_path(), 'TREZOR', 0) for d in devices]
|
||||
|
||||
def create_client(self, device, handler):
|
||||
from trezorlib.device import TrezorDevice
|
||||
|
||||
Reference in New Issue
Block a user