diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2011-09-06 10:41:00 +0000 |
---|---|---|
committer | Vitali Lovich <vlovich@aliph.com> | 2011-09-06 11:09:35 +0100 |
commit | 037234078b24a6b509d70c86194ba310bc453a7a (patch) | |
tree | 2a8dc33a544fc0287265353ede0fc8ab6f40aef2 | |
parent | bf12efb464a87bb52c8e69a98999e88f617865c7 (diff) | |
download | libusb-037234078b24a6b509d70c86194ba310bc453a7a.tar.gz |
Darwin: Provide libusb_get_device_speed() data
-rw-r--r-- | libusb/os/darwin_usb.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c index 6fcbb33..76eb1e4 100644 --- a/libusb/os/darwin_usb.c +++ b/libusb/os/darwin_usb.c @@ -654,6 +654,7 @@ static int process_new_device (struct libusb_context *ctx, usb_device_t **device struct libusb_device *dev; struct discovered_devs *discdevs; UInt16 address; + UInt8 devSpeed; int ret = 0, need_unref = 0; do { @@ -686,6 +687,16 @@ static int process_new_device (struct libusb_context *ctx, usb_device_t **device dev->bus_number = locationID >> 24; dev->device_address = address; + (*device)->GetDeviceSpeed (device, &devSpeed); + + switch (devSpeed) { + case kUSBDeviceSpeedLow: dev->speed = LIBUSB_SPEED_LOW; break; + case kUSBDeviceSpeedFull: dev->speed = LIBUSB_SPEED_FULL; break; + case kUSBDeviceSpeedHigh: dev->speed = LIBUSB_SPEED_HIGH; break; + default: + usbi_warn (ctx, "Got unknown device speed %d", devSpeed); + } + /* save our location, we'll need this later */ priv->location = locationID; snprintf(priv->sys_path, 20, "%03i-%04x-%04x-%02x-%02x", address, priv->dev_descriptor.idVendor, priv->dev_descriptor.idProduct, |