aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Boutier <charliebout@google.com>2024-03-15 17:27:53 +0000
committerSlvr <30467496+SilverBzH@users.noreply.github.com>2024-03-15 10:53:33 -0700
commite8ed69fb09f7b063418ef7465c6b812964612ef6 (patch)
tree4c0956b6d787aa274598e4250d00a2b70aeaf4a8
parent16d5cf67702a3e068dc4b64866090541e61bd1c4 (diff)
downloadbumble-e8ed69fb09f7b063418ef7465c6b812964612ef6.tar.gz
pyusb: Collect vendorId and productId as metadata
-rw-r--r--bumble/transport/pyusb.py8
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()