Fixed hard-coded configurationIndex value when setting USB configuration on a USB device

This commit is contained in:
Nav
2022-10-02 13:28:27 +01:00
parent 28cbeb6fc4
commit afffaafc86
2 changed files with 8 additions and 4 deletions

View File

@@ -55,9 +55,13 @@ namespace Bloom::Usb
this->libusbDeviceHandle.reset(deviceHandle); this->libusbDeviceHandle.reset(deviceHandle);
} }
void UsbDevice::setConfiguration(int configIndex) { void UsbDevice::setConfiguration(std::uint8_t configurationIndex) {
::libusb_config_descriptor* configDescriptor = {}; ::libusb_config_descriptor* configDescriptor = {};
int libusbStatusCode = ::libusb_get_config_descriptor(this->libusbDevice.get(), 0, &configDescriptor); auto libusbStatusCode = ::libusb_get_config_descriptor(
this->libusbDevice.get(),
configurationIndex,
&configDescriptor
);
if (libusbStatusCode < 0) { if (libusbStatusCode < 0) {
throw DeviceInitializationFailure( throw DeviceInitializationFailure(

View File

@@ -33,9 +33,9 @@ namespace Bloom::Usb
/** /**
* Selects a specific configuration on the device, using the configuration index. * Selects a specific configuration on the device, using the configuration index.
* *
* @param configIndex * @param configurationIndex
*/ */
virtual void setConfiguration(int configIndex); virtual void setConfiguration(std::uint8_t configurationIndex);
virtual ~UsbDevice(); virtual ~UsbDevice();