From 165c50689db0f7570df9dee1c6bd1fb9b50494a2 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 15 Oct 2020 17:00:54 -0500 Subject: [PATCH] Use HID path for Location on ASUS Aura USB controller --- .../AuraUSBController/AuraAddressableController.cpp | 2 +- .../AuraUSBController/AuraAddressableController.h | 2 +- .../AuraUSBController/AuraMainboardController.cpp | 2 +- .../AuraUSBController/AuraMainboardController.h | 2 +- Controllers/AuraUSBController/AuraUSBController.cpp | 10 ++++++++-- Controllers/AuraUSBController/AuraUSBController.h | 4 +++- .../AuraUSBController/AuraUSBControllerDetect.cpp | 4 ++-- .../AuraUSBController/RGBController_AuraUSB.cpp | 1 + 8 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Controllers/AuraUSBController/AuraAddressableController.cpp b/Controllers/AuraUSBController/AuraAddressableController.cpp index f3aed0103..d78d98d20 100644 --- a/Controllers/AuraUSBController/AuraAddressableController.cpp +++ b/Controllers/AuraUSBController/AuraAddressableController.cpp @@ -10,7 +10,7 @@ #include "AuraAddressableController.h" #include -AuraAddressableController::AuraAddressableController(hid_device* dev_handle) : AuraUSBController(dev_handle) +AuraAddressableController::AuraAddressableController(hid_device* dev_handle, const char* path) : AuraUSBController(dev_handle, path) { /*-----------------------------------------------------*\ | Add addressable devices | diff --git a/Controllers/AuraUSBController/AuraAddressableController.h b/Controllers/AuraUSBController/AuraAddressableController.h index b90299969..bcfae8f01 100644 --- a/Controllers/AuraUSBController/AuraAddressableController.h +++ b/Controllers/AuraUSBController/AuraAddressableController.h @@ -23,7 +23,7 @@ enum class AuraAddressableController : public AuraUSBController { public: - AuraAddressableController(hid_device* dev_handle); + AuraAddressableController(hid_device* dev_handle, const char* path); ~AuraAddressableController(); void SetChannelLEDs diff --git a/Controllers/AuraUSBController/AuraMainboardController.cpp b/Controllers/AuraUSBController/AuraMainboardController.cpp index e5c66b198..ea9da672a 100644 --- a/Controllers/AuraUSBController/AuraMainboardController.cpp +++ b/Controllers/AuraUSBController/AuraMainboardController.cpp @@ -10,7 +10,7 @@ #include "AuraMainboardController.h" #include -AuraMainboardController::AuraMainboardController(hid_device* dev_handle) : AuraUSBController(dev_handle), mode(AURA_MODE_DIRECT) +AuraMainboardController::AuraMainboardController(hid_device* dev_handle, const char* path) : AuraUSBController(dev_handle, path), mode(AURA_MODE_DIRECT) { /*-----------------------------------------------------*\ | Add mainboard device | diff --git a/Controllers/AuraUSBController/AuraMainboardController.h b/Controllers/AuraUSBController/AuraMainboardController.h index 759291cf7..ea6b3290e 100644 --- a/Controllers/AuraUSBController/AuraMainboardController.h +++ b/Controllers/AuraUSBController/AuraMainboardController.h @@ -25,7 +25,7 @@ enum class AuraMainboardController : public AuraUSBController { public: - AuraMainboardController(hid_device* dev_handle); + AuraMainboardController(hid_device* dev_handle, const char* path); ~AuraMainboardController(); void SetChannelLEDs diff --git a/Controllers/AuraUSBController/AuraUSBController.cpp b/Controllers/AuraUSBController/AuraUSBController.cpp index ccac4e1ed..cdbe36169 100644 --- a/Controllers/AuraUSBController/AuraUSBController.cpp +++ b/Controllers/AuraUSBController/AuraUSBController.cpp @@ -11,9 +11,10 @@ #include #include -AuraUSBController::AuraUSBController(hid_device* dev_handle) +AuraUSBController::AuraUSBController(hid_device* dev_handle, const char* path) { - dev = dev_handle; + dev = dev_handle; + location = path; GetFirmwareVersion(); GetConfigTable(); @@ -29,6 +30,11 @@ unsigned int AuraUSBController::GetChannelCount() return(device_info.size()); } +std::string AuraUSBController::GetDeviceLocation() +{ + return(location); +} + std::string AuraUSBController::GetDeviceName() { return(device_name); diff --git a/Controllers/AuraUSBController/AuraUSBController.h b/Controllers/AuraUSBController/AuraUSBController.h index 0fe1fe988..3c723779d 100644 --- a/Controllers/AuraUSBController/AuraUSBController.h +++ b/Controllers/AuraUSBController/AuraUSBController.h @@ -59,11 +59,12 @@ struct AuraDeviceInfo class AuraUSBController { public: - AuraUSBController(hid_device* dev_handle); + AuraUSBController(hid_device* dev_handle, const char* path); virtual ~AuraUSBController(); unsigned int GetChannelCount(); + std::string GetDeviceLocation(); std::string GetDeviceName(); const std::vector& GetAuraDevices() const; @@ -88,6 +89,7 @@ protected: hid_device* dev; unsigned char config_table[60]; std::vector device_info; + std::string location; void SendDirect ( diff --git a/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp b/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp index ac95083af..4e9e7de10 100644 --- a/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp +++ b/Controllers/AuraUSBController/AuraUSBControllerDetect.cpp @@ -69,7 +69,7 @@ void DetectAuraUSBControllers(std::vector& rgb_controllers) if(dev) { - AuraAddressableController* controller = new AuraAddressableController(dev); + AuraAddressableController* controller = new AuraAddressableController(dev, info->path); RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller); rgb_controllers.push_back(rgb_controller); } @@ -99,7 +99,7 @@ void DetectAuraUSBControllers(std::vector& rgb_controllers) { try { - AuraMainboardController* controller = new AuraMainboardController(dev); + AuraMainboardController* controller = new AuraMainboardController(dev, info->path); RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller); rgb_controllers.push_back(rgb_controller); } diff --git a/Controllers/AuraUSBController/RGBController_AuraUSB.cpp b/Controllers/AuraUSBController/RGBController_AuraUSB.cpp index bc04eb58b..e7fc37528 100644 --- a/Controllers/AuraUSBController/RGBController_AuraUSB.cpp +++ b/Controllers/AuraUSBController/RGBController_AuraUSB.cpp @@ -17,6 +17,7 @@ RGBController_AuraUSB::RGBController_AuraUSB(AuraUSBController* aura_ptr) version = aura->GetDeviceName(); type = DEVICE_TYPE_MOTHERBOARD; description = "ASUS Aura USB Device"; + location = aura->GetDeviceLocation(); mode Direct; Direct.name = "Direct";