Asus USB: Fail detection if config table read fails

This commit is contained in:
Martin Hartl
2020-06-20 00:46:29 +02:00
committed by Adam Honse
parent 80a2770263
commit b70658e37d
2 changed files with 20 additions and 3 deletions

View File

@@ -9,6 +9,7 @@
#include "AuraUSBController.h"
#include <cstring>
#include <stdexcept>
AuraUSBController::AuraUSBController(hid_device* dev_handle)
{
@@ -76,6 +77,14 @@ void AuraUSBController::GetConfigTable()
config_table[i + 5]);
}
}
else
{
if(dev)
{
hid_close(dev);
}
throw std::runtime_error("Could not read config table");
}
}
void AuraUSBController::GetFirmwareVersion()

View File

@@ -3,6 +3,7 @@
#include "RGBController.h"
#include "RGBController_AuraUSB.h"
#include <vector>
#include <stdexcept>
#include <hidapi/hidapi.h>
#define AURA_USB_VID 0x0B05
@@ -59,11 +60,18 @@ void DetectAuraUSBControllers(std::vector<RGBController*>& rgb_controllers)
if( dev )
{
AuraMainboardController* controller = new AuraMainboardController(dev);
try
{
AuraMainboardController* controller = new AuraMainboardController(dev);
RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller);
RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller);
rgb_controllers.push_back(rgb_controller);
rgb_controllers.push_back(rgb_controller);
}
catch(std::runtime_error&)
{
// reading the config table failed
}
}
}
}