diff options
author | Charlie Boutier <charliebout@google.com> | 2024-03-15 17:27:53 +0000 |
---|---|---|
committer | Slvr <30467496+SilverBzH@users.noreply.github.com> | 2024-03-15 10:53:33 -0700 |
commit | e8ed69fb09f7b063418ef7465c6b812964612ef6 (patch) | |
tree | 4c0956b6d787aa274598e4250d00a2b70aeaf4a8 | |
parent | 16d5cf67702a3e068dc4b64866090541e61bd1c4 (diff) | |
download | bumble-e8ed69fb09f7b063418ef7465c6b812964612ef6.tar.gz |
pyusb: Collect vendorId and productId as metadata
-rw-r--r-- | bumble/transport/pyusb.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bumble/transport/pyusb.py b/bumble/transport/pyusb.py index 2426b75..61ce17e 100644 --- a/bumble/transport/pyusb.py +++ b/bumble/transport/pyusb.py @@ -113,9 +113,10 @@ async def open_pyusb_transport(spec: str) -> Transport: self.loop.call_soon_threadsafe(self.stop_event.set) class UsbPacketSource(asyncio.Protocol, ParserSource): - def __init__(self, device, sco_enabled): + def __init__(self, device, metadata, sco_enabled): super().__init__() self.device = device + self.metadata = metadata self.loop = asyncio.get_running_loop() self.queue = asyncio.Queue() self.dequeue_task = None @@ -244,6 +245,9 @@ async def open_pyusb_transport(spec: str) -> Transport: raise ValueError('device not found') logger.debug(f'USB Device: {device}') + # Collect the metadata + device_metadata = {'vendor_id': device.idVendor, 'product_id': device.idProduct} + # Detach the kernel driver if needed if device.is_kernel_driver_active(0): logger.debug("detaching kernel driver") @@ -298,7 +302,7 @@ async def open_pyusb_transport(spec: str) -> Transport: # except usb.USBError: # logger.warning('failed to set alternate setting') - packet_source = UsbPacketSource(device, sco_enabled) + packet_source = UsbPacketSource(device, device_metadata, sco_enabled) packet_sink = UsbPacketSink(device) packet_source.start() packet_sink.start() |