diff --git a/Controllers/A4TechController/A4Tech_Detector.cpp b/Controllers/A4TechController/A4Tech_Detector.cpp index f2c6f6385..63d4d6d39 100644 --- a/Controllers/A4TechController/A4Tech_Detector.cpp +++ b/Controllers/A4TechController/A4Tech_Detector.cpp @@ -10,47 +10,52 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -/*-----------------------------------------------------*\ -| OpenRGB includes | -\*-----------------------------------------------------*/ #include +#include "BloodyB820RController.h" +#include "BloodyMouseController.h" #include "DetectionManager.h" - -/*-----------------------------------------------------*\ -| A4 Tech specific includes | -\*-----------------------------------------------------*/ -#include "RGBController_BloodyMouse.h" #include "RGBController_BloodyB820R.h" +#include "RGBController_BloodyMouse.h" -/*-----------------------------------------------------*\ -| A4 Tech USB vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| A4 Tech USB vendor ID | +\*---------------------------------------------------------*/ #define A4_TECH_VID 0x09DA -void DetectA4TechMouseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectA4TechMouseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - BloodyMouseController* controller = new BloodyMouseController(dev, info->path, info->product_id, name); + BloodyMouseController* controller = new BloodyMouseController(dev, info->path, info->product_id, name); RGBController_BloodyMouse* rgb_controller = new RGBController_BloodyMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectBloodyB820R(hid_device_info* info, const std::string& name) +DetectedControllers DetectBloodyB820R(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { BloodyB820RController* controller = new BloodyB820RController(dev, info->path, name); RGBController_BloodyB820R* rgb_controller = new RGBController_BloodyB820R(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Bloody W60 Pro", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W60_PRO_PID, 2, 0xFF33, 0x0529); diff --git a/Controllers/AMBXController/AMBXControllerDetect.cpp b/Controllers/AMBXController/AMBXControllerDetect.cpp index 7a398cdd3..d7765b090 100644 --- a/Controllers/AMBXController/AMBXControllerDetect.cpp +++ b/Controllers/AMBXController/AMBXControllerDetect.cpp @@ -7,8 +7,8 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" #include "AMBXController.h" +#include "DetectionManager.h" #include "RGBController.h" #include "RGBController_AMBX.h" @@ -18,66 +18,60 @@ #include #endif -/******************************************************************************************\ -* * -* DetectAMBXControllers * -* * -* Detect Philips amBX Gaming devices * -* * -\******************************************************************************************/ - -void DetectAMBXControllers() +DetectedControllers DetectAMBXControllers() { - libusb_context* ctx = NULL; + DetectedControllers detected_controllers; + libusb_context* ctx = NULL; - if(libusb_init(&ctx) < 0) + if(libusb_init(&ctx) >= 0) { - return; - } + libusb_device** devs; + ssize_t num_devs = libusb_get_device_list(ctx, &devs); - libusb_device** devs; - ssize_t num_devs = libusb_get_device_list(ctx, &devs); - - if(num_devs <= 0) - { - libusb_exit(ctx); - return; - } - - for(ssize_t i = 0; i < num_devs; i++) - { - libusb_device* dev = devs[i]; - libusb_device_descriptor desc; - - if(libusb_get_device_descriptor(dev, &desc) != 0) + if(num_devs > 0) { - continue; + for(ssize_t i = 0; i < num_devs; i++) + { + libusb_device* dev = devs[i]; + libusb_device_descriptor desc; + + if(libusb_get_device_descriptor(dev, &desc) != 0) + { + continue; + } + + if(desc.idVendor == AMBX_VID && desc.idProduct == AMBX_PID) + { + uint8_t bus = libusb_get_bus_number(dev); + uint8_t address = libusb_get_device_address(dev); + char device_path[32]; + snprintf(device_path, sizeof(device_path), "%d-%d", bus, address); + + // Use the AMBXController to handle opening and initializing + AMBXController* controller = new AMBXController(device_path); + + if(controller->IsInitialized()) + { + RGBController_AMBX* rgb_controller = new RGBController_AMBX(controller); + detected_controllers.push_back(rgb_controller); + } + else + { + delete controller; + } + } + } + + libusb_free_device_list(devs, 1); + libusb_exit(ctx); } - - if(desc.idVendor == AMBX_VID && desc.idProduct == AMBX_PID) + else { - uint8_t bus = libusb_get_bus_number(dev); - uint8_t address = libusb_get_device_address(dev); - char device_path[32]; - snprintf(device_path, sizeof(device_path), "%d-%d", bus, address); - - // Use the AMBXController to handle opening and initializing - AMBXController* controller = new AMBXController(device_path); - - if(controller->IsInitialized()) - { - RGBController_AMBX* rgb_controller = new RGBController_AMBX(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); - } - else - { - delete controller; - } + libusb_exit(ctx); } } - libusb_free_device_list(devs, 1); - libusb_exit(ctx); + return(detected_controllers); } REGISTER_DETECTOR("Philips amBX", DetectAMBXControllers); diff --git a/Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp b/Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp index a182104ee..14ddb323a 100644 --- a/Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp +++ b/Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp @@ -10,8 +10,8 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "AMDWraithPrismController.h" +#include "DetectionManager.h" #include "RGBController_AMDWraithPrism.h" /*---------------------------------------------------------*\ @@ -24,25 +24,22 @@ \*---------------------------------------------------------*/ #define AMD_WRAITH_PRISM_PID 0x0051 -/******************************************************************************************\ -* * -* DetectAMDWraithPrismControllers * -* * -* Tests the USB address to see if an AMD Wraith Prism controller exists there. * -* * -\******************************************************************************************/ - -void DetectAMDWraithPrismControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectAMDWraithPrismControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AMDWraithPrismController* controller = new AMDWraithPrismController(dev, info->path); RGBController_AMDWraithPrism* rgb_controller = new RGBController_AMDWraithPrism(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IP("AMD Wraith Prism", DetectAMDWraithPrismControllers, AMD_WRAITH_PRISM_VID, AMD_WRAITH_PRISM_PID, 1, 0xFF00); diff --git a/Controllers/AOCKeyboardController/AOCKeyboardControllerDetect.cpp b/Controllers/AOCKeyboardController/AOCKeyboardControllerDetect.cpp index fa4abd43a..60dbcfc7b 100644 --- a/Controllers/AOCKeyboardController/AOCKeyboardControllerDetect.cpp +++ b/Controllers/AOCKeyboardController/AOCKeyboardControllerDetect.cpp @@ -13,32 +13,29 @@ #include "AOCKeyboardController.h" #include "RGBController_AOCKeyboard.h" -/*-----------------------------------------------------*\ -| AOC Keyboard IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| AOC Keyboard IDs | +\*---------------------------------------------------------*/ #define AOC_VID 0x3938 #define AOC_GK500_PID 0x1178 #define AOC_GK500_PID_2 0x1229 -/******************************************************************************************\ -* * -* DetectAOCKeyboardControllers * -* * -* Tests the USB address to see if an AOC Keyboard controller exists there. * -* * -\******************************************************************************************/ - -void DetectAOCKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAOCKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AOCKeyboardController* controller = new AOCKeyboardController(dev, info->path, name); RGBController_AOCKeyboard* rgb_controller = new RGBController_AOCKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("AOC GK500", DetectAOCKeyboardControllers, AOC_VID, AOC_GK500_PID, 0xFF19, 0xFF19); diff --git a/Controllers/AOCMouseController/AOCMouseControllerDetect.cpp b/Controllers/AOCMouseController/AOCMouseControllerDetect.cpp index df66c2090..aae3217ef 100644 --- a/Controllers/AOCMouseController/AOCMouseControllerDetect.cpp +++ b/Controllers/AOCMouseController/AOCMouseControllerDetect.cpp @@ -13,31 +13,28 @@ #include "AOCMouseController.h" #include "RGBController_AOCMouse.h" -/*-----------------------------------------------------*\ -| AOC Mouse IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| AOC Mouse IDs | +\*---------------------------------------------------------*/ #define AOC_VID 0x3938 #define AOC_GM500_PID 0x1179 -/******************************************************************************************\ -* * -* DetectAOCMouseControllers * -* * -* Tests the USB address to see if an AOC Mouse controller exists there. * -* * -\******************************************************************************************/ - -void DetectAOCMouseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAOCMouseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AOCMouseController* controller = new AOCMouseController(dev, info->path, name); RGBController_AOCMouse* rgb_controller = new RGBController_AOCMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("AOC GM500", DetectAOCMouseControllers, AOC_VID, AOC_GM500_PID, 1, 0xFF19, 0xFF19); diff --git a/Controllers/AOCMousematController/AOCMousematControllerDetect.cpp b/Controllers/AOCMousematController/AOCMousematControllerDetect.cpp index e250798e1..9849cf191 100644 --- a/Controllers/AOCMousematController/AOCMousematControllerDetect.cpp +++ b/Controllers/AOCMousematController/AOCMousematControllerDetect.cpp @@ -13,31 +13,28 @@ #include "AOCMousematController.h" #include "RGBController_AOCMousemat.h" -/*-----------------------------------------------------*\ -| AOC Mousemat IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| AOC Mousemat IDs | +\*---------------------------------------------------------*/ #define AOC_VID 0x3938 #define AOC_AMM700_PID 0x1162 -/******************************************************************************************\ -* * -* DetectAOCMousematControllers * -* * -* Tests the USB address to see if an AOC Mousemat controller exists there. * -* * -\******************************************************************************************/ - -void DetectAOCMousematControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAOCMousematControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AOCMousematController* controller = new AOCMousematController(dev, info->path, name); RGBController_AOCMousemat* rgb_controller = new RGBController_AOCMousemat(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("AOC AGON AMM700", DetectAOCMousematControllers, AOC_VID, AOC_AMM700_PID, 1, 0xFF19, 0xFF19); diff --git a/Controllers/ASRockPolychromeUSBController/ASRockPolychromeUSBControllerDetect.cpp b/Controllers/ASRockPolychromeUSBController/ASRockPolychromeUSBControllerDetect.cpp index cb46010d6..7baae0cdb 100644 --- a/Controllers/ASRockPolychromeUSBController/ASRockPolychromeUSBControllerDetect.cpp +++ b/Controllers/ASRockPolychromeUSBController/ASRockPolychromeUSBControllerDetect.cpp @@ -11,8 +11,8 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "ASRockPolychromeUSBController.h" +#include "DetectionManager.h" #include "RGBController_ASRockPolychromeUSB.h" /*---------------------------------------------------------*\ @@ -26,16 +26,22 @@ #define ASROCK_MOTHERBOARD_1_PID 0x01A2 #define ASROCK_DESKMINI_ADDRESSABLE_LED_STRIP_PID 0x01A6 -void DetectPolychromeUSBControllers(hid_device_info* info, const std::string& /*name*/) +DetectedControllers DetectPolychromeUSBControllers(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { PolychromeUSBController* controller = new PolychromeUSBController(dev, info->path); RGBController_PolychromeUSB* rgb_controller = new RGBController_PolychromeUSB(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("ASRock Polychrome USB", DetectPolychromeUSBControllers, ASROCK_VID, ASROCK_MOTHERBOARD_1_PID); diff --git a/Controllers/ASRockSMBusController/ASRockSMBusControllerDetect.cpp b/Controllers/ASRockSMBusController/ASRockSMBusControllerDetect.cpp index dc9d1de7d..451328d97 100644 --- a/Controllers/ASRockSMBusController/ASRockSMBusControllerDetect.cpp +++ b/Controllers/ASRockSMBusController/ASRockSMBusControllerDetect.cpp @@ -22,15 +22,6 @@ #include "i2c_smbus.h" #include "pci_ids.h" -/*******************************************************************************************\ -* * -* TestForPolychromeSMBusController * -* * -* Tests the given address to see if an ASRock RGB controller exists there. * -* First does a quick write to test for a response * -* * -\*******************************************************************************************/ - #define ASROCK_DETECTOR_NAME "ASRock SMBus Detectector" #define VENDOR_NAME "ASRock" #define SMBUS_ADDRESS 0x6A @@ -67,7 +58,7 @@ bool TestForPolychromeSMBusController(i2c_smbus_interface* bus, uint8_t address) return(pass); -} /* TestForPolychromeController() */ +} uint16_t GetFirmwareVersion(i2c_smbus_interface* bus, uint8_t address) { @@ -94,20 +85,10 @@ uint16_t GetFirmwareVersion(i2c_smbus_interface* bus, uint8_t address) } } -/******************************************************************************************\ -* * -* DetectPolychromeControllers * -* * -* Detect ASRock Polychrome RGB SMBus controllers on the enumerated I2C busses at * -* address 0x6A. * -* * -* bus - pointer to i2c_smbus_interface where Polychrome device is connected * -* dev - I2C address of Polychrome device * -* * -\******************************************************************************************/ - -void DetectASRockSMBusControllers(std::vector& busses) +DetectedControllers DetectASRockSMBusControllers(std::vector& busses) { + DetectedControllers detected_controllers; + for(unsigned int bus = 0; bus < busses.size(); bus++) { IF_MOBO_SMBUS(busses[bus]->pci_vendor, busses[bus]->pci_device) @@ -123,7 +104,7 @@ void DetectASRockSMBusControllers(std::vector& busses) u16_to_u8 version; version.u16 = GetFirmwareVersion(busses[bus], SMBUS_ADDRESS); - switch (version.msb) + switch(version.msb) { case ASROCK_TYPE_ASRLED: { @@ -131,7 +112,7 @@ void DetectASRockSMBusControllers(std::vector& busses) ASRockASRRGBSMBusController* controller = new ASRockASRRGBSMBusController(busses[bus], SMBUS_ADDRESS); controller-> fw_version = version.u16; RGBController_ASRockASRRGBSMBus* rgb_controller = new RGBController_ASRockASRRGBSMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } break; @@ -141,7 +122,7 @@ void DetectASRockSMBusControllers(std::vector& busses) ASRockPolychromeV1SMBusController* controller = new ASRockPolychromeV1SMBusController(busses[bus], SMBUS_ADDRESS); controller-> fw_version = version.u16; RGBController_ASRockPolychromeV1SMBus* rgb_controller = new RGBController_ASRockPolychromeV1SMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } break; @@ -151,7 +132,7 @@ void DetectASRockSMBusControllers(std::vector& busses) ASRockPolychromeV2SMBusController* controller = new ASRockPolychromeV2SMBusController(busses[bus], SMBUS_ADDRESS); controller-> fw_version = version.u16; RGBController_ASRockPolychromeV2SMBus* rgb_controller = new RGBController_ASRockPolychromeV2SMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } break; @@ -172,6 +153,7 @@ void DetectASRockSMBusControllers(std::vector& busses) } } -} /* DetectSMBusPolychromeControllers() */ + return(detected_controllers); +} REGISTER_I2C_DETECTOR("ASRock Motherboard SMBus Controllers", DetectASRockSMBusControllers); diff --git a/Controllers/AlienwareController/AlienwareControllerDetect.cpp b/Controllers/AlienwareController/AlienwareControllerDetect.cpp index 03eb36d5a..17e97b5cb 100644 --- a/Controllers/AlienwareController/AlienwareControllerDetect.cpp +++ b/Controllers/AlienwareController/AlienwareControllerDetect.cpp @@ -7,8 +7,8 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" #include "AlienwareController.h" +#include "DetectionManager.h" #include "RGBController_Alienware.h" /*---------------------------------------------------------*\ @@ -22,17 +22,22 @@ #define ALIENWARE_G_SERIES_PID1 0x0550 #define ALIENWARE_G_SERIES_PID2 0x0551 -void DetectAlienwareControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAlienwareControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AlienwareController* controller = new AlienwareController(dev, *info, name); RGBController_Alienware* rgb_controller = new RGBController_Alienware(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Dell G Series LED Controller", DetectAlienwareControllers, ALIENWARE_VID, ALIENWARE_G_SERIES_PID1); diff --git a/Controllers/AlienwareKeyboardController/AlienwareKeyboardControllerDetect.cpp b/Controllers/AlienwareKeyboardController/AlienwareKeyboardControllerDetect.cpp index d452b248d..5e2556718 100644 --- a/Controllers/AlienwareKeyboardController/AlienwareKeyboardControllerDetect.cpp +++ b/Controllers/AlienwareKeyboardController/AlienwareKeyboardControllerDetect.cpp @@ -9,54 +9,57 @@ #include #include "DetectionManager.h" -#include "AlienwareAW510KController.h" #include "AlienwareAW410KController.h" -#include "RGBController_AlienwareAW510K.h" +#include "AlienwareAW510KController.h" #include "RGBController_AlienwareAW410K.h" +#include "RGBController_AlienwareAW510K.h" -/*-----------------------------------------------------*\ -| Alienware vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Alienware vendor ID | +\*---------------------------------------------------------*/ #define ALIENWARE_VID 0x04F2 -/*-----------------------------------------------------*\ -| Keyboard product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ #define ALIENWARE_AW510K_PID 0x1830 #define ALIENWARE_AW410K_PID 0x1968 -/******************************************************************************************\ -* * -* DetectAlienwareKeyboardControllers * -* * -* Tests the USB address to see if a Alienware RGB Keyboard controller exists there. * -* * -\******************************************************************************************/ - -void DetectAlienwareAW510KControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAlienwareAW510KControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); - if( dev ) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { AlienwareAW510KController* controller = new AlienwareAW510KController(dev, info->path, name); RGBController_AlienwareAW510K* rgb_controller = new RGBController_AlienwareAW510K(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAlienwareAW410KControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAlienwareAW410KControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); - if( dev ) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { AlienwareAW410KController* controller = new AlienwareAW410KController(dev, info->path, name); RGBController_AlienwareAW410K* rgb_controller = new RGBController_AlienwareAW410K(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -}/* DetectAlienwareKeyboardControllers() */ + return(detected_controllers); +} REGISTER_HID_DETECTOR_IPU("Alienware AW510K", DetectAlienwareAW510KControllers, ALIENWARE_VID, ALIENWARE_AW510K_PID, 0x02, 0xFF00, 0x01); REGISTER_HID_DETECTOR_IPU("Alienware AW410K", DetectAlienwareAW410KControllers, ALIENWARE_VID, ALIENWARE_AW410K_PID, 0x02, 0xFF00, 0x01); diff --git a/Controllers/AlienwareMonitorController/AlienwareMonitorControllerDetect.cpp b/Controllers/AlienwareMonitorController/AlienwareMonitorControllerDetect.cpp index 98fa72f6c..4d40964be 100644 --- a/Controllers/AlienwareMonitorController/AlienwareMonitorControllerDetect.cpp +++ b/Controllers/AlienwareMonitorController/AlienwareMonitorControllerDetect.cpp @@ -9,12 +9,12 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" +#include #include "AlienwareAW3423DWFController.h" #include "AlienwareMonitorController.h" +#include "DetectionManager.h" #include "RGBController_AlienwareAW3423DWF.h" #include "RGBController_AlienwareMonitor.h" -#include /*---------------------------------------------------------*\ | Alienware Vendor ID | @@ -29,37 +29,40 @@ #define ALIENWARE_USAGE_PAGE 0xFFDA #define ALIENWARE_USAGE 0x00DA -/******************************************************************************************\ -* * -* AlienwareAW3423DWFControllerDetect * -* * -* Tests the USB address to see if an Alienware AW3423DWF exists there. * -* * -\******************************************************************************************/ - -void DetectAlienwareAW3423DWFControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectAlienwareAW3423DWFControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { AlienwareAW3423DWFController* controller = new AlienwareAW3423DWFController(dev, info->path); RGBController_AlienwareAW3423DWF* rgb_controller = new RGBController_AlienwareAW3423DWF(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAlienwareMonitorControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAlienwareMonitorControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AlienwareMonitorController* controller = new AlienwareMonitorController(dev, info->path, name); RGBController_AlienwareMonitor* rgb_controller = new RGBController_AlienwareMonitor(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Alienware AW3423DWF", DetectAlienwareAW3423DWFControllers, ALIENWARE_VID, ALIENWARE_AW3423DWF_PID); diff --git a/Controllers/AnnePro2Controller/AnnePro2ControllerDetect.cpp b/Controllers/AnnePro2Controller/AnnePro2ControllerDetect.cpp index e5df30f30..4477d48df 100644 --- a/Controllers/AnnePro2Controller/AnnePro2ControllerDetect.cpp +++ b/Controllers/AnnePro2Controller/AnnePro2ControllerDetect.cpp @@ -9,10 +9,10 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" -#include "AnnePro2Controller.h" -#include "RGBController_AnnePro2.h" #include +#include "AnnePro2Controller.h" +#include "DetectionManager.h" +#include "RGBController_AnnePro2.h" /*---------------------------------------------------------*\ | Anne Pro 2 vendor IDs | @@ -29,25 +29,22 @@ #define ANNE_PRO_2_PID_4 0xA293 #define ANNE_PRO_2_PID_5 0xA297 -/******************************************************************************************\ -* * -* DetectAnnePro2Controllers * -* * -* Tests the USB address to see if an Obins Lab AnnePro2 keyboard exists there. * -* * -\******************************************************************************************/ - -void DetectAnnePro2Controllers(hid_device_info* info, const std::string&) +DetectedControllers DetectAnnePro2Controllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AnnePro2Controller* controller = new AnnePro2Controller(dev, info->path); RGBController_AnnePro2* rgb_controller = new RGBController_AnnePro2(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID_1, ANNE_PRO_2_PID_1, 1); diff --git a/Controllers/ArcticController/ArcticControllerDetect.cpp b/Controllers/ArcticController/ArcticControllerDetect.cpp index 6fa57e256..eb43328b4 100644 --- a/Controllers/ArcticController/ArcticControllerDetect.cpp +++ b/Controllers/ArcticController/ArcticControllerDetect.cpp @@ -10,17 +10,20 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "ArcticController.h" -#include "RGBController_Arctic.h" +#include "DetectionManager.h" #include "find_usb_serial_port.h" +#include "RGBController_Arctic.h" #define CH341_VID 0x1A86 #define CH341_PID 0x7523 -void DetectArcticControllers() +DetectedControllers DetectArcticControllers() { - std::vector ports = find_usb_serial_port(CH341_VID, CH341_PID); + DetectedControllers detected_controllers; + std::vector ports; + + ports = find_usb_serial_port(CH341_VID, CH341_PID); for(unsigned int device = 0; device < ports.size(); device++) { @@ -29,7 +32,7 @@ void DetectArcticControllers() if(controller->IsPresent()) { RGBController_Arctic *rgb_controller = new RGBController_Arctic(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { @@ -38,6 +41,8 @@ void DetectArcticControllers() delete ports[device]; } + + return(detected_controllers); } REGISTER_DETECTOR("Arctic RGB controller", DetectArcticControllers); diff --git a/Controllers/AresonController/AresonControllerDetect.cpp b/Controllers/AresonController/AresonControllerDetect.cpp index 25e3cf779..a90622be7 100644 --- a/Controllers/AresonController/AresonControllerDetect.cpp +++ b/Controllers/AresonController/AresonControllerDetect.cpp @@ -28,17 +28,22 @@ #define REDRAGON_M914_PID 0xFA7B #define REDRAGON_M914_WIRELESS_PID 0xFA7C -void DetectAresonControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAresonControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AresonController* controller = new AresonController(dev, *info, name); RGBController_Areson* rgb_controller = new RGBController_Areson(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("ZET GAMING Edge Air Pro (Wireless)", DetectAresonControllers, ARESON_VID, ZET_GAMING_EDGE_AIR_PRO_WIRELESS_PID, 1, 0xFF02, 2); diff --git a/Controllers/AsusAuraCoreController/AsusAuraCoreControllerDetect.cpp b/Controllers/AsusAuraCoreController/AsusAuraCoreControllerDetect.cpp index 2ab0034c5..f0a31e8aa 100644 --- a/Controllers/AsusAuraCoreController/AsusAuraCoreControllerDetect.cpp +++ b/Controllers/AsusAuraCoreController/AsusAuraCoreControllerDetect.cpp @@ -19,17 +19,12 @@ #define AURA_CORE_VID 0x0B05 -/******************************************************************************************\ -* * -* DetectAuraCoreControllers * -* * -* Tests the USB address to see if an Asus ROG Aura Core controller exists there * -* * -\******************************************************************************************/ - -void DetectAsusAuraCoreControllers(hid_device_info* info, const std::string& /*name*/) +DetectedControllers DetectAsusAuraCoreControllers(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -38,26 +33,33 @@ void DetectAsusAuraCoreControllers(hid_device_info* info, const std::string& /*n if(rgb_controller->GetDeviceType() != DEVICE_TYPE_UNKNOWN) { - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { delete rgb_controller; } } + + return(detected_controllers); } -void DetectAsusAuraCoreLaptopControllers(hid_device_info* info, const std::string& /*name*/) +DetectedControllers DetectAsusAuraCoreLaptopControllers(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AsusAuraCoreLaptopController* controller = new AsusAuraCoreLaptopController(dev, info->path); RGBController_AsusAuraCoreLaptop* rgb_controller = new RGBController_AsusAuraCoreLaptop(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } diff --git a/Controllers/AsusAuraGPUController/AsusAuraGPUControllerDetect.cpp b/Controllers/AsusAuraGPUController/AsusAuraGPUControllerDetect.cpp index f108f0048..8c5c91a69 100644 --- a/Controllers/AsusAuraGPUController/AsusAuraGPUControllerDetect.cpp +++ b/Controllers/AsusAuraGPUController/AsusAuraGPUControllerDetect.cpp @@ -19,14 +19,6 @@ #define ASUSGPU_CONTROLLER_NAME "ASUS Aura GPU" -/******************************************************************************************\ -* * -* TestForAuraGPUController * -* * -* Tests the given address to see if an Aura GPU controller exists there. * -* * -\******************************************************************************************/ - bool TestForAsusAuraGPUController(i2c_smbus_interface* bus, unsigned char address) { if(bus->pci_vendor == AMD_GPU_VEN && !is_amd_gpu_i2c_bus(bus)) @@ -48,31 +40,26 @@ bool TestForAsusAuraGPUController(i2c_smbus_interface* bus, unsigned char addres return(pass); -} /* TestForAuraGPUController() */ +} -/******************************************************************************************\ -* * -* DetectAuraGPUControllers * -* * -* Detect Aura GPU controllers on the enumerated I2C busses. * -* * -\******************************************************************************************/ - -void DetectAsusAuraGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectAsusAuraGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(TestForAsusAuraGPUController(bus, i2c_addr)) { AuraGPUController* controller = new AuraGPUController(bus, i2c_addr, name); RGBController_AuraGPU* rgb_controller = new RGBController_AuraGPU(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectAsusAuraGPUControllers() */ -/*-----------------------------------------*\ -| Nvidia GPUs | -\*-----------------------------------------*/ + return(detected_controllers); +} +/*---------------------------------------------------------*\ +| Nvidia GPUs | +\*---------------------------------------------------------*/ REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce GTX 1050 Gaming OC", DetectAsusAuraGPUControllers, NVIDIA_VEN, NVIDIA_GTX1050_DEV, ASUS_SUB_VEN, ASUS_GTX1050_STRIX_O2G_GAMING, 0x29); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce GTX 1050 Ti Gaming", DetectAsusAuraGPUControllers, NVIDIA_VEN, NVIDIA_GTX1050TI_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_GTX1050TI_4G_GAMING, 0x29); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce GTX 1050 Ti Gaming OC", DetectAsusAuraGPUControllers, NVIDIA_VEN, NVIDIA_GTX1050TI_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_GTX1050TI_O4G_GAMING, 0x29); @@ -131,10 +118,9 @@ REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 2080 Ti A11G Gaming", REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 2080 Ti Gaming OC", DetectAsusAuraGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX2080TI_O11G_GAMING, 0x2A); REGISTER_I2C_PCI_DETECTOR("ASUS TUF GeForce RTX 3060 Ti Gaming OC", DetectAsusAuraGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3060TI_O8G_OC, 0x2A); -/*-----------------------------------------*\ -| AMD GPUs | -\*-----------------------------------------*/ - +/*---------------------------------------------------------*\ +| AMD GPUs | +\*---------------------------------------------------------*/ REGISTER_I2C_PCI_DETECTOR("ASUS AREZ STRIX Radeon RX Vega 56 Gaming OC", DetectAsusAuraGPUControllers, AMD_GPU_VEN, AMD_VEGA10_DEV, ASUS_SUB_VEN, ASUS_AREZ_STRIX_VEGA56_08G_GAMING, 0x29); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX Radeon Vega 64", DetectAsusAuraGPUControllers, AMD_GPU_VEN, AMD_VEGA10_DEV, ASUS_SUB_VEN, ASUS_VEGA64_STRIX, 0x29); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX Radeon RX 470 Gaming OC", DetectAsusAuraGPUControllers, AMD_GPU_VEN, AMD_POLARIS_DEV, ASUS_SUB_VEN, ASUS_RX470_STRIX_O4G_GAMING, 0x29); diff --git a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp index 9ebfe4c04..acf07749f 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp @@ -143,22 +143,30 @@ AuraKeyboardMappingLayoutType GetKeyboardMappingLayoutType(int pid) } } -void DetectAsusAuraUSBTerminal(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBTerminal(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AuraAddressableController* controller = new AuraAddressableController(dev, info->path, name); RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBAddressable(hid_device_info* info, const std::string& /*name*/) +DetectedControllers DetectAsusAuraUSBAddressable(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -166,13 +174,18 @@ void DetectAsusAuraUSBAddressable(hid_device_info* info, const std::string& /*na AuraAddressableController* controller = new AuraAddressableController(dev, info->path, "ASUS " + dmi.getMainboard() + " Addressable"); RGBController_AuraUSB* rgb_controller = new RGBController_AuraUSB(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBMotherboards(hid_device_info* info, const std::string& /*name*/) +DetectedControllers DetectAsusAuraUSBMotherboards(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev + + dev = hid_open_path(info->path); if(dev) { @@ -182,7 +195,7 @@ void DetectAsusAuraUSBMotherboards(hid_device_info* info, const std::string& /*n AuraMainboardController* controller = new AuraMainboardController(dev, info->path, "ASUS " + dmi.getMainboard()); RGBController_AuraMainboard* rgb_controller = new RGBController_AuraMainboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } catch(const std::runtime_error& ex) { @@ -190,11 +203,16 @@ void DetectAsusAuraUSBMotherboards(hid_device_info* info, const std::string& /*n LOG_ERROR("[AsusAuraUSB] An error occured while reading the config table: %s", ex.what()); } } + + return(detected_controllers); } -void DetectAsusAuraUSBKeyboards(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBKeyboards(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -202,13 +220,18 @@ void DetectAsusAuraUSBKeyboards(hid_device_info* info, const std::string& name) AuraKeyboardMappingLayoutType layout = GetKeyboardMappingLayoutType(info->product_id); RGBController_AuraKeyboard* rgb_controller = new RGBController_AuraKeyboard(controller, layout); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBMice(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBMice(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -216,125 +239,172 @@ void DetectAsusAuraUSBMice(hid_device_info* info, const std::string& name) AuraMouseController* controller = new AuraMouseController(dev, info->path, pid, name); RGBController_AuraMouse* rgb_controller = new RGBController_AuraMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBMousemats(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBMousemats(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AuraMousematController* controller = new AuraMousematController(dev, info->path, name); RGBController_AuraMousemat* rgb_controller = new RGBController_AuraMousemat(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBROGStrixLC(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBROGStrixLC(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AsusROGStrixLCController* controller = new AsusROGStrixLCController(dev, info->path, name); RGBController_AsusROGStrixLC* rgb_controller = new RGBController_AsusROGStrixLC(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBRyuoAIO(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBRyuoAIO(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - AsusAuraRyuoAIOController* controller = new AsusAuraRyuoAIOController(dev, info->path, name); + AsusAuraRyuoAIOController* controller = new AsusAuraRyuoAIOController(dev, info->path, name); RGBController_AsusAuraRyuoAIO* rgb_controller = new RGBController_AsusAuraRyuoAIO(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBStrixEvolve(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBStrixEvolve(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - AsusAuraMouseGen1Controller* controller = new AsusAuraMouseGen1Controller(dev, info->path, info->product_id, name); + AsusAuraMouseGen1Controller* controller = new AsusAuraMouseGen1Controller(dev, info->path, info->product_id, name); RGBController_AsusROGStrixEvolve* rgb_controller = new RGBController_AsusROGStrixEvolve(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBSpatha(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBSpatha(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - AsusAuraMouseGen1Controller* controller = new AsusAuraMouseGen1Controller(dev, info->path, info->product_id, name); - RGBController_AsusROGSpatha* rgb_controller = new RGBController_AsusROGSpatha(controller); + AsusAuraMouseGen1Controller* controller = new AsusAuraMouseGen1Controller(dev, info->path, info->product_id, name); + RGBController_AsusROGSpatha* rgb_controller = new RGBController_AsusROGSpatha(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBHeadsetStand(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBHeadsetStand(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AuraHeadsetStandController* controller = new AuraHeadsetStandController(dev, info->path, name); RGBController_AuraHeadsetStand* rgb_controller = new RGBController_AuraHeadsetStand(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraTUFUSBKeyboard(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraTUFUSBKeyboard(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AuraTUFKeyboardController* controller = new AuraTUFKeyboardController(dev, info->path, info->product_id, info->release_number, name); RGBController_AuraTUFKeyboard* rgb_controller = new RGBController_AuraTUFKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusAuraUSBMonitor(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusAuraUSBMonitor(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AuraMonitorController* controller = new AuraMonitorController(dev, info->path, info->product_id, name); RGBController_AuraMonitor* rgb_controller = new RGBController_AuraMonitor(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusROGAlly(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusROGAlly(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { ROGAllyController* controller = new ROGAllyController(dev, info->path, name); RGBController_AsusROGAlly* rgb_controller = new RGBController_AsusROGAlly(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } /*-----------------------------------------------------------------*\ diff --git a/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp b/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp index 11904cbef..2893c69ed 100644 --- a/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp +++ b/Controllers/AsusLegacyUSBController/AsusLegacyUSBControllerDetect.cpp @@ -23,43 +23,58 @@ #define ASUS_SAGARIS_GK1100_PID 0x1835 #define ASUS_ROG_STRIX_CLAW_PID 0x1016 -void DetectAsusCerberusMech(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusCerberusMech(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AsusCerberusKeyboardController* controller = new AsusCerberusKeyboardController(dev, info->path, info->release_number, name); RGBController_AsusCerberusKeyboard* rgb_controller = new RGBController_AsusCerberusKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusSagarisKeyboard(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusSagarisKeyboard(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AsusSagarisKeyboardController* controller = new AsusSagarisKeyboardController(dev, info->path, info->release_number, name); RGBController_AsusSagarisKeyboard* rgb_controller = new RGBController_AsusSagarisKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectAsusStrixClaw(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusStrixClaw(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { StrixClawController* controller = new StrixClawController(dev, info->path, name); RGBController_StrixClaw* rgb_controller = new RGBController_StrixClaw(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("ASUS Cerberus Mech", DetectAsusCerberusMech, ASUS_LEGACY_USB_VID, ASUS_CERBERUS_MECH_PID, 1, 0xFF01, 1); diff --git a/Controllers/AsusMonitorController/AsusMonitorControllerDetect.cpp b/Controllers/AsusMonitorController/AsusMonitorControllerDetect.cpp index f69ffd2be..909ddf76a 100644 --- a/Controllers/AsusMonitorController/AsusMonitorControllerDetect.cpp +++ b/Controllers/AsusMonitorController/AsusMonitorControllerDetect.cpp @@ -25,17 +25,22 @@ #define ASUS_ROG_SWIFT_XG27UCG_PID 0x1BB4 #define ASUS_ROG_SWIFT_PG32UCDM_PID 0x1B2B -void DetectAsusMonitorControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectAsusMonitorControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { AsusMonitorController* controller = new AsusMonitorController(dev, *info, name); RGBController_AsusMonitor* rgb_controller = new RGBController_AsusMonitor(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Asus ROG STRIX XG27AQDMG", DetectAsusMonitorControllers, ASUS_VID, ASUS_ROG_STRIX_XG27AQDMG_PID, 1, 0xFF72, 0x00A1); diff --git a/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Linux.cpp b/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Linux.cpp index 751413299..71e05a2ed 100644 --- a/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Linux.cpp +++ b/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Linux.cpp @@ -12,14 +12,15 @@ #include "DetectionManager.h" #include "RGBController_AsusTUFLaptop_Linux.h" -static void DetectAsusTUFLaptopLinuxControllers() +DetectedControllers DetectAsusTUFLaptopLinuxControllers() { /*-------------------------------------------------------------------------------------*\ | If /sys/devices/platform/asus-nb-wmi/leds/asus::kbd_backlight/kbd_rgb_mode exists, | | the kernel support TUF Laptop keyboard LED controlling. | \*-------------------------------------------------------------------------------------*/ + DetectedControllers detected_controllers; + std::string s = ""; - std::string s = ""; s.append(ASUS_KBD_BACKLIGHT_BASE_PATH); s.append(ASUS_KBD_BACKLIGHT_MODE_PATH); @@ -27,9 +28,11 @@ static void DetectAsusTUFLaptopLinuxControllers() { AsusTUFLaptopLinuxController* controller = new AsusTUFLaptopLinuxController(); RGBController_AsusTUFLaptopLinux* rgb_controller = new RGBController_AsusTUFLaptopLinux(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } - return; + + return(detected_controllers); } REGISTER_DETECTOR("ASUS TUF Laptop", DetectAsusTUFLaptopLinuxControllers); diff --git a/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Windows.cpp b/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Windows.cpp index 8ef85fd95..4001dbc8a 100644 --- a/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Windows.cpp +++ b/Controllers/AsusTUFLaptopController/AsusTUFLaptopDetect_Windows.cpp @@ -12,41 +12,38 @@ #include "RGBController_AsusTUFLaptop_Windows.h" #include "wmi.h" -static void DetectAsusTUFLaptopWMIControllers() +DetectedControllers DetectAsusTUFLaptopWMIControllers() { // Try to retrieve ProductID / Device name from WMI; Possibly can be rewritten to use wmi.cpp // IF you encounter false detection ( e.g. if your laptop keyboard backlight uses USB interface // instead of ACPI WMI) please add a WHITELIST by checking the // `name` variable for model substrings like "FX505DU" // For now, checking for "TUF Gaming" should suffice + DetectedControllers detected_controllers; + Wmi wmi; + std::vector systemProduct; - Wmi wmi; - - std::vector systemProduct; - if (wmi.query("SELECT * FROM Win32_ComputerSystemProduct", systemProduct)) + if(wmi.query("SELECT * FROM Win32_ComputerSystemProduct", systemProduct) != 0) { - return; + // There should only be one, a cycle is a precaution + if(systemProduct.size() == 1) + { + std::string& name = systemProduct[0]["Name"]; + + if(name.find("TUF Gaming") != name.npos) + { + AsusTUFLaptopController* controller = AsusTUFLaptopController::checkAndCreate(); + if(controller) + { + RGBController* rgb_controller = new RGBController_AsusTUFLaptopWMI(controller); + + detected_controllers.push_back(rgb_controller); + } + } + } } - // There should only be one, a cycle is a precaution - if(systemProduct.size() != 1) - { - return; - } - std::string& name = systemProduct[0]["Name"]; - - if(name.find("TUF Gaming") == name.npos) - { - return; - } - - AsusTUFLaptopController* controller = AsusTUFLaptopController::checkAndCreate(); - if(controller) - { - RGBController* new_controller = new RGBController_AsusTUFLaptopWMI(controller); - - DetectionManager::get()->RegisterRGBController(new_controller); - } + return(detected_controllers); } /* DetectAsusTUFLaptopWMIControllers() */ REGISTER_DETECTOR("ASUS TUF Laptop", DetectAsusTUFLaptopWMIControllers); diff --git a/Controllers/BlinkyTapeController/BlinkyTapeControllerDetect.cpp b/Controllers/BlinkyTapeController/BlinkyTapeControllerDetect.cpp index 9ac1e660c..1056280e7 100644 --- a/Controllers/BlinkyTapeController/BlinkyTapeControllerDetect.cpp +++ b/Controllers/BlinkyTapeController/BlinkyTapeControllerDetect.cpp @@ -15,23 +15,16 @@ #include "RGBController_BlinkyTape.h" #include "find_usb_serial_port.h" -/*-----------------------------------------------------*\ -| BlinkyTape VID and PID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| BlinkyTape VID and PID | +\*---------------------------------------------------------*/ #define BLINKINLABS_VID 0x1D50 #define BLINKYTAPE_PID 0x605E -/******************************************************************************************\ -* * -* DetectBlinkyTapeControllers * -* * -* Detect BlinkyTape devices * -* * -\******************************************************************************************/ - -void DetectBlinkyTapeControllers() +DetectedControllers DetectBlinkyTapeControllers() { - std::vector device_locations = find_usb_serial_port(BLINKINLABS_VID, BLINKYTAPE_PID); + DetectedControllers detected_controllers; + std::vector device_locations = find_usb_serial_port(BLINKINLABS_VID, BLINKYTAPE_PID); for(unsigned int device_idx = 0; device_idx < device_locations.size(); device_idx++) { @@ -39,8 +32,11 @@ void DetectBlinkyTapeControllers() controller->Initialize(*device_locations[device_idx]); RGBController_BlinkyTape* rgb_controller = new RGBController_BlinkyTape(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_DETECTOR("BlinkyTape", DetectBlinkyTapeControllers); diff --git a/Controllers/CherryKeyboardController/CherryKeyboardControllerDetect.cpp b/Controllers/CherryKeyboardController/CherryKeyboardControllerDetect.cpp index 1eafe2e2a..66333e1a9 100644 --- a/Controllers/CherryKeyboardController/CherryKeyboardControllerDetect.cpp +++ b/Controllers/CherryKeyboardController/CherryKeyboardControllerDetect.cpp @@ -14,35 +14,33 @@ #include "CherryKeyboardController.h" #include "RGBController_CherryKeyboard.h" -/*-----------------------------------------------------*\ -| Cherry keyboard VID and usage page | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Cherry keyboard VID and usage page | +\*---------------------------------------------------------*/ #define CHERRY_KEYBOARD_VID 0x046A #define CHERRY_KEYBOARD_USAGE_PAGE 0xFF1C -/******************************************************************************************\ -* * -* DetectCherryKeyboards * -* * -* Tests the USB address to see if an Cherry RGB Keyboard controller exists there. * -* * -\******************************************************************************************/ - -void DetectCherryKeyboards(hid_device_info* info, const std::string& name) +DetectedControllers DetectCherryKeyboards(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); - if( dev ) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { CherryKeyboardController* controller = new CherryKeyboardController(dev, info->path, name); RGBController_CherryKeyboard* rgb_controller = new RGBController_CherryKeyboard(controller, info->product_id); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -/*---------------------------------------------------------------------------------------------------------------------------------------------*\ -| Keyboards | -\*---------------------------------------------------------------------------------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboards | +\*---------------------------------------------------------*/ REGISTER_HID_DETECTOR_IP("Cherry Keyboard MX BOARD 3.0S FL NBL", DetectCherryKeyboards, CHERRY_KEYBOARD_VID, MX_BOARD_3_0S_FL_NBL_PID , 1, CHERRY_KEYBOARD_USAGE_PAGE); REGISTER_HID_DETECTOR_IP("Cherry Keyboard MX BOARD 3.0S FL RGB", DetectCherryKeyboards, CHERRY_KEYBOARD_VID, MX_BOARD_3_0S_FL_RGB_PID , 1, CHERRY_KEYBOARD_USAGE_PAGE); REGISTER_HID_DETECTOR_IP("Cherry Keyboard MX BOARD 3.0S FL RGB KOREAN", DetectCherryKeyboards, CHERRY_KEYBOARD_VID, MX_BOARD_3_0S_FL_RGB_KOR_PID, 1, CHERRY_KEYBOARD_USAGE_PAGE); diff --git a/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp b/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp index d80c03767..86222dc2d 100644 --- a/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp +++ b/Controllers/ColorfulGPUController/ColorfulGPUControllerDetect.cpp @@ -7,12 +7,12 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" -#include "LogManager.h" #include "ColorfulGPUController.h" -#include "RGBController_ColorfulGPU.h" +#include "DetectionManager.h" #include "i2c_smbus.h" +#include "LogManager.h" #include "pci_ids.h" +#include "RGBController_ColorfulGPU.h" bool TestForColorfulGPU(i2c_smbus_interface* bus, uint8_t i2c_addr) { @@ -33,15 +33,19 @@ bool TestForColorfulGPU(i2c_smbus_interface* bus, uint8_t i2c_addr) return res >= 0 && (read_pkt[0] == 0xAA && read_pkt[1] == 0xEF && read_pkt[2] == 0x81); } -void DetectColorfulGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectColorfulGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(TestForColorfulGPU(bus, i2c_addr)) { ColorfulGPUController* controller = new ColorfulGPUController(bus, i2c_addr, name); RGBController_ColorfulGPU* rgb_controller = new RGBController_ColorfulGPU(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Advanced OC 12G L-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ADVANCED_OC_12G_LV, 0x61); diff --git a/Controllers/ColorfulTuringGPUController/ColorfulTuringGPUControllerDetect.cpp b/Controllers/ColorfulTuringGPUController/ColorfulTuringGPUControllerDetect.cpp index e11fe61a2..5c757ba65 100644 --- a/Controllers/ColorfulTuringGPUController/ColorfulTuringGPUControllerDetect.cpp +++ b/Controllers/ColorfulTuringGPUController/ColorfulTuringGPUControllerDetect.cpp @@ -7,21 +7,25 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" #include "ColorfulTuringGPUController.h" -#include "RGBController_ColorfulTuringGPU.h" +#include "DetectionManager.h" #include "i2c_smbus.h" #include "pci_ids.h" +#include "RGBController_ColorfulTuringGPU.h" -void DetectColorfulTuringGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectColorfulTuringGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(bus->port_id == 1) { - ColorfulTuringGPUController* controller = new ColorfulTuringGPUController(bus, i2c_addr, name); + ColorfulTuringGPUController* controller = new ColorfulTuringGPUController(bus, i2c_addr, name); RGBController_ColorfulTuringGPU* rgb_controller = new RGBController_ColorfulTuringGPU(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 2070 SUPER Advanced OC-V", DetectColorfulTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_2070_SUPER_ADVANCED_OCV, 0x50); diff --git a/Controllers/CorsairCommanderCoreController/CorsairCommanderCoreControllerDetect.cpp b/Controllers/CorsairCommanderCoreController/CorsairCommanderCoreControllerDetect.cpp index 2ef22912a..415600f6f 100644 --- a/Controllers/CorsairCommanderCoreController/CorsairCommanderCoreControllerDetect.cpp +++ b/Controllers/CorsairCommanderCoreController/CorsairCommanderCoreControllerDetect.cpp @@ -10,8 +10,8 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "CorsairCommanderCoreController.h" +#include "DetectionManager.h" #include "RGBController_CorsairCommanderCore.h" /*-----------------------------------------------------*\ @@ -19,25 +19,22 @@ \*-----------------------------------------------------*/ #define CORSAIR_VID 0x1B1C -/******************************************************************************************\ -* * -* DetectCorsairCommanderCoreControllers * -* * -* Tests the USB address to see if a Corsair RGB Cooler controller exists there. * -* * -\******************************************************************************************/ - -void DetectCorsairCommanderCoreControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectCorsairCommanderCoreControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { CorsairCommanderCoreController* controller = new CorsairCommanderCoreController(dev, info->path, info->product_id, name); RGBController_CorsairCommanderCore* rgb_controller = new RGBController_CorsairCommanderCore(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Corsair Commander Core", DetectCorsairCommanderCoreControllers, CORSAIR_VID, CORSAIR_COMMANDER_CORE_PID, 0x00, 0xFF42, 0x01); diff --git a/Controllers/CorsairDominatorPlatinumController/CorsairDominatorPlatinumControllerDetect.cpp b/Controllers/CorsairDominatorPlatinumController/CorsairDominatorPlatinumControllerDetect.cpp index c640d6260..ac0d745b1 100644 --- a/Controllers/CorsairDominatorPlatinumController/CorsairDominatorPlatinumControllerDetect.cpp +++ b/Controllers/CorsairDominatorPlatinumController/CorsairDominatorPlatinumControllerDetect.cpp @@ -93,22 +93,11 @@ bool TestForCorsairDominatorPlatinumController(i2c_smbus_interface *bus, unsigne return true; } -/******************************************************************************************\ -* * -* DetectCorsairDominatorPlatinumControllers * -* * -* Detect Corsair Dominator Platinum controllers on the enumerated I2C busses. * -* * -* bus - pointer to i2c_smbus_interface where Aura device is connected * -* dev - I2C address of Aura device * -* * -\******************************************************************************************/ - -void DetectCorsairDominatorPlatinumControllers(std::vector &busses) +DetectedControllers DetectCorsairDominatorPlatinumControllers(std::vector &busses) { - SettingsManager* settings_manager = ResourceManager::get()->GetSettingsManager(); - - json corsair_dominator_settings = settings_manager->GetSettings("CorsairDominatorSettings"); + DetectedControllers detected_controllers; + SettingsManager* settings_manager = ResourceManager::get()->GetSettingsManager(); + json corsair_dominator_settings = settings_manager->GetSettings("CorsairDominatorSettings"); if(!corsair_dominator_settings.contains("model")) { @@ -158,10 +147,10 @@ void DetectCorsairDominatorPlatinumControllers(std::vectorRegisterRGBController(rgbcontroller); + detected_controllers.push_back(rgb_controller); } std::this_thread::sleep_for(10ms); @@ -172,6 +161,8 @@ void DetectCorsairDominatorPlatinumControllers(std::vectorRegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_DETECTOR("Corsair H100i v2", DetectCorsairHydro2Controllers); diff --git a/Controllers/CorsairHydroController/CorsairHydroControllerDetect.cpp b/Controllers/CorsairHydroController/CorsairHydroControllerDetect.cpp index 9d87ce7dc..5f3f976e0 100644 --- a/Controllers/CorsairHydroController/CorsairHydroControllerDetect.cpp +++ b/Controllers/CorsairHydroController/CorsairHydroControllerDetect.cpp @@ -14,14 +14,14 @@ #include "CorsairHydroController.h" #include "RGBController_CorsairHydro.h" -/*-----------------------------------------------------*\ -| Corsair vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Corsair vendor ID | +\*---------------------------------------------------------*/ #define CORSAIR_VID 0x1B1C -/*-----------------------------------------------------*\ -| Keyboard Hydro Series product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard Hydro Series product IDs | +\*---------------------------------------------------------*/ #define CORSAIR_H115I_PRO_RGB_PID 0x0C13 #define CORSAIR_H100I_PRO_RGB_PID 0x0C15 #define CORSAIR_H150I_PRO_RGB_PID 0x0C12 @@ -46,16 +46,10 @@ static const corsair_hydro_device device_list[] = { CORSAIR_VID, CORSAIR_H150I_PRO_RGB_PID, 0, "Corsair H150i PRO RGB" }, }; -/******************************************************************************************\ -* * -* DetectCorsairHydroControllers * -* * -* Tests the USB address to see if a Corsair RGB Cooler controller exists there. * -* * -\******************************************************************************************/ - -void DetectCorsairHydroControllers() +DetectedControllers DetectCorsairHydroControllers() { + DetectedControllers detected_controllers; + libusb_init(NULL); #ifdef _WIN32 @@ -75,10 +69,12 @@ void DetectCorsairHydroControllers() CorsairHydroController* controller = new CorsairHydroController(dev, device_list[device_idx].name); RGBController_CorsairHydro* rgb_controller = new RGBController_CorsairHydro(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectCorsairHydroControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("Corsair Hydro Series", DetectCorsairHydroControllers); /*---------------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/CorsairHydroPlatinumController/CorsairHydroPlatinumControllerDetect.cpp b/Controllers/CorsairHydroPlatinumController/CorsairHydroPlatinumControllerDetect.cpp index 4e28d6336..8f3196f7d 100644 --- a/Controllers/CorsairHydroPlatinumController/CorsairHydroPlatinumControllerDetect.cpp +++ b/Controllers/CorsairHydroPlatinumController/CorsairHydroPlatinumControllerDetect.cpp @@ -11,18 +11,18 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "CorsairHydroPlatinumController.h" +#include "DetectionManager.h" #include "RGBController_CorsairHydroPlatinum.h" -/*-----------------------------------------------------*\ -| Corsair vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Corsair vendor ID | +\*---------------------------------------------------------*/ #define CORSAIR_VID 0x1B1C -/*-----------------------------------------------------*\ -| Product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Product IDs | +\*---------------------------------------------------------*/ #define CORSAIR_HYDRO_H100I_PLATINUM_PID 0x0C18 #define CORSAIR_HYDRO_H100I_PLATINUM_SE_PID 0x0C19 #define CORSAIR_HYDRO_H115I_PLATINUM_PID 0x0C17 @@ -37,7 +37,7 @@ #define CORSAIR_HYDRO_H100I_ELITE_RGB_PID_WHITE 0x0C40 #define CORSAIR_HYDRO_H150I_ELITE_RGB_PID_WHITE 0x0C41 -void DetectCorsairHydroPlatinumControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectCorsairHydroPlatinumControllers(hid_device_info* info, const std::string& name) { uint16_t no_rgb_fan_models[] = { @@ -48,7 +48,10 @@ void DetectCorsairHydroPlatinumControllers(hid_device_info* info, const std::str CORSAIR_HYDRO_H150I_ELITE_RGB_PID_WHITE }; - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -65,8 +68,10 @@ void DetectCorsairHydroPlatinumControllers(hid_device_info* info, const std::str CorsairHydroPlatinumController* controller = new CorsairHydroPlatinumController(dev, info->path, dev_rgb_fan, name); RGBController_CorsairHydroPlatinum* rgb_controller = new RGBController_CorsairHydroPlatinum(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Corsair Hydro H100i Platinum", DetectCorsairHydroPlatinumControllers, CORSAIR_VID, CORSAIR_HYDRO_H100I_PLATINUM_PID ); diff --git a/Controllers/CorsairICueLinkController/CorsairICueLinkControllerDetect.cpp b/Controllers/CorsairICueLinkController/CorsairICueLinkControllerDetect.cpp index f7f1d2179..27ccb7333 100644 --- a/Controllers/CorsairICueLinkController/CorsairICueLinkControllerDetect.cpp +++ b/Controllers/CorsairICueLinkController/CorsairICueLinkControllerDetect.cpp @@ -19,17 +19,22 @@ #define CORSAIR_VID 0x1B1C #define CORSAIR_ICUE_LINK_SYSTEM_HUB_PID 0x0C3F -void DetectCorsairICueLinkControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectCorsairICueLinkControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { CorsairICueLinkController* controller = new CorsairICueLinkController(dev, info->path, name); RGBController_CorsairICueLink* rgb_controller = new RGBController_CorsairICueLink(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Corsair iCUE Link System Hub", DetectCorsairICueLinkControllers, CORSAIR_VID, CORSAIR_ICUE_LINK_SYSTEM_HUB_PID, 0x00, 0xFF42, 0x01); diff --git a/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp b/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp index 4508999a0..a14175d0a 100644 --- a/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp +++ b/Controllers/CorsairLightingNodeController/CorsairLightingNodeControllerDetect.cpp @@ -10,8 +10,8 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "CorsairLightingNodeController.h" +#include "DetectionManager.h" #include "RGBController_CorsairLightingNode.h" #define CORSAIR_VID 0x1B1C @@ -23,26 +23,23 @@ #define CORSAIR_SPEC_OMEGA_RGB_PID 0x1D04 #define CORSAIR_LT100_PID 0x0C23 -/******************************************************************************************\ -* * -* DetectCorsairLightingNodeControllers * -* * -* Detect devices supported by the Corsair Lighting Node Pro driver * -* * -\******************************************************************************************/ - -void DetectCorsairLightingNodeControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectCorsairLightingNodeControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { CorsairLightingNodeController* controller = new CorsairLightingNodeController(dev, info->path, name); RGBController_CorsairLightingNode* rgb_controller = new RGBController_CorsairLightingNode(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectCorsairLightingNodeControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR("Corsair Lighting Node Core", DetectCorsairLightingNodeControllers, CORSAIR_VID, CORSAIR_LIGHTING_NODE_CORE_PID); // 1 channel REGISTER_HID_DETECTOR("Corsair Lighting Node Pro", DetectCorsairLightingNodeControllers, CORSAIR_VID, CORSAIR_LIGHTING_NODE_PRO_PID); // 2 channels diff --git a/Controllers/CorsairVengeanceController/CorsairVengeanceControllerDetect.cpp b/Controllers/CorsairVengeanceController/CorsairVengeanceControllerDetect.cpp index 1bff67f05..dfee6a3fa 100644 --- a/Controllers/CorsairVengeanceController/CorsairVengeanceControllerDetect.cpp +++ b/Controllers/CorsairVengeanceController/CorsairVengeanceControllerDetect.cpp @@ -11,19 +11,11 @@ \*---------------------------------------------------------*/ #include -#include "DetectionManager.h" #include "CorsairVengeanceController.h" -#include "RGBController_CorsairVengeance.h" +#include "DetectionManager.h" #include "i2c_smbus.h" #include "pci_ids.h" - -/******************************************************************************************\ -* * -* TestForCorsairVengeanceController * -* * -* Tests the given address to see if a Corsair controller exists there. * -* * -\******************************************************************************************/ +#include "RGBController_CorsairVengeance.h" bool TestForCorsairVengeanceController(i2c_smbus_interface* bus, unsigned char address) { @@ -48,21 +40,12 @@ bool TestForCorsairVengeanceController(i2c_smbus_interface* bus, unsigned char a return(pass); -} /* TestForCorsairVengeanceController() */ +} -/******************************************************************************************\ -* * -* DetectCorsairVengeanceControllers * -* * -* Detect Corsair controllers on the enumerated I2C busses. * -* * -* bus - pointer to i2c_smbus_interface where device is connected * -* slots - list of SPD entries with matching JEDEC ID * -* * -\******************************************************************************************/ - -void DetectCorsairVengeanceControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) +DetectedControllers DetectCorsairVengeanceControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) { + DetectedControllers detected_controllers; + for(SPDWrapper *slot : slots) { /*-------------------------------------------------*\ @@ -72,10 +55,10 @@ void DetectCorsairVengeanceControllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(new_rgbcontroller); + detected_controllers.push_back(rgb_controller); } /*-------------------------------------------------*\ @@ -85,12 +68,14 @@ void DetectCorsairVengeanceControllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(new_rgbcontroller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectCorsairVengeanceControllers() */ + + return(detected_controllers); +} REGISTER_I2C_DRAM_DETECTOR("Corsair Vengeance RGB DRAM", DetectCorsairVengeanceControllers, JEDEC_CORSAIR, SPD_DDR4_SDRAM); diff --git a/Controllers/CorsairWirelessController/CorsairWirelessControllerDetect.cpp b/Controllers/CorsairWirelessController/CorsairWirelessControllerDetect.cpp index 6959efa20..b9a47e051 100644 --- a/Controllers/CorsairWirelessController/CorsairWirelessControllerDetect.cpp +++ b/Controllers/CorsairWirelessController/CorsairWirelessControllerDetect.cpp @@ -15,28 +15,23 @@ #include "RGBController.h" #include "RGBController_CorsairWireless.h" -/*-----------------------------------------------------*\ -| Corsair vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Corsair vendor ID | +\*---------------------------------------------------------*/ #define CORSAIR_VID 0x1B1C -/*-----------------------------------------------------*\ -| Keyboard product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ #define CORSAIR_K57_RGB_WIRED_PID 0x1B6E #define CORSAIR_K57_RGB_WIRELESS_PID 0x1B62 -/******************************************************************************************\ -* * -* DetectCorsairWirelessControllers * -* * -* Tests the USB address to see if a Corsair RGB Keyboard controller exists there. * -* * -\******************************************************************************************/ - -void DetectCorsairWirelessControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectCorsairWirelessControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -46,17 +41,19 @@ void DetectCorsairWirelessControllers(hid_device_info* info, const std::string& if(controller->GetDeviceType() != DEVICE_TYPE_UNKNOWN) { RGBController_CorsairWireless* rgb_controller = new RGBController_CorsairWireless(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { delete controller; } } -} /* DetectCorsairWirelessControllers() */ -/*-----------------------------------------------------------------------------------------------------*\ -| Keyboards | -\*-----------------------------------------------------------------------------------------------------*/ + return(detected_controllers); +} + +/*---------------------------------------------------------*\ +| Keyboards | +\*---------------------------------------------------------*/ REGISTER_HID_DETECTOR_IPU("Corsair K57 RGB (Wired)", DetectCorsairWirelessControllers, CORSAIR_VID, CORSAIR_K57_RGB_WIRED_PID, 1, 0xFF42, 1); //REGISTER_HID_DETECTOR_IPU("Corsair K57 RGB (Wireless)", DetectCorsairWirelessControllers, CORSAIR_VID, CORSAIR_K57_RGB_WIRELESS_PID, 1, 0xFF42, 1); diff --git a/Controllers/DDPController/DDPControllerDetect.cpp b/Controllers/DDPController/DDPControllerDetect.cpp index 27451add8..58da8a01b 100644 --- a/Controllers/DDPController/DDPControllerDetect.cpp +++ b/Controllers/DDPController/DDPControllerDetect.cpp @@ -19,11 +19,12 @@ using json = nlohmann::json; -void DetectDDPControllers() +DetectedControllers DetectDDPControllers() { - json ddp_settings; + DetectedControllers detected_controllers; + json ddp_settings; std::vector> device_lists; - DDPDevice dev; + DDPDevice dev; ddp_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("DDPDevices"); @@ -85,9 +86,11 @@ void DetectDDPControllers() for(unsigned int list_idx = 0; list_idx < device_lists.size(); list_idx++) { RGBController_DDP* rgb_controller = new RGBController_DDP(device_lists[list_idx]); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } + + return(detected_controllers); } REGISTER_DETECTOR("DDP", DetectDDPControllers); diff --git a/Controllers/DarkProject/DarkProjectControllerDetect.cpp b/Controllers/DarkProject/DarkProjectControllerDetect.cpp index 763b94f90..de770f1ab 100644 --- a/Controllers/DarkProject/DarkProjectControllerDetect.cpp +++ b/Controllers/DarkProject/DarkProjectControllerDetect.cpp @@ -22,17 +22,22 @@ \*---------------------------------------------------------*/ #define KD3B_V2_PID 0x2061 -void DetectDarkProjectKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectDarkProjectKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { DarkProjectKeyboardController* controller = new DarkProjectKeyboardController(dev, info->path, name); RGBController_DarkProjectKeyboard* rgb_controller = new RGBController_DarkProjectKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Dark Project KD3B V2", DetectDarkProjectKeyboardControllers, DARKPROJECT_VID, KD3B_V2_PID, 2, 0xFFC2, 4); diff --git a/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp b/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp index 927062239..66ec24073 100644 --- a/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp +++ b/Controllers/DasKeyboardController/DasKeyboardControllerDetect.cpp @@ -14,34 +14,28 @@ #include "RGBController_DasKeyboard.h" #include -/*-----------------------------------------------------*\ -| Das Keyboard vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Das Keyboard vendor ID | +\*---------------------------------------------------------*/ #define DAS_KEYBOARD_VID 0x24F0 -/*-----------------------------------------------------*\ -| Keyboard product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ #define DAS_KEYBOARD_Q4_PID 0x2037 #define DAS_KEYBOARD_Q5_PID 0x2020 #define DAS_KEYBOARD_Q5S_PID 0x209A -/******************************************************************************************\ -* * -* DetectDasKeyboardControllers * -* * -* Tests the USB address to see if a Das Keyboard RGB controller exists there. * -* We need the second interface to communicate with the keyboard * -* * -\******************************************************************************************/ - -void DetectDasKeyboardControllers(hid_device_info *info, const std::string &name) +DetectedControllers DetectDasKeyboardControllers(hid_device_info *info, const std::string &name) { - hid_device *dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - DasKeyboardController *controller = new DasKeyboardController(dev, info->path, name); + DasKeyboardController* controller = new DasKeyboardController(dev, info->path, name); if(controller->GetLayoutString() == "NONE") { @@ -49,12 +43,14 @@ void DetectDasKeyboardControllers(hid_device_info *info, const std::string &name } else { - RGBController_DasKeyboard *rgb_controller = new RGBController_DasKeyboard(controller); + RGBController_DasKeyboard* rgb_controller = new RGBController_DasKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectDasKeyboardControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_IPU("Das Keyboard Q4 RGB", DetectDasKeyboardControllers, DAS_KEYBOARD_VID, DAS_KEYBOARD_Q4_PID, 1, 0x01, 0x80); REGISTER_HID_DETECTOR_I ("Das Keyboard Q5 RGB", DetectDasKeyboardControllers, DAS_KEYBOARD_VID, DAS_KEYBOARD_Q5_PID, 1); diff --git a/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp b/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp index f2e23a482..7e21d69cb 100644 --- a/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp +++ b/Controllers/ENESMBusController/ENESMBusControllerDetect.cpp @@ -9,30 +9,33 @@ #include #include "DetectionManager.h" +#include "dmiinfo.h" #include "ENESMBusController.h" #include "ENESMBusInterface_i2c_smbus.h" +#include "i2c_smbus.h" #include "LogManager.h" +#include "pci_ids.h" #include "RGBController.h" #include "RGBController_ENESMBus.h" -#include "i2c_smbus.h" -#include "pci_ids.h" -#include "dmiinfo.h" - -#define DETECTOR_NAME "ENE (ASUS Aura) SMBus Controller" -#define VENDOR_NAME "ASUS" //This should match the Vendor name from DMI using namespace std::chrono_literals; -/*----------------------------------------------------------------------*\ -| Windows defines "interface" for some reason. Work around this | -\*----------------------------------------------------------------------*/ +#define DETECTOR_NAME "ENE (ASUS Aura) SMBus Controller" +#define VENDOR_NAME "ASUS" //This should match the Vendor name from DMI +#define GPU_CHECK_DEVICE_MESSAGE_EN "[%s] Bus %02d is a GPU and the subvendor matches the one for %s, looking for a device at 0x%02X" + +/*---------------------------------------------------------*\ +| Windows defines "interface" for some reason. Work around | +| this | +\*---------------------------------------------------------*/ #ifdef interface #undef interface #endif -/*----------------------------------------------------------------------*\ -| This list contains the available SMBus addresses for mapping ENE RAM | -\*----------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| This list contains the available SMBus addresses for | +| mapping ENE RAM | +\*---------------------------------------------------------*/ #define ENE_RAM_ADDRESS_COUNT 23 static const unsigned char ene_ram_addresses[] = @@ -62,9 +65,10 @@ static const unsigned char ene_ram_addresses[] = 0x3D }; -/*---------------------------------------------------------------------------------*\ -| This list contains the available SMBus addresses for mapping Aura motherboards | -\*---------------------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| This list contains the available SMBus addresses for | +| mapping Aura motherboards | +\*---------------------------------------------------------*/ #define AURA_MOBO_ADDRESS_COUNT 3 static const unsigned char aura_mobo_addresses[] = @@ -74,16 +78,6 @@ static const unsigned char aura_mobo_addresses[] = 0x4F }; -/******************************************************************************************\ -* * -* ENERegisterRead * -* * -* A standalone version of the ENESMBusController::ENERegisterRead function for * -* access to ENE devices without instancing the ENESMBusController class or reading * -* the config table from the device. * -* * -\******************************************************************************************/ - static unsigned char ENERegisterRead(i2c_smbus_interface* bus, ene_dev_id dev, ene_register reg) { //Write ENE register @@ -93,16 +87,6 @@ static unsigned char ENERegisterRead(i2c_smbus_interface* bus, ene_dev_id dev, e return(bus->i2c_smbus_read_byte_data(dev, 0x81)); } -/******************************************************************************************\ -* * -* ENERegisterWrite * -* * -* A standalone version of the ENESMBusController::ENERegisterWrite function for * -* access to ENE devices without instancing the ENESMBusController class or reading * -* the config table from the device. * -* * -\******************************************************************************************/ - static void ENERegisterWrite(i2c_smbus_interface* bus, ene_dev_id dev, ene_register reg, unsigned char val) { //Write ENE register @@ -112,20 +96,6 @@ static void ENERegisterWrite(i2c_smbus_interface* bus, ene_dev_id dev, ene_regis bus->i2c_smbus_write_byte_data(dev, 0x01, val); } -/******************************************************************************************\ -* * -* TestForENESMBusController * -* * -* Tests the given address to see if an ENE controller exists there. First does a * -* quick write to test for a response, and if so does a simple read at 0xA0 to test * -* for incrementing values 0...F which was observed at this location during data dump * -* * -* Also tests for the string "Micron" in the ENE register space. Crucial (Micron) * -* DRAM modules use an ENE controller with custom, incompatible firmware and must * -* be excluded from this controller. * -* * -\******************************************************************************************/ - bool TestForENESMBusController(i2c_smbus_interface* bus, unsigned char address) { bool pass = false; @@ -181,23 +151,13 @@ bool TestForENESMBusController(i2c_smbus_interface* bus, unsigned char address) } return(pass); +} -} /* TestForENESMBusController() */ - -/******************************************************************************************\ -* * -* DetectENESMBusDRAMControllers * -* * -* Detects ENE SMBus controllers on DRAM devices * -* * -* bus - pointer to i2c_smbus_interface where device is connected * -* dev - I2C address of device * -* * -\******************************************************************************************/ - -void DetectENESMBusDRAMControllers(std::vector &busses) +DetectedControllers DetectENESMBusDRAMControllers(std::vector &busses) { - for (unsigned int bus = 0; bus < busses.size(); bus++) + DetectedControllers detected_controllers; + + for(unsigned int bus = 0; bus < busses.size(); bus++) { int address_list_idx = -1; @@ -205,14 +165,13 @@ void DetectENESMBusDRAMControllers(std::vector &busses) { LOG_DEBUG("[ENE SMBus DRAM] Remapping ENE SMBus RAM modules on 0x77"); - for (unsigned int slot = 0; slot < 8; slot++) + for(unsigned int slot = 0; slot < 8; slot++) { int res = busses[bus]->i2c_smbus_write_quick(0x77, I2C_SMBUS_WRITE); if(res < 0) { LOG_DEBUG("[ENE SMBus DRAM] No device detected at 0x77, aborting remap"); - break; } @@ -230,7 +189,7 @@ void DetectENESMBusDRAMControllers(std::vector &busses) { break; } - } while (res >= 0); + } while(res >= 0); if(address_list_idx < ENE_RAM_ADDRESS_COUNT) { @@ -242,48 +201,41 @@ void DetectENESMBusDRAMControllers(std::vector &busses) } // Add ENE controllers at their remapped addresses - for (unsigned int address_list_idx = 0; address_list_idx < ENE_RAM_ADDRESS_COUNT; address_list_idx++) + for(unsigned int address_list_idx = 0; address_list_idx < ENE_RAM_ADDRESS_COUNT; address_list_idx++) { - if (TestForENESMBusController(busses[bus], ene_ram_addresses[address_list_idx])) + if(TestForENESMBusController(busses[bus], ene_ram_addresses[address_list_idx])) { ENESMBusInterface_i2c_smbus* interface = new ENESMBusInterface_i2c_smbus(busses[bus]); ENESMBusController* controller = new ENESMBusController(interface, ene_ram_addresses[address_list_idx], "ENE DRAM", DEVICE_TYPE_DRAM); RGBController_ENESMBus* rgb_controller = new RGBController_ENESMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } std::this_thread::sleep_for(1ms); } } } -} /* DetectENESMBusDRAMControllers() */ -/******************************************************************************************\ -* * -* DetectENESMBusMotherboardControllers * -* * -* Detects ENE (ASUS Aura) SMBus controllers on ASUS motherboard devices * -* * -* bus - pointer to i2c_smbus_interface where Aura device is connected * -* dev - I2C address of Aura device * -* * -\******************************************************************************************/ + return(detected_controllers); +} -void DetectENESMBusMotherboardControllers(std::vector &busses) +DetectedControllers DetectENESMBusMotherboardControllers(std::vector &busses) { - for (unsigned int bus = 0; bus < busses.size(); bus++) + DetectedControllers detected_controllers; + + for(unsigned int bus = 0; bus < busses.size(); bus++) { // Add ENE (ASUS Aura) motherboard controllers IF_MOBO_SMBUS(busses[bus]->pci_vendor, busses[bus]->pci_device) { if(busses[bus]->pci_subsystem_vendor == ASUS_SUB_VEN || busses[bus]->pci_subsystem_vendor == 0 || busses[bus]->pci_subsystem_vendor == 0xFFFF) { - for (unsigned int address_list_idx = 0; address_list_idx < AURA_MOBO_ADDRESS_COUNT; address_list_idx++) + for(unsigned int address_list_idx = 0; address_list_idx < AURA_MOBO_ADDRESS_COUNT; address_list_idx++) { LOG_DEBUG(SMBUS_CHECK_DEVICE_MESSAGE_EN, DETECTOR_NAME, bus, VENDOR_NAME, aura_mobo_addresses[address_list_idx]); - if (TestForENESMBusController(busses[bus], aura_mobo_addresses[address_list_idx])) + if(TestForENESMBusController(busses[bus], aura_mobo_addresses[address_list_idx])) { DMIInfo dmi; @@ -291,7 +243,7 @@ void DetectENESMBusMotherboardControllers(std::vector &bus ENESMBusController* controller = new ENESMBusController(interface, aura_mobo_addresses[address_list_idx], "ASUS " + dmi.getMainboard(), DEVICE_TYPE_MOTHERBOARD); RGBController_ENESMBus* rgb_controller = new RGBController_ENESMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } std::this_thread::sleep_for(1ms); @@ -303,41 +255,43 @@ void DetectENESMBusMotherboardControllers(std::vector &bus } } } -} /* DetectENESMBusMotherboardControllers() */ -/******************************************************************************************\ -* * -* DetectENESMBusGPUControllers * -* * -* Detects ENE (ASUS Aura) SMBus controllers on ASUS GPU devices * -* * -\******************************************************************************************/ + return(detected_controllers); +} -#define GPU_CHECK_DEVICE_MESSAGE_EN "[%s] Bus %02d is a GPU and the subvendor matches the one for %s, looking for a device at 0x%02X" - -void DetectENESMBusGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectENESMBusGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(TestForENESMBusController(bus, i2c_addr)) { ENESMBusInterface_i2c_smbus* interface = new ENESMBusInterface_i2c_smbus(bus); ENESMBusController* controller = new ENESMBusController(interface, i2c_addr, name, DEVICE_TYPE_GPU); RGBController_ENESMBus* rgb_controller = new RGBController_ENESMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { LOG_DEBUG("[ENE SMBus ASUS GPU] Testing for controller at %d failed", i2c_addr); } -} /* DetectENESMBusGPUControllers() */ + return(detected_controllers); +} + +/*---------------------------------------------------------*\ +| ENE RAM | +\*---------------------------------------------------------*/ REGISTER_I2C_DETECTOR("ENE SMBus DRAM", DetectENESMBusDRAMControllers); + +/*---------------------------------------------------------*\ +| ASUS Motherboards | +\*---------------------------------------------------------*/ REGISTER_I2C_DETECTOR("ASUS Aura SMBus Motherboard", DetectENESMBusMotherboardControllers); -/*-----------------------------------------*\ -| Nvidia GPUs | -\*-----------------------------------------*/ - +/*---------------------------------------------------------*\ +| Nvidia GPUs | +\*---------------------------------------------------------*/ REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX GeForce RTX 3050 Gaming", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3050_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX3050_8G_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS KO GeForce RTX 3060 Gaming OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_DEV, ASUS_SUB_VEN, ASUS_KO_RTX_3060_OC_O12G_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS TUF GeForce RTX 3060 Gaming OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3060_O12G_GAMING, 0x67); @@ -477,10 +431,9 @@ REGISTER_I2C_PCI_DETECTOR("ASUS ROG ASTRAL GeForce RTX 5090 OC WHITE", REGISTER_I2C_PCI_DETECTOR("ASUS ROG ASTRAL LC GeForce RTX 5090 OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX5090_DEV, ASUS_SUB_VEN, ASUS_ROG_ASTRAL_LC_RTX_5090_O32G_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS ROG MATRIX PLATINUM GeForce RTX 5090", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX5090_DEV, ASUS_SUB_VEN, ASUS_ROG_MATRIX_PLATINUM_RTX_5090_P32G, 0x67); -/*-----------------------------------------*\ -| AMD GPUs | -\*-----------------------------------------*/ - +/*---------------------------------------------------------*\ +| AMD GPUs | +\*---------------------------------------------------------*/ REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX Radeon RX 6600 XT Gaming OC", DetectENESMBusGPUControllers, AMD_GPU_VEN, AMD_NAVI23_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RX_6600XT_O8G_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX Radeon RX 6650 XT Gaming", DetectENESMBusGPUControllers, AMD_GPU_VEN, AMD_NAVI23_DEV1, ASUS_SUB_VEN, ASUS_ROG_STRIX_RX_6650XT_O8G_GAMING, 0x67); REGISTER_I2C_PCI_DETECTOR("ASUS TUF Radeon RX 6700 XT Gaming OC", DetectENESMBusGPUControllers, AMD_GPU_VEN, AMD_NAVI22_DEV, ASUS_SUB_VEN, ASUS_TUF_RX_6700XT_O12G_GAMING, 0x67); diff --git a/Controllers/ENESMBusController/ROGArionDetect.cpp b/Controllers/ENESMBusController/ROGArionDetect.cpp index 85ec4428c..40f762547 100644 --- a/Controllers/ENESMBusController/ROGArionDetect.cpp +++ b/Controllers/ENESMBusController/ROGArionDetect.cpp @@ -13,17 +13,12 @@ #include "RGBController_ENESMBus.h" #include "scsiapi.h" -/******************************************************************************************\ -* * -* DetectROGArionControllers * -* * -* Detects ENE SMBus controllers on ASUS ROG Arion devices * -* * -\******************************************************************************************/ - -void DetectROGArionControllers() +DetectedControllers DetectROGArionControllers() { - scsi_device_info * info = scsi_enumerate(NULL, NULL); + DetectedControllers detected_controllers; + scsi_device_info * info; + + info = scsi_enumerate(NULL, NULL); while(info) { @@ -37,7 +32,7 @@ void DetectROGArionControllers() ENESMBusController* controller = new ENESMBusController(interface, 0x67, "Asus ROG Strix Arion", DEVICE_TYPE_STORAGE); RGBController_ENESMBus* rgb_controller = new RGBController_ENESMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } info = info->next; @@ -45,6 +40,7 @@ void DetectROGArionControllers() scsi_free_enumeration(info); -} /* DetectROGArionControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("ASUS ROG Arion", DetectROGArionControllers); diff --git a/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Linux.cpp b/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Linux.cpp index bec9816ad..1fb0f2dbd 100644 --- a/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Linux.cpp +++ b/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Linux.cpp @@ -20,20 +20,15 @@ #include "RGBController.h" #include "RGBController_ENESMBus.h" -/******************************************************************************************\ -* * -* DetectSpectrixS40GControllers * -* * -* Detects ENE SMBus controllers on XPG Spectrix S40G NVMe devices * -* * -\******************************************************************************************/ - -void DetectSpectrixS40GControllers() +DetectedControllers DetectSpectrixS40GControllers() { - /*---------------------------------------------------------------------*\ - | Search for /dev/nvmeX nodes with model matching "XPG SPECTRIX S40G" | - \*---------------------------------------------------------------------*/ - unsigned int nvme_idx = 0; + DetectedControllers detected_controllers; + + /*-----------------------------------------------------*\ + | Search for /dev/nvmeX nodes with model matching | + | "XPG SPECTRIX S40G" | + \*-----------------------------------------------------*/ + unsigned int nvme_idx = 0; while(1) { @@ -82,12 +77,14 @@ void DetectSpectrixS40GControllers() ENESMBusController* controller = new ENESMBusController(interface, 0x67, "XPG Spectrix S40G", DEVICE_TYPE_STORAGE); RGBController_ENESMBus* rgb_controller = new RGBController_ENESMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } nvme_idx++; } -} /* DetectSpectrixS40GControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR( "XPG Spectrix S40G", DetectSpectrixS40GControllers); diff --git a/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Windows.cpp b/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Windows.cpp index 859a48868..c772a1ab6 100644 --- a/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Windows.cpp +++ b/Controllers/ENESMBusController/XPGSpectrixS40GDetect_Windows.cpp @@ -19,21 +19,14 @@ #define DEVBUFSIZE (128 * 1024) -/*----------------------------------------------------------------------*\ -| Windows defines "interface" for some reason. Work around this | -\*----------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Windows defines "interface" for some reason. Work around | +| this | +\*---------------------------------------------------------*/ #ifdef interface #undef interface #endif -/******************************************************************************************\ -* * -* Search * -* * -* Search for an NVMe device matching "XPG SPECTRIX S40G" * -* * -\******************************************************************************************/ - int Search(wchar_t *dev_name) { wchar_t buff[DEVBUFSIZE] = L""; @@ -61,14 +54,6 @@ int Search(wchar_t *dev_name) return 0; } -/******************************************************************************************\ -* * -* OpenDevice * -* * -* Open a handle to the given device path * -* * -\******************************************************************************************/ - HANDLE OpenDevice(wchar_t buff[MAX_PATH]) { wchar_t path[MAX_PATH]; @@ -88,23 +73,14 @@ HANDLE OpenDevice(wchar_t buff[MAX_PATH]) return(hDevice); } -/******************************************************************************************\ -* * -* DetectSpectrixS40GControllers * -* * -* Detects ENE SMBus controllers on XPG Spectrix S40G NVMe devices * -* * -* Tests for the existance of a file descriptor matching * -* SCSI#Disk&Ven_NVMe&Prod_XPG_SPECTRIX_S40# on Windows machines * -* * -\******************************************************************************************/ - -void DetectSpectrixS40GControllers() +DetectedControllers DetectSpectrixS40GControllers() { + DetectedControllers detected_controllers; + /*-------------------------------------------------------------------------------------------------*\ | https://docs.microsoft.com/en-us/windows-hardware/drivers/install/identifiers-for-scsi-devices | \*-------------------------------------------------------------------------------------------------*/ - wchar_t dev_name[MAX_PATH]; + wchar_t dev_name[MAX_PATH]; if(Search(dev_name)) { @@ -116,10 +92,11 @@ void DetectSpectrixS40GControllers() ENESMBusController* controller = new ENESMBusController(interface, 0x67, "XPG Spectrix S40G", DEVICE_TYPE_STORAGE); RGBController_ENESMBus* rgb_controller = new RGBController_ENESMBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectSpectrixS40GControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR( "XPG Spectrix S40G", DetectSpectrixS40GControllers); diff --git a/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp b/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp index f6428b15e..e6dbc63a3 100644 --- a/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp +++ b/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp @@ -16,9 +16,9 @@ #include "ResourceManager.h" #include "SettingsManager.h" -/*-----------------------------------------------------*\ -| Keyboard product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ #define EVISION_KEYBOARD_VID 0x0C45 #define EVISION_KEYBOARD2_VID 0x320F #define EVISION_KEYBOARD3_VID 0x3299 @@ -39,71 +39,74 @@ #define BYGG_CSB_ICL01_PID 0x5041 #define GAMEPOWER_OGRE_RGB_PID 0x7672 -/******************************************************************************************\ -* * -* DetectEVisionKeyboards * -* * -* Tests the USB address to see if an EVision RGB Keyboard controller exists there. * -* * -\******************************************************************************************/ - -void DetectEVisionKeyboards(hid_device_info* info, const std::string& name) +DetectedControllers DetectEVisionKeyboards(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { EVisionKeyboardController* controller = new EVisionKeyboardController(dev, info->path, name); RGBController_EVisionKeyboard* rgb_controller = new RGBController_EVisionKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectEVisionV2Keyboards(hid_device_info* info, const std::string& name) +DetectedControllers DetectEVisionV2Keyboards(hid_device_info* info, const std::string& name) { - json settings = ResourceManager::get()->GetSettingsManager()->GetSettings("EVision2Settings"); - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + json settings = ResourceManager::get()->GetSettingsManager()->GetSettings("EVision2Settings"); + hid_device* dev = hid_open_path(info->path); if(dev) { EVisionV2KeyboardController* controller = new EVisionV2KeyboardController(dev, info->path, EVISION_V2_KEYBOARD_LAYOUT, name); RGBController_EVisionV2Keyboard* rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_KEYBOARD); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true) { rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_LOGO); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_EDGE); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } + + return(detected_controllers); } -void DetectEndorfyKeyboards(hid_device_info* info, const std::string& name) +DetectedControllers DetectEndorfyKeyboards(hid_device_info* info, const std::string& name) { - json settings = ResourceManager::get()->GetSettingsManager()->GetSettings("EndorfySettings"); - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + json settings = ResourceManager::get()->GetSettingsManager()->GetSettings("EndorfySettings"); + hid_device* dev = hid_open_path(info->path); if(dev) { EVisionV2KeyboardController* controller = new EVisionV2KeyboardController(dev, info->path, ENDORFY_KEYBOARD_LAYOUT, name); RGBController_EVisionV2Keyboard* rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_KEYBOARD); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true) { rgb_controller = new RGBController_EVisionV2Keyboard(controller, ENDORFY_KEYBOARD_PART_EDGE); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } + + return(detected_controllers); } /*---------------------------------------------------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/FanBusController/FanBusControllerDetect.cpp b/Controllers/FanBusController/FanBusControllerDetect.cpp index 11a3e8fe8..766bf4c4f 100644 --- a/Controllers/FanBusController/FanBusControllerDetect.cpp +++ b/Controllers/FanBusController/FanBusControllerDetect.cpp @@ -15,19 +15,20 @@ #include "ResourceManager.h" #include "SettingsManager.h" -void DetectFanBusControllers() +DetectedControllers DetectFanBusControllers() { + DetectedControllers detected_controllers; FanBusInterface* new_interface; json fanbus_settings; - /*-------------------------------------------------*\ - | Get LED Strip settings from settings manager | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get FanBus settings from settings manager | + \*-----------------------------------------------------*/ fanbus_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("FanBusDevices"); - /*-------------------------------------------------*\ - | If the LEDStrip settings contains devices, process| - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the FanBus settings contains devices, process | + \*-----------------------------------------------------*/ if(fanbus_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < fanbus_settings["devices"].size(); device_idx++) @@ -38,18 +39,20 @@ void DetectFanBusControllers() new_interface = new FanBusInterface(port_val.c_str()); - std::vector detected_controllers = new_interface->DetectControllers(); + std::vector detected_fanbus_controllers = new_interface->DetectControllers(); - for(unsigned int controller_idx = 0; controller_idx < detected_controllers.size(); controller_idx++) + for(unsigned int controller_idx = 0; controller_idx < detected_fanbus_controllers.size(); controller_idx++) { - FanBusController* controller = new FanBusController(new_interface, detected_controllers[controller_idx]); + FanBusController* controller = new FanBusController(new_interface, detected_fanbus_controllers[controller_idx]); RGBController_FanBus* rgb_controller = new RGBController_FanBus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } } + + return(detected_controllers); } REGISTER_DETECTOR("FanBus", DetectFanBusControllers); diff --git a/Controllers/FaustusController/RGBController_Faustus_Linux.cpp b/Controllers/FaustusController/RGBController_Faustus_Linux.cpp index 57aead7d9..8db61f6c7 100644 --- a/Controllers/FaustusController/RGBController_Faustus_Linux.cpp +++ b/Controllers/FaustusController/RGBController_Faustus_Linux.cpp @@ -154,43 +154,41 @@ void RGBController_Faustus::DeviceUpdateMode() DeviceUpdateLEDs(); } -void DetectFaustusControllers() +DetectedControllers DetectFaustusControllers() { - const char* base_path = "/sys/devices/platform/faustus/kbbl"; - DIR* dir = opendir(base_path); + DetectedControllers detected_controllers; + const char* base_path = "/sys/devices/platform/faustus/kbbl"; + DIR* dir = opendir(base_path); - if(!dir) + if(dir) { - return; - } + // Directory is present - we pretty much have a driver confirmation already, but double check for all files required just in case + struct dirent* dent = readdir(dir); - // Directory is present - we pretty much have a driver confirmation already, but double check for all files required just in case - struct dirent* dent = readdir(dir); - - if(!dent) - { - return; - } - - int found = 0; - while(dent) - { - const char* fname = dent->d_name; - if(!strcmp(fname, "kbbl_red") || !strcmp(fname, "kbbl_green") || !strcmp(fname, "kbbl_blue") || !strcmp(fname, "kbbl_mode") || !strcmp(fname, "kbbl_flags") || !strcmp(fname, "kbbl_set")) + if(dent) { - ++found; + int found = 0; + while(dent) + { + const char* fname = dent->d_name; + if(!strcmp(fname, "kbbl_red") || !strcmp(fname, "kbbl_green") || !strcmp(fname, "kbbl_blue") || !strcmp(fname, "kbbl_mode") || !strcmp(fname, "kbbl_flags") || !strcmp(fname, "kbbl_set")) + { + ++found; + } + dent = readdir(dir); + } + + closedir(dir); + + if(found == 6) + { + RGBController_Faustus * rgb_controller = new RGBController_Faustus(base_path); + detected_controllers.push_back(rgb_controller); + } } - dent = readdir(dir); } - closedir(dir); - - if(found != 6) - { - return; - } - - DetectionManager::get()->RegisterRGBController(new RGBController_Faustus(base_path)); -} /* DetectFaustusControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("Faustus", DetectFaustusControllers); diff --git a/Controllers/FnaticStreakController/FnaticStreakControllerDetect.cpp b/Controllers/FnaticStreakController/FnaticStreakControllerDetect.cpp index 586a034c2..c082a80c5 100644 --- a/Controllers/FnaticStreakController/FnaticStreakControllerDetect.cpp +++ b/Controllers/FnaticStreakController/FnaticStreakControllerDetect.cpp @@ -14,22 +14,25 @@ #include "FnaticStreakController.h" #include "RGBController_FnaticStreak.h" -/*-----------------------------------------------------*\ -| Fnatic keyboard vendor and product IDs | -| Based on leddy project keyboard.rs | -| VID: 0x2f0e | -| PID: 0x0101 (Streak full) | -| PID: 0x0102 (miniStreak) | -| Interface: 1 | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Fnatic keyboard vendor and product IDs | +| Based on leddy project keyboard.rs | +| VID: 0x2f0e | +| PID: 0x0101 (Streak full) | +| PID: 0x0102 (miniStreak) | +| Interface: 1 | +\*---------------------------------------------------------*/ #define FNATIC_VID 0x2F0E #define FNATIC_STREAK_PID 0x0101 #define FNATIC_MINISTREAK_PID 0x0102 -void DetectFnaticStreakKeyboard(hid_device_info* info, const std::string& name) +DetectedControllers DetectFnaticStreakKeyboard(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -47,8 +50,10 @@ void DetectFnaticStreakKeyboard(hid_device_info* info, const std::string& name) FnaticStreakController* controller = new FnaticStreakController(dev, info, name, kb_type); RGBController_FnaticStreak* rgb_controller = new RGBController_FnaticStreak(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_I("Fnatic Streak", DetectFnaticStreakKeyboard, FNATIC_VID, FNATIC_STREAK_PID, 1); diff --git a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp index 7111d2d90..ac8f89a38 100644 --- a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp +++ b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp @@ -10,10 +10,10 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" +#include "dmiinfo.h" #include "GigabyteSuperIORGBController.h" #include "RGBController_GigabyteSuperIORGB.h" #include "super_io.h" -#include "dmiinfo.h" #define NUM_COMPATIBLE_DEVICES (sizeof(compatible_devices) / sizeof(compatible_devices[0])) @@ -27,44 +27,44 @@ static gig_device compatible_devices[] = {"X570 UD"} }; -void DetectGigabyteSuperIORGBControllers() +DetectedControllers DetectGigabyteSuperIORGBControllers() { - int sio_addrs[2] = {0x2E, 0x4E}; + DetectedControllers detected_controllers; + int sio_addrs[2] = {0x2E, 0x4E}; + DMIInfo board; + std::string board_dmi = board.getMainboard(); + std::string manufacturer = board.getManufacturer(); - DMIInfo board; - std::string board_dmi = board.getMainboard(); - std::string manufacturer = board.getManufacturer(); - - if(manufacturer != "Gigabyte Technology Co., Ltd.") + if(manufacturer == "Gigabyte Technology Co., Ltd.") { - return; - } - - for(int sioaddr_idx = 0; sioaddr_idx < 2; sioaddr_idx++) - { - int sioaddr = sio_addrs[sioaddr_idx]; - - superio_enter(sioaddr); - - int val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVID + 1); - - switch(val & SIO_ID_MASK) + for(int sioaddr_idx = 0; sioaddr_idx < 2; sioaddr_idx++) { - case SIO_ITE8688_ID: - for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++) - { - if(board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos) - { - GigabyteSuperIORGBController* controller = new GigabyteSuperIORGBController(sioaddr, "Gigabyte " + board_dmi); - RGBController_GigabyteSuperIORGB* rgb_controller = new RGBController_GigabyteSuperIORGB(controller); + int sioaddr = sio_addrs[sioaddr_idx]; - DetectionManager::get()->RegisterRGBController(rgb_controller); - break; + superio_enter(sioaddr); + + int val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVID + 1); + + switch(val & SIO_ID_MASK) + { + case SIO_ITE8688_ID: + for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++) + { + if(board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos) + { + GigabyteSuperIORGBController* controller = new GigabyteSuperIORGBController(sioaddr, "Gigabyte " + board_dmi); + RGBController_GigabyteSuperIORGB* rgb_controller = new RGBController_GigabyteSuperIORGB(controller); + + detected_controllers.push_back(rgb_controller); + break; + } } - } - break; + break; + } } } -} /* DetectGigabyteSuperIORGBControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("Gigabyte RGB", DetectGigabyteSuperIORGBControllers); diff --git a/Controllers/GoveeController/GoveeControllerDetect.cpp b/Controllers/GoveeController/GoveeControllerDetect.cpp index af8d1e0d9..dbf309c2f 100644 --- a/Controllers/GoveeController/GoveeControllerDetect.cpp +++ b/Controllers/GoveeController/GoveeControllerDetect.cpp @@ -19,17 +19,10 @@ #include "ResourceManager.h" #include "SettingsManager.h" -/******************************************************************************************\ -* * -* DetectGoveeControllers * -* * -* Detect Govee devices * -* * -\******************************************************************************************/ - -void DetectGoveeControllers() +DetectedControllers DetectGoveeControllers() { - json govee_settings; + DetectedControllers detected_controllers; + json govee_settings; /*-----------------------------------------------------*\ | Get Govee settings from settings manager | @@ -70,7 +63,7 @@ void DetectGoveeControllers() GoveeController* controller = new GoveeController(govee_ip); RGBController_Govee* rgb_controller = new RGBController_Govee(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } @@ -88,6 +81,7 @@ void DetectGoveeControllers() } } -} /* DetectGoveeControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("Govee", DetectGoveeControllers); diff --git a/Controllers/HPOmen30LController/HPOmen30LControllerDetect.cpp b/Controllers/HPOmen30LController/HPOmen30LControllerDetect.cpp index 2e87d3b1b..a7bf68296 100644 --- a/Controllers/HPOmen30LController/HPOmen30LControllerDetect.cpp +++ b/Controllers/HPOmen30LController/HPOmen30LControllerDetect.cpp @@ -15,25 +15,22 @@ #define HP_OMEN_30L_VID 0x103C #define HP_OMEN_30L_PID 0x84FD -/******************************************************************************************\ -* * -* DetectHPOmen30LController * -* * -* Tests the USB address to see if an HP Omen 30L controller exists there. * -* * -\******************************************************************************************/ - -void DetectHPOmen30LController(hid_device_info* info, const std::string&) +DetectedControllers DetectHPOmen30LController(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HPOmen30LController* controller = new HPOmen30LController(dev, info->path); RGBController_HPOmen30L* rgb_controller = new RGBController_HPOmen30L(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("HP Omen 30L", DetectHPOmen30LController, HP_OMEN_30L_VID, HP_OMEN_30L_PID); diff --git a/Controllers/HYTEKeyboardController/HYTEKeyboardControllerDetect.cpp b/Controllers/HYTEKeyboardController/HYTEKeyboardControllerDetect.cpp index 3d053f205..aea8a972d 100644 --- a/Controllers/HYTEKeyboardController/HYTEKeyboardControllerDetect.cpp +++ b/Controllers/HYTEKeyboardController/HYTEKeyboardControllerDetect.cpp @@ -24,17 +24,22 @@ \*---------------------------------------------------------*/ #define HYTE_KEEB_TKL_PID 0x0300 -void DetectHYTEKeyboard(hid_device_info* info, const std::string& name) +DetectedControllers DetectHYTEKeyboard(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HYTEKeyboardController* controller = new HYTEKeyboardController(dev, info->path, name); RGBController_HYTEKeyboard* rgb_controller = new RGBController_HYTEKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("HYTE Keeb TKL", DetectHYTEKeyboard, HYTE_VID, HYTE_KEEB_TKL_PID, 0xFF11, 0xF0); diff --git a/Controllers/HYTEMousematController/HYTEMousematController_FreeBSD_Linux/HYTEMousematControllerDetect_FreeBSD_Linux.cpp b/Controllers/HYTEMousematController/HYTEMousematController_FreeBSD_Linux/HYTEMousematControllerDetect_FreeBSD_Linux.cpp index 79d135672..558709c2c 100644 --- a/Controllers/HYTEMousematController/HYTEMousematController_FreeBSD_Linux/HYTEMousematControllerDetect_FreeBSD_Linux.cpp +++ b/Controllers/HYTEMousematController/HYTEMousematController_FreeBSD_Linux/HYTEMousematControllerDetect_FreeBSD_Linux.cpp @@ -14,14 +14,14 @@ #include "DetectionManager.h" #include "RGBController_HYTEMousemat.h" -/*-----------------------------------------------------*\ -| HYTE vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HYTE vendor ID | +\*---------------------------------------------------------*/ #define HYTE_VID 0x3402 -/*-----------------------------------------------------*\ -| HYTE CNVS product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HYTE CNVS product IDs | +\*---------------------------------------------------------*/ #define HYTE_CNVS_HW_VER_1_PID 0x0B00 #define HYTE_CNVS_HW_VER_2_PID 0x0B01 @@ -37,23 +37,17 @@ typedef struct static const hyte_mousemat_device device_list[] = { - /*-----------------------------------------------------------------------------------------------------*\ - | Mousemats | - \*-----------------------------------------------------------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Mousemats | + \*-----------------------------------------------------*/ { HYTE_VID, HYTE_CNVS_HW_VER_1_PID, 0, "HYTE CNVS" }, { HYTE_VID, HYTE_CNVS_HW_VER_2_PID, 0, "HYTE CNVS" }, }; -/******************************************************************************************\ -* * -* DetectHYTEMousematControllers * -* * -* Detect devices supported by the HyteMousemat driver * -* * -\******************************************************************************************/ - -void DetectHYTEMousematControllers() +DetectedControllers DetectHYTEMousematControllers() { + DetectedControllers detected_controllers; + libusb_init(NULL); #ifdef _WIN32 @@ -73,11 +67,12 @@ void DetectHYTEMousematControllers() HYTEMousematController * controller = new HYTEMousematController(dev, device_list[device_idx].name); RGBController_HYTEMousemat * rgb_controller = new RGBController_HYTEMousemat(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectHYTEMousematControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("HYTE Mousemat", DetectHYTEMousematControllers); /*---------------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/HYTEMousematController/HYTEMousematController_Windows_MacOS/HYTEMousematControllerDetect_Windows_MacOS.cpp b/Controllers/HYTEMousematController/HYTEMousematController_Windows_MacOS/HYTEMousematControllerDetect_Windows_MacOS.cpp index 7c40525b1..6f2b4aa85 100644 --- a/Controllers/HYTEMousematController/HYTEMousematController_Windows_MacOS/HYTEMousematControllerDetect_Windows_MacOS.cpp +++ b/Controllers/HYTEMousematController/HYTEMousematController_Windows_MacOS/HYTEMousematControllerDetect_Windows_MacOS.cpp @@ -12,9 +12,9 @@ #include #include "DetectionManager.h" +#include "find_usb_serial_port.h" #include "HYTEMousematController_Windows_MacOS.h" #include "RGBController_HYTEMousemat.h" -#include "find_usb_serial_port.h" #define HYTE_VID 0x3402 @@ -36,16 +36,10 @@ static const hyte_mousemat_type hyte_mousemat_devices[] = { HYTE_VID, HYTE_CNVS_HW_VER_2_PID, "HYTE CNVS" }, }; -/******************************************************************************************\ -* * -* DetectHYTEMousematControllers * -* * -* Detect devices supported by the HyteMousemat driver * -* * -\******************************************************************************************/ - -void DetectHYTEMousematControllers() +DetectedControllers DetectHYTEMousematControllers() { + DetectedControllers detected_controllers; + for(unsigned int device_id = 0; device_id < HYTE_MOUSEMAT_NUM_DEVICES; device_id++) { std::vector ports = find_usb_serial_port(hyte_mousemat_devices[device_id].vid, hyte_mousemat_devices[device_id].pid); @@ -57,11 +51,13 @@ void DetectHYTEMousematControllers() HYTEMousematController * controller = new HYTEMousematController((char *)ports[i]->c_str(), hyte_mousemat_devices[device_id].name); RGBController_HYTEMousemat * rgb_controller = new RGBController_HYTEMousemat(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } -} /* DetectHYTEMousematControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("HYTE Mousemat", DetectHYTEMousematControllers); /*---------------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp b/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp index b29c68699..4e5b75853 100644 --- a/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp +++ b/Controllers/HYTENexusController/HYTENexusControllerDetect.cpp @@ -32,16 +32,10 @@ static const hyte_nexus_type hyte_nexus_devices[] = { HYTE_VID, HYTE_NEXUS_PORTAL_NP50_PID, "HYTE Nexus Portal NP50" }, }; -/******************************************************************************************\ -* * -* DetectHYTENexusControllers * -* * -* Detect devices supported by the HYTENexus driver * -* * -\******************************************************************************************/ - -void DetectHYTENexusControllers() +DetectedControllers DetectHYTENexusControllers() { + DetectedControllers detected_controllers; + for(unsigned int device_id = 0; device_id < HYTE_NEXUS_NUM_DEVICES; device_id++) { std::vector ports = find_usb_serial_port(hyte_nexus_devices[device_id].vid, hyte_nexus_devices[device_id].pid); @@ -53,11 +47,13 @@ void DetectHYTENexusControllers() HYTENexusController * controller = new HYTENexusController((char *)ports[i]->c_str(), hyte_nexus_devices[device_id].pid, hyte_nexus_devices[device_id].name); RGBController_HYTENexus * rgb_controller = new RGBController_HYTENexus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } -} /* DetectHYTENexusControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("HYTE Nexus", DetectHYTENexusControllers); /*---------------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/HoltekController/HoltekControllerDetect.cpp b/Controllers/HoltekController/HoltekControllerDetect.cpp index 66b555835..5f654559c 100644 --- a/Controllers/HoltekController/HoltekControllerDetect.cpp +++ b/Controllers/HoltekController/HoltekControllerDetect.cpp @@ -14,44 +14,54 @@ #include "HoltekA1FAController.h" #include "RGBController_HoltekA1FA.h" -/*-----------------------------------------------------*\ -| Holtek Semiconductor Inc. vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Holtek Semiconductor Inc. vendor ID | +\*---------------------------------------------------------*/ #define HOLTEK_VID 0x04D9 -/*-----------------------------------------------------*\ -| Mouse product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Mouse product IDs | +\*---------------------------------------------------------*/ #define HOLTEK_A070_PID 0xA070 -/*-----------------------------------------------------*\ -| Mousemats product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Mousemats product IDs | +\*---------------------------------------------------------*/ #define HOLTEK_A1FA_PID 0xA1FA -void DetectHoltekControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectHoltekControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HoltekA070Controller* controller = new HoltekA070Controller(dev, info->path, name); RGBController_HoltekA070* rgb_controller = new RGBController_HoltekA070(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHoltekControllers() */ -void DetectHoltekMousemats(hid_device_info *info, const std::string &name) + return(detected_controllers); +} + +DetectedControllers DetectHoltekMousemats(hid_device_info *info, const std::string &name) { - hid_device *dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HoltekA1FAController* controller = new HoltekA1FAController(dev, info->path, name); RGBController_HoltekA1FA* rgb_controller = new RGBController_HoltekA1FA(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHoltekMousemats() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_IPU("Holtek USB Gaming Mouse", DetectHoltekControllers, HOLTEK_VID, HOLTEK_A070_PID, 1, 0xFF00, 2); REGISTER_HID_DETECTOR_IPU("Holtek Mousemat", DetectHoltekMousemats, HOLTEK_VID, HOLTEK_A1FA_PID, 2, 0xFF00, 0xFF00); diff --git a/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp b/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp index 3a2cc3771..b385a26da 100644 --- a/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp +++ b/Controllers/HyperXDRAMController/HyperXDRAMControllerDetect.cpp @@ -12,20 +12,13 @@ #include #include "DetectionManager.h" #include "HyperXDRAMController.h" -#include "LogManager.h" -#include "RGBController_HyperXDRAM.h" #include "i2c_smbus.h" +#include "LogManager.h" #include "pci_ids.h" +#include "RGBController_HyperXDRAM.h" using namespace std::chrono_literals; -/******************************************************************************************\ -* * -* TestForHyperXDRAMController * -* * -* Tests the given address to see if a HyperX controller exists there. * -* * -\******************************************************************************************/ #define HYPERX_CONTROLLER_NAME "HyperX DRAM" bool TestForHyperXDRAMController(i2c_smbus_interface* bus, unsigned char address) @@ -52,26 +45,14 @@ bool TestForHyperXDRAMController(i2c_smbus_interface* bus, unsigned char address } return(pass); +} -} /* TestForHyperXDRAMController() */ - - -/******************************************************************************************\ -* * -* DetectHyperXDRAMControllers * -* * -* Detect HyperX DRAM controllers on the enumerated I2C busses. * -* * -* bus - pointer to i2c_smbus_interface where Aura device is connected * -* slots - accessors to SPD information of the occupied slots * -* * -\******************************************************************************************/ - -void DetectHyperXDRAMControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) +DetectedControllers DetectHyperXDRAMControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) { - unsigned char slots_valid = 0x00; - bool fury_detected = false; - bool pred_detected = false; + DetectedControllers detected_controllers; + bool fury_detected = false; + bool pred_detected = false; + unsigned char slots_valid = 0x00; // Check for HyperX controller at 0x27 LOG_DEBUG("[%s] Testing bus %d at address 0x27", HYPERX_CONTROLLER_NAME, bus->port_id); @@ -115,9 +96,11 @@ void DetectHyperXDRAMControllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectHyperXDRAMControllers() */ + + return(detected_controllers); +} REGISTER_I2C_DRAM_DETECTOR("HyperX DRAM", DetectHyperXDRAMControllers, JEDEC_KINGSTON, SPD_DDR4_SDRAM); diff --git a/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp b/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp index 34233a89b..7084b558b 100644 --- a/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp +++ b/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp @@ -22,9 +22,9 @@ #include "RGBController_HyperXAlloyOriginsCore.h" #include "RGBController_HyperXAlloyOrigins60and65.h" -/*-----------------------------------------------------*\ -| HyperX keyboard vendor and product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HyperX keyboard vendor and product IDs | +\*---------------------------------------------------------*/ #define HYPERX_KEYBOARD_VID 0x0951 #define HYPERX_ALLOY_ELITE_PID 0x16BE @@ -34,9 +34,9 @@ #define HYPERX_ALLOY_ORIGINS_CORE_PID 0x16E6 #define HYPERX_ALLOY_ORIGINS_60_PID 0x1734 -/*-----------------------------------------------------*\ -| HyperX keyboard vendor and product IDs (HP) | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HyperX keyboard vendor and product IDs (HP) | +\*---------------------------------------------------------*/ #define HP_KEYBOARD_VID 0x03F0 #define HYPERX_ALLOY_ELITE_2_HP_PID 0x058F @@ -61,83 +61,113 @@ AlloyOrigins60and65MappingLayoutType GetAlloyOrigins60and65MappingLayoutType(int } } -void DetectHyperXAlloyElite(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXAlloyElite(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXAlloyEliteController* controller = new HyperXAlloyEliteController(dev, info->path, name); RGBController_HyperXAlloyElite* rgb_controller = new RGBController_HyperXAlloyElite(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectHyperXAlloyElite2(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXAlloyElite2(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXAlloyElite2Controller* controller = new HyperXAlloyElite2Controller(dev, info->path, name); RGBController_HyperXAlloyElite2* rgb_controller = new RGBController_HyperXAlloyElite2(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectHyperXAlloyFPS(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXAlloyFPS(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXAlloyFPSController* controller = new HyperXAlloyFPSController(dev, info->path, name); RGBController_HyperXAlloyFPS* rgb_controller = new RGBController_HyperXAlloyFPS(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectHyperXAlloyOrigins(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXAlloyOrigins(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXAlloyOriginsController* controller = new HyperXAlloyOriginsController(dev, info->path, name); RGBController_HyperXAlloyOrigins* rgb_controller = new RGBController_HyperXAlloyOrigins(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectHyperXAlloyOriginsCore(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXAlloyOriginsCore(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXAlloyOriginsCoreController* controller = new HyperXAlloyOriginsCoreController(dev, info, name); RGBController_HyperXAlloyOriginsCore* rgb_controller = new RGBController_HyperXAlloyOriginsCore(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectHyperXAlloyOrigins60and65(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXAlloyOrigins60and65(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - HyperXAlloyOrigins60and65Controller* controller = new HyperXAlloyOrigins60and65Controller(dev, info->path, name); - AlloyOrigins60and65MappingLayoutType layout = GetAlloyOrigins60and65MappingLayoutType(info->product_id); + HyperXAlloyOrigins60and65Controller* controller = new HyperXAlloyOrigins60and65Controller(dev, info->path, name); + AlloyOrigins60and65MappingLayoutType layout = GetAlloyOrigins60and65MappingLayoutType(info->product_id); RGBController_HyperXAlloyOrigins60and65* rgb_controller = new RGBController_HyperXAlloyOrigins60and65(controller, layout); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IP("HyperX Alloy Elite RGB", DetectHyperXAlloyElite, HYPERX_KEYBOARD_VID, HYPERX_ALLOY_ELITE_PID, 2, 0xFF01); diff --git a/Controllers/HyperXMicrophoneController/HyperXMicrophoneControllerDetect.cpp b/Controllers/HyperXMicrophoneController/HyperXMicrophoneControllerDetect.cpp index 609fb5aac..515783c73 100644 --- a/Controllers/HyperXMicrophoneController/HyperXMicrophoneControllerDetect.cpp +++ b/Controllers/HyperXMicrophoneController/HyperXMicrophoneControllerDetect.cpp @@ -14,9 +14,9 @@ #include "RGBController_HyperXMicrophone.h" #include "hidapi_wrapper.h" -/*-----------------------------------------------------*\ -| HyperX microphone vendor and product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HyperX microphone vendor and product IDs | +\*---------------------------------------------------------*/ #define HYPERX_VID 0x0951 #define HYPERX_HP_VID 0x03F0 @@ -31,17 +31,22 @@ #define HYPERX_DUOCAST_PID 0x098C -void DetectHyperXMicrophoneControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXMicrophoneControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) { - hid_device* dev = wrapper.hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = wrapper.hid_open_path(info->path); if(dev) { - HyperXMicrophoneController* controller = new HyperXMicrophoneController(wrapper, dev, info->path, name); - RGBController_HyperXMicrophone *rgb_controller = new RGBController_HyperXMicrophone(controller); + HyperXMicrophoneController* controller = new HyperXMicrophoneController(wrapper, dev, info->path, name); + RGBController_HyperXMicrophone * rgb_controller = new RGBController_HyperXMicrophone(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_WRAPPED_DETECTOR_I("HyperX Quadcast S", DetectHyperXMicrophoneControllers, HYPERX_VID, HYPERX_QS_PID, 0);//, 0xFF90, 0xFF00); diff --git a/Controllers/HyperXMicrophoneV2Controller/HyperXMicrophoneV2ControllerDetect.cpp b/Controllers/HyperXMicrophoneV2Controller/HyperXMicrophoneV2ControllerDetect.cpp index b224ec26d..0a7397601 100644 --- a/Controllers/HyperXMicrophoneV2Controller/HyperXMicrophoneV2ControllerDetect.cpp +++ b/Controllers/HyperXMicrophoneV2Controller/HyperXMicrophoneV2ControllerDetect.cpp @@ -14,23 +14,28 @@ #include "HyperXMicrophoneV2Controller.h" #include "RGBController_HyperXMicrophoneV2.h" -/*-----------------------------------------------------*\ -| HyperX microphone vendor and product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HyperX microphone vendor and product IDs | +\*---------------------------------------------------------*/ #define HYPERX_HP_VID 0x03F0 #define HYPERX_QUADCAST_2S_PID 0x02B5 -void DetectHyperXMicrophoneV2Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXMicrophoneV2Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXMicrophoneV2Controller* controller = new HyperXMicrophoneV2Controller(dev, info->path, name); RGBController_HyperXMicrophoneV2 *rgb_controller = new RGBController_HyperXMicrophoneV2(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("HyperX QuadCast 2 S", DetectHyperXMicrophoneV2Controllers, HYPERX_HP_VID, HYPERX_QUADCAST_2S_PID, 1, 0xFF13, 0xFF00); diff --git a/Controllers/HyperXMouseController/HyperXMouseControllerDetect.cpp b/Controllers/HyperXMouseController/HyperXMouseControllerDetect.cpp index e1d51d030..19c5011b1 100644 --- a/Controllers/HyperXMouseController/HyperXMouseControllerDetect.cpp +++ b/Controllers/HyperXMouseController/HyperXMouseControllerDetect.cpp @@ -19,9 +19,9 @@ #include "RGBController_HyperXPulsefireDart.h" #include "RGBController_HyperXPulsefireRaid.h" -/*-----------------------------------------------------*\ -| HyperX mouse vendor IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HyperX mouse vendor IDs | +\*---------------------------------------------------------*/ #define HYPERX_VID 0x0951 //Kingston Technology #define HYPERX_VID_2 0x03F0 //HP, Hewlett-Packard Company #define HYPERX_PULSEFIRE_SURGE_PID 0x16D3 @@ -37,70 +37,95 @@ #define HYPERX_PULSEFIRE_HASTE_PID 0x1727 #define HYPERX_PULSEFIRE_HASTE_PID_2 0x0F8F -void DetectHyperXPulsefireSurgeControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXPulsefireSurgeControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXPulsefireSurgeController* controller = new HyperXPulsefireSurgeController(dev, info->path, name); RGBController_HyperXPulsefireSurge* rgb_controller = new RGBController_HyperXPulsefireSurge(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHyperXPulsefireSurgeControllers() */ -void DetectHyperXPulsefireFPSProControllers(hid_device_info* info, const std::string& name) + return(detected_controllers); +} + +DetectedControllers DetectHyperXPulsefireFPSProControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXPulsefireFPSProController* controller = new HyperXPulsefireFPSProController(dev, info->path, name); RGBController_HyperXPulsefireFPSPro* rgb_controller = new RGBController_HyperXPulsefireFPSPro(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHyperXPulsefireFPSProControllers() */ -void DetectHyperXPulsefireHasteControllers(hid_device_info* info, const std::string& name) + return(detected_controllers); +} + +DetectedControllers DetectHyperXPulsefireHasteControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXPulsefireHasteController* controller = new HyperXPulsefireHasteController(dev, info->path, name); RGBController_HyperXPulsefireHaste* rgb_controller = new RGBController_HyperXPulsefireHaste(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHyperXPulsefireFPSProControllers() */ -void DetectHyperXPulsefireDartControllers(hid_device_info* info, const std::string& name) + return(detected_controllers); +} + +DetectedControllers DetectHyperXPulsefireDartControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXPulsefireDartController* controller = new HyperXPulsefireDartController(dev, info->path, name); RGBController_HyperXPulsefireDart* rgb_controller = new RGBController_HyperXPulsefireDart(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHyperXPulsefireDartControllers() */ -void DetectHyperXPulsefireRaidControllers(hid_device_info* info, const std::string& name) + return(detected_controllers); +} + +DetectedControllers DetectHyperXPulsefireRaidControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { HyperXPulsefireRaidController* controller = new HyperXPulsefireRaidController(dev, *info, name); RGBController_HyperXPulsefireRaid* rgb_controller = new RGBController_HyperXPulsefireRaid(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHyperXPulsefireRaidControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_IP("HyperX Pulsefire Surge", DetectHyperXPulsefireSurgeControllers, HYPERX_VID, HYPERX_PULSEFIRE_SURGE_PID, 1, 0xFF01); REGISTER_HID_DETECTOR_IP("HyperX Pulsefire Surge (HP)", DetectHyperXPulsefireSurgeControllers, HYPERX_VID_2, HYPERX_PULSEFIRE_SURGE_PID_2, 1, 0xFF01); diff --git a/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp b/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp index 9a530a42e..6bd4412f0 100644 --- a/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp +++ b/Controllers/HyperXMousematController/HyperXMousematControllerDetect.cpp @@ -10,13 +10,13 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" +#include "hidapi_wrapper.h" #include "HyperXMousematController.h" #include "RGBController_HyperXMousemat.h" -#include "hidapi_wrapper.h" -/*-----------------------------------------------------*\ -| HyperX mousemat vendor IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| HyperX mousemat vendor IDs | +\*---------------------------------------------------------*/ #define HYPERX_VID 0x0951 #define HYPERX_FURY_ULTRA_PID 0x1705 #define HYPERX_FURY_A_XL_PID 0x1741 @@ -24,17 +24,12 @@ #define HYPERX_VID_2 0x03F0 #define HYPERX_PULSEFIRE_PID 0x0F8D -/******************************************************************************************\ -* * -* DetectHyperXMousematControllers * -* * -* Tests the USB address to see if a HyperX Mousemat controller exists there. * -* * -\******************************************************************************************/ - -void DetectHyperXMousematControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) +DetectedControllers DetectHyperXMousematControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) { - hid_device* dev = wrapper.hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = wrapper.hid_open_path(info->path); if(dev) { @@ -44,9 +39,11 @@ void DetectHyperXMousematControllers(hidapi_wrapper wrapper, hid_device_info* in HyperXMousematController* controller = new HyperXMousematController(wrapper, dev, info->path, name); RGBController_HyperXMousemat* rgb_controller = new RGBController_HyperXMousemat(controller, first_zone_leds_count, second_zone_leds_count); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectHyperXMousematControllers() */ + + return(detected_controllers); +} REGISTER_HID_WRAPPED_DETECTOR_I("HyperX Fury Ultra", DetectHyperXMousematControllers, HYPERX_VID, HYPERX_FURY_ULTRA_PID, 0); REGISTER_HID_WRAPPED_DETECTOR_IPU("HyperX Pulsefire Mat", DetectHyperXMousematControllers, HYPERX_VID_2, HYPERX_PULSEFIRE_PID, 1, 0xFF90, 0xFF00); diff --git a/Controllers/InstantMouseController/InstantMouseControllerDetect.cpp b/Controllers/InstantMouseController/InstantMouseControllerDetect.cpp index 1b887e261..f9923913b 100644 --- a/Controllers/InstantMouseController/InstantMouseControllerDetect.cpp +++ b/Controllers/InstantMouseController/InstantMouseControllerDetect.cpp @@ -10,22 +10,26 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" +#include "InstantMouseDevices.h" #include "InstantMouseController.h" #include "RGBController_InstantMouse.h" -#include "InstantMouseDevices.h" - -void DetectInstantMouseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectInstantMouseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { InstantMouseController* controller = new InstantMouseController(dev, *info, name); RGBController_InstantMouse* rgb_controller = new RGBController_InstantMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Advanced GTA 250 USB Gaming Mouse", DetectInstantMouseControllers, INSTANT_MICROELECTRONICS_VID, ADVANCED_GTA_250_PID, 1, 0xFF01, 0x01); diff --git a/Controllers/IntelArcA770LEController/IntelArcA770LEControllerDetect.cpp b/Controllers/IntelArcA770LEController/IntelArcA770LEControllerDetect.cpp index 9339ae268..08b97d7a3 100644 --- a/Controllers/IntelArcA770LEController/IntelArcA770LEControllerDetect.cpp +++ b/Controllers/IntelArcA770LEController/IntelArcA770LEControllerDetect.cpp @@ -17,24 +17,22 @@ #define INTEL_ARC_A770_LIMITED_EDITION_VID 0x2516 #define INTEL_ARC_A770_LIMITED_EDITION_PID 0x01B5 -/******************************************************************************************\ -* * -* DetectIntelArcA770LEControllers * -* * -* Tests the USB address to see if an Intel Arc A770 LE controller exists there. * -* * -\******************************************************************************************/ - -void DetectIntelArcA770LEControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectIntelArcA770LEControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); - if( dev ) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { IntelArcA770LEController* controller = new IntelArcA770LEController(dev, info->path); RGBController_IntelArcA770LE* rgb_controller = new RGBController_IntelArcA770LE(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IP("Intel Arc A770 Limited Edition", DetectIntelArcA770LEControllers, INTEL_ARC_A770_LIMITED_EDITION_VID, INTEL_ARC_A770_LIMITED_EDITION_PID, 1, 0xFF00); diff --git a/Controllers/IonicoController/IonicoControllerDetect.cpp b/Controllers/IonicoController/IonicoControllerDetect.cpp index 3b60cbae9..b181af808 100644 --- a/Controllers/IonicoController/IonicoControllerDetect.cpp +++ b/Controllers/IonicoController/IonicoControllerDetect.cpp @@ -15,30 +15,34 @@ #include "IonicoController.h" #include "RGBController_Ionico.h" -/*-----------------------------------------------------*\ -| FRONT BAR | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| FRONT BAR | +\*---------------------------------------------------------*/ #define IONICO_FB_VID 0x048D #define IONICO_FB_PID 0x6005 -/*-----------------------------------------------------*\ -| KEYBOARD | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| KEYBOARD | +\*---------------------------------------------------------*/ #define IONICO_KB_VID 0x048D #define IONICO_KB_PID 0xCE00 - -void DetectIonicoControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectIonicoControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { IonicoController* controller = new IonicoController(dev, *info, info->product_id, name); RGBController_Ionico* rgb_controller = new RGBController_Ionico(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("Ionico Light Bar", DetectIonicoControllers, IONICO_FB_VID, IONICO_FB_PID, 0xFF03, 0x01); diff --git a/Controllers/JGINYUEInternalUSBController/JGINYUEInternalUSBControllerDetect.cpp b/Controllers/JGINYUEInternalUSBController/JGINYUEInternalUSBControllerDetect.cpp index 573a1a1fb..c35ed9da3 100644 --- a/Controllers/JGINYUEInternalUSBController/JGINYUEInternalUSBControllerDetect.cpp +++ b/Controllers/JGINYUEInternalUSBController/JGINYUEInternalUSBControllerDetect.cpp @@ -26,16 +26,22 @@ \*---------------------------------------------------------*/ #define JGINYUE_MOTHERBOARD_PID 0xA125 -void DetectJGINYUEInternalUSBController(hid_device_info* info,const std::string& /*name*/) +DetectedControllers DetectJGINYUEInternalUSBController(hid_device_info* info,const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { JGINYUEInternalUSBController* controller =new JGINYUEInternalUSBController(dev,info->path); RGBController_JGINYUEInternalUSB* rgb_controller =new RGBController_JGINYUEInternalUSB(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("JGINYUE Internal USB Controller", DetectJGINYUEInternalUSBController, JGINYUE_VID, JGINYUE_MOTHERBOARD_PID); diff --git a/Controllers/JGINYUEInternalUSBV2Controller/JGINYUEInternalUSBV2ControllerDetect.cpp b/Controllers/JGINYUEInternalUSBV2Controller/JGINYUEInternalUSBV2ControllerDetect.cpp index bc233c053..dfcc44cad 100644 --- a/Controllers/JGINYUEInternalUSBV2Controller/JGINYUEInternalUSBV2ControllerDetect.cpp +++ b/Controllers/JGINYUEInternalUSBV2Controller/JGINYUEInternalUSBV2ControllerDetect.cpp @@ -15,14 +15,15 @@ #include #include #include -#include "serial_port.h" -#include "find_usb_serial_port.h" -#include "RGBController_JGINYUEInternalUSBV2.h" -#include "JGINYUEInternalUSBV2Controller.h" -#include "RGBController.h" #include "DetectionManager.h" #include "dmiinfo.h" +#include "find_usb_serial_port.h" +#include "JGINYUEInternalUSBV2Controller.h" #include "LogManager.h" +#include "RGBController_JGINYUEInternalUSBV2.h" +#include "RGBController.h" +#include "serial_port.h" + /*---------------------------------------------------------*\ | JGINYUE vendor ID | \*---------------------------------------------------------*/ @@ -33,44 +34,54 @@ \*---------------------------------------------------------*/ #define JGINYUE_MOTHERBOARD_PID_V2 0xE30B -void DetectJGINYUEInternalUSBV2Controller(hid_device_info* info,const std::string& /*name*/) +DetectedControllers DetectJGINYUEInternalUSBV2Controller(hid_device_info* info,const std::string& /*name*/) { - hid_device* hid_dev = hid_open_path(info->path); - if(hid_dev == nullptr ) - { - return; - } + DetectedControllers detected_controllers; + hid_device* dev; - DMIInfo dmi_info; - std::string manufacturer = dmi_info.getManufacturer(); - std::transform(manufacturer.begin(), manufacturer.end(), manufacturer.begin(), ::toupper); - if(manufacturer.find("JGINYUE") == std::string::npos) - { - LOG_INFO("JGINYUE Internal USB ControllerV2 not found,error manufacturer name:%s",manufacturer.c_str()); - return; - } - LOG_INFO("Pass manufacture name check.Start to init HID and CDC interface"); + dev = hid_open_path(info->path); - - if(hid_dev != nullptr ) + if(dev) { - std::vector serial_ports = find_usb_serial_port(JGINYUE_VID_V2, JGINYUE_MOTHERBOARD_PID_V2); - if(serial_ports.size() ==1) + DMIInfo dmi_info; + std::string manufacturer = dmi_info.getManufacturer(); + + std::transform(manufacturer.begin(), manufacturer.end(), manufacturer.begin(), ::toupper); + + if(manufacturer.find("JGINYUE") != std::string::npos) { - serial_port *port = new serial_port(); - if(!port->serial_open(serial_ports[0]->c_str(), 115200)) + LOG_INFO("Pass manufacture name check.Start to init HID and CDC interface"); + + std::vector serial_ports = find_usb_serial_port(JGINYUE_VID_V2, JGINYUE_MOTHERBOARD_PID_V2); + + if(serial_ports.size() ==1) { - LOG_ERROR("Failed to open serial port %s", serial_ports[0]->c_str()); - delete port; - hid_close(hid_dev); - return; + serial_port *port = new serial_port(); + + if(port->serial_open(serial_ports[0]->c_str(), 115200)) + { + LOG_INFO("JGINYUE Internal USB ControllerV2 found"); + + JGINYUEInternalUSBV2Controller * controller = new JGINYUEInternalUSBV2Controller(dev, info->path,port); + RGBController_JGINYUEInternalUSBV2 * rgb_controller = new RGBController_JGINYUEInternalUSBV2(controller); + + detected_controllers.push_back(rgb_controller); + } + else + { + LOG_ERROR("Failed to open serial port %s", serial_ports[0]->c_str()); + delete port; + hid_close(dev); + } } - JGINYUEInternalUSBV2Controller *controller = new JGINYUEInternalUSBV2Controller(hid_dev, info->path,port); - RGBController_JGINYUEInternalUSBV2 *rgb_controller = new RGBController_JGINYUEInternalUSBV2(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); - LOG_INFO("JGINYUE Internal USB ControllerV2 found"); + } + else + { + LOG_INFO("JGINYUE Internal USB ControllerV2 not found,error manufacturer name:%s",manufacturer.c_str()); } } + + return(detected_controllers); } #ifdef _WIN32 diff --git a/Controllers/KasaSmartController/KasaSmartControllerDetect.cpp b/Controllers/KasaSmartController/KasaSmartControllerDetect.cpp index 311e9843c..680a33f98 100644 --- a/Controllers/KasaSmartController/KasaSmartControllerDetect.cpp +++ b/Controllers/KasaSmartController/KasaSmartControllerDetect.cpp @@ -15,26 +15,19 @@ #include "RGBController_KasaSmart.h" #include "SettingsManager.h" -/******************************************************************************************\ -* * -* DetectKasaSmartControllers * -* * -* Detect Kasa Smart devices * -* * -\******************************************************************************************/ - -void DetectKasaSmartControllers() +DetectedControllers DetectKasaSmartControllers() { - json kasa_smart_settings; + DetectedControllers detected_controllers; + json kasa_smart_settings; - /*---------------------------------------------*\ - | Get Kasa Smart settings from settings manager | - \*---------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get Kasa Smart settings from settings manager | + \*-----------------------------------------------------*/ kasa_smart_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("KasaSmartDevices"); - /*---------------------------------------------*\ - | If the Wiz settings contains devices, process | - \*---------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the Kasa Smart settings contains devices, process | + \*-----------------------------------------------------*/ if(kasa_smart_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < kasa_smart_settings["devices"].size(); device_idx++) @@ -45,17 +38,20 @@ void DetectKasaSmartControllers() std::string name = kasa_smart_settings["devices"][device_idx]["name"]; KasaSmartController* controller = new KasaSmartController(kasa_smart_ip, name); + if(!controller->Initialize()) { continue; } RGBController_KasaSmart* rgb_controller = new RGBController_KasaSmart(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } } } -} /* DetectKasaSmartControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("KasaSmart", DetectKasaSmartControllers); diff --git a/Controllers/KeychronKeyboardController/KeychronKeyboardControllerDetect.cpp b/Controllers/KeychronKeyboardController/KeychronKeyboardControllerDetect.cpp index 3ad3b221a..d04c5de1f 100644 --- a/Controllers/KeychronKeyboardController/KeychronKeyboardControllerDetect.cpp +++ b/Controllers/KeychronKeyboardController/KeychronKeyboardControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define KEYCHRON_K3_V2_OPTICAL_RGB_PID 0x024F -void DetectKeychronKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectKeychronKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { KeychronKeyboardController* controller = new KeychronKeyboardController(dev, *info, name); RGBController_KeychronKeyboard* rgb_controller = new RGBController_KeychronKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Keychron Gaming Keyboard 1", DetectKeychronKeyboardControllers, KEYCHRON_KEYBOARD_VID, KEYCHRON_K3_V2_OPTICAL_RGB_PID, 0, 0x0001, 0x06); diff --git a/Controllers/KingstonFuryDRAMController/KingstonFuryDRAMControllerDetect.cpp b/Controllers/KingstonFuryDRAMController/KingstonFuryDRAMControllerDetect.cpp index 338b4b734..62aa4c022 100644 --- a/Controllers/KingstonFuryDRAMController/KingstonFuryDRAMControllerDetect.cpp +++ b/Controllers/KingstonFuryDRAMController/KingstonFuryDRAMControllerDetect.cpp @@ -13,10 +13,10 @@ #include #include "DetectionManager.h" #include "KingstonFuryDRAMController.h" -#include "LogManager.h" -#include "RGBController_KingstonFuryDRAM.h" #include "i2c_smbus.h" +#include "LogManager.h" #include "pci_ids.h" +#include "RGBController_KingstonFuryDRAM.h" using namespace std::chrono_literals; @@ -156,17 +156,10 @@ void DetectKingstonFuryDRAMControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &name) +DetectedControllers DetectKingstonFuryDDR4Controllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &name) { - std::vector fury_slots; + DetectedControllers detected_controllers; + std::vector fury_slots; DetectKingstonFuryDRAMControllers(bus, slots, FURY_BASE_ADDR_DDR4, TestDDR4Models, fury_slots); @@ -175,13 +168,16 @@ void DetectKingstonFuryDDR4Controllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectKingstonFuryDDR5Controllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &name) +DetectedControllers DetectKingstonFuryDDR5Controllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &name) { - std::vector fury_slots; + DetectedControllers detected_controllers; + std::vector fury_slots; DetectKingstonFuryDRAMControllers(bus, slots, FURY_BASE_ADDR_DDR5, TestDDR5Models, fury_slots); @@ -190,8 +186,10 @@ void DetectKingstonFuryDDR5Controllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_I2C_DRAM_DETECTOR("Kingston Fury DDR4 DRAM", DetectKingstonFuryDDR4Controllers, JEDEC_KINGSTON, SPD_DDR4_SDRAM); diff --git a/Controllers/LEDStripController/LEDStripControllerDetect.cpp b/Controllers/LEDStripController/LEDStripControllerDetect.cpp index 26721e785..b4d48ad55 100644 --- a/Controllers/LEDStripController/LEDStripControllerDetect.cpp +++ b/Controllers/LEDStripController/LEDStripControllerDetect.cpp @@ -16,27 +16,20 @@ #include "RGBController_LEDStrip.h" #include "SettingsManager.h" -/******************************************************************************************\ -* * -* DetectLEDStripControllers * -* * -* Detect devices supported by the LEDStrip driver * -* * -\******************************************************************************************/ - -void DetectLEDStripControllers() +DetectedControllers DetectLEDStripControllers() { - json ledstrip_settings; - LEDStripDevice dev; + DetectedControllers detected_controllers; + json ledstrip_settings; + LEDStripDevice dev; - /*-------------------------------------------------*\ - | Get LED Strip settings from settings manager | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get LED Strip settings from settings manager | + \*-----------------------------------------------------*/ ledstrip_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("LEDStripDevices"); - /*-------------------------------------------------*\ - | If the LEDStrip settings contains devices, process| - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the LEDStrip settings contains devices, process | + \*-----------------------------------------------------*/ if(ledstrip_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < ledstrip_settings["devices"].size(); device_idx++) @@ -47,9 +40,9 @@ void DetectLEDStripControllers() } else { - /*-------------------------------------------------*\ - | Default name | - \*-------------------------------------------------*/ + /*-----------------------------------------*\ + | Default name | + \*-----------------------------------------*/ dev.name = "LED Strip"; } @@ -91,33 +84,34 @@ void DetectLEDStripControllers() else { LOG_WARNING("[LEDStripController] '%s' is not a valid value for protocol", protocol_string.c_str()); - return; + break; } } else { - /*-------------------------------------------------*\ - | Default to the Keyboard Visualizer protocol | - \*-------------------------------------------------*/ + /*-----------------------------------------*\ + | Default to the Keyboard Visualizer | + | protocol | + \*-----------------------------------------*/ dev.protocol = LED_PROTOCOL_KEYBOARD_VISUALIZER; } if(dev.port.empty()) { LOG_WARNING("[LEDStripController] port value cannot be left empty."); - return; + break; } if(dev.baud <= 0) { LOG_WARNING("[LEDStripController] baud value cannot be left empty."); - return; + break; } if(dev.num_leds <= 0) { LOG_WARNING("[LEDStripController] num_leds value cannot be left empty."); - return; + break; } std::string value = dev.port + "," + std::to_string(dev.baud) + "," + std::to_string(dev.num_leds); @@ -127,10 +121,11 @@ void DetectLEDStripControllers() RGBController_LEDStrip* rgb_controller = new RGBController_LEDStrip(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectLEDStripControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("LED Strip", DetectLEDStripControllers); diff --git a/Controllers/LGMonitorController/LGMonitorControllerDetect.cpp b/Controllers/LGMonitorController/LGMonitorControllerDetect.cpp index 619ddc3b0..282332391 100644 --- a/Controllers/LGMonitorController/LGMonitorControllerDetect.cpp +++ b/Controllers/LGMonitorController/LGMonitorControllerDetect.cpp @@ -24,17 +24,22 @@ #define LG_27GN950_B_PID 0x9A8A #define LG_38GL950G_PID 0x9A57 -static void DetectLGMonitorControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectLGMonitorControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { LGMonitorController* controller = new LGMonitorController(dev, *info, name); RGBController_LGMonitor* rgb_controller = new RGBController_LGMonitor(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("LG 27GN950-B Monitor", DetectLGMonitorControllers, LG_MONITOR_VID, LG_27GN950_B_PID, 1, 0xFF01, 0x01); diff --git a/Controllers/LIFXController/LIFXControllerDetect.cpp b/Controllers/LIFXController/LIFXControllerDetect.cpp index ce2242b15..f2ed7369b 100644 --- a/Controllers/LIFXController/LIFXControllerDetect.cpp +++ b/Controllers/LIFXController/LIFXControllerDetect.cpp @@ -15,26 +15,19 @@ #include "RGBController_LIFX.h" #include "SettingsManager.h" -/******************************************************************************************\ -* * -* DetectLIFXControllers * -* * -* Detect LIFX devices * -* * -\******************************************************************************************/ - -void DetectLIFXControllers() +DetectedControllers DetectLIFXControllers() { - json lifx_settings; + DetectedControllers detected_controllers; + json lifx_settings; - /*-------------------------------------------------*\ - | Get LIFX settings from settings manager | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get LIFX settings from settings manager | + \*-----------------------------------------------------*/ lifx_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("LIFXDevices"); - /*-------------------------------------------------*\ - | If the Wiz settings contains devices, process | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the Wiz settings contains devices, process | + \*-----------------------------------------------------*/ if(lifx_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < lifx_settings["devices"].size(); device_idx++) @@ -51,11 +44,12 @@ void DetectLIFXControllers() RGBController_LIFX* rgb_controller = new RGBController_LIFX(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } -} /* DetectLIFXControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("LIFX", DetectLIFXControllers); diff --git a/Controllers/LaviewTechnologyController/LaviewTechnologyDetector.cpp b/Controllers/LaviewTechnologyController/LaviewTechnologyDetector.cpp index 78f52e83c..c21a7218c 100644 --- a/Controllers/LaviewTechnologyController/LaviewTechnologyDetector.cpp +++ b/Controllers/LaviewTechnologyController/LaviewTechnologyDetector.cpp @@ -8,38 +8,31 @@ \*---------------------------------------------------------*/ #include -#include -#include #include #include "DetectionManager.h" #include "LaviewTechnologyController.h" #include "RGBController.h" #include "RGBController_LaviewTechnology.h" -#include "LogManager.h" #define LAVIEW_TECHNOLOGY_VID 0x22D4 - #define GLORIOUS_MODEL_I_PID 0x1503 // Wired -/******************************************************************************************\ -* * -* DetectLaviewTechnologyMouse * -* * -* Tests the USB address to see if a Laview Technology controller exists there. * -* * -\******************************************************************************************/ - -static void DetectLaviewTechnologyMouse(hid_device_info* info, const std::string& name) +DetectedControllers DetectLaviewTechnologyMouse(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { LaviewTechnologyController* controller = new LaviewTechnologyController(dev, info, name); RGBController_LaviewTechnology* rgb_controller = new RGBController_LaviewTechnology(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Glorious Model I", DetectLaviewTechnologyMouse, LAVIEW_TECHNOLOGY_VID, GLORIOUS_MODEL_I_PID, 1, 0xFF01, 0x02); diff --git a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp index d74d50998..28aa339c7 100644 --- a/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp +++ b/Controllers/LegoDimensionsToypadBaseController/LegoDimensionsToypadBaseControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define LEGO_DIMENSIONS_TOYPAD_BASE_PID 0x0241 -void DetectLegoDimensionsToypadBaseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectLegoDimensionsToypadBaseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { LegoDimensionsToypadBaseController* controller = new LegoDimensionsToypadBaseController(dev, *info, name); RGBController_LegoDimensionsToypadBase* rgb_controller = new RGBController_LegoDimensionsToypadBase(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Lego Dimensions Toypad Base", DetectLegoDimensionsToypadBaseControllers, LOGIC_3_VID, LEGO_DIMENSIONS_TOYPAD_BASE_PID); diff --git a/Controllers/LenovoMotherboardController/LenovoMotherboardControllerDetect.cpp b/Controllers/LenovoMotherboardController/LenovoMotherboardControllerDetect.cpp index db24adb4b..9107bd708 100644 --- a/Controllers/LenovoMotherboardController/LenovoMotherboardControllerDetect.cpp +++ b/Controllers/LenovoMotherboardController/LenovoMotherboardControllerDetect.cpp @@ -24,9 +24,12 @@ \*---------------------------------------------------------*/ #define LENOVO_MB_PID 0xC955 -void DetectLenovoMotherboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectLenovoMotherboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -35,8 +38,10 @@ void DetectLenovoMotherboardControllers(hid_device_info* info, const std::string LenovoMotherboardController* controller = new LenovoMotherboardController(dev, *info, name + " " + dmi.getMainboard()); RGBController_LenovoMotherboard* rgb_controller = new RGBController_LenovoMotherboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("Lenovo", DetectLenovoMotherboardControllers, LENOVO_MB_VID, LENOVO_MB_PID, 0xFF89, 0xCC); diff --git a/Controllers/LexipMouseController/LexipMouseControllerDetect.cpp b/Controllers/LexipMouseController/LexipMouseControllerDetect.cpp index 00f0cd93c..efa32d083 100644 --- a/Controllers/LexipMouseController/LexipMouseControllerDetect.cpp +++ b/Controllers/LexipMouseController/LexipMouseControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define LEXIP_NP93_ALPHA_PID 0xFD0A -void DetectLexipMouseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectLexipMouseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { LexipMouseController* controller = new LexipMouseController(dev, *info, name); RGBController_LexipMouse* rgb_controller = new RGBController_LexipMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Np93 ALPHA - Gaming Mouse", DetectLexipMouseControllers, LEXIP_VID, LEXIP_NP93_ALPHA_PID, 0, 0x0001, 2); diff --git a/Controllers/LightSaltController/LightSaltControllerDetect.cpp b/Controllers/LightSaltController/LightSaltControllerDetect.cpp index d274a4b2f..8a3e8291b 100644 --- a/Controllers/LightSaltController/LightSaltControllerDetect.cpp +++ b/Controllers/LightSaltController/LightSaltControllerDetect.cpp @@ -18,9 +18,12 @@ #define LIGHTSALT_VID 0x0483 #define LIGHTSALT_PID 0x5750 -void DetectLightSaltControllers(hid_device_info* info, const std::string &) +DetectedControllers DetectLightSaltControllers(hid_device_info* info, const std::string &) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -44,9 +47,11 @@ void DetectLightSaltControllers(hid_device_info* info, const std::string &) if(rgb_controller != nullptr) { - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectLightSaltControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_IPU("LightSalt Peripherals", DetectLightSaltControllers, LIGHTSALT_VID, LIGHTSALT_PID, 1, 1, 0); diff --git a/Controllers/LinuxLEDController/LinuxLEDControllerDetect_Linux.cpp b/Controllers/LinuxLEDController/LinuxLEDControllerDetect_Linux.cpp index 3a3c6052e..899de1f51 100644 --- a/Controllers/LinuxLEDController/LinuxLEDControllerDetect_Linux.cpp +++ b/Controllers/LinuxLEDController/LinuxLEDControllerDetect_Linux.cpp @@ -15,26 +15,19 @@ #include "RGBController_LinuxLED_Linux.h" #include "SettingsManager.h" -/******************************************************************************************\ -* * -* DetectLinuxLEDControllers * -* * -* Detect devices supported by the LinuxLED driver * -* * -\******************************************************************************************/ - -void DetectLinuxLEDControllers() +DetectedControllers DetectLinuxLEDControllers() { - json linux_led_settings; + DetectedControllers detected_controllers; + json linux_led_settings; - /*-------------------------------------------------*\ - | Get Linux LED settings from settings manager | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get Linux LED settings from settings manager | + \*-----------------------------------------------------*/ linux_led_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("LinuxLEDDevices"); - /*-------------------------------------------------*\ - | If the LinuxLED settings contains devices, process| - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the LinuxLED settings contains devices, process | + \*-----------------------------------------------------*/ if(linux_led_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < linux_led_settings["devices"].size(); device_idx++) @@ -78,10 +71,11 @@ void DetectLinuxLEDControllers() RGBController_LinuxLED* rgb_controller = new RGBController_LinuxLED(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectLinuxLEDControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("Linux LED", DetectLinuxLEDControllers); diff --git a/Controllers/LuxaforController/LuxaforControllerDetect.cpp b/Controllers/LuxaforController/LuxaforControllerDetect.cpp index b5be53285..fac4d96ee 100644 --- a/Controllers/LuxaforController/LuxaforControllerDetect.cpp +++ b/Controllers/LuxaforController/LuxaforControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define LUXAFOR_FLAG_PID 0xF372 -void DetectLuxaforControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectLuxaforControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { LuxaforController* controller = new LuxaforController(dev, info->path, name); RGBController_Luxafor* rgb_controller = new RGBController_Luxafor(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -REGISTER_HID_DETECTOR( "Luxafor Flag", DetectLuxaforControllers, LUXAFOR_VID, LUXAFOR_FLAG_PID ); +REGISTER_HID_DETECTOR("Luxafor Flag", DetectLuxaforControllers, LUXAFOR_VID, LUXAFOR_FLAG_PID); diff --git a/Controllers/MNTKeyboardController/MNTKeyboardControllerDetect.cpp b/Controllers/MNTKeyboardController/MNTKeyboardControllerDetect.cpp index 4a2eee2fb..e51798081 100644 --- a/Controllers/MNTKeyboardController/MNTKeyboardControllerDetect.cpp +++ b/Controllers/MNTKeyboardController/MNTKeyboardControllerDetect.cpp @@ -3,48 +3,48 @@ | | | Driver for the MNT Reform keyboards | | | -| Christian Heller 7 Aug 2024 | +| Christian Heller 07 Aug 2024 | | | | This file is part of the OpenRGB project | | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "LogManager.h" #include #include "MNTReformKeyboardController.h" #include "MNTPocketReformKeyboardController.h" #include "RGBController_MNTReformKeyboard.h" #include "RGBController_MNTPocketReformKeyboard.h" -#define PID_KBD_REFORM 0x6D02 -#define PID_KBD_POCKET_REFORM 0x6D06 +#define PID_KBD_REFORM 0x6D02 +#define PID_KBD_POCKET_REFORM 0x6D06 -void DetectMNTKeyboardControllers(hid_device_info *info, const std::string &name) +DetectedControllers DetectMNTKeyboardControllers(hid_device_info *info, const std::string &name) { - LOG_DEBUG("[%s] trying to detect … ", name.c_str()); - hid_device *dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { - LOG_DEBUG("[%s] found at %s", name.c_str(), info->path); if(info->product_id == PID_KBD_REFORM) { - MNTReformKeyboardController *controller = new MNTReformKeyboardController(dev, info->path); - RGBController_MNTReformKeyboard *rgb_controller = new RGBController_MNTReformKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + MNTReformKeyboardController * controller = new MNTReformKeyboardController(dev, info->path); + RGBController_MNTReformKeyboard * rgb_controller = new RGBController_MNTReformKeyboard(controller); + + detected_controllers.push_back(rgb_controller); } else if(info->product_id == PID_KBD_POCKET_REFORM) { - MNTPocketReformKeyboardController *controller = new MNTPocketReformKeyboardController(dev, info->path); - RGBController_MNTPocketReformKeyboard *rgb_controller = new RGBController_MNTPocketReformKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + MNTPocketReformKeyboardController * controller = new MNTPocketReformKeyboardController(dev, info->path); + RGBController_MNTPocketReformKeyboard * rgb_controller = new RGBController_MNTPocketReformKeyboard(controller); + + detected_controllers.push_back(rgb_controller); } - else - { - return; - } - LOG_DEBUG("[%s] successfully registered", name.c_str()); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("MNT Reform Keyboard", DetectMNTKeyboardControllers, KBD_VID, PID_KBD_REFORM, KBD_INTERFACE, HID_USAGE_PAGE_DESKTOP, HID_USAGE_DESKTOP_KEYBOARD); diff --git a/Controllers/MSI3ZoneController/MSI3ZoneControllerDetect.cpp b/Controllers/MSI3ZoneController/MSI3ZoneControllerDetect.cpp index 93f862216..5a506c8bf 100644 --- a/Controllers/MSI3ZoneController/MSI3ZoneControllerDetect.cpp +++ b/Controllers/MSI3ZoneController/MSI3ZoneControllerDetect.cpp @@ -17,27 +17,22 @@ #define MSI_3_ZONE_KEYBOARD_VID 0x1770 #define MSI_3_ZONE_KEYBOARD_PID 0xFF00 -/******************************************************************************************\ -* * -* DetectMSI3ZoneControllers * -* * -* Tests the USB address to see if an MSI/SteelSeries 3-zone Keyboard controller * -* exists there. * -* * -\******************************************************************************************/ - -void DetectMSI3ZoneControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectMSI3ZoneControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { MSI3ZoneController* controller = new MSI3ZoneController(dev, info->path); RGBController_MSI3Zone* rgb_controller = new RGBController_MSI3Zone(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectMSI3ZoneControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR("MSI 3-Zone Laptop", DetectMSI3ZoneControllers, MSI_3_ZONE_KEYBOARD_VID, MSI_3_ZONE_KEYBOARD_PID); diff --git a/Controllers/MSIGPUController/MSIGPUController/MSIGPUControllerDetect.cpp b/Controllers/MSIGPUController/MSIGPUController/MSIGPUControllerDetect.cpp index 99c7e1b76..6b7a31836 100644 --- a/Controllers/MSIGPUController/MSIGPUController/MSIGPUControllerDetect.cpp +++ b/Controllers/MSIGPUController/MSIGPUController/MSIGPUControllerDetect.cpp @@ -8,42 +8,30 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "MSIGPUController.h" -#include "RGBController_MSIGPU.h" #include "i2c_amd_gpu.h" #include "i2c_smbus.h" +#include "MSIGPUController.h" #include "pci_ids.h" +#include "RGBController_MSIGPU.h" -/******************************************************************************************\ -* * -* DetectMSIGPUControllers * -* * -* Detect MSI GPU controllers on the enumerated I2C busses. * -* * -\******************************************************************************************/ - -void DetectMSIGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectMSIGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(bus->pci_vendor == NVIDIA_VEN && bus->port_id != 1) + DetectedControllers detected_controllers; + + if((bus->pci_vendor != NVIDIA_VEN || bus->port_id == 1) && (bus->pci_vendor != AMD_GPU_VEN || is_amd_gpu_i2c_bus(bus))) { - return; - } - if(bus->pci_vendor == AMD_GPU_VEN && !is_amd_gpu_i2c_bus(bus)) - { - return; + MSIGPUController* controller = new MSIGPUController(bus, i2c_addr, name); + RGBController_MSIGPU* rgb_controller = new RGBController_MSIGPU(controller); + + detected_controllers.push_back(rgb_controller); } - MSIGPUController* controller = new MSIGPUController(bus, i2c_addr, name); - RGBController_MSIGPU* rgb_controller = new RGBController_MSIGPU(controller); - - DetectionManager::get()->RegisterRGBController(rgb_controller); - -} /* DetectMSIGPUControllers() */ - -/*-----------------------------------------*\ -| Nvidia GPUs | -\*-----------------------------------------*/ + return(detected_controllers); +} +/*---------------------------------------------------------*\ +| Nvidia GPUs | +\*---------------------------------------------------------*/ REGISTER_I2C_PCI_DETECTOR("MSI GeForce GTX 1070 Gaming X", DetectMSIGPUControllers, NVIDIA_VEN, NVIDIA_GTX1070_DEV, MSI_SUB_VEN, MSI_GTX1070_GAMING_X_SUB_DEV, 0x68); REGISTER_I2C_PCI_DETECTOR("MSI GeForce GTX 1660 Gaming X", DetectMSIGPUControllers, NVIDIA_VEN, NVIDIA_GTX1660_DEV, MSI_SUB_VEN, MSI_GTX1660_GAMING_X_6G_SUB_DEV, 0x68); REGISTER_I2C_PCI_DETECTOR("MSI GeForce GTX 1660 Ti Gaming", DetectMSIGPUControllers, NVIDIA_VEN, NVIDIA_GTX1660TI_DEV, MSI_SUB_VEN, MSI_GTX1660TI_GAMING_6G_SUB_DEV, 0x68); @@ -112,10 +100,9 @@ REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 3090 Suprim X", Dete REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 3090 Ti Suprim X", DetectMSIGPUControllers, NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, MSI_SUB_VEN, MSI_RTX3090TI_SUPRIM_X_SUB_DEV, 0x68); REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 3090 Ti Gaming X Trio", DetectMSIGPUControllers, NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, MSI_SUB_VEN, MSI_RTX3090TI_GAMING_X_TRIO_SUB_DEV, 0x68); -/*-----------------------------------------*\ -| AMD GPUs | -\*-----------------------------------------*/ - +/*---------------------------------------------------------*\ +| AMD GPUs | +\*---------------------------------------------------------*/ REGISTER_I2C_PCI_DETECTOR("MSI Radeon RX 5600 XT Gaming X", DetectMSIGPUControllers, AMD_GPU_VEN, AMD_NAVI10_DEV, MSI_SUB_VEN, MSI_RX5600XT_GAMING_X_SUB_DEV, 0x68); REGISTER_I2C_PCI_DETECTOR("MSI Radeon RX 6600 XT Gaming X", DetectMSIGPUControllers, AMD_GPU_VEN, AMD_NAVI23_DEV, MSI_SUB_VEN, MSI_RX6600XT_GAMING_X_SUB_DEV, 0x68); REGISTER_I2C_PCI_DETECTOR("MSI Radeon RX 6650 XT Gaming X", DetectMSIGPUControllers, AMD_GPU_VEN, AMD_NAVI23_DEV1, MSI_SUB_VEN, MSI_RX6650XT_GAMING_X_SUB_DEV, 0x68); diff --git a/Controllers/MSIGPUController/MSIGPUv2Controller/MSIGPUv2ControllerDetect.cpp b/Controllers/MSIGPUController/MSIGPUv2Controller/MSIGPUv2ControllerDetect.cpp index aa4f86b4b..c1dccc115 100644 --- a/Controllers/MSIGPUController/MSIGPUv2Controller/MSIGPUv2ControllerDetect.cpp +++ b/Controllers/MSIGPUController/MSIGPUv2Controller/MSIGPUv2ControllerDetect.cpp @@ -12,30 +12,24 @@ #include "DetectionManager.h" #include "LogManager.h" #include "i2c_smbus.h" -#include "RGBController_MSIGPUv2.h" #include "MSIGPUv2Controller.h" +#include "RGBController_MSIGPUv2.h" -/*-----------------------------------------------------------------------------------------*\ -| | -| DetectMSI GPU V2 Controllers | -| | -| Detect MSI GPU v2 controllers on the enumerated I2C busses. | -| | -\*-----------------------------------------------------------------------------------------*/ - -void DetectMSIGPUv2Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectMSIGPUv2Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(bus->pci_vendor == NVIDIA_VEN && bus->port_id != 1) + DetectedControllers detected_controllers; + + if(bus->pci_vendor != NVIDIA_VEN || bus->port_id == 1) { - return; + int msi_gpu_id = bus->pci_subsystem_device | bus->pci_device << 16; + MSIGPUv2Controller* controller = new MSIGPUv2Controller(bus, i2c_addr, name); + RGBController_MSIGPUv2* rgb_controller = new RGBController_MSIGPUv2(controller, msi_gpu_id); + + detected_controllers.push_back(rgb_controller); } - int msi_gpu_id = bus->pci_subsystem_device | bus->pci_device << 16; - MSIGPUv2Controller* controller = new MSIGPUv2Controller(bus, i2c_addr, name); - RGBController_MSIGPUv2* rgb_controller = new RGBController_MSIGPUv2(controller, msi_gpu_id); - - DetectionManager::get()->RegisterRGBController(rgb_controller); -} /* DetectMSIGPUv2Controllers() */ + return(detected_controllers); +} REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4060 Gaming X", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4060_DEV, MSI_SUB_VEN, MSI_RTX4060_GAMING_X_8G_SUB_DEV, 0x68); REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4060 Ti Gaming X", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4060TI_DEV, MSI_SUB_VEN, MSI_RTX4060TI_GAMING_X_8G_SUB_DEV, 0x68); diff --git a/Controllers/MSIKeyboardController/MSIKeyboardControllerDetect.cpp b/Controllers/MSIKeyboardController/MSIKeyboardControllerDetect.cpp index 9dbc08b2f..95ae563a3 100644 --- a/Controllers/MSIKeyboardController/MSIKeyboardControllerDetect.cpp +++ b/Controllers/MSIKeyboardController/MSIKeyboardControllerDetect.cpp @@ -13,27 +13,22 @@ #define MSI_USB_VID 0x1462 -/*----------------------------------------------------------*\ -| | -| DetectMSIKeyboardController | -| | -| Detect MSI Mystic Light MS-1565 keyboard | -| | -\*----------------------------------------------------------*/ - -void DetectMSIKeyboardController - ( - hid_device_info* info, - const std::string& /*name*/ - ) +DetectedControllers DetectMSIKeyboardController(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); - if(dev != nullptr) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { MSIKeyboardController* controller = new MSIKeyboardController(dev, info->path); RGBController_MSIKeyboard* rgb_controller = new RGBController_MSIKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("MSI Keyboard MS_1565", DetectMSIKeyboardController, MSI_USB_VID, 0x1601, 0x00FF, 0x01); diff --git a/Controllers/MSIMysticLightController/MSIMysticLightControllerDetect.cpp b/Controllers/MSIMysticLightController/MSIMysticLightControllerDetect.cpp index 6daefc1d4..d8d73801c 100644 --- a/Controllers/MSIMysticLightController/MSIMysticLightControllerDetect.cpp +++ b/Controllers/MSIMysticLightController/MSIMysticLightControllerDetect.cpp @@ -8,6 +8,8 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" +#include "dmiinfo.h" +#include "LogManager.h" #include "MSIMysticLight64Controller.h" #include "MSIMysticLight112Controller.h" #include "MSIMysticLight162Controller.h" @@ -18,8 +20,6 @@ #include "RGBController_MSIMysticLight162.h" #include "RGBController_MSIMysticLight185.h" #include "RGBController_MSIMysticLight761.h" -#include "dmiinfo.h" -#include "LogManager.h" #define MSI_USB_VID 0x1462 #define MSI_USB_VID_COMMON 0x0DB0 @@ -33,20 +33,13 @@ \*---------------------------------------------------------------------------------*/ //#define ENABLE_UNTESTED_MYSTIC_LIGHT -/*----------------------------------------------------------------------------------------*\ -| | -| DetectMSIMysticLightControllers | -| | -| Detect MSI Mystic Light devices | -| | -\*----------------------------------------------------------------------------------------*/ -void DetectMSIMysticLightControllers - ( - hid_device_info* info, - const std::string& /*name*/ - ) +DetectedControllers DetectMSIMysticLightControllers(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev != nullptr) { unsigned char temp_buffer[200]; @@ -62,25 +55,24 @@ void DetectMSIMysticLightControllers MSIMysticLight185Controller* controller = new MSIMysticLight185Controller(dev, info->path, info->product_id, dmi_name); RGBController_MSIMysticLight185* rgb_controller = new RGBController_MSIMysticLight185(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else if((packet_length >= sizeof(FeaturePacket_162)) && (packet_length <= (sizeof(FeaturePacket_162) + 1))) { MSIMysticLight162Controller* controller = new MSIMysticLight162Controller(dev, info->path, info->product_id, dmi_name); RGBController_MSIMysticLight162* rgb_controller = new RGBController_MSIMysticLight162(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else if((packet_length >= sizeof(FeaturePacket_112)) && (packet_length <= (sizeof(FeaturePacket_112) + 1))) { MSIMysticLight112Controller* controller = new MSIMysticLight112Controller(dev, info->path, dmi_name); RGBController_MSIMysticLight112* rgb_controller = new RGBController_MSIMysticLight112(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else // no supported length returned { - unsigned char second_buffer [761]; second_buffer[0] = 0x50; @@ -99,16 +91,16 @@ void DetectMSIMysticLightControllers if(packet_length_new_attempt > 0) { - try { MSIMysticLight761Controller* controller = new MSIMysticLight761Controller(dev, (const char *) info->path, dmi_name); RGBController_MSIMysticLight761* rgb_controller = new RGBController_MSIMysticLight761(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } catch(const std::runtime_error& e) { - if (strcmp(e.what(), BOARD_UNSUPPORTED_ERROR) != 0) + if(strcmp(e.what(), BOARD_UNSUPPORTED_ERROR) != 0) { throw e; } @@ -117,35 +109,34 @@ void DetectMSIMysticLightControllers LOG_INFO("Found Board %s but does not have valid config", dmi_name.c_str()); } } - - } else { LOG_INFO("No matching driver found for %s, packet length = %d", dmi_name.c_str(), packet_length); - return; } } } + + return(detected_controllers); } -void DetectMSIMysticLight64Controllers - ( - hid_device_info* info, - const std::string& /*name*/ - ) +DetectedControllers DetectMSIMysticLight64Controllers(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev != nullptr) { MSIMysticLight64Controller* controller = new MSIMysticLight64Controller(dev, info->path); RGBController_MSIMysticLight64* rgb_controller = new RGBController_MSIMysticLight64(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} + return(detected_controllers); +} REGISTER_HID_DETECTOR_PU("MSI Mystic Light MS_1562", DetectMSIMysticLight64Controllers, MSI_USB_VID, 0x1562, 0x00FF, 0x01); REGISTER_HID_DETECTOR_PU("MSI Mystic Light MS_1563", DetectMSIMysticLight64Controllers, MSI_USB_VID, 0x1563, 0x00FF, 0x01); @@ -265,7 +256,6 @@ REGISTER_HID_DETECTOR_PU("MSI Mystic Light X870", DetectMSIMysticLightContro | DUMMY_DEVICE_DETECTOR("MSI Mystic Light MS_7E49", DetectMSIMysticLightControllers, 0x1462, 0x7E49 ) | \*---------------------------------------------------------------------------------------------------------*/ - #ifdef ENABLE_UNTESTED_MYSTIC_LIGHT REGISTER_HID_DETECTOR_PU("MSI Mystic Light MS_3EA4", DetectMSIMysticLightControllers, MSI_USB_VID, 0x3EA4, 0x0001, 0x00); REGISTER_HID_DETECTOR_PU("MSI Mystic Light MS_4459", DetectMSIMysticLightControllers, MSI_USB_VID, 0x4459, 0x0001, 0x00); diff --git a/Controllers/MSIOptixController/MSIOptixControllerDetect.cpp b/Controllers/MSIOptixController/MSIOptixControllerDetect.cpp index dd93d384f..4ec1300fb 100644 --- a/Controllers/MSIOptixController/MSIOptixControllerDetect.cpp +++ b/Controllers/MSIOptixController/MSIOptixControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define MSI_OPTIX_MAG274QRF_PID 0x3FA4 -void DetectMSIOptixControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectMSIOptixControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { MSIOptixController* controller = new MSIOptixController(dev, *info, name); RGBController_MSIOptix* rgb_controller = new RGBController_MSIOptix(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("MSI Optix controller", DetectMSIOptixControllers, MSI_VID, MSI_OPTIX_MAG274QRF_PID, 0, 0xFF00, 1); diff --git a/Controllers/MSIRGBController/MSIRGBControllerDetect.cpp b/Controllers/MSIRGBController/MSIRGBControllerDetect.cpp index 755ba1774..b432ab41e 100644 --- a/Controllers/MSIRGBController/MSIRGBControllerDetect.cpp +++ b/Controllers/MSIRGBController/MSIRGBControllerDetect.cpp @@ -15,14 +15,6 @@ #include "super_io.h" #include "dmiinfo.h" -/******************************************************************************************\ -* * -* DetectMSIRGBControllers * -* * -* Detect MSI-RGB compatible Super-IO chips. * -* * -\******************************************************************************************/ - #define NUM_COMPATIBLE_DEVICES (sizeof(compatible_devices) / sizeof(compatible_devices[0])) typedef struct @@ -85,45 +77,45 @@ static msi_device compatible_devices[] = {"7D95", false} }; -void DetectMSIRGBControllers() +DetectedControllers DetectMSIRGBControllers() { - int sio_addrs[2] = {0x2E, 0x4E}; + DetectedControllers detected_controllers; + int sio_addrs[2] = {0x2E, 0x4E}; + DMIInfo board; + std::string board_dmi = board.getMainboard(); + std::string manufacturer = board.getManufacturer(); - DMIInfo board; - std::string board_dmi = board.getMainboard(); - std::string manufacturer = board.getManufacturer(); - - if (manufacturer != "Micro-Star International Co., Ltd." && manufacturer != "Micro-Star International Co., Ltd" && manufacturer != "MSI") + if(manufacturer == "Micro-Star International Co., Ltd." || manufacturer == "Micro-Star International Co., Ltd" || manufacturer == "MSI") { - return; - } - - for(int sioaddr_idx = 0; sioaddr_idx < 2; sioaddr_idx++) - { - int sioaddr = sio_addrs[sioaddr_idx]; - - superio_enter(sioaddr); - - int val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVID + 1); - - switch (val & SIO_ID_MASK) + for(int sioaddr_idx = 0; sioaddr_idx < 2; sioaddr_idx++) { - case SIO_NCT6795_ID: - case SIO_NCT6797_ID: - for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++) - { - if (board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos) - { - MSIRGBController* controller = new MSIRGBController(sioaddr, compatible_devices[i].invert, "MSI " + board_dmi); - RGBController_MSIRGB* rgb_controller = new RGBController_MSIRGB(controller); + int sioaddr = sio_addrs[sioaddr_idx]; - DetectionManager::get()->RegisterRGBController(rgb_controller); - break; + superio_enter(sioaddr); + + int val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | superio_inb(sioaddr, SIO_REG_DEVID + 1); + + switch(val & SIO_ID_MASK) + { + case SIO_NCT6795_ID: + case SIO_NCT6797_ID: + for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++) + { + if(board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos) + { + MSIRGBController* controller = new MSIRGBController(sioaddr, compatible_devices[i].invert, "MSI " + board_dmi); + RGBController_MSIRGB* rgb_controller = new RGBController_MSIRGB(controller); + + detected_controllers.push_back(rgb_controller); + break; + } } + break; } - break; } } -} /* DetectMSIRGBControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("MSI-RGB", DetectMSIRGBControllers); diff --git a/Controllers/MSIVigorController/MSIVigorControllerDetect.cpp b/Controllers/MSIVigorController/MSIVigorControllerDetect.cpp index 5584af065..3a8542242 100644 --- a/Controllers/MSIVigorController/MSIVigorControllerDetect.cpp +++ b/Controllers/MSIVigorController/MSIVigorControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define MSI_VIGOR_GK30_PID 0x0B30 -void DetectMSIVigorGK30Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectMSIVigorGK30Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { MSIVigorGK30Controller* controller = new MSIVigorGK30Controller(dev, *info, name); RGBController_MSIVigorGK30* rgb_controller = new RGBController_MSIVigorGK30(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("MSI Vigor GK30 controller", DetectMSIVigorGK30Controllers, MSI_VID, MSI_VIGOR_GK30_PID, 1, 0xFF01, 1); diff --git a/Controllers/MadCatzCyborgController/MadCatzCyborgControllerDetect.cpp b/Controllers/MadCatzCyborgController/MadCatzCyborgControllerDetect.cpp index 4ed04d116..4e8fac260 100644 --- a/Controllers/MadCatzCyborgController/MadCatzCyborgControllerDetect.cpp +++ b/Controllers/MadCatzCyborgController/MadCatzCyborgControllerDetect.cpp @@ -7,38 +7,35 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ +#include #include "DetectionManager.h" #include "MadCatzCyborgController.h" #include "RGBController_MadCatzCyborg.h" -#include -/*-----------------------------------------------------*\ -| MadCatz Cyborg VID/PID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| MadCatz Cyborg VID/PID | +\*---------------------------------------------------------*/ #define MADCATZ_VID 0x06A3 #define MADCATZ_CYBORG_PID 0x0DC5 -/******************************************************************************************\ -* * -* DetectMadCatzCyborgControllers * -* * -* Tests the USB address to find MadCatz Cyborg Gaming Light devices * -* * -\******************************************************************************************/ - -void DetectMadCatzCyborgControllers(hid_device_info* info, const std::string& /*name*/) +DetectedControllers DetectMadCatzCyborgControllers(hid_device_info* info, const std::string& /*name*/) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - MadCatzCyborgController* controller = new MadCatzCyborgController(dev, info->path); + MadCatzCyborgController* controller = new MadCatzCyborgController(dev, info->path); controller->Initialize(); RGBController_MadCatzCyborg* rgb_controller = new RGBController_MadCatzCyborg(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("MadCatz Cyborg Gaming Light", DetectMadCatzCyborgControllers, MADCATZ_VID, MADCATZ_CYBORG_PID); diff --git a/Controllers/MintakaKeyboardController/MintakaKeyboardControllerDetect.cpp b/Controllers/MintakaKeyboardController/MintakaKeyboardControllerDetect.cpp index f4eb38453..0efe220a4 100644 --- a/Controllers/MintakaKeyboardController/MintakaKeyboardControllerDetect.cpp +++ b/Controllers/MintakaKeyboardController/MintakaKeyboardControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define VSG_MINTAKA_PID 0x0256 -void DetectMintakaKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectMintakaKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { MintakaKeyboardController* controller = new MintakaKeyboardController(dev, *info, name); RGBController_MintakaKeyboard* rgb_controller = new RGBController_MintakaKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("VSG Mintaka", DetectMintakaKeyboardControllers, MINTAKA_KEYBOARD_VID, VSG_MINTAKA_PID, 0, 0x0001, 0x06); diff --git a/Controllers/MountainKeyboardController/MountainKeyboardControllerDetect.cpp b/Controllers/MountainKeyboardController/MountainKeyboardControllerDetect.cpp index d129430b4..97a823185 100644 --- a/Controllers/MountainKeyboardController/MountainKeyboardControllerDetect.cpp +++ b/Controllers/MountainKeyboardController/MountainKeyboardControllerDetect.cpp @@ -11,57 +11,59 @@ #include #include "DetectionManager.h" -#include "MountainKeyboardController.h" -#include "RGBController_MountainKeyboard.h" #include "Mountain60KeyboardController.h" +#include "MountainKeyboardController.h" #include "RGBController_Mountain60Keyboard.h" +#include "RGBController_MountainKeyboard.h" -/*---------------------------------------------------------------*\ -| Mountain vendor ID | -\*---------------------------------------------------------------*/ -#define MOUNTAIN_VID 0x3282 +/*---------------------------------------------------------*\ +| Mountain vendor ID | +\*---------------------------------------------------------*/ +#define MOUNTAIN_VID 0x3282 -/*----------------------------------------------------------------*\ -| Everest 60 keyboard Connection IDs | -\*----------------------------------------------------------------*/ -#define MOUNTAIN60_EVEREST_60_PID_ANSII 0x0005 -#define MOUNTAIN60_EVEREST_60_PID_ISO 0x0006 -#define MOUNTAIN60_EVEREST_60_INTERFACE 2 -#define MOUNTAIN60_EVEREST_60_U 0x01 -#define MOUNTAIN60_EVEREST_60_UP 0xFFFF +/*---------------------------------------------------------*\ +| Everest 60 keyboard Connection IDs | +\*---------------------------------------------------------*/ +#define MOUNTAIN60_EVEREST_60_PID_ANSII 0x0005 +#define MOUNTAIN60_EVEREST_60_PID_ISO 0x0006 +#define MOUNTAIN60_EVEREST_60_INTERFACE 2 +#define MOUNTAIN60_EVEREST_60_U 0x01 +#define MOUNTAIN60_EVEREST_60_UP 0xFFFF -/*----------------------------------------------------------------------------------------*\ -| | -| DetectMountainKeyboardControllers | -| | -| Tests the USB address to see if a Mountain RGB Keyboard controller exists there. | -| | -\*----------------------------------------------------------------------------------------*/ - -void DetectMountain60KeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectMountain60KeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { Mountain60KeyboardController* controller = new Mountain60KeyboardController(dev, info->path, name); RGBController_Mountain60Keyboard* rgb_controller = new RGBController_Mountain60Keyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectMountainKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectMountainKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { MountainKeyboardController* controller = new MountainKeyboardController(dev, info->path, name); RGBController_MountainKeyboard* rgb_controller = new RGBController_MountainKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Mountain Everest", DetectMountainKeyboardControllers, MOUNTAIN_VID, MOUNTAIN_EVEREST_PID, 3, 0xFF00, 0x01); diff --git a/Controllers/N5312AController/N5312AControllerDetect.cpp b/Controllers/N5312AController/N5312AControllerDetect.cpp index 6a84fb7d4..547d39bcc 100644 --- a/Controllers/N5312AController/N5312AControllerDetect.cpp +++ b/Controllers/N5312AController/N5312AControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define N5312A_PID 0x5406 -void DetectN5312AControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectN5312AControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { N5312AController* controller = new N5312AController(dev, *info, name); RGBController_N5312A* rgb_controller = new RGBController_N5312A(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("N5312A USB Optical Mouse", DetectN5312AControllers, N5312A_VID, N5312A_PID, 1, 0xFF01, 0x01); diff --git a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp index 5a0540b89..fa916b55b 100644 --- a/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp +++ b/Controllers/NVIDIAIlluminationController/NVIDIAIlluminationControllerDetect_Windows_Linux.cpp @@ -80,8 +80,9 @@ static const nv_gpu_pci_device device_list[] = {NVIDIA_VEN, NVIDIA_RTX5090_DEV, NVIDIA_SUB_VEN, NVIDIA_RTX5090_FE_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA GeForce RTX 5090 FE" }, }; -void DetectNVIDIAIllumGPUs() +DetectedControllers DetectNVIDIAIllumGPUs() { + DetectedControllers detected_controllers; static NV_PHYSICAL_GPU_HANDLE gpu_handles[64]; static NV_S32 gpu_count = 0; NV_U32 device_id; @@ -119,7 +120,7 @@ void DetectNVIDIAIllumGPUs() NVIDIAIlluminationV1Controller* controller = new NVIDIAIlluminationV1Controller(new_nvapi, device_list[dev_idx].treats_rgbw_as_rgb, device_list[dev_idx].name); RGBController_NVIDIAIlluminationV1* rgb_controller = new RGBController_NVIDIAIlluminationV1(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } break; } @@ -127,6 +128,8 @@ void DetectNVIDIAIllumGPUs() } } } + + return(detected_controllers); } REGISTER_DETECTOR("Nvidia NvAPI Illumination", DetectNVIDIAIllumGPUs); diff --git a/Controllers/NZXTHue1Controller/NZXTHue1ControllerDetect.cpp b/Controllers/NZXTHue1Controller/NZXTHue1ControllerDetect.cpp index de94c4dd2..831a36fbb 100644 --- a/Controllers/NZXTHue1Controller/NZXTHue1ControllerDetect.cpp +++ b/Controllers/NZXTHue1Controller/NZXTHue1ControllerDetect.cpp @@ -14,31 +14,28 @@ #include "NZXTHue1Controller.h" #include "RGBController_NZXTHue1.h" -/*-----------------------------------------------------*\ -| NZXT USB IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| NZXT USB IDs | +\*---------------------------------------------------------*/ #define NZXT_VID 0x1E71 #define NZXT_SMART_DEVICE_V1_PID 0x1714 -/******************************************************************************************\ -* * -* DetectNZXTHue1Controllers * -* * -* Detect devices supported by the NZXTHue1 driver * -* * -\******************************************************************************************/ - -void DetectNZXTHue1Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTHue1Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { NZXTHue1Controller* controller = new NZXTHue1Controller(dev, 3, info->path, name); RGBController_NZXTHue1* rgb_controller = new RGBController_NZXTHue1(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectNZXTHue1Controllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR("NZXT Smart Device V1", DetectNZXTHue1Controllers, NZXT_VID, NZXT_SMART_DEVICE_V1_PID); diff --git a/Controllers/NZXTHue2Controller/NZXTHue2ControllerDetect.cpp b/Controllers/NZXTHue2Controller/NZXTHue2ControllerDetect.cpp index f326432e5..4aaa3c7e1 100644 --- a/Controllers/NZXTHue2Controller/NZXTHue2ControllerDetect.cpp +++ b/Controllers/NZXTHue2Controller/NZXTHue2ControllerDetect.cpp @@ -38,67 +38,73 @@ #define NZXT_SMART_DEVICE_V2_1_PID 0x200D #define NZXT_SMART_DEVICE_V2_2_PID 0x200F -static void spawn_hue(hid_device_info* info, const std::string& name, int rgb_channels, int fan_channels) +static DetectedControllers spawn_hue(hid_device_info* info, const std::string& name, int rgb_channels, int fan_channels) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { NZXTHue2Controller* controller = new NZXTHue2Controller(dev, rgb_channels, fan_channels, info->path, name); RGBController_NZXTHue2* rgb_controller = new RGBController_NZXTHue2(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); + LOG_TRACE("[NZXTHue2Controller] NZXT Controller setup: %s", info->path); } else { LOG_DEBUG("[NZXTHue2Controller] Failed to load device: %s!", info->path); } + + return(detected_controllers); } -void DetectNZXTHue2(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTHue2(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 4, 0); + return(spawn_hue(info, name, 4, 0)); } -void DetectNZXTHue2Ambient(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTHue2Ambient(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 2, 0); + return(spawn_hue(info, name, 2, 0)); } -void DetectNZXTHue2Motherboard(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTHue2Motherboard(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 2, 3); + return(spawn_hue(info, name, 2, 3)); } -void DetectNZXTSmartDeviceV2(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTSmartDeviceV2(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 2, 3); + return(spawn_hue(info, name, 2, 3)); } -void DetectNZXTKrakenX3(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTKrakenX3(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 3, 0); + return(spawn_hue(info, name, 3, 0)); } -void DetectNZXTKrakenElite(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTKrakenElite(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 2, 2); + return(spawn_hue(info, name, 2, 2)); } -void DetectNZXTFanController(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTFanController(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 2, 3); + return(spawn_hue(info, name, 2, 3)); } -void DetectNZXTFanController6Channel(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTFanController6Channel(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 6, 3); + return(spawn_hue(info, name, 6, 3)); } -void DetectNZXTRGBController(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTRGBController(hid_device_info* info, const std::string& name) { - spawn_hue(info, name, 3, 0); + return(spawn_hue(info, name, 3, 0)); } REGISTER_HID_DETECTOR("NZXT RGB & Fan Controller", DetectNZXTFanController, NZXT_VID, NZXT_RGB_FAN_CONTROLLER_PID); diff --git a/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp b/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp index b12643f89..b6ca3febb 100644 --- a/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp +++ b/Controllers/NZXTHuePlusController/NZXTHuePlusControllerDetect.cpp @@ -11,26 +11,24 @@ #include #include "DetectionManager.h" +#include "find_usb_serial_port.h" #include "NZXTHuePlusController.h" #include "RGBController_NZXTHuePlus.h" -#include "find_usb_serial_port.h" +/*---------------------------------------------------------*\ +| NZXT USB IDs | +\*---------------------------------------------------------*/ #define NZXT_HUE_PLUS_VID 0x04D8 #define NZXT_HUE_PLUS_PID 0x00DF -/******************************************************************************************\ -* * -* DetectNZXTHuePlusControllers * -* * -* Detect devices supported by the NZXTHuePlus driver * -* * -\******************************************************************************************/ - -void DetectNZXTHuePlusControllers() +DetectedControllers DetectNZXTHuePlusControllers() { - std::vector ports = find_usb_serial_port(NZXT_HUE_PLUS_VID, NZXT_HUE_PLUS_PID); + DetectedControllers detected_controllers; + std::vector ports; - for(unsigned int i = 0; i < ports.size(); i++) + ports = find_usb_serial_port(NZXT_HUE_PLUS_VID, NZXT_HUE_PLUS_PID); + + for(std::size_t i = 0; i < ports.size(); i++) { if(*ports[i] != "") { @@ -38,10 +36,12 @@ void DetectNZXTHuePlusControllers() controller->Initialize((char *)ports[i]->c_str()); RGBController_HuePlus* rgb_controller = new RGBController_HuePlus(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectHuePlusControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("NZXT Hue+", DetectNZXTHuePlusControllers); /*---------------------------------------------------------------------------------------------------------*\ diff --git a/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp b/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp index 95c881901..5b388169c 100644 --- a/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp +++ b/Controllers/NZXTKrakenController/NZXTKrakenControllerDetect.cpp @@ -18,26 +18,23 @@ #define NZXT_KRAKEN_X2_PID 0x170E #define NZXT_KRAKEN_M2_PID 0x1715 -/******************************************************************************************\ -* * -* DetectNZXTKrakenControllers * -* * -* Detect devices supported by the NZXTKraken driver * -* * -\******************************************************************************************/ - -void DetectNZXTKrakenControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTKrakenControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { NZXTKrakenController* controller = new NZXTKrakenController(dev, info->path, name); RGBController_NZXTKraken* rgb_controller = new RGBController_NZXTKraken(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectNZXTKrakenControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR("NZXT Kraken X2", DetectNZXTKrakenControllers, NZXT_KRAKEN_VID, NZXT_KRAKEN_X2_PID); REGISTER_HID_DETECTOR("NZXT Kraken M2", DetectNZXTKrakenControllers, NZXT_KRAKEN_VID, NZXT_KRAKEN_M2_PID); diff --git a/Controllers/NZXTMouseController/NZXTMouseControllerDetect.cpp b/Controllers/NZXTMouseController/NZXTMouseControllerDetect.cpp index eb74c3055..5f2d25a68 100644 --- a/Controllers/NZXTMouseController/NZXTMouseControllerDetect.cpp +++ b/Controllers/NZXTMouseController/NZXTMouseControllerDetect.cpp @@ -14,31 +14,28 @@ #include "NZXTMouseController.h" #include "RGBController_NZXTMouse.h" -/*-----------------------------------------------------*\ -| NZXT USB IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| NZXT USB IDs | +\*---------------------------------------------------------*/ #define NZXT_VID 0x1E71 #define NZXT_LIFT_PID 0x2100 -/******************************************************************************************\ -* * -* DetectNZXTMouseControllers * -* * -* Detect devices supported by the NZXTMouse driver * -* * -\******************************************************************************************/ - -static void DetectNZXTMouseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectNZXTMouseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { NZXTMouseController* controller = new NZXTMouseController(dev, info->path, name); RGBController_NZXTMouse* rgb_controller = new RGBController_NZXTMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("NZXT Lift", DetectNZXTMouseControllers, NZXT_VID, NZXT_LIFT_PID, 0, 0xFFCA, 1); diff --git a/Controllers/NanoleafController/NanoleafControllerDetect.cpp b/Controllers/NanoleafController/NanoleafControllerDetect.cpp index 2a55f5468..a692b9a83 100644 --- a/Controllers/NanoleafController/NanoleafControllerDetect.cpp +++ b/Controllers/NanoleafController/NanoleafControllerDetect.cpp @@ -15,17 +15,12 @@ #include "RGBController_Nanoleaf.h" #include "SettingsManager.h" -/*----------------------------------------------------------------------------------------*\ -| | -| DetectNanoleafControllers | -| | -| Connect to paired Nanoleaf devices | -| | -\*----------------------------------------------------------------------------------------*/ - -void DetectNanoleafControllers() +DetectedControllers DetectNanoleafControllers() { - json nanoleaf_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("NanoleafDevices"); + DetectedControllers detected_controllers; + json nanoleaf_settings; + + nanoleaf_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("NanoleafDevices"); if(nanoleaf_settings.contains("devices")) { @@ -38,7 +33,8 @@ void DetectNanoleafControllers() try { RGBController_Nanoleaf* rgb_controller = new RGBController_Nanoleaf(device["ip"], device["port"], device["auth_token"]); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } catch(...) { @@ -47,6 +43,8 @@ void DetectNanoleafControllers() } } } -} /* DetectNanoleafControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("Nanoleaf", DetectNanoleafControllers); diff --git a/Controllers/NollieController/NollieControllerDetect.cpp b/Controllers/NollieController/NollieControllerDetect.cpp index 199110a87..35ec4d7ed 100644 --- a/Controllers/NollieController/NollieControllerDetect.cpp +++ b/Controllers/NollieController/NollieControllerDetect.cpp @@ -14,9 +14,12 @@ #include "NollieController.h" #include "RGBController_Nollie.h" -void DetectNollieControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectNollieControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -28,8 +31,7 @@ void DetectNollieControllers(hid_device_info* info, const std::string& name) NollieController* controller = new NollieController(dev, info->path, info->vendor_id, info->product_id, name); RGBController_Nollie* rgb_controller = new RGBController_Nollie(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); - + detected_controllers.push_back(rgb_controller); } } diff --git a/Controllers/NvidiaESAController/NvidiaESAControllerDetect.cpp b/Controllers/NvidiaESAController/NvidiaESAControllerDetect.cpp index 383306c44..2b1c24412 100644 --- a/Controllers/NvidiaESAController/NvidiaESAControllerDetect.cpp +++ b/Controllers/NvidiaESAController/NvidiaESAControllerDetect.cpp @@ -23,17 +23,22 @@ \*---------------------------------------------------------*/ #define NVIDIA_ESA_DELL_XPS_730X_PID 0x000A -void DetectNvidiaESAControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectNvidiaESAControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { NvidiaESAController* controller = new NvidiaESAController(dev, *info, name); RGBController_NvidiaESA* rgb_controller = new RGBController_NvidiaESA(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("Nvidia ESA - Dell XPS 730x", DetectNvidiaESAControllers, NVIDIA_ESA_VID, NVIDIA_ESA_DELL_XPS_730X_PID, 0xFFDE, 0x02); diff --git a/Controllers/OKSController/OKSKeyboardControllerDetect.cpp b/Controllers/OKSController/OKSKeyboardControllerDetect.cpp index d60cbc3d3..4b0e4603a 100644 --- a/Controllers/OKSController/OKSKeyboardControllerDetect.cpp +++ b/Controllers/OKSController/OKSKeyboardControllerDetect.cpp @@ -14,24 +14,22 @@ #include "OKSKeyboardController.h" #include "RGBController_OKSKeyboard.h" -/******************************************************************************************\ -* DetectOKSKeyboardControllers * -* Reference: DuckyKeyboardController * -* Tests the USB address to see if a OKS Optical Axis RGB Keyboard controller exists there.* -* Reference:DetectDuckyKeyboardControllers * -\******************************************************************************************/ - -void DetectOKSKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectOKSKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { OKSKeyboardController* controller = new OKSKeyboardController(dev, info->path, info->product_id, name); RGBController_OKSKeyboard* rgb_controller = new RGBController_OKSKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectOKSKeyboardControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_I("OKS Optical Axis RGB", DetectOKSKeyboardControllers, OKS_VID, OKS_OPTICAL_RGB_PID, 1); diff --git a/Controllers/PNYARGBEpicXGPUController/PNYARGBEpicXGPUControllerDetect.cpp b/Controllers/PNYARGBEpicXGPUController/PNYARGBEpicXGPUControllerDetect.cpp index a6a60e066..fb7f3e401 100644 --- a/Controllers/PNYARGBEpicXGPUController/PNYARGBEpicXGPUControllerDetect.cpp +++ b/Controllers/PNYARGBEpicXGPUController/PNYARGBEpicXGPUControllerDetect.cpp @@ -12,27 +12,25 @@ #include "DetectionManager.h" #include "LogManager.h" -#include "PNYARGBEpicXGPUController.h" -#include "RGBController_PNYARGBEpicXGPU.h" #include "i2c_smbus.h" #include "pci_ids.h" +#include "PNYARGBEpicXGPUController.h" +#include "RGBController_PNYARGBEpicXGPU.h" -/*-----------------------------------------------------------------------------------------*\ -| DetectPNYARGBEpicXGPUControllers | -| | -| Detect PNY ARGB Epic X GPU controllers on the enumerated I2C busses at address 0x60. | -| | -| bus - pointer to i2c_smbus_interface where PNY GPU device is connected | -| dev - I2C address of PNY GPU device | -\*-----------------------------------------------------------------------------------------*/ - -void DetectPNYARGBEpicXGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectPNYARGBEpicXGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - PNYARGBEpicXGPUController* controller = new PNYARGBEpicXGPUController(bus, i2c_addr, name); - RGBController_PNYARGBEpicXGPU* rgb_controller = new RGBController_PNYARGBEpicXGPU(controller); + DetectedControllers detected_controllers; - DetectionManager::get()->RegisterRGBController(rgb_controller); -} /* DetectPNYARGBEpicXGPUControllers() */ + if(bus->port_id == 1) + { + PNYARGBEpicXGPUController* controller = new PNYARGBEpicXGPUController(bus, i2c_addr, name); + RGBController_PNYARGBEpicXGPU* rgb_controller = new RGBController_PNYARGBEpicXGPU(controller); + + detected_controllers.push_back(rgb_controller); + } + + return(detected_controllers); +} REGISTER_I2C_PCI_DETECTOR("PNY GeForce RTX 5070Ti ARGB Epic-X OC", DetectPNYARGBEpicXGPUControllers, NVIDIA_VEN, NVIDIA_RTX5070TI_DEV, PNY_SUB_VEN, PNY_RTX_5070TI_ARGB_EPIC_X_OC_SUB_DEV, 0x60); //REGISTER_I2C_PCI_DETECTOR("PNY GeForce RTX 5080 ARGB Epic-X OC", DetectPNYARGBEpicXGPUControllers, NVIDIA_VEN, NVIDIA_RTX5080_DEV, PNY_SUB_VEN, PNY_RTX_5080_ARGB_EPIC_X_OC_SUB_DEV, 0x60); diff --git a/Controllers/PNYGPUController/PNYGPUControllerDetect.cpp b/Controllers/PNYGPUController/PNYGPUControllerDetect.cpp index 813f00226..4bcd64794 100644 --- a/Controllers/PNYGPUController/PNYGPUControllerDetect.cpp +++ b/Controllers/PNYGPUController/PNYGPUControllerDetect.cpp @@ -10,34 +10,25 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "PNYGPUController.h" -#include "RGBController_PNYGPU.h" #include "i2c_smbus.h" #include "pci_ids.h" +#include "PNYGPUController.h" +#include "RGBController_PNYGPU.h" -/******************************************************************************************\ - * * - * DetectPNYGPUControllers * - * * - * Detect PNY GPU controllers on the enumerated I2C busses at address 0x49. * - * * - * bus - pointer to i2c_smbus_interface where PNY GPU device is connected * - * dev - I2C address of PNY GPU device * - * * -\******************************************************************************************/ - -void DetectPNYGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectPNYGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(bus->port_id != 1) + DetectedControllers detected_controllers; + + if(bus->port_id == 1) { - return; + PNYGPUController* controller = new PNYGPUController(bus, i2c_addr, name); + RGBController_PNYGPU* rgb_controller = new RGBController_PNYGPU(controller); + + detected_controllers.push_back(rgb_controller); } - PNYGPUController* controller = new PNYGPUController(bus, i2c_addr, name); - RGBController_PNYGPU* rgb_controller = new RGBController_PNYGPU(controller); - - DetectionManager::get()->RegisterRGBController(rgb_controller); -} /* DetectPNYGPUControllers() */ + return(detected_controllers); +} REGISTER_I2C_PCI_DETECTOR("PNY GeForce RTX 2060 XLR8 OC EDITION", DetectPNYGPUControllers, NVIDIA_VEN, NVIDIA_RTX2060_TU104_DEV, PNY_SUB_VEN, PNY_RTX_2060_XLR8_OC_SUB_DEV, 0x49); REGISTER_I2C_PCI_DETECTOR("PNY GeForce RTX 3060 XLR8 Revel EPIC-X", DetectPNYGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_DEV, PNY_SUB_VEN, PNY_RTX_3060_XLR8_REVEL_EPIC_X_SUB_DEV, 0x49); diff --git a/Controllers/PNYLovelaceGPUController/PNYLovelaceGPUControllerDetect.cpp b/Controllers/PNYLovelaceGPUController/PNYLovelaceGPUControllerDetect.cpp index 91961c579..caf640161 100644 --- a/Controllers/PNYLovelaceGPUController/PNYLovelaceGPUControllerDetect.cpp +++ b/Controllers/PNYLovelaceGPUController/PNYLovelaceGPUControllerDetect.cpp @@ -10,32 +10,25 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "PNYLovelaceGPUController.h" -#include "RGBController_PNYLovelaceGPU.h" #include "i2c_smbus.h" #include "pci_ids.h" +#include "PNYLovelaceGPUController.h" +#include "RGBController_PNYLovelaceGPU.h" -/*-----------------------------------------------------------------------------------------*\ -| DetectPNYLovelaceGPUControllers | -| | -| Detect PNY 40xx GPU controllers on the enumerated I2C busses at address 0x60. | -| | -| bus - pointer to i2c_smbus_interface where PNY GPU device is connected | -| dev - I2C address of PNY GPU device | -\*-----------------------------------------------------------------------------------------*/ - -void DetectPNYLovelaceGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectPNYLovelaceGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(bus->port_id != 1) + DetectedControllers detected_controllers; + + if(bus->port_id == 1) { - return; + PNYLovelaceGPUController* controller = new PNYLovelaceGPUController(bus, i2c_addr, name); + RGBController_PNYLovelaceGPU* rgb_controller = new RGBController_PNYLovelaceGPU(controller); + + detected_controllers.push_back(rgb_controller); } - PNYLovelaceGPUController* controller = new PNYLovelaceGPUController(bus, i2c_addr, name); - RGBController_PNYLovelaceGPU* rgb_controller = new RGBController_PNYLovelaceGPU(controller); - - DetectionManager::get()->RegisterRGBController(rgb_controller); -} /* DetectPNYLovelaceGPUControllers() */ + return(detected_controllers); +} REGISTER_I2C_PCI_DETECTOR("PNY GeForce RTX 4070 Ti XLR8 VERTO Epic-X", DetectPNYLovelaceGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, PNY_SUB_VEN, PNY_RTX_4070TI_XLR8_VERTO_EPIC_X_SUB_DEV, 0x60); REGISTER_I2C_PCI_DETECTOR("PNY GeForce RTX 4070 Ti XLR8 VERTO REV1", DetectPNYLovelaceGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, PNY_SUB_VEN, PNY_RTX_4070TI_XLR8_VERTO_REV1_SUB_DEV, 0x60); diff --git a/Controllers/PalitGPUController/PalitGPUControllerDetect.cpp b/Controllers/PalitGPUController/PalitGPUControllerDetect.cpp index 189127bec..943d3b76d 100644 --- a/Controllers/PalitGPUController/PalitGPUControllerDetect.cpp +++ b/Controllers/PalitGPUController/PalitGPUControllerDetect.cpp @@ -12,50 +12,44 @@ #include #include #include "DetectionManager.h" -#include "PalitGPUController.h" -#include "RGBController_PalitGPU.h" #include "i2c_smbus.h" +#include "PalitGPUController.h" #include "pci_ids.h" +#include "RGBController_PalitGPU.h" -/******************************************************************************************\ - * * - * DetectPalitGPUControllers * - * * - * Detect Palit GPU controllers on the enumerated I2C busses at address 0x49. * - * * - * bus - pointer to i2c_smbus_interface where Palit GPU device is connected * - * dev - I2C address of Palit GPU device * - * * * - * Ligolas Neo Malicdem - Added 1060, 1070, 1070ti support * -\******************************************************************************************/ - -void DetectPalitGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectPalitGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(bus->port_id != 1) + DetectedControllers detected_controllers; + + if(bus->port_id == 1) { - return; - } + /*-----------------------------------------------------*\ + | Check for PALIT string | + \*-----------------------------------------------------*/ + const uint8_t palit[] = {'P', 'A', 'L', 'I', 'T'}; + bool match = true; - /*-----------------------------------------------------*\ - | Check for PALIT string | - \*-----------------------------------------------------*/ - const uint8_t palit[] = {'P', 'A', 'L', 'I', 'T'}; - - for(size_t i = 0; i < sizeof(palit); i++) - { - int32_t letter = bus->i2c_smbus_read_byte_data(i2c_addr, 0x07 + (u8)i); - - if(palit[i] != letter) + for(size_t i = 0; i < sizeof(palit); i++) { - return; + int32_t letter = bus->i2c_smbus_read_byte_data(i2c_addr, 0x07 + (u8)i); + + if(palit[i] != letter) + { + match = false; + } + } + + if(match) + { + PalitGPUController* controller = new PalitGPUController(bus, i2c_addr, name); + RGBController_PalitGPU* rgb_controller = new RGBController_PalitGPU(controller); + + DetectionManager::get()->RegisterRGBController(rgb_controller); } } - PalitGPUController* controller = new PalitGPUController(bus, i2c_addr, name); - RGBController_PalitGPU* rgb_controller = new RGBController_PalitGPU(controller); - - DetectionManager::get()->RegisterRGBController(rgb_controller); -} /* DetectPalitGPUControllers() */ + return(detected_controllers); +} REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1060", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1060_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1060_DEV, 0x08); REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1070", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1070_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1070_DEV, 0x08); diff --git a/Controllers/PatriotViperController/PatriotViperControllerDetect.cpp b/Controllers/PatriotViperController/PatriotViperControllerDetect.cpp index 2748187f7..c7df26d47 100644 --- a/Controllers/PatriotViperController/PatriotViperControllerDetect.cpp +++ b/Controllers/PatriotViperController/PatriotViperControllerDetect.cpp @@ -18,15 +18,8 @@ #include "pci_ids.h" using namespace std::chrono_literals; -#define PATRIOT_CONTROLLER_NAME "Patriot Viper" -/******************************************************************************************\ -* * -* TestForPatriotViperController * -* * -* Tests the given address to see if a Patriot Viper controller exists there. * -* * -\******************************************************************************************/ +#define PATRIOT_CONTROLLER_NAME "Patriot Viper" bool TestForPatriotViperController(i2c_smbus_interface* bus, unsigned char address) { @@ -42,26 +35,16 @@ bool TestForPatriotViperController(i2c_smbus_interface* bus, unsigned char addre } return(pass); +} -} /* TestForPatriotViperController() */ - - -/******************************************************************************************\ -* * -* DetectPatriotViperControllers * -* * -* Detect Patriot Viper RGB controllers on the enumerated I2C busses. * -* * -* bus - pointer to i2c_smbus_interface where Aura device is connected * -* dev - I2C address of Aura device * -* * -\******************************************************************************************/ - -void DetectPatriotViperControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) +DetectedControllers DetectPatriotViperControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) { - unsigned char slots_valid = 0x00; + DetectedControllers detected_controllers; + unsigned char slots_valid = 0x00; - // Check for Patriot Viper controller at 0x77 + /*-----------------------------------------------------*\ + | Check for Patriot Viper controller at 0x77 | + \*-----------------------------------------------------*/ LOG_DEBUG("[%s] Testing bus %d at address 0x77", PATRIOT_CONTROLLER_NAME, bus->port_id); if(TestForPatriotViperController(bus, 0x77)) @@ -69,13 +52,13 @@ void DetectPatriotViperControllers(i2c_smbus_interface* bus, std::vectormanufacturer_data(0x00) == 0x4D) - &&(slot->manufacturer_data(0x01) == 0x49) - &&(slot->manufacturer_data(0x02) == 0x43) - &&(slot->manufacturer_data(0x03) == 0x53) - &&(slot->manufacturer_data(0x04) == 0x59) - &&(slot->manufacturer_data(0x05) == 0x53) - &&(slot->manufacturer_data(0x06) == 0x5f) - &&(slot->manufacturer_data(0x07) == 0x44)) + &&(slot->manufacturer_data(0x01) == 0x49) + &&(slot->manufacturer_data(0x02) == 0x43) + &&(slot->manufacturer_data(0x03) == 0x53) + &&(slot->manufacturer_data(0x04) == 0x59) + &&(slot->manufacturer_data(0x05) == 0x53) + &&(slot->manufacturer_data(0x06) == 0x5f) + &&(slot->manufacturer_data(0x07) == 0x44)) { LOG_DEBUG("[%s] The RAM module detected in slot %d", PATRIOT_CONTROLLER_NAME, slot->index()); slots_valid |= (1 << (slot->index())); @@ -86,11 +69,13 @@ void DetectPatriotViperControllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } } -} /* DetectPatriotViperControllers() */ + return(detected_controllers); +} REGISTER_I2C_DRAM_DETECTOR(PATRIOT_CONTROLLER_NAME, DetectPatriotViperControllers, JEDEC_PATRIOT, SPD_DDR4_SDRAM); diff --git a/Controllers/PatriotViperMouseController/PatriotViperMouseControllerDetect.cpp b/Controllers/PatriotViperMouseController/PatriotViperMouseControllerDetect.cpp index ba5af63c2..a6edfa93d 100644 --- a/Controllers/PatriotViperMouseController/PatriotViperMouseControllerDetect.cpp +++ b/Controllers/PatriotViperMouseController/PatriotViperMouseControllerDetect.cpp @@ -13,26 +13,28 @@ #include "PatriotViperMouseController.h" #include "RGBController_PatriotViperMouse.h" - -/*-----------------------------------------------------*\ -| Patriot Viper Mouse IDs | -\*-----------------------------------------------------*/ - +/*---------------------------------------------------------*\ +| Patriot Viper Mouse IDs | +\*---------------------------------------------------------*/ #define PATRIOT_VID 0x0C45 #define VIPER_V550_PID 0x7E18 - -void DetectPatriotViperMouseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectPatriotViperMouseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { PatriotViperMouseController* controller = new PatriotViperMouseController(dev, info->path, name); RGBController_PatriotViperMouse* rgb_controller = new RGBController_PatriotViperMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Patriot Viper V550", DetectPatriotViperMouseControllers, PATRIOT_VID, VIPER_V550_PID, 2, 0xFF18, 0x01); diff --git a/Controllers/PatriotViperSteelController/PatriotViperSteelControllerDetect.cpp b/Controllers/PatriotViperSteelController/PatriotViperSteelControllerDetect.cpp index 2acde3447..714280818 100644 --- a/Controllers/PatriotViperSteelController/PatriotViperSteelControllerDetect.cpp +++ b/Controllers/PatriotViperSteelController/PatriotViperSteelControllerDetect.cpp @@ -16,15 +16,8 @@ #include "pci_ids.h" using namespace std::chrono_literals; -#define PATRIOT_CONTROLLER_NAME "Patriot Viper Steel" -/******************************************************************************************\ -* * -* TestForPatriotViperSteelController * -* * -* Tests the given address to see if a Patriot Viper Steel controller exists there. * -* * -\******************************************************************************************/ +#define PATRIOT_CONTROLLER_NAME "Patriot Viper Steel" bool TestForPatriotViperSteelController(i2c_smbus_interface* bus, unsigned char address) { @@ -40,26 +33,16 @@ bool TestForPatriotViperSteelController(i2c_smbus_interface* bus, unsigned char } return(pass); +} -} /* TestForPatriotViperSteelController() */ - - -/******************************************************************************************\ -* * -* DetectPatriotViperSteelControllers * -* * -* Detect Patriot Viper Steel RGB controllers on the enumerated I2C busses. * -* * -* bus - pointer to i2c_smbus_interface where Aura device is connected * -* dev - I2C address of Aura device * -* * -\******************************************************************************************/ - -void DetectPatriotViperSteelControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) +DetectedControllers DetectPatriotViperSteelControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) { - unsigned char slots_valid = 0x00; + DetectedControllers detected_controllers; + unsigned char slots_valid = 0x00; - // Check for Patriot Viper controller at 0x77 + /*-----------------------------------------------------*\ + | Check for Patriot Viper controller at 0x77 | + \*-----------------------------------------------------*/ LOG_DEBUG("[%s] Testing bus %d at address 0x77", PATRIOT_CONTROLLER_NAME, bus->port_id); if(TestForPatriotViperSteelController(bus, 0x77)) @@ -84,11 +67,13 @@ void DetectPatriotViperSteelControllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } } -} /* DetectPatriotViperSteelControllers() */ + return(detected_controllers); +} REGISTER_I2C_DRAM_DETECTOR(PATRIOT_CONTROLLER_NAME, DetectPatriotViperSteelControllers, 0xFF7E, SPD_DDR4_SDRAM); diff --git a/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp b/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp index dd067cbc6..334929253 100644 --- a/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp +++ b/Controllers/PhilipsHueController/PhilipsHueControllerDetect.cpp @@ -22,42 +22,35 @@ #include "LogManager.h" #include "PhilipsHueController.h" #include "PhilipsHueEntertainmentController.h" +#include "PhilipsHueSettingsHandler.h" #include "ResourceManager.h" #include "RGBController_PhilipsHue.h" #include "RGBController_PhilipsHueEntertainment.h" -#include "PhilipsHueSettingsHandler.h" -/******************************************************************************************\ -* * -* DetectPhilipsHueControllers * -* * -* Detect Philips Hue lighting devices with RGB control * -* * -\******************************************************************************************/ - -void DetectPhilipsHueControllers() +DetectedControllers DetectPhilipsHueControllers() { - PhilipsHueSettingsHandler hue_settings; + DetectedControllers detected_controllers; + PhilipsHueSettingsHandler hue_settings; - /*-------------------------------------------------*\ - | Create an HTTP handler | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Create an HTTP handler | + \*-----------------------------------------------------*/ #ifdef _WIN32 using SystemHttpHandler = hueplusplus::WinHttpHandler; #else using SystemHttpHandler = hueplusplus::LinHttpHandler; #endif - /*-------------------------------------------------*\ - | Create a finder and find bridges | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Create a finder and find bridges | + \*-----------------------------------------------------*/ static hueplusplus::BridgeFinder finder(std::make_shared()); std::vector bridges;// = finder.findBridges(); - /*-------------------------------------------------*\ - | If no bridges were detected, manually add bridge | - | IP and MAC (need to get these from file) | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If no bridges were detected, manually add bridge IP | + | and MAC (need to get these from file) | + \*-----------------------------------------------------*/ if(hue_settings.GetBridgeCount() > 0) { hueplusplus::BridgeFinder::BridgeIdentification ident; @@ -68,32 +61,27 @@ void DetectPhilipsHueControllers() bridges.push_back(ident); } - /*-------------------------------------------------*\ - | If no bridges were found, return, otherwise | - | connect to the first bridge | - \*-------------------------------------------------*/ - if(bridges.empty()) - { - return; - } - else + /*-----------------------------------------------------*\ + | If bridges were found, connect to the first bridge | + \*-----------------------------------------------------*/ + if(!bridges.empty()) { /*-------------------------------------------------*\ | Check if a saved username exists | \*-------------------------------------------------*/ if(hue_settings.GetBridgeCount() > 0) { - /*-------------------------------------------------*\ - | Add the username if it exists | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Add the username if it exists | + \*---------------------------------------------*/ if(hue_settings.BridgeHasUsername(0)) { finder.addUsername(bridges[0].mac, hue_settings.GetBridgeUsername(0)); } - /*-------------------------------------------------*\ - | Add the client key if it exists | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Add the client key if it exists | + \*---------------------------------------------*/ if(hue_settings.BridgeHasClientKey(0)) { finder.addClientKey(bridges[0].mac, hue_settings.GetBridgeClientKey(0)); @@ -111,11 +99,12 @@ void DetectPhilipsHueControllers() bridge.refresh(); - /*-------------------------------------------------*\ - | Check to see if we need to save the settings | - | Settings need to be saved if either username or | - | client key either do not exist or have changed | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Check to see if we need to save the settings | + | Settings need to be saved if either username | + | or client key either do not exist or have | + | changed | + \*---------------------------------------------*/ bool save_settings = false; bool use_entertainment = false; bool auto_connect = false; @@ -148,9 +137,9 @@ void DetectPhilipsHueControllers() } } - /*-------------------------------------------------*\ - | Save the settings if needed | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Save the settings if needed | + \*---------------------------------------------*/ if(save_settings) { hue_settings.SetBridgeUsername(0, bridge.getUsername()); @@ -160,25 +149,26 @@ void DetectPhilipsHueControllers() hue_settings.SaveSettings(); } - /*-------------------------------------------------*\ - | Get entertainment mode settings | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Get entertainment mode settings | + \*---------------------------------------------*/ use_entertainment = hue_settings.GetBridgeUseEntertainment(0); auto_connect = hue_settings.GetBridgeAutoconnect(0); - /*-------------------------------------------------*\ - | Get all groups from the bridge | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Get all groups from the bridge | + \*---------------------------------------------*/ if(use_entertainment) { std::vector groups = bridge.groups().getAll(); if(groups.size() > 0) { - /*-------------------------------------------------*\ - | Loop through all available groups and check to | - | see if any are Entertainment groups | - \*-------------------------------------------------*/ + /*-------------------------------------*\ + | Loop through all available groups and | + | check to see if any are Entertainment | + | groups | + \*-------------------------------------*/ for(unsigned int group_idx = 0; group_idx < groups.size(); group_idx++) { if(groups[group_idx].getType() == "Entertainment") @@ -186,42 +176,45 @@ void DetectPhilipsHueControllers() PhilipsHueEntertainmentController* controller = new PhilipsHueEntertainmentController(bridge, groups[group_idx]); RGBController_PhilipsHueEntertainment* rgb_controller = new RGBController_PhilipsHueEntertainment(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } - /*-------------------------------------------------*\ - | Loop through RGB Controllers to find the first | - | Entertainment group and Set it to "Connect", | - | as only one Stream can be open at a time. | - \*-------------------------------------------------*/ - if(auto_connect) - { - for(unsigned int controller_idx = 0; controller_idx < ResourceManager::get()->GetRGBControllers().size(); controller_idx++) - { - if(ResourceManager::get()->GetRGBControllers()[controller_idx]->GetDescription() == "Philips Hue Entertainment Mode Device") - { - ResourceManager::get()->GetRGBControllers()[controller_idx]->SetActiveMode(0); - break; - } - } - } + /*-------------------------------------*\ + | Loop through RGB Controllers to find | + | the first Entertainment group and Set | + | it to "Connect", as only one Stream | + | can be open at a time. | + | TODO: investigate this and rework | + \*-------------------------------------*/ + //f(auto_connect) + // + // for(unsigned int controller_idx = 0; controller_idx < ResourceManager::get()->GetRGBControllers().size(); controller_idx++) + // { + // if(ResourceManager::get()->GetRGBControllers()[controller_idx]->GetDescription() == "Philips Hue Entertainment Mode Device") + // { + // ResourceManager::get()->GetRGBControllers()[controller_idx]->SetActiveMode(0); + // break; + // } + // } + // } } - /*-------------------------------------------------*\ - | Get all lights from the bridge | - \*-------------------------------------------------*/ + /*---------------------------------------------*\ + | Get all lights from the bridge | + \*---------------------------------------------*/ else { std::vector lights = bridge.lights().getAll(); if(lights.size() > 0) { - /*-------------------------------------------------*\ - | Loop through all available lights and add those | - | that have color (RGB) control capability | - \*-------------------------------------------------*/ + /*-------------------------------------*\ + | Loop through all available lights and | + | add those that have color (RGB) | + | control capability | + \*-------------------------------------*/ for(unsigned int light_idx = 0; light_idx < lights.size(); light_idx++) { if(lights[light_idx].hasColorControl()) @@ -229,7 +222,7 @@ void DetectPhilipsHueControllers() PhilipsHueController* controller = new PhilipsHueController(lights[light_idx], bridge.getBridgeIP()); RGBController_PhilipsHue* rgb_controller = new RGBController_PhilipsHue(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } @@ -240,6 +233,8 @@ void DetectPhilipsHueControllers() LOG_INFO("Exception occurred in Philips Hue detection: %s", e.what()); } } -} /* DetectPhilipsHueControllers() */ + + return(detected_controllers); +} REGISTER_DETECTOR("Philips Hue", DetectPhilipsHueControllers); diff --git a/Controllers/PhilipsWizController/PhilipsWizControllerDetect.cpp b/Controllers/PhilipsWizController/PhilipsWizControllerDetect.cpp index 97a7b40c7..6cf94e8f3 100644 --- a/Controllers/PhilipsWizController/PhilipsWizControllerDetect.cpp +++ b/Controllers/PhilipsWizController/PhilipsWizControllerDetect.cpp @@ -15,26 +15,19 @@ #include "RGBController_PhilipsWiz.h" #include "SettingsManager.h" -/******************************************************************************************\ -* * -* DetectPhilipsWizControllers * -* * -* Detect Philips Wiz devices * -* * -\******************************************************************************************/ - -void DetectPhilipsWizControllers() +DetectedControllers DetectPhilipsWizControllers() { - json wiz_settings; + DetectedControllers detected_controllers; + json wiz_settings; - /*-------------------------------------------------*\ - | Get Philips Wiz settings from settings manager | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get Philips Wiz settings from settings manager | + \*-----------------------------------------------------*/ wiz_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("PhilipsWizDevices"); - /*-------------------------------------------------*\ - | If the Wiz settings contains devices, process | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the Wiz settings contains devices, process | + \*-----------------------------------------------------*/ if(wiz_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < wiz_settings["devices"].size(); device_idx++) @@ -64,11 +57,12 @@ void DetectPhilipsWizControllers() PhilipsWizController* controller = new PhilipsWizController(wiz_ip, wiz_cool, wiz_warm, wiz_white_strategy); RGBController_PhilipsWiz* rgb_controller = new RGBController_PhilipsWiz(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } -} /* DetectPhilipsWizControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("Philips Wiz", DetectPhilipsWizControllers); diff --git a/Controllers/PowerColorGPUController/PowerColorGPUControllerDetect.cpp b/Controllers/PowerColorGPUController/PowerColorGPUControllerDetect.cpp index 820074338..84aa74b9d 100644 --- a/Controllers/PowerColorGPUController/PowerColorGPUControllerDetect.cpp +++ b/Controllers/PowerColorGPUController/PowerColorGPUControllerDetect.cpp @@ -26,41 +26,45 @@ static const unsigned char magic_v2[3] = {0x01, 0x32, 0x00}; | for good measure anyways. | \*---------------------------------------------------------*/ -void DetectPowerColorRedDevilGPUControllersV1(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectPowerColorRedDevilGPUControllersV1(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(!is_amd_gpu_i2c_bus(bus)) + DetectedControllers detected_controllers; + + if(is_amd_gpu_i2c_bus(bus)) { - return; + unsigned char data[3]; + int ret = bus->i2c_smbus_read_i2c_block_data(i2c_addr, RED_DEVIL_V1_REG_MAGIC, 3, data); + if(ret == 3 && memcmp(data, magic_v1, 3) == 0) + { + PowerColorRedDevilV1Controller* controller = new PowerColorRedDevilV1Controller(bus, i2c_addr, name); + RGBController_PowerColorRedDevilV1* rgb_controller = new RGBController_PowerColorRedDevilV1(controller); + + detected_controllers.push_back(rgb_controller); + } } - unsigned char data[3]; - int ret = bus->i2c_smbus_read_i2c_block_data(i2c_addr, RED_DEVIL_V1_REG_MAGIC, 3, data); - if(ret == 3 && memcmp(data, magic_v1, 3) == 0) - { - PowerColorRedDevilV1Controller* controller = new PowerColorRedDevilV1Controller(bus, i2c_addr, name); - RGBController_PowerColorRedDevilV1* rgb_controller = new RGBController_PowerColorRedDevilV1(controller); - - DetectionManager::get()->RegisterRGBController(rgb_controller); - } + return(detected_controllers); } -void DetectPowerColorRedDevilGPUControllersV2(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectPowerColorRedDevilGPUControllersV2(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { - if(!is_amd_gpu_i2c_bus(bus)) + DetectedControllers detected_controllers; + + if(is_amd_gpu_i2c_bus(bus)) { - return; + unsigned char data[3]; + int ret = bus->i2c_smbus_read_i2c_block_data(i2c_addr, RED_DEVIL_V2_READ_REG_MAGIC, 3, data); + if(ret == 3 && memcmp(data, magic_v2, 3) == 0) + { + PowerColorRedDevilV2Controller* controller = new PowerColorRedDevilV2Controller(bus, i2c_addr, name); + RGBController_PowerColorRedDevilV2* rgb_controller = new RGBController_PowerColorRedDevilV2(controller); + + detected_controllers.push_back(rgb_controller); + } } - unsigned char data[3]; - int ret = bus->i2c_smbus_read_i2c_block_data(i2c_addr, RED_DEVIL_V2_READ_REG_MAGIC, 3, data); - if(ret == 3 && memcmp(data, magic_v2, 3) == 0) - { - PowerColorRedDevilV2Controller* controller = new PowerColorRedDevilV2Controller(bus, i2c_addr, name); - RGBController_PowerColorRedDevilV2* rgb_controller = new RGBController_PowerColorRedDevilV2(controller); - - DetectionManager::get()->RegisterRGBController(rgb_controller); - } + return(detected_controllers); } REGISTER_I2C_PCI_DETECTOR("PowerColor Red Devil RX5700", DetectPowerColorRedDevilGPUControllersV1, AMD_GPU_VEN, AMD_NAVI10_DEV, POWERCOLOR_SUB_VEN, POWERCOLOR_RED_DEVIL_RX5700_SUB_DEV, 0x22); diff --git a/Controllers/QMKController/QMKOpenRGBController/QMKOpenRGBControllerDetect.cpp b/Controllers/QMKController/QMKOpenRGBController/QMKOpenRGBControllerDetect.cpp index f22e99d94..4525f913c 100644 --- a/Controllers/QMKController/QMKOpenRGBController/QMKOpenRGBControllerDetect.cpp +++ b/Controllers/QMKController/QMKOpenRGBController/QMKOpenRGBControllerDetect.cpp @@ -24,18 +24,18 @@ #include "RGBController_QMKOpenRGBRevE.h" #include "SettingsManager.h" -/*-----------------------------------------------------*\ -| Protocol version | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Protocol version | +\*---------------------------------------------------------*/ #define QMK_OPENRGB_PROTOCOL_VERSION_9 0x09 #define QMK_OPENRGB_PROTOCOL_VERSION_B 0x0B #define QMK_OPENRGB_PROTOCOL_VERSION_C 0x0C #define QMK_OPENRGB_PROTOCOL_VERSION_D 0x0D #define QMK_OPENRGB_PROTOCOL_VERSION_E 0x0E -/*-----------------------------------------------------*\ -| Usage and Usage Page | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Usage and Usage Page | +\*---------------------------------------------------------*/ #define QMK_USAGE_PAGE 0xFF60 #define QMK_USAGE 0x61 @@ -64,17 +64,20 @@ unsigned int GetProtocolVersion(hid_device *dev) return usb_buf[1]; } -void DetectQMKOpenRGBControllers(hid_device_info *info, const std::string&) +DetectedControllers DetectQMKOpenRGBControllers(hid_device_info *info, const std::string&) { - hid_device *dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - /*-----------------------------------------------------*\ - | Use Rev9 controller for getting protocol version. | - | Protocol version request may not change across | - | protocol versions | - \*-----------------------------------------------------*/ + /*-------------------------------------------------*\ + | Use Rev9 controller for getting protocol version. | + | Protocol version request may not change across | + | protocol versions | + \*-------------------------------------------------*/ unsigned int version = GetProtocolVersion(dev); switch(version) @@ -83,35 +86,40 @@ void DetectQMKOpenRGBControllers(hid_device_info *info, const std::string&) { QMKOpenRGBRev9Controller* controller = new QMKOpenRGBRev9Controller(dev, info->path); RGBController_QMKOpenRGBRev9* rgb_controller = new RGBController_QMKOpenRGBRev9(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } break; case QMK_OPENRGB_PROTOCOL_VERSION_B: { QMKOpenRGBRevBController* controller = new QMKOpenRGBRevBController(dev, info->path); RGBController_QMKOpenRGBRevB* rgb_controller = new RGBController_QMKOpenRGBRevB(controller, false); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } break; case QMK_OPENRGB_PROTOCOL_VERSION_C: { QMKOpenRGBRevBController* controller = new QMKOpenRGBRevBController(dev, info->path); RGBController_QMKOpenRGBRevB* rgb_controller = new RGBController_QMKOpenRGBRevB(controller, true); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } break; case QMK_OPENRGB_PROTOCOL_VERSION_D: { QMKOpenRGBRevDController* controller = new QMKOpenRGBRevDController(dev, info->path); RGBController_QMKOpenRGBRevD* rgb_controller = new RGBController_QMKOpenRGBRevD(controller, true); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } break; case QMK_OPENRGB_PROTOCOL_VERSION_E: { QMKOpenRGBRevDController* controller = new QMKOpenRGBRevDController(dev, info->path); RGBController_QMKOpenRGBRevE* rgb_controller = new RGBController_QMKOpenRGBRevE(controller, true); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } break; default: @@ -132,13 +140,15 @@ void DetectQMKOpenRGBControllers(hid_device_info *info, const std::string&) } } } + + return(detected_controllers); } void RegisterQMKDetectors() { - /*-------------------------------------------------*\ - | Get QMKOpenRGB settings | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get QMKOpenRGB settings | + \*-----------------------------------------------------*/ json qmk_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("QMKOpenRGBDevices"); if(qmk_settings.contains("devices")) @@ -153,9 +163,9 @@ void RegisterQMKDetectors() std::string usb_vid_str = qmk_settings["devices"][device_idx]["usb_vid"]; std::string name = qmk_settings["devices"][device_idx]["name"]; - /*-------------------------------------*\ - | Parse hex string to integer | - \*-------------------------------------*/ + /*-----------------------------------------*\ + | Parse hex string to integer | + \*-----------------------------------------*/ unsigned short usb_pid = std::stoi(usb_pid_str, 0, 16); unsigned short usb_vid = std::stoi(usb_vid_str, 0, 16); diff --git a/Controllers/QMKController/QMKVialRGBController/QMKVialRGBControllerDetect.cpp b/Controllers/QMKController/QMKVialRGBController/QMKVialRGBControllerDetect.cpp index 7ed2fe8aa..1204ed27d 100644 --- a/Controllers/QMKController/QMKVialRGBController/QMKVialRGBControllerDetect.cpp +++ b/Controllers/QMKController/QMKVialRGBController/QMKVialRGBControllerDetect.cpp @@ -29,9 +29,12 @@ #define QMK_USAGE_PAGE 0xFF60 #define QMK_USAGE 0x61 -void DetectQMKVialRGBControllers(hid_device_info *info, const std::string&) +DetectedControllers DetectQMKVialRGBControllers(hid_device_info *info, const std::string&) { - hid_device *dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -40,13 +43,15 @@ void DetectQMKVialRGBControllers(hid_device_info *info, const std::string&) if(controller->GetSupported()) { RGBController_QMKVialRGB* rgb_controller = new RGBController_QMKVialRGB(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { delete controller; } } + + return(detected_controllers); } void RegisterQMKVialRGBDetectors() diff --git a/Controllers/RazerController/RazerControllerDetect.cpp b/Controllers/RazerController/RazerControllerDetect.cpp index bc307fe4b..f9fc07949 100644 --- a/Controllers/RazerController/RazerControllerDetect.cpp +++ b/Controllers/RazerController/RazerControllerDetect.cpp @@ -13,11 +13,11 @@ #include #include "DetectionManager.h" #include "RazerController.h" +#include "RazerDevices.h" #include "RazerKrakenController.h" #include "RazerKrakenV3Controller.h" #include "RazerKrakenV4Controller.h" #include "RazerHanboController.h" -#include "RazerDevices.h" #include "ResourceManager.h" #include "RGBController_Razer.h" #include "RGBController_RazerAddressable.h" @@ -26,199 +26,190 @@ #include "RGBController_RazerKrakenV4.h" #include "RGBController_RazerHanbo.h" -/******************************************************************************************\ -* * -* DetectRazerControllers * -* * -* Tests the USB address to see if a Razer controller exists there. * -* * -\******************************************************************************************/ - -void DetectRazerControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectRazerControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - RazerController* controller = new RazerController(dev, dev, info->path, info->product_id, name); - + RazerController* controller = new RazerController(dev, dev, info->path, info->product_id, name); RGBController_Razer* rgb_controller = new RGBController_Razer(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectRazerControllers() */ -/******************************************************************************************\ -* * -* DetectRazerARGBControllers * -* * -* Tests the USB address to see if a Razer ARGB controller exists there. * -* * -\******************************************************************************************/ + return(detected_controllers); +} - -/*---------------------------------------------------------------------*\ -| Tracks the paths used in DetectRazerARGBControllers so multiple Razer | -| devices can be detected without all controlling the same device. | -\*---------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Tracks the paths used in DetectRazerARGBControllers so | +| multiple Razer devices can be detected without all | +| controlling the same device. | +\*---------------------------------------------------------*/ static std::unordered_set used_paths; -/*--------------------------------------------------------------------------------*\ -| Removes all entries in used_paths so device discovery does not skip any of them. | -\*--------------------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Removes all entries in used_paths so device discovery | +| does not skip any of them. | +\*---------------------------------------------------------*/ void ResetRazerARGBControllersPaths() { used_paths.clear(); } -void DetectRazerARGBControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectRazerARGBControllers(hid_device_info* info, const std::string& name) { - /*-------------------------------------------------------------------------------------------------*\ - | Razer's ARGB controller uses two different interfaces, one for 90-byte Razer report packets and | - | one for 320-byte ARGB packets. Interface 0 for 90-byte and interface 1 for 320-byte. | - | | - | Create a local copy of the HID enumerations for the Razer ARGB controller VID/PID and iterate | - | through it. This prevents detection from failing if interface 1 comes before interface 0 in the | - | main info list. | - \*-------------------------------------------------------------------------------------------------*/ - hid_device* dev_interface_0 = nullptr; - hid_device* dev_interface_1 = nullptr; - hid_device_info* info_full = hid_enumerate(RAZER_VID, RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID); - hid_device_info* info_temp = info_full; - /*--------------------------------------------------------------------------------------------*\ - | Keep track of paths so they can be added to used_paths only if both interfaces can be found. | - \*--------------------------------------------------------------------------------------------*/ - std::string dev_interface_0_path; - std::string dev_interface_1_path; + DetectedControllers detected_controllers; - while(info_temp) - { - /*----------------------------------------------------------------------------*\ - | Check for paths used on an already registered Razer ARGB controller to avoid | - | registering multiple controllers that refer to the same physical hardware. | - \*----------------------------------------------------------------------------*/ - if(info_temp->vendor_id == info->vendor_id - && info_temp->product_id == info->product_id - && used_paths.find(info_temp->path) == used_paths.end() ) - { - if(info_temp->interface_number == 0) - { - dev_interface_0 = hid_open_path(info_temp->path); - dev_interface_0_path = info_temp->path; - } - else if(info_temp->interface_number == 1) - { - dev_interface_1 = hid_open_path(info_temp->path); - dev_interface_1_path = info_temp->path; - } - } - if(dev_interface_0 && dev_interface_1) - { - break; - } - info_temp = info_temp->next; - } + /*-----------------------------------------------------*\ + | Razer's ARGB controller uses two different interfaces,| + | one for 90-byte Razer report packets and one for | + | 320-byte ARGB packets. Interface 0 for 90-byte and | + | interface 1 for 320-byte. | + | | + | Create a local copy of the HID enumerations for the | + | Razer ARGB controller VID/PID and iterate through it. | + | This prevents detection from failing if interface 1 | + | comes before interface 0 in the main info list. | + \*-----------------------------------------------------*/ + hid_device* dev_interface_0 = nullptr; + hid_device* dev_interface_1 = nullptr; + hid_device_info* info_full = hid_enumerate(RAZER_VID, RAZER_CHROMA_ADDRESSABLE_RGB_CONTROLLER_PID); + hid_device_info* info_temp = info_full; - hid_free_enumeration(info_full); + /*----------------------------------------------------*\ + | Keep track of paths so they can be added to | + | used_paths only if both interfaces can be found. | + \*-----------------------------------------------------*/ + std::string dev_interface_0_path; + std::string dev_interface_1_path; - if(dev_interface_0 && dev_interface_1) - { - RazerController* controller = new RazerController(dev_interface_0, dev_interface_1, info->path, info->product_id, name); - RGBController_RazerAddressable* rgb_controller = new RGBController_RazerAddressable(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); - used_paths.insert(dev_interface_0_path); - used_paths.insert(dev_interface_1_path); - } - else - { - // Not all of them could be opened, do some cleanup - hid_close(dev_interface_0); - hid_close(dev_interface_1); - } + while(info_temp) + { + /*-------------------------------------------------*\ + | Check for paths used on an already registered | + | Razer ARGB controller to avoid registering | + | multiple controllers that refer to the same | + | physical hardware. | + \*-------------------------------------------------*/ + if(info_temp->vendor_id == info->vendor_id + && info_temp->product_id == info->product_id + && used_paths.find(info_temp->path) == used_paths.end()) + { + if(info_temp->interface_number == 0) + { + dev_interface_0 = hid_open_path(info_temp->path); + dev_interface_0_path = info_temp->path; + } + else if(info_temp->interface_number == 1) + { + dev_interface_1 = hid_open_path(info_temp->path); + dev_interface_1_path = info_temp->path; + } + } + if(dev_interface_0 && dev_interface_1) + { + break; + } + info_temp = info_temp->next; + } + + hid_free_enumeration(info_full); + + if(dev_interface_0 && dev_interface_1) + { + RazerController* controller = new RazerController(dev_interface_0, dev_interface_1, info->path, info->product_id, name); + RGBController_RazerAddressable* rgb_controller = new RGBController_RazerAddressable(controller); + + detected_controllers.push_back(rgb_controller); + + used_paths.insert(dev_interface_0_path); + used_paths.insert(dev_interface_1_path); + } + else + { + // Not all of them could be opened, do some cleanup + hid_close(dev_interface_0); + hid_close(dev_interface_1); + } + + return(detected_controllers); } -/******************************************************************************************\ -* * -* DetectRazerKrakenController * -* * -* Tests the USB address to see if a Razer Kraken controller exists there. * -* * -\******************************************************************************************/ - -void DetectRazerKrakenControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectRazerKrakenControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - RazerKrakenController* controller = new RazerKrakenController(dev, info->path, info->product_id, name); - + RazerKrakenController* controller = new RazerKrakenController(dev, info->path, info->product_id, name); RGBController_RazerKraken* rgb_controller = new RGBController_RazerKraken(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectRazerKrakenControllers() */ -/******************************************************************************************\ -* * -* DetectRazerKrakenV3Controllers * -* * -* Tests the USB address to see if a Razer Kraken V3 controller exists there. * -* * -\******************************************************************************************/ + return(detected_controllers); +} -void DetectRazerKrakenV3Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectRazerKrakenV3Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - RazerKrakenV3Controller* controller = new RazerKrakenV3Controller(dev, info->path, info->product_id, name); - + RazerKrakenV3Controller* controller = new RazerKrakenV3Controller(dev, info->path, info->product_id, name); RGBController_RazerKrakenV3* rgb_controller = new RGBController_RazerKrakenV3(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectRazerKrakenV3Controllers() */ -/******************************************************************************************\ -* * -* DetectRazerKrakenV4Controllers * -* * -* Tests the USB address to see if a Razer Kraken V4 controller exists there. * -* * -\******************************************************************************************/ + return(detected_controllers); +} -void DetectRazerKrakenV4Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectRazerKrakenV4Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - RazerKrakenV4Controller* controller = new RazerKrakenV4Controller(dev, info->path, info->product_id, name); - + RazerKrakenV4Controller* controller = new RazerKrakenV4Controller(dev, info->path, info->product_id, name); RGBController_RazerKrakenV4* rgb_controller = new RGBController_RazerKrakenV4(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectRazerKrakenV4Controllers() */ -/******************************************************************************************\ -* * -* DetectRazerHanboController * -* * -* Tests the USB address to see if a Razer Hanbo controller exists there. * -* * -\******************************************************************************************/ + return(detected_controllers); +} -void DetectRazerHanboControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectRazerHanboControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - RazerHanboController* controller = new RazerHanboController(dev, info->path, info->product_id, name); - + RazerHanboController* controller = new RazerHanboController(dev, info->path, info->product_id, name); RGBController_RazerHanbo* rgb_controller = new RGBController_RazerHanbo(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectRazerHanboControllers() */ + + return(detected_controllers); +} /*-----------------------------------------------------------------------------------------------------*\ | Keyboards | diff --git a/Controllers/RedSquareKeyroxController/RedSquareKeyroxControllerDetect.cpp b/Controllers/RedSquareKeyroxController/RedSquareKeyroxControllerDetect.cpp index c9b46469b..b4788117b 100644 --- a/Controllers/RedSquareKeyroxController/RedSquareKeyroxControllerDetect.cpp +++ b/Controllers/RedSquareKeyroxController/RedSquareKeyroxControllerDetect.cpp @@ -16,42 +16,53 @@ #include "RGBController_RedSquareKeyrox.h" #include "RGBController_RedSquareKeyroxTKLClassic.h" -/*-----------------------------------------------------*\ -| Red Square vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Red Square vendor ID | +\*---------------------------------------------------------*/ #define RED_SQUARE_VID 0x1A2C #define RED_SQUARE_KEYROX_TKL_CLASSIC_VID 0x0416 -/*-----------------------------------------------------*\ -| Red Square product ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Red Square product ID | +\*---------------------------------------------------------*/ #define RED_SQUARE_KEYROX_TKL_PID 0x1511 #define RED_SQUARE_KEYROX_TKL_V2_PID 0x2511 #define RED_SQUARE_KEYROX_TKL_CLASSIC_PID 0xC345 -void DetectRedSquareKeyroxTKL(hid_device_info* info, const std::string& name) +DetectedControllers DetectRedSquareKeyroxTKL(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { RedSquareKeyroxController* controller = new RedSquareKeyroxController(dev, *info, KEYROX_VARIANT_TKL, name); RGBController_RedSquareKeyrox* rgb_controller = new RGBController_RedSquareKeyrox(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectRedSquareKeyroxTKLClassic(hid_device_info* info, const std::string& name) + +DetectedControllers DetectRedSquareKeyroxTKLClassic(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { RedSquareKeyroxTKLClassicController* controller = new RedSquareKeyroxTKLClassicController(dev, *info, name); RGBController_RedSquareKeyroxTKLClassic* rgb_controller = new RGBController_RedSquareKeyroxTKLClassic(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Red Square Keyrox TKL", DetectRedSquareKeyroxTKL, RED_SQUARE_VID, RED_SQUARE_KEYROX_TKL_PID, 3, 0xFF00, 2); diff --git a/Controllers/RedragonController/RedragonControllerDetect.cpp b/Controllers/RedragonController/RedragonControllerDetect.cpp index ed46f8301..10e7436d1 100644 --- a/Controllers/RedragonController/RedragonControllerDetect.cpp +++ b/Controllers/RedragonController/RedragonControllerDetect.cpp @@ -14,9 +14,9 @@ #include "RedragonMouseController.h" #include "RGBController_RedragonMouse.h" -/*-----------------------------------------------------*\ -| Mouse product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Mouse product IDs | +\*---------------------------------------------------------*/ #define REDRAGON_MOUSE_VID 0x04D9 #define REDRAGON_MOUSE_USAGE_PAGE 0xFFA0 #define REDRAGON_M711_PID 0xFC30 @@ -29,30 +29,27 @@ #define REDRAGON_M810_PID 0xFA7E #define REDRAGON_M987_PID 0xFC69 -/******************************************************************************************\ -* * -* DetectRedragonMice * -* * -* Tests the USB address to see if a Redragon Mouse controller exists there. * -* * -\******************************************************************************************/ - -void DetectRedragonMice(hid_device_info* info, const std::string& name) +DetectedControllers DetectRedragonMice(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { RedragonMouseController* controller = new RedragonMouseController(dev, info->path, name); RGBController_RedragonMouse* rgb_controller = new RGBController_RedragonMouse(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -/*---------------------------------------------------------------------------------------------------------------------------------------------*\ -| Mice | -\*---------------------------------------------------------------------------------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Mice | +\*---------------------------------------------------------*/ REGISTER_HID_DETECTOR_IP("Redragon M711 Cobra", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M711_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); REGISTER_HID_DETECTOR_IP("Redragon M715 Dagger", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M715_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); REGISTER_HID_DETECTOR_IP("Redragon M716 Inquisitor", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M716_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); diff --git a/Controllers/RobobloqLightStripController/RobobloqLightStripControllerDetect.cpp b/Controllers/RobobloqLightStripController/RobobloqLightStripControllerDetect.cpp index 9e37e677e..d220f9b60 100644 --- a/Controllers/RobobloqLightStripController/RobobloqLightStripControllerDetect.cpp +++ b/Controllers/RobobloqLightStripController/RobobloqLightStripControllerDetect.cpp @@ -8,32 +8,27 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "RobobloqLightStripController.h" #include "RGBController_RobobloqLightStrip.h" +#include "RobobloqLightStripController.h" #define ROBOBLOQ_USB_VID 0x1A86 -/*----------------------------------------------------------*\ -| | -| DetectRobobloqLightStripController | -| | -| Detect Robobloq RGB Light Strips | -| | -\*----------------------------------------------------------*/ - -void DetectRobobloqLightStripController - ( - hid_device_info* info, - const std::string& name - ) +DetectedControllers DetectRobobloqLightStripController(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); - if(dev != nullptr) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { RobobloqLightStripController* controller = new RobobloqLightStripController(dev, info->path, name); RGBController_RobobloqLightStrip* rgb_controller = new RGBController_RobobloqLightStrip(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("Robobloq Monitor Light Strip", DetectRobobloqLightStripController, ROBOBLOQ_USB_VID, 0xFE07, 0xFF00, 0x01); diff --git a/Controllers/SRGBmodsController/SRGBmodsControllerDetect.cpp b/Controllers/SRGBmodsController/SRGBmodsControllerDetect.cpp index 6a9032ae4..fd0244540 100644 --- a/Controllers/SRGBmodsController/SRGBmodsControllerDetect.cpp +++ b/Controllers/SRGBmodsController/SRGBmodsControllerDetect.cpp @@ -11,27 +11,22 @@ #include #include "DetectionManager.h" -#include "SRGBmodsLEDControllerV1.h" -#include "SRGBmodsPicoController.h" #include "RGBController_SRGBmodsLEDControllerV1.h" #include "RGBController_SRGBmodsPico.h" +#include "SRGBmodsLEDControllerV1.h" +#include "SRGBmodsPicoController.h" #define SRGBMODS_VID 0x16D0 #define SRGBMODS_PICO_PID 0x1123 #define SRGBMODS_LED_CONTROLLER_V1_PID 0x1205 -/******************************************************************************************\ -* * -* DetectSRGBmodsControllers * -* * -* Detect devices supported by the SRGBmods driver * -* * -\******************************************************************************************/ - -void DetectSRGBmodsControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectSRGBmodsControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -40,26 +35,28 @@ void DetectSRGBmodsControllers(hid_device_info* info, const std::string& name) std::wstring product_str(product); - /*-------------------------------------------------------------------------*\ - | Test the product string in case this USB ID is reused for other Pi Pico | - | projects | - \*-------------------------------------------------------------------------*/ + /*-------------------------------------------------*\ + | Test the product string in case this USB ID is | + | reused for other Pi Pico projects | + \*-------------------------------------------------*/ if(product_str == L"SRGBmods Pico LED Controller" || product_str == L"Pico LED Controller") { SRGBmodsPicoController* controller = new SRGBmodsPicoController(dev, info->path, name); RGBController_SRGBmodsPico* rgb_controller = new RGBController_SRGBmodsPico(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else if(product_str == L"LED Controller v1") { SRGBmodsLEDControllerV1* controller = new SRGBmodsLEDControllerV1(dev, info->path, name); RGBController_SRGBmodsLEDControllerV1* rgb_controller = new RGBController_SRGBmodsLEDControllerV1(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectSRGBmodsControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR("SRGBmods Pico LED Controller", DetectSRGBmodsControllers, SRGBMODS_VID, SRGBMODS_PICO_PID ); REGISTER_HID_DETECTOR("SRGBMods LED Controller v1", DetectSRGBmodsControllers, SRGBMODS_VID, SRGBMODS_LED_CONTROLLER_V1_PID); diff --git a/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp b/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp index b629ba5cb..8a9a80568 100644 --- a/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp +++ b/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp @@ -8,32 +8,23 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "SapphireNitroGlowV1Controller.h" -#include "SapphireNitroGlowV3Controller.h" -#include "RGBController_SapphireNitroGlowV1.h" -#include "RGBController_SapphireNitroGlowV3.h" #include "i2c_amd_gpu.h" #include "i2c_smbus.h" #include "pci_ids.h" +#include "RGBController_SapphireNitroGlowV1.h" +#include "RGBController_SapphireNitroGlowV3.h" +#include "SapphireNitroGlowV1Controller.h" +#include "SapphireNitroGlowV3Controller.h" -/*-----------------------------------------------------*\ -| I2C Addresses for Sapphire Nitro Glow RGB | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| I2C Addresses for Sapphire Nitro Glow RGB | +\*---------------------------------------------------------*/ enum { SAPPHIRE_NITRO_GLOW_V1_ADDR = 0x55, SAPPHIRE_NITRO_GLOW_V3_ADDR = 0x28, }; -/******************************************************************************************\ -* * -* TestForSapphireGPUController * -* * -* Tests the given address to see if an Sapphire controller exists there. First * -* does a byte read to test for a response * -* * -\******************************************************************************************/ - bool TestForSapphireGPUController(i2c_smbus_interface* bus, unsigned char address) { if(bus->pci_vendor == AMD_GPU_VEN && !is_amd_gpu_i2c_bus(bus)) @@ -43,37 +34,37 @@ bool TestForSapphireGPUController(i2c_smbus_interface* bus, unsigned char addres //Read a byte to test for presence return bus->i2c_smbus_read_byte(address) >= 0; -} /* TestForSapphireGPUController() */ +} -/******************************************************************************************\ -* * -* DetectSapphireGPUControllers * -* * -* Detect Sapphire GPU controllers on the enumerated I2C buses. * -* * -\******************************************************************************************/ - -void DetectSapphireV1Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) +DetectedControllers DetectSapphireV1Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(TestForSapphireGPUController(bus, i2c_addr)) { - SapphireNitroGlowV1Controller* new_sapphire_gpu = new SapphireNitroGlowV1Controller(bus, i2c_addr, name); - RGBController_SapphireNitroGlowV1* new_controller = new RGBController_SapphireNitroGlowV1(new_sapphire_gpu); + SapphireNitroGlowV1Controller* controller = new SapphireNitroGlowV1Controller(bus, i2c_addr, name); + RGBController_SapphireNitroGlowV1* rgb_controller = new RGBController_SapphireNitroGlowV1(controller); - DetectionManager::get()->RegisterRGBController(new_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectSapphireV1Controllers() */ -void DetectSapphireV3Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) + return(detected_controllers); +} + +DetectedControllers DetectSapphireV3Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(TestForSapphireGPUController(bus, i2c_addr)) { - SapphireNitroGlowV3Controller* new_sapphire_gpu = new SapphireNitroGlowV3Controller(bus, i2c_addr, name); - RGBController_SapphireNitroGlowV3* new_controller = new RGBController_SapphireNitroGlowV3(new_sapphire_gpu); + SapphireNitroGlowV3Controller* controller = new SapphireNitroGlowV3Controller(bus, i2c_addr, name); + RGBController_SapphireNitroGlowV3* rgb_controller = new RGBController_SapphireNitroGlowV3(controller); - DetectionManager::get()->RegisterRGBController(new_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectSapphireV3Controllers() */ + + return(detected_controllers); +} REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 470/480 Nitro+", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_LEGACY_SUB_VEN, SAPPHIRE_LEGACY_POLARIS_NITRO_PLUS_SUB_DEV, SAPPHIRE_NITRO_GLOW_V1_ADDR); REGISTER_I2C_PCI_DETECTOR("Sapphire Radeon RX 570/580/590 Nitro+", DetectSapphireV1Controllers, AMD_GPU_VEN, AMD_POLARIS_DEV, SAPPHIRE_SUB_VEN, SAPPHIRE_POLARIS_NITRO_PLUS_SUB_DEV1, SAPPHIRE_NITRO_GLOW_V1_ADDR); diff --git a/Controllers/SeagateController/SeagateControllerDetect.cpp b/Controllers/SeagateController/SeagateControllerDetect.cpp index e770d5389..e8b83e8f7 100644 --- a/Controllers/SeagateController/SeagateControllerDetect.cpp +++ b/Controllers/SeagateController/SeagateControllerDetect.cpp @@ -10,21 +10,16 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "SeagateController.h" #include "RGBController_Seagate.h" +#include "SeagateController.h" #include "scsiapi.h" -/******************************************************************************************\ -* * -* DetectSeagateControllers * -* * -* Detects Seagate FireCuda HDD devices * -* * -\******************************************************************************************/ - -void DetectSeagateControllers() +DetectedControllers DetectSeagateControllers() { - scsi_device_info * info = scsi_enumerate(NULL, NULL); + DetectedControllers detected_controllers; + scsi_device_info * info; + + info = scsi_enumerate(NULL, NULL); while(info) { @@ -37,7 +32,7 @@ void DetectSeagateControllers() SeagateController* controller = new SeagateController(dev, info->path); RGBController_Seagate* rgb_controller = new RGBController_Seagate(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } info = info->next; @@ -45,6 +40,7 @@ void DetectSeagateControllers() scsi_free_enumeration(info); -} /* DetectSeagateControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("Seagate Firecuda HDD", DetectSeagateControllers); diff --git a/Controllers/SkyloongController/SkyloongControllerDetect.cpp b/Controllers/SkyloongController/SkyloongControllerDetect.cpp index 7cba3c265..6983c4c8f 100644 --- a/Controllers/SkyloongController/SkyloongControllerDetect.cpp +++ b/Controllers/SkyloongController/SkyloongControllerDetect.cpp @@ -14,33 +14,32 @@ #include "SkyloongGK104ProController.h" #include "RGBController_SkyloongGK104Pro.h" -/*-----------------------------------------------------*\ -| Keyboard product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ #define SKYLOONG_KEYBOARD_VID 0x1EA7 #define SKYLOONG_GK104_PRO_PID 0x0907 #define SKYLOONG_GK104_PRO_I 1 -/******************************************************************************************\ -* * -* DetectSkyloongGK104Pro * -* * -* Tests the USB address to see if a Skyloong GK104 Pro controller exists there. * -* * -\******************************************************************************************/ -void DetectSkyloongGK104Pro(hid_device_info* info, const std::string& name) +DetectedControllers DetectSkyloongGK104Pro(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { - SkyloongGK104ProController* controller = new SkyloongGK104ProController(dev, info->path, name); + SkyloongGK104ProController* controller = new SkyloongGK104ProController(dev, info->path, name); RGBController_SkyloongGK104Pro* rgb_controller = new RGBController_SkyloongGK104Pro(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -/*---------------------------------------------------------------------------------------------------------------------------------------------*\ -| Keyboards | -\*---------------------------------------------------------------------------------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboards | +\*---------------------------------------------------------*/ REGISTER_HID_DETECTOR_I("Skyloong GK104 Pro", DetectSkyloongGK104Pro, SKYLOONG_KEYBOARD_VID, SKYLOONG_GK104_PRO_PID, SKYLOONG_GK104_PRO_I); diff --git a/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp b/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp index f168fd2ae..74a442ebf 100644 --- a/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp +++ b/Controllers/SonyGamepadController/SonyGamepadControllerDetect.cpp @@ -13,9 +13,11 @@ #include #include +#include "DetectionManager.h" #include "RGBController_SonyDS4.h" #include "RGBController_SonyDualSense.h" -#include "DetectionManager.h" +#include "SonyDS4Controller.h" +#include "SonyDualSenseController.h" #define SONY_VID 0x054C @@ -25,31 +27,41 @@ #define SONY_DUALSENSE_PID 0x0CE6 #define SONY_DUALSENSE_EDGE_PID 0x0DF2 -void DetectSonyDS4Controllers(hid_device_info* info, const std::string&) +DetectedControllers DetectSonyDS4Controllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { SonyDS4Controller* controller = new SonyDS4Controller(dev, info->path); RGBController_SonyDS4* rgb_controller = new RGBController_SonyDS4(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectSonyDualSenseControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectSonyDualSenseControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - bool is_bluetooth = info->interface_number == -1; + bool is_bluetooth = (info->interface_number == -1); SonyDualSenseController* controller = new SonyDualSenseController(dev, info->path, is_bluetooth, name); RGBController_SonyDualSense* rgb_controller = new RGBController_SonyDualSense(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Sony DualShock 4", DetectSonyDS4Controllers, SONY_VID, SONY_DS4_V1_PID); diff --git a/Controllers/StreamDeckController/ElgatoStreamDeckControllerDetect.cpp b/Controllers/StreamDeckController/ElgatoStreamDeckControllerDetect.cpp index bd64ae3b0..b868854c5 100644 --- a/Controllers/StreamDeckController/ElgatoStreamDeckControllerDetect.cpp +++ b/Controllers/StreamDeckController/ElgatoStreamDeckControllerDetect.cpp @@ -13,21 +13,27 @@ #include "ElgatoStreamDeckController.h" #include "RGBController_ElgatoStreamDeck.h" -#define ELGATO_VID 0x0FD9 -#define STREAMDECK_MK2_PID 0x0080 +#define ELGATO_VID 0x0FD9 +#define STREAMDECK_MK2_PID 0x0080 -void DetectElgatoStreamDeckControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectElgatoStreamDeckControllers(hid_device_info* info, const std::string&) { + DetectedControllers detected_controllers; + if(info->interface_number == 0) { hid_device* dev = hid_open_path(info->path); + if(dev) { - ElgatoStreamDeckController* controller = new ElgatoStreamDeckController(dev, info->path); + ElgatoStreamDeckController* controller = new ElgatoStreamDeckController(dev, info->path); RGBController_ElgatoStreamDeck* rgb_controller = new RGBController_ElgatoStreamDeck(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Elgato Stream Deck MK.2", DetectElgatoStreamDeckControllers, ELGATO_VID, STREAMDECK_MK2_PID); diff --git a/Controllers/TForceXtreemController/TForceXtreemControllerDetect.cpp b/Controllers/TForceXtreemController/TForceXtreemControllerDetect.cpp index e96da7050..734b23f1e 100644 --- a/Controllers/TForceXtreemController/TForceXtreemControllerDetect.cpp +++ b/Controllers/TForceXtreemController/TForceXtreemControllerDetect.cpp @@ -9,25 +9,27 @@ #include #include "DetectionManager.h" -#include "TForceXtreemController.h" +#include "i2c_smbus.h" #include "LogManager.h" #include "RGBController_TForceXtreem.h" -#include "i2c_smbus.h" +#include "TForceXtreemController.h" #define DETECTOR_NAME "TForce Xtreem Controller" using namespace std::chrono_literals; -/*----------------------------------------------------------------------*\ -| Windows defines "interface" for some reason. Work around this | -\*----------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Windows defines "interface" for some reason. Work around | +| this | +\*---------------------------------------------------------*/ #ifdef interface #undef interface #endif -/*----------------------------------------------------------------------*\ -| This list contains the available SMBus addresses for mapping ENE RAM | -\*----------------------------------------------------------------------*/ +/*---------------------------------------------------------*\ +| This list contains the available SMBus addresses for | +| mapping TForce Xtreem RAM | +\*---------------------------------------------------------*/ #define XTREEM_RAM_ADDRESS_COUNT 13 static const unsigned char xtreem_ram_addresses[] = @@ -47,15 +49,6 @@ static const unsigned char xtreem_ram_addresses[] = 0x3D }; -/******************************************************************************************\ -* * -* XtreemRegisterWrite * -* * -* A standalone version of the TForceXtreemController::ENERegisterWrite function for * -* access to ENE devices without instancing the TForceXtreemController class. * -* * -\******************************************************************************************/ - static void XtreemRegisterWrite(i2c_smbus_interface* bus, ene_dev_id dev, ene_register reg, unsigned char val) { //Write ENE register @@ -65,16 +58,6 @@ static void XtreemRegisterWrite(i2c_smbus_interface* bus, ene_dev_id dev, ene_re bus->i2c_smbus_write_byte_data(dev, 0x01, val); } -/******************************************************************************************\ -* * -* TestForENESMBusController * -* * -* Tests the given address to see if an ENE controller exists there. First does a * -* quick write to test for a response, and if so does a simple read at 0x90 to test * -* for incrementing values 10...1F which was observed at this location * -* * -\******************************************************************************************/ - bool TestForTForceXtreemController(i2c_smbus_interface* bus, unsigned char address) { bool pass = false; @@ -109,22 +92,11 @@ bool TestForTForceXtreemController(i2c_smbus_interface* bus, unsigned char addre } return(pass); +} -} /* TestForTForceXtreemController() */ - -/******************************************************************************************\ -* * -* DetectTForceXtreemDRAMControllers * -* * -* Detects T-Force Xtreem controllers on DRAM devices * -* * -* bus - pointer to i2c_smbus_interface where device is connected * -* slots - SPD accessors to occupied slots * -* * -\******************************************************************************************/ - -void DetectTForceXtreemControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) +DetectedControllers DetectTForceXtreemControllers(i2c_smbus_interface* bus, std::vector &slots, const std::string &/*name*/) { + DetectedControllers detected_controllers; LOG_DEBUG("[%s] Remapping ENE SMBus RAM modules on 0x77", DETECTOR_NAME); @@ -168,7 +140,9 @@ void DetectTForceXtreemControllers(i2c_smbus_interface* bus, std::vectorRegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } -} /* DetectTForceXtreemControllers() */ + + return(detected_controllers); +} REGISTER_I2C_DRAM_DETECTOR("T-Force Xtreem DDR4 DRAM", DetectTForceXtreemControllers, JEDEC_TEAMGROUP, SPD_DDR4_SDRAM); diff --git a/Controllers/TecknetController/TecknetControllerDetect.cpp b/Controllers/TecknetController/TecknetControllerDetect.cpp index 24f8a52fe..759d17ecd 100644 --- a/Controllers/TecknetController/TecknetControllerDetect.cpp +++ b/Controllers/TecknetController/TecknetControllerDetect.cpp @@ -20,25 +20,23 @@ #define TECKNET_M0008_U 0x01 //Usage 01 #define TECKNET_M0008_UPG 0xFFA0 //Vendor Defined Usage Page -/******************************************************************************************\ -* * -* DetectTecknetControllers * -* * -* Tests the USB address to see if any Tecknet Controllers. * -* * -\******************************************************************************************/ - -void DetectTecknetControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectTecknetControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { - TecknetController* controller = new TecknetController(dev, info->path); + TecknetController* controller = new TecknetController(dev, info->path); RGBController_Tecknet* rgb_controller = new RGBController_Tecknet(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectTecknetControllers) */ + + return(detected_controllers); +} #ifdef USE_HID_USAGE REGISTER_HID_DETECTOR_PU("Tecknet M008", DetectTecknetControllers, TECKNET_VID, TECKNET_M0008_PID, TECKNET_M0008_UPG, TECKNET_M0008_U); diff --git a/Controllers/ThermaltakePoseidonZRGBController/ThermaltakePoseidonZRGBControllerDetect.cpp b/Controllers/ThermaltakePoseidonZRGBController/ThermaltakePoseidonZRGBControllerDetect.cpp index 11c322331..e3c929e73 100644 --- a/Controllers/ThermaltakePoseidonZRGBController/ThermaltakePoseidonZRGBControllerDetect.cpp +++ b/Controllers/ThermaltakePoseidonZRGBController/ThermaltakePoseidonZRGBControllerDetect.cpp @@ -11,31 +11,28 @@ #include #include "DetectionManager.h" -#include "ThermaltakePoseidonZRGBController.h" #include "RGBController_ThermaltakePoseidonZRGB.h" +#include "ThermaltakePoseidonZRGBController.h" #define TT_POSEIDON_Z_RGB_VID 0x264A #define TT_POSEIDON_Z_RGB_PID 0x3006 -/******************************************************************************************\ -* * -* DetectPoseidonZRGBControllers * -* * -* Tests the USB address to see if a Thermaltake Poseidon Z RGB Keyboard controller * -* exists there. * -* * -\******************************************************************************************/ - -void DetectPoseidonZRGBControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectPoseidonZRGBControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); - if( dev ) + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) { - PoseidonZRGBController* controller = new PoseidonZRGBController(dev, info->path); + PoseidonZRGBController* controller = new PoseidonZRGBController(dev, info->path); RGBController_PoseidonZRGB* rgb_controller = new RGBController_PoseidonZRGB(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectPoseidonZRGBControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_IP("Thermaltake Poseidon Z RGB", DetectPoseidonZRGBControllers, TT_POSEIDON_Z_RGB_VID, TT_POSEIDON_Z_RGB_PID, 1, 0xFF01); diff --git a/Controllers/ThermaltakeRiingController/ThermaltakeRiingControllerDetect.cpp b/Controllers/ThermaltakeRiingController/ThermaltakeRiingControllerDetect.cpp index d1a594c21..628fdf90b 100644 --- a/Controllers/ThermaltakeRiingController/ThermaltakeRiingControllerDetect.cpp +++ b/Controllers/ThermaltakeRiingController/ThermaltakeRiingControllerDetect.cpp @@ -20,53 +20,62 @@ #include "RGBController_ThermaltakeRiingQuad.h" #include "RGBController_ThermaltakeRiingTrio.h" - #define THERMALTAKE_RIING_VID 0x264A #define THERMALTAKE_RIING_PID_BEGIN 0x1FA5 #define THERMALTAKE_RIING_PID_END 0x1FB5 -/******************************************************************************************\ -* * -* DetectThermaltakeRiingControllers * -* * -* Tests the USB address to see if an AMD Wraith Prism controller exists there. * -* * -\******************************************************************************************/ - -void DetectThermaltakeRiingControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectThermaltakeRiingControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { - ThermaltakeRiingController* controller = new ThermaltakeRiingController(dev, info->path); + ThermaltakeRiingController* controller = new ThermaltakeRiingController(dev, info->path); RGBController_ThermaltakeRiing* rgb_controller = new RGBController_ThermaltakeRiing(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); - } -} /* DetectThermaltakeRiingControllers() */ -void DetectThermaltakeRiingQuadControllers(hid_device_info* info, const std::string&) -{ - hid_device* dev = hid_open_path(info->path); - if(dev) - { - ThermaltakeRiingQuadController* controller = new ThermaltakeRiingQuadController(dev, info->path); - RGBController_ThermaltakeRiingQuad* rgb_controller = new RGBController_ThermaltakeRiingQuad(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectThermaltakeRiingTrioControllers(hid_device_info* info, const std::string&) +DetectedControllers DetectThermaltakeRiingQuadControllers(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { - ThermaltakeRiingTrioController* controller = new ThermaltakeRiingTrioController(dev, info->path); - RGBController_ThermaltakeRiingTrio* rgb_controller = new RGBController_ThermaltakeRiingTrio(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + ThermaltakeRiingQuadController* controller = new ThermaltakeRiingQuadController(dev, info->path); + RGBController_ThermaltakeRiingQuad* rgb_controller = new RGBController_ThermaltakeRiingQuad(controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); +} + +DetectedControllers DetectThermaltakeRiingTrioControllers(hid_device_info* info, const std::string&) +{ + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + + if(dev) + { + ThermaltakeRiingTrioController* controller = new ThermaltakeRiingTrioController(dev, info->path); + RGBController_ThermaltakeRiingTrio* rgb_controller = new RGBController_ThermaltakeRiingTrio(controller); + + detected_controllers.push_back(rgb_controller); + } + + return(detected_controllers); } REGISTER_HID_DETECTOR("Thermaltake Riing (PID 0x1FA5)", DetectThermaltakeRiingControllers, THERMALTAKE_RIING_VID, 0x1FA5); diff --git a/Controllers/ThingMController/ThingMControllerDetect.cpp b/Controllers/ThingMController/ThingMControllerDetect.cpp index 75b6fa196..b1245b845 100644 --- a/Controllers/ThingMController/ThingMControllerDetect.cpp +++ b/Controllers/ThingMController/ThingMControllerDetect.cpp @@ -15,27 +15,24 @@ #include "RGBController_BlinkController.h" #define THINGM_VID 0x27B8 - #define THINGM_BLINK_PID 0x01ED -/******************************************************************************************\ -* * -* DetectThingMControllers * -* * -* Tests the USB address to see if any CoolerMaster controllers exists there. * -* * -\******************************************************************************************/ - -void DetectThingMBlink(hid_device_info* info, const std::string&) +DetectedControllers DetectThingMBlink(hid_device_info* info, const std::string&) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); + if(dev) { - BlinkController* controller = new BlinkController(dev, info->path); + BlinkController* controller = new BlinkController(dev, info->path); RGBController_BlinkController* rgb_controller = new RGBController_BlinkController(controller); - // Constructor sets the name - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("ThingM blink(1) mk2", DetectThingMBlink, THINGM_VID, THINGM_BLINK_PID, 0xFF00, 0x01); diff --git a/Controllers/TrustController/TrustControllerDetect.cpp b/Controllers/TrustController/TrustControllerDetect.cpp index 7875a0ae4..1c42dc326 100644 --- a/Controllers/TrustController/TrustControllerDetect.cpp +++ b/Controllers/TrustController/TrustControllerDetect.cpp @@ -26,9 +26,12 @@ #define TRUST_GXT_114_PID 0x026D #define TRUST_GXT_180_PID 0x0248 -void DetectTrustGXT114Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectTrustGXT114Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { @@ -38,26 +41,33 @@ void DetectTrustGXT114Controllers(hid_device_info* info, const std::string& name { RGBController_TrustGXT114* rgb_controller = new RGBController_TrustGXT114(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { delete controller; } } + + return(detected_controllers); } -void DetectTrustGXT180Controllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectTrustGXT180Controllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { TrustGXT180Controller* controller = new TrustGXT180Controller(dev, *info, name); RGBController_TrustGXT180* rgb_controller = new RGBController_TrustGXT180(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("Trust GXT 114", DetectTrustGXT114Controllers, TRUST_VID, TRUST_GXT_114_PID, 1, 0xFF00, 1); diff --git a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp index c13125ae7..87931bd9d 100644 --- a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp +++ b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp @@ -14,18 +14,23 @@ #include "DetectionManager.h" #include "RGBController_ValkyrieKeyboard.h" -void DetectValkyrieKeyboardControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectValkyrieKeyboardControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { ValkyrieKeyboardController* controller = new ValkyrieKeyboardController(dev, info->path, info->product_id, info->interface_number, name); RGBController_ValkyrieKeyboard* rgb_controller = new RGBController_ValkyrieKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -/* DetectValkyrieKeyboardControllers() */ REGISTER_HID_DETECTOR_IPU("Valkyrie VK99 Pro", DetectValkyrieKeyboardControllers, VALKYRIE_VID, VALKYRIE_99_PRO_PID, 3, 0xFF13, 0x0001); REGISTER_HID_DETECTOR_IPU("Valkyrie VK99", DetectValkyrieKeyboardControllers, VALKYRIE_VID, VALKYRIE_99_NORMAL_PID, 2, 0xFF13, 0x0001); diff --git a/Controllers/ViewSonicController/ViewSonicControllerDetect.cpp b/Controllers/ViewSonicController/ViewSonicControllerDetect.cpp index dfbf72c4a..f601aed46 100644 --- a/Controllers/ViewSonicController/ViewSonicControllerDetect.cpp +++ b/Controllers/ViewSonicController/ViewSonicControllerDetect.cpp @@ -16,36 +16,46 @@ #include "VS_XG270QC_Controller.h" #include "RGBController_XG270QC.h" -#define WINBOND_VID 0x0416 -#define VIEWSONIC_VID 0x0543 -#define VS_XG270QG_PID 0x5020 -#define VS_XG271QG_PID 0xA004 -#define VS_XG270QC_PID 0xA002 +#define WINBOND_VID 0x0416 +#define VIEWSONIC_VID 0x0543 +#define VS_XG270QG_PID 0x5020 +#define VS_XG271QG_PID 0xA004 +#define VS_XG270QC_PID 0xA002 -void DetectViewSonicQG(hid_device_info* info, const std::string& name) +DetectedControllers DetectViewSonicQG(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { VS_XG270QG_Controller* controller = new VS_XG270QG_Controller(dev, info->path, name); RGBController_XG270QG* rgb_controller = new RGBController_XG270QG(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -void DetectViewSonicQC(hid_device_info* info, const std::string& name) +DetectedControllers DetectViewSonicQC(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { VS_XG270QC_Controller* controller = new VS_XG270QC_Controller(dev, info->path, name); RGBController_XG270QC* rgb_controller = new RGBController_XG270QC(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IPU("ViewSonic Monitor XG270QG", DetectViewSonicQG, WINBOND_VID, VS_XG270QG_PID, 0, 0xFF00, 1); diff --git a/Controllers/WinbondGamingKeyboardController/WinbondGamingKeyboardControllerDetect.cpp b/Controllers/WinbondGamingKeyboardController/WinbondGamingKeyboardControllerDetect.cpp index 82dc9a008..6705f7c59 100644 --- a/Controllers/WinbondGamingKeyboardController/WinbondGamingKeyboardControllerDetect.cpp +++ b/Controllers/WinbondGamingKeyboardController/WinbondGamingKeyboardControllerDetect.cpp @@ -14,20 +14,18 @@ #include "RGBController_WinbondGamingKeyboard.h" #include "LogManager.h" -/*-----------------------------------------------------*\ -| Winbond vendor ID | -\*-----------------------------------------------------*/ -#define WINBOND_VID 0x0416 +/*---------------------------------------------------------*\ +| Winbond vendor ID | +\*---------------------------------------------------------*/ +#define WINBOND_VID 0x0416 -/*-----------------------------------------------------*\ -| Winbond product ID | -\*-----------------------------------------------------*/ -#define WINBOND_GAMING_KEYBOARD_PID 0xB23C +/*---------------------------------------------------------*\ +| Winbond product ID | +\*---------------------------------------------------------*/ +#define WINBOND_GAMING_KEYBOARD_PID 0xB23C -void DetectWinbondGamingKeyboard(hid_device_info* info, const std::string& name) +DetectedControllers DetectWinbondGamingKeyboard(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); - /*--------------------------------------------------------------------------------------------------*\ | NOTE: according to https://4pda.to/forum/index.php?showtopic=1061923, | | the "KT108" keyboard, which has the same VID:PID, uses the product_string "KT108 keyboard" | @@ -47,20 +45,26 @@ void DetectWinbondGamingKeyboard(hid_device_info* info, const std::string& name) | or product_string, much less about its protocol (even if it uses the same firmware, | | I don't know which key corresponds to which bytes in the HID message that sets the per-key colors) | \*--------------------------------------------------------------------------------------------------*/ + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { LOG_INFO("Detected WinbondGamingKeyboard at %s, product_string is %ls name is %s", info->path, info->product_string, name.c_str()); - WinbondGamingKeyboardController* controller = new WinbondGamingKeyboardController(dev, *info, name); - RGBController* rgb_controller = new RGBController_WinbondGamingKeyboard(controller); + WinbondGamingKeyboardController* controller = new WinbondGamingKeyboardController(dev, *info, name); + RGBController* rgb_controller = new RGBController_WinbondGamingKeyboard(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { LOG_WARNING("Couldn't open hid dev %s: %ls", info->path, hid_error(NULL)); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_PU("Winbond Gaming Keyboard", DetectWinbondGamingKeyboard, WINBOND_VID, WINBOND_GAMING_KEYBOARD_PID, 0xFF1B, 0x91); diff --git a/Controllers/WootingKeyboardController/WootingKeyboardControllerDetect.cpp b/Controllers/WootingKeyboardController/WootingKeyboardControllerDetect.cpp index 6368429b1..8c5fbc859 100644 --- a/Controllers/WootingKeyboardController/WootingKeyboardControllerDetect.cpp +++ b/Controllers/WootingKeyboardController/WootingKeyboardControllerDetect.cpp @@ -11,24 +11,24 @@ #include #include "DetectionManager.h" +#include "LogManager.h" +#include "RGBController_WootingKeyboard.h" #include "WootingV1KeyboardController.h" #include "WootingV2KeyboardController.h" #include "WootingV3KeyboardController.h" -#include "RGBController_WootingKeyboard.h" -#include "LogManager.h" #define WOOTING_CONFIG_USAGE_PAGE_V2 0x1337 #define WOOTING_CONFIG_USAGE_PAGE_V3 0xFF55 -/*-----------------------------------------------------*\ -| Wooting vendor ID | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Wooting vendor ID | +\*---------------------------------------------------------*/ #define WOOTING_OLD_VID 0x03EB #define WOOTING_NEW_VID 0x31E3 -/*-----------------------------------------------------*\ -| Keyboard product IDs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ #define WOOTING_ONE_LEGACY_PID 0xFF01 #define WOOTING_TWO_LEGACY_PID 0xFF02 #define WOOTING_ONE_PID 0x1100 @@ -43,136 +43,156 @@ #define WOOTING_80HE_PID 0x1400 #define WOOTING_UWU_RGB_PID 0x1510 -/*-----------------------------------------------------*\ -| Product ID helpers | -| XINP: Xbox input emulation enabled | -| DINP: Classic DirectInput emulation enabled | -| NONE: Controller emulation disabled | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| Product ID helpers | +| XINP: Xbox input emulation enabled | +| DINP: Classic DirectInput emulation enabled | +| NONE: Controller emulation disabled | +\*---------------------------------------------------------*/ #define XINP_PID(pid) (pid | 0x0000) #define DINP_PID(pid) (pid | 0x0001) #define NONE_PID(pid) (pid | 0x0002) -void DetectWootingControllers(hid_device_info *info, const std::string &name) +DetectedControllers DetectWootingControllers(hid_device_info *info, const std::string &name) { - static const char *controller_name = "Wooting"; + DetectedControllers detected_controllers; + hid_device* dev; + static const char * controller_name = "Wooting"; + LOG_DEBUG("[%s] Interface %i\tPage %04X\tUsage %i\tPath %s", controller_name, info->interface_number, info->usage_page, info->usage, info->path); - hid_device *dev = hid_open_path(info->path); + dev = hid_open_path(info->path); - if(!dev) - return; + if(dev) + { + WOOTING_DEVICE_TYPE wooting_type; + uint16_t pid = info->product_id; - WOOTING_DEVICE_TYPE wooting_type; - uint16_t pid = info->product_id; - - if(pid == WOOTING_ONE_LEGACY_PID) - { - wooting_type = WOOTING_KB_TKL; - } - else if(pid == WOOTING_TWO_LEGACY_PID) - { - wooting_type = WOOTING_KB_FULL; - } - else - { - //on modern devices, mask out the last nibble to get base PID - switch(pid & 0xFFF0) + if(pid == WOOTING_ONE_LEGACY_PID) { - case WOOTING_ONE_LEGACY_PID: - case WOOTING_ONE_PID: - wooting_type = WOOTING_KB_TKL; - break; - case WOOTING_TWO_LEGACY_PID: - case WOOTING_TWO_PID: - case WOOTING_TWO_LE_PID: - case WOOTING_TWO_HE_PID: - case WOOTING_TWO_HE_ARM_PID: - wooting_type = WOOTING_KB_FULL; - break; - case WOOTING_60HE_PID: - case WOOTING_60HE_ARM_PID: - case WOOTING_60HE_PLUS_PID: - case WOOTING_60HE_V2_PID: - wooting_type = WOOTING_KB_60PER; - break; - case WOOTING_80HE_PID: - wooting_type = WOOTING_KB_80PER; - break; - case WOOTING_UWU_RGB_PID: - wooting_type = WOOTING_KB_3PAD; - break; - default: - //default to largest keyboard if unknown - wooting_type = WOOTING_KB_FULL; - break; + wooting_type = WOOTING_KB_TKL; + } + else if(pid == WOOTING_TWO_LEGACY_PID) + { + wooting_type = WOOTING_KB_FULL; + } + else + { + /*---------------------------------------------*\ + | On modern devices, mask out the last nibble | + | to get base PID | + \*---------------------------------------------*/ + switch(pid & 0xFFF0) + { + case WOOTING_ONE_LEGACY_PID: + case WOOTING_ONE_PID: + wooting_type = WOOTING_KB_TKL; + break; + case WOOTING_TWO_LEGACY_PID: + case WOOTING_TWO_PID: + case WOOTING_TWO_LE_PID: + case WOOTING_TWO_HE_PID: + case WOOTING_TWO_HE_ARM_PID: + wooting_type = WOOTING_KB_FULL; + break; + case WOOTING_60HE_PID: + case WOOTING_60HE_ARM_PID: + case WOOTING_60HE_PLUS_PID: + case WOOTING_60HE_V2_PID: + wooting_type = WOOTING_KB_60PER; + break; + case WOOTING_80HE_PID: + wooting_type = WOOTING_KB_80PER; + break; + case WOOTING_UWU_RGB_PID: + wooting_type = WOOTING_KB_3PAD; + break; + default: + /*-------------------------------------*\ + | Default to largest keyboard if unknown| + \*-------------------------------------*/ + wooting_type = WOOTING_KB_FULL; + break; + } + } + + LOG_INFO("[%s] Detected Wooting device type %i for device at path %s", controller_name, wooting_type, info->path); + + /*-------------------------------------------------*\ + | V1 firmware used the ATMEL VID, and uses the V1 | + | controller | + \*-------------------------------------------------*/ + if(info->vendor_id == WOOTING_OLD_VID && info->usage_page == WOOTING_CONFIG_USAGE_PAGE_V2) + { + LOG_DEBUG("[%s] Old VID detected - creating V1 Controller", controller_name); + WootingV1KeyboardController *controller = new WootingV1KeyboardController(dev, info->path, wooting_type, name); + + LOG_DEBUG("[%s] Controller created - creating RGBController", controller_name); + RGBController_WootingKeyboard *rgb_controller = new RGBController_WootingKeyboard(controller); + + LOG_DEBUG("[%s] Initialization complete - Adding controller to list\t%s", controller_name, name.c_str()); + detected_controllers.push_back(rgb_controller); + } + /*-------------------------------------------------*\ + | V2-V2.11 firmware uses the V2 protocol indicated | + | by the V2 usage page | + \*-------------------------------------------------*/ + else if(info->usage_page == WOOTING_CONFIG_USAGE_PAGE_V2) + { + LOG_DEBUG("[%s] V2 usage page detected - creating V2 Controller", controller_name); + WootingV2KeyboardController *controller = new WootingV2KeyboardController(dev, info->path, wooting_type, name); + + LOG_DEBUG("[%s] Controller created - creating RGBController", controller_name); + RGBController_WootingKeyboard *rgb_controller = new RGBController_WootingKeyboard(controller); + + LOG_DEBUG("[%s] Initialization complete - Adding controller to list\t%s", controller_name, name.c_str()); + detected_controllers.push_back(rgb_controller); + } + /*-------------------------------------------------*\ + | V2.12+ firmware uses the new report structure | + | indicated by the V3 usage page | + \*-------------------------------------------------*/ + else if(info->usage_page == WOOTING_CONFIG_USAGE_PAGE_V3) + { + LOG_DEBUG("[%s] V3 usage page detected - creating V3 Controller", controller_name); + WootingV3KeyboardController *controller = new WootingV3KeyboardController(dev, info->path, wooting_type, name); + + LOG_DEBUG("[%s] Controller created - creating RGBController", controller_name); + RGBController_WootingKeyboard *rgb_controller = new RGBController_WootingKeyboard(controller); + + LOG_DEBUG("[%s] Initialization complete - Adding controller to list\t%s", controller_name, name.c_str()); + detected_controllers.push_back(rgb_controller); + } + else + { + hid_close(dev); + + LOG_TRACE("[%s] No compatible Wooting controller found for device at path %s", controller_name, info->path); } } - LOG_INFO("[%s] Detected Wooting device type %i for device at path %s", controller_name, wooting_type, info->path); - - //V1 firmware used the ATMEL VID, and uses the V1 controller - if(info->vendor_id == WOOTING_OLD_VID && info->usage_page == WOOTING_CONFIG_USAGE_PAGE_V2) - { - LOG_DEBUG("[%s] Old VID detected - creating V1 Controller", controller_name); - WootingV1KeyboardController *controller = new WootingV1KeyboardController(dev, info->path, wooting_type, name); - - LOG_DEBUG("[%s] Controller created - creating RGBController", controller_name); - RGBController_WootingKeyboard *rgb_controller = new RGBController_WootingKeyboard(controller); - - LOG_DEBUG("[%s] Initialization complete - Registering controller\t%s", controller_name, name.c_str()); - DetectionManager::get()->RegisterRGBController(rgb_controller); - return; - } - - //V2-V2.11 firmware uses the V2 protocol indicated by the V2 usage page - if(info->usage_page == WOOTING_CONFIG_USAGE_PAGE_V2) - { - LOG_DEBUG("[%s] V2 usage page detected - creating V2 Controller", controller_name); - WootingV2KeyboardController *controller = new WootingV2KeyboardController(dev, info->path, wooting_type, name); - - LOG_DEBUG("[%s] Controller created - creating RGBController", controller_name); - RGBController_WootingKeyboard *rgb_controller = new RGBController_WootingKeyboard(controller); - - LOG_DEBUG("[%s] Initialization complete - Registering controller\t%s", controller_name, name.c_str()); - DetectionManager::get()->RegisterRGBController(rgb_controller); - return; - } - - //V2.12+ firmware uses the new report structure indicated by the V3 usage page - if(info->usage_page == WOOTING_CONFIG_USAGE_PAGE_V3) - { - LOG_DEBUG("[%s] V3 usage page detected - creating V3 Controller", controller_name); - WootingV3KeyboardController *controller = new WootingV3KeyboardController(dev, info->path, wooting_type, name); - - LOG_DEBUG("[%s] Controller created - creating RGBController", controller_name); - RGBController_WootingKeyboard *rgb_controller = new RGBController_WootingKeyboard(controller); - - LOG_DEBUG("[%s] Initialization complete - Registering controller\t%s", controller_name, name.c_str()); - DetectionManager::get()->RegisterRGBController(rgb_controller); - return; - } - - hid_close(dev); - - LOG_TRACE("[%s] No compatible Wooting controller found for device at path %s", controller_name, info->path); + return(detected_controllers); } -/*-----------------------------------------------------*\ -| Wooting keyboards use different PIDs based on which | -| gamepad emulation mode is selected. We can use their | -| base PID, and set the last nibble to get the modes. | -\*-----------------------------------------------------*/ + +/*---------------------------------------------------------*\ +| Wooting keyboards use different PIDs based on which | +| gamepad emulation mode is selected. We can use their | +| base PID, and set the last nibble to get the modes. | +\*---------------------------------------------------------*/ #define REGISTER_WOOTING_DETECTOR(name, vid, pid) \ static HIDDeviceDetector detector_wooting_##vid##_##pid##_base(name, DetectWootingControllers, vid, NONE_PID(pid), HID_INTERFACE_ANY, HID_USAGE_PAGE_ANY, HID_USAGE_ANY); \ static HIDDeviceDetector detector_wooting_##vid##_##pid##_xinp(name, DetectWootingControllers, vid, XINP_PID(pid), HID_INTERFACE_ANY, HID_USAGE_PAGE_ANY, HID_USAGE_ANY); \ static HIDDeviceDetector detector_wooting_##vid##_##pid##_dinp(name, DetectWootingControllers, vid, DINP_PID(pid), HID_INTERFACE_ANY, HID_USAGE_PAGE_ANY, HID_USAGE_ANY) - -// Legacy devices with V1 firmware +/*---------------------------------------------------------*\ +| Legacy devices with V1 firmware | +\*---------------------------------------------------------*/ REGISTER_HID_DETECTOR_P("Wooting One (Legacy)", DetectWootingControllers, WOOTING_OLD_VID, WOOTING_ONE_LEGACY_PID, WOOTING_CONFIG_USAGE_PAGE_V2); REGISTER_HID_DETECTOR_P("Wooting Two (Legacy)", DetectWootingControllers, WOOTING_OLD_VID, WOOTING_TWO_LEGACY_PID, WOOTING_CONFIG_USAGE_PAGE_V2); -// All other devices +/*---------------------------------------------------------*\ +| All other devices | +\*---------------------------------------------------------*/ REGISTER_WOOTING_DETECTOR("Wooting One", WOOTING_NEW_VID, WOOTING_ONE_PID ); REGISTER_WOOTING_DETECTOR("Wooting Two", WOOTING_NEW_VID, WOOTING_TWO_PID ); REGISTER_WOOTING_DETECTOR("Wooting Two Lekker Edition", WOOTING_NEW_VID, WOOTING_TWO_LE_PID ); diff --git a/Controllers/WushiController/WushiL50USBDetect.cpp b/Controllers/WushiController/WushiL50USBDetect.cpp index 2e9978d35..50e487f5b 100644 --- a/Controllers/WushiController/WushiL50USBDetect.cpp +++ b/Controllers/WushiController/WushiL50USBDetect.cpp @@ -9,8 +9,8 @@ #include #include "DetectionManager.h" -#include "WushiL50USBController.h" #include "RGBController_WushiL50USB.h" +#include "WushiL50USBController.h" /*-----------------------------------------------------*\ | Wushi vendor ID | @@ -22,17 +22,22 @@ \*-----------------------------------------------------*/ #define WUSHI_PID 0x1234 -void DetectWushiL50USBControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) +DetectedControllers DetectWushiL50USBControllers(hidapi_wrapper wrapper, hid_device_info* info, const std::string& name) { - hid_device* dev = wrapper.hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = wrapper.hid_open_path(info->path); if(dev) { WushiL50USBController* controller = new WushiL50USBController(wrapper, dev, info->path, name); RGBController_WushiL50USB* rgb_controller = new RGBController_WushiL50USB(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_WRAPPED_DETECTOR("JSAUX RGB Docking Station", DetectWushiL50USBControllers, WUSHI_VID, WUSHI_PID); diff --git a/Controllers/XPGSummonerKeyboardController/XPGSummonerControllerDetect.cpp b/Controllers/XPGSummonerKeyboardController/XPGSummonerControllerDetect.cpp index 0c4e310d9..b2fc1f0d8 100644 --- a/Controllers/XPGSummonerKeyboardController/XPGSummonerControllerDetect.cpp +++ b/Controllers/XPGSummonerKeyboardController/XPGSummonerControllerDetect.cpp @@ -9,29 +9,27 @@ | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ -#include "DetectionManager.h" -#include "XPGSummonerController.h" -#include "RGBController_XPGSummoner.h" #include +#include "DetectionManager.h" +#include "RGBController_XPGSummoner.h" +#include "XPGSummonerController.h" -/******************************************************************************************\ -* * -* DetectXPGSummonerControllers * -* * -* Tests the USB address to see if a XPG Summoner Keyboard controller exists there. * -* * -\******************************************************************************************/ - -void DetectXPGSummonerControllers(hid_device_info *info, const std::string &name) +DetectedControllers DetectXPGSummonerControllers(hid_device_info *info, const std::string &name) { - hid_device *dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { - XPGSummonerController *controller = new XPGSummonerController(dev, info->path, info->product_id, name); - RGBController_XPGSummoner *rgb_controller = new RGBController_XPGSummoner(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + XPGSummonerController* controller = new XPGSummonerController(dev, info->path, info->product_id, name); + RGBController_XPGSummoner* rgb_controller = new RGBController_XPGSummoner(controller); + + detected_controllers.push_back(rgb_controller); } -} /* DetectXPGSummonerControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR_IPU("XPG Summoner Gaming Keyboard", DetectXPGSummonerControllers, XPG_VID, XPG_SUMMONER_PID, 2, 0xFF01, 0x0001); diff --git a/Controllers/YeelightController/YeelightControllerDetect.cpp b/Controllers/YeelightController/YeelightControllerDetect.cpp index 263e55fa2..81e16263c 100644 --- a/Controllers/YeelightController/YeelightControllerDetect.cpp +++ b/Controllers/YeelightController/YeelightControllerDetect.cpp @@ -10,31 +10,24 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "YeelightController.h" #include "ResourceManager.h" #include "RGBController_Yeelight.h" #include "SettingsManager.h" +#include "YeelightController.h" -/******************************************************************************************\ -* * -* DetectYeelightControllers * -* * -* Detect Yeelight devices * -* * -\******************************************************************************************/ - -void DetectYeelightControllers() +DetectedControllers DetectYeelightControllers() { - json yeelight_settings; + DetectedControllers detected_controllers; + json yeelight_settings; - /*-------------------------------------------------*\ - | Get Yeelight settings from settings manager | - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | Get Yeelight settings from settings manager | + \*-----------------------------------------------------*/ yeelight_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("YeelightDevices"); - /*-------------------------------------------------*\ - | If the Yeelight settings contains devices, process| - \*-------------------------------------------------*/ + /*-----------------------------------------------------*\ + | If the Yeelight settings contains devices, process | + \*-----------------------------------------------------*/ if(yeelight_settings.contains("devices")) { for(unsigned int device_idx = 0; device_idx < yeelight_settings["devices"].size(); device_idx++) @@ -59,11 +52,12 @@ void DetectYeelightControllers() YeelightController* controller = new YeelightController(yeelight_ip, yeelight_host_ip, music_mode); RGBController_Yeelight* rgb_controller = new RGBController_Yeelight(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } } } -} /* DetectYeelightControllers() */ + return(detected_controllers); +} REGISTER_DETECTOR("Yeelight", DetectYeelightControllers); diff --git a/Controllers/ZETKeyboardController/ZETKeyboardControllerDetect.cpp b/Controllers/ZETKeyboardController/ZETKeyboardControllerDetect.cpp index 0e4149782..2c58d304d 100644 --- a/Controllers/ZETKeyboardController/ZETKeyboardControllerDetect.cpp +++ b/Controllers/ZETKeyboardController/ZETKeyboardControllerDetect.cpp @@ -14,26 +14,31 @@ #include #include "DetectionManager.h" -#include "ZETBladeOpticalController.h" #include "RGBController_ZETBladeOptical.h" +#include "ZETBladeOpticalController.h" -/*-----------------------------------------------------*\ -| ZET keyboard VID/PID pairs | -\*-----------------------------------------------------*/ +/*---------------------------------------------------------*\ +| ZET keyboard VID/PID pairs | +\*---------------------------------------------------------*/ #define ZET_BLADE_OPTICAL_VID 0x2EA8 #define ZET_BLADE_OPTICAL_PID 0x2125 -void DetectZETBladeOptical(hid_device_info* info, const std::string& name) +DetectedControllers DetectZETBladeOptical(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; - if (dev) + dev = hid_open_path(info->path); + + if(dev) { ZETBladeOpticalController* controller = new ZETBladeOpticalController(dev, info->path, name); RGBController_ZETBladeOptical* rgb_controller = new RGBController_ZETBladeOptical(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } REGISTER_HID_DETECTOR_IP("ZET Blade Optical", DetectZETBladeOptical, ZET_BLADE_OPTICAL_VID, ZET_BLADE_OPTICAL_PID, 1, 0xFF00); diff --git a/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp b/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp index 7f566c268..61ce05871 100644 --- a/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp +++ b/Controllers/ZalmanZSyncController/ZalmanZSyncControllerDetect.cpp @@ -17,25 +17,22 @@ #define ZALMAN_VID 0x1C57 #define ZALMAN_Z_SYNC_PID 0x7ED0 -/******************************************************************************************\ -* * -* DetectZalmanZSyncControllers * -* * -* Detect devices supported by the Zalman Z Sync driver * -* * -\******************************************************************************************/ - -void DetectZalmanZSyncControllers(hid_device_info* info, const std::string& name) +DetectedControllers DetectZalmanZSyncControllers(hid_device_info* info, const std::string& name) { - hid_device* dev = hid_open_path(info->path); + DetectedControllers detected_controllers; + hid_device* dev; + + dev = hid_open_path(info->path); if(dev) { ZalmanZSyncController* controller = new ZalmanZSyncController(dev, info->path, name); RGBController_ZalmanZSync* rgb_controller = new RGBController_ZalmanZSync(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } -} /* DetectZalmanZSyncControllers() */ + + return(detected_controllers); +} REGISTER_HID_DETECTOR("Zalman Z Sync", DetectZalmanZSyncControllers, ZALMAN_VID, ZALMAN_Z_SYNC_PID); diff --git a/Controllers/ZotacTuringGPUController/ZotacTuringGPUControllerDetect.cpp b/Controllers/ZotacTuringGPUController/ZotacTuringGPUControllerDetect.cpp index 419d212a0..529f540a8 100644 --- a/Controllers/ZotacTuringGPUController/ZotacTuringGPUControllerDetect.cpp +++ b/Controllers/ZotacTuringGPUController/ZotacTuringGPUControllerDetect.cpp @@ -10,55 +10,40 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "ZotacTuringGPUController.h" -#include "RGBController_ZotacTuringGPU.h" #include "i2c_smbus.h" #include "pci_ids.h" - -/******************************************************************************************\ -* * -* TestForZotacTuringGPUController * -* * -* Tests the given address to see if an RGB controller exists there. * -* * -\******************************************************************************************/ +#include "RGBController_ZotacTuringGPU.h" +#include "ZotacTuringGPUController.h" bool TestForZotacTuringGPUController(i2c_smbus_interface* bus, u8 i2c_addr) { - /*---------------------------------------------------------*\ - | This command seems to enable the RGB controller (0xF1, | - | 0x00 disables it). | - | Not really sure it's mandatory, but we can still use it | - | for testing the device: if the command succeeds, assume | - | it's a valid device. | - \*---------------------------------------------------------*/ + /*-----------------------------------------------------*\ + | This command seems to enable the RGB controller (0xF1,| + | 0x00 disables it). | + | Not really sure it's mandatory, but we can still use | + | it for testing the device: if the command succeeds, | + | assume it's a valid device. | + \*-----------------------------------------------------*/ u8 data_pkt[] = { ZOTAC_TURING_GPU_REG_COLOR_AND_MODE, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }; - return (bus->i2c_write_block(i2c_addr, sizeof(data_pkt), data_pkt) >= 0); + return(bus->i2c_write_block(i2c_addr, sizeof(data_pkt), data_pkt) >= 0); } -/******************************************************************************************\ -* * -* DetectZotacTuringGPUControllers * -* * -* Detect ZOTAC Turing RGB controllers on the enumerated I2C busses at address 0x49. * -* * -* bus - pointer to i2c_smbus_interface where RGB device is connected * -* dev - I2C address of RGB device * -* * -\******************************************************************************************/ - -void DetectZotacTuringGPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const std::string& name) +DetectedControllers DetectZotacTuringGPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const std::string& name) { + DetectedControllers detected_controllers; + if(TestForZotacTuringGPUController(bus, i2c_addr)) { ZotacTuringGPUController* controller = new ZotacTuringGPUController(bus, i2c_addr, name); RGBController_ZotacTuringGPU* rgb_controller = new RGBController_ZotacTuringGPU(controller); - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } + + return(detected_controllers); } -REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2070 SUPER Twin Fan", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2070S_GAMING_SUB_DEV, 0x49); -REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2080 SUPER Twin Fan", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2080S_SUB_DEV, 0x49); -REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2080 AMP", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2080_AMP_SUB_DEV, 0x49); -REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2080 Ti AMP", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2080_AMP_TI_SUB_DEV, 0x49); +REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2070 SUPER Twin Fan", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2070S_GAMING_SUB_DEV, 0x49); +REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2080 SUPER Twin Fan", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2080S_SUB_DEV, 0x49); +REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2080 AMP", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2080_AMP_SUB_DEV, 0x49); +REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 2080 Ti AMP", DetectZotacTuringGPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX2080_AMP_TI_SUB_DEV, 0x49); diff --git a/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp b/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp index 680404663..1e0cab59e 100644 --- a/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp +++ b/Controllers/ZotacV2GPUController/ZotacV2GPUControllerDetect.cpp @@ -10,28 +10,17 @@ \*---------------------------------------------------------*/ #include "DetectionManager.h" -#include "ZotacV2GPUController.h" -#include "RGBController_ZotacV2GPU.h" #include "i2c_smbus.h" -#include "pci_ids.h" #include "LogManager.h" +#include "pci_ids.h" +#include "RGBController_ZotacV2GPU.h" +#include "ZotacV2GPUController.h" -/******************************************************************************************\ -* * -* DetectZotacV2GPUControllers * -* * -* Detect ZOTAC 30/40 series RGB controllers on the enumerated I2C busses * -* at address 0x49. * -* * -* bus - pointer to i2c_smbus_interface where RGB device is connected * -* dev - I2C address of RGB device * -* * -\******************************************************************************************/ - -void DetectZotacV2GPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const std::string& name) +DetectedControllers DetectZotacV2GPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const std::string& name) { - u8 rdata_pkt[I2C_SMBUS_BLOCK_MAX] = { 0x00 }; - int rdata_len = sizeof(rdata_pkt); + DetectedControllers detected_controllers; + u8 rdata_pkt[I2C_SMBUS_BLOCK_MAX] = { 0x00 }; + int rdata_len = sizeof(rdata_pkt); if(bus->i2c_read_block(i2c_addr, &rdata_len, rdata_pkt) >= 0) { @@ -40,13 +29,16 @@ void DetectZotacV2GPUControllers(i2c_smbus_interface* bus, u8 i2c_addr, const st if(rgb_controller->config.numberOfZones > 0) { - DetectionManager::get()->RegisterRGBController(rgb_controller); + detected_controllers.push_back(rgb_controller); } else { LOG_ERROR("[%s] RGB controller not registered.", name.c_str()); + delete rgb_controller; } } + + return(detected_controllers); } REGISTER_I2C_PCI_DETECTOR("ZOTAC GAMING GeForce RTX 3070 AMP Holo LHR", DetectZotacV2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, ZOTAC_SUB_VEN, ZOTAC_RTX3070_AMP_SUB_DEV, 0x49); diff --git a/Controllers/CoolerMasterController/CMARGBController/CMARGBController.cpp b/ControllersTODO/CoolerMasterController/CMARGBController/CMARGBController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMARGBController/CMARGBController.cpp rename to ControllersTODO/CoolerMasterController/CMARGBController/CMARGBController.cpp diff --git a/Controllers/CoolerMasterController/CMARGBController/CMARGBController.h b/ControllersTODO/CoolerMasterController/CMARGBController/CMARGBController.h similarity index 100% rename from Controllers/CoolerMasterController/CMARGBController/CMARGBController.h rename to ControllersTODO/CoolerMasterController/CMARGBController/CMARGBController.h diff --git a/Controllers/CoolerMasterController/CMARGBController/RGBController_CMARGBController.cpp b/ControllersTODO/CoolerMasterController/CMARGBController/RGBController_CMARGBController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMARGBController/RGBController_CMARGBController.cpp rename to ControllersTODO/CoolerMasterController/CMARGBController/RGBController_CMARGBController.cpp diff --git a/Controllers/CoolerMasterController/CMARGBController/RGBController_CMARGBController.h b/ControllersTODO/CoolerMasterController/CMARGBController/RGBController_CMARGBController.h similarity index 100% rename from Controllers/CoolerMasterController/CMARGBController/RGBController_CMARGBController.h rename to ControllersTODO/CoolerMasterController/CMARGBController/RGBController_CMARGBController.h diff --git a/Controllers/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.cpp b/ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.cpp rename to ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.cpp diff --git a/Controllers/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.h b/ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.h rename to ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/CMARGBGen2A1Controller.h diff --git a/Controllers/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.cpp b/ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.cpp rename to ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.cpp diff --git a/Controllers/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.h b/ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.h rename to ControllersTODO/CoolerMasterController/CMARGBGen2A1Controller/RGBController_CMARGBGen2A1Controller.h diff --git a/Controllers/CoolerMasterController/CMGD160Controller/CMGD160Controller.cpp b/ControllersTODO/CoolerMasterController/CMGD160Controller/CMGD160Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMGD160Controller/CMGD160Controller.cpp rename to ControllersTODO/CoolerMasterController/CMGD160Controller/CMGD160Controller.cpp diff --git a/Controllers/CoolerMasterController/CMGD160Controller/CMGD160Controller.h b/ControllersTODO/CoolerMasterController/CMGD160Controller/CMGD160Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMGD160Controller/CMGD160Controller.h rename to ControllersTODO/CoolerMasterController/CMGD160Controller/CMGD160Controller.h diff --git a/Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp b/ControllersTODO/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp rename to ControllersTODO/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp diff --git a/Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.h b/ControllersTODO/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.h rename to ControllersTODO/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.h diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.cpp b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.cpp rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.cpp diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.h b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.h similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.h rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardAbstractController.h diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.cpp b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.cpp rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.cpp diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.h b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.h similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.h rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardDevices.h diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.cpp b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.cpp rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.cpp diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.h b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.h rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV1Controller.h diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.cpp b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.cpp rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.cpp diff --git a/Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.h b/ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.h rename to ControllersTODO/CoolerMasterController/CMKeyboardController/CMKeyboardV2Controller.h diff --git a/Controllers/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.cpp b/ControllersTODO/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.cpp rename to ControllersTODO/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.cpp diff --git a/Controllers/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.h b/ControllersTODO/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.h similarity index 100% rename from Controllers/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.h rename to ControllersTODO/CoolerMasterController/CMKeyboardController/RGBController_CMKeyboardController.h diff --git a/Controllers/CoolerMasterController/CMMM711Controller/CMMM711Controller.cpp b/ControllersTODO/CoolerMasterController/CMMM711Controller/CMMM711Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMM711Controller/CMMM711Controller.cpp rename to ControllersTODO/CoolerMasterController/CMMM711Controller/CMMM711Controller.cpp diff --git a/Controllers/CoolerMasterController/CMMM711Controller/CMMM711Controller.h b/ControllersTODO/CoolerMasterController/CMMM711Controller/CMMM711Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMMM711Controller/CMMM711Controller.h rename to ControllersTODO/CoolerMasterController/CMMM711Controller/CMMM711Controller.h diff --git a/Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp b/ControllersTODO/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp rename to ControllersTODO/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp diff --git a/Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.h b/ControllersTODO/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.h rename to ControllersTODO/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.h diff --git a/Controllers/CoolerMasterController/CMMM712Controller/CMMM712Controller.cpp b/ControllersTODO/CoolerMasterController/CMMM712Controller/CMMM712Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMM712Controller/CMMM712Controller.cpp rename to ControllersTODO/CoolerMasterController/CMMM712Controller/CMMM712Controller.cpp diff --git a/Controllers/CoolerMasterController/CMMM712Controller/CMMM712Controller.h b/ControllersTODO/CoolerMasterController/CMMM712Controller/CMMM712Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMMM712Controller/CMMM712Controller.h rename to ControllersTODO/CoolerMasterController/CMMM712Controller/CMMM712Controller.h diff --git a/Controllers/CoolerMasterController/CMMM712Controller/MM712protocol.txt b/ControllersTODO/CoolerMasterController/CMMM712Controller/MM712protocol.txt similarity index 100% rename from Controllers/CoolerMasterController/CMMM712Controller/MM712protocol.txt rename to ControllersTODO/CoolerMasterController/CMMM712Controller/MM712protocol.txt diff --git a/Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp b/ControllersTODO/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp rename to ControllersTODO/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp diff --git a/Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.h b/ControllersTODO/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.h rename to ControllersTODO/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.h diff --git a/Controllers/CoolerMasterController/CMMMController/CMMMController.cpp b/ControllersTODO/CoolerMasterController/CMMMController/CMMMController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMMController/CMMMController.cpp rename to ControllersTODO/CoolerMasterController/CMMMController/CMMMController.cpp diff --git a/Controllers/CoolerMasterController/CMMMController/CMMMController.h b/ControllersTODO/CoolerMasterController/CMMMController/CMMMController.h similarity index 100% rename from Controllers/CoolerMasterController/CMMMController/CMMMController.h rename to ControllersTODO/CoolerMasterController/CMMMController/CMMMController.h diff --git a/Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp b/ControllersTODO/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp rename to ControllersTODO/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp diff --git a/Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.h b/ControllersTODO/CoolerMasterController/CMMMController/RGBController_CMMMController.h similarity index 100% rename from Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.h rename to ControllersTODO/CoolerMasterController/CMMMController/RGBController_CMMMController.h diff --git a/Controllers/CoolerMasterController/CMMP750Controller/CMMP750Controller.cpp b/ControllersTODO/CoolerMasterController/CMMP750Controller/CMMP750Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMP750Controller/CMMP750Controller.cpp rename to ControllersTODO/CoolerMasterController/CMMP750Controller/CMMP750Controller.cpp diff --git a/Controllers/CoolerMasterController/CMMP750Controller/CMMP750Controller.h b/ControllersTODO/CoolerMasterController/CMMP750Controller/CMMP750Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMMP750Controller/CMMP750Controller.h rename to ControllersTODO/CoolerMasterController/CMMP750Controller/CMMP750Controller.h diff --git a/Controllers/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.cpp b/ControllersTODO/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.cpp rename to ControllersTODO/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.cpp diff --git a/Controllers/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.h b/ControllersTODO/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.h rename to ControllersTODO/CoolerMasterController/CMMP750Controller/RGBController_CMMP750Controller.h diff --git a/Controllers/CoolerMasterController/CMMonitorController/CMMonitorController.cpp b/ControllersTODO/CoolerMasterController/CMMonitorController/CMMonitorController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMonitorController/CMMonitorController.cpp rename to ControllersTODO/CoolerMasterController/CMMonitorController/CMMonitorController.cpp diff --git a/Controllers/CoolerMasterController/CMMonitorController/CMMonitorController.h b/ControllersTODO/CoolerMasterController/CMMonitorController/CMMonitorController.h similarity index 100% rename from Controllers/CoolerMasterController/CMMonitorController/CMMonitorController.h rename to ControllersTODO/CoolerMasterController/CMMonitorController/CMMonitorController.h diff --git a/Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp b/ControllersTODO/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp rename to ControllersTODO/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp diff --git a/Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.h b/ControllersTODO/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.h similarity index 100% rename from Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.h rename to ControllersTODO/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.h diff --git a/Controllers/CoolerMasterController/CMR6000Controller/CMR6000Controller.cpp b/ControllersTODO/CoolerMasterController/CMR6000Controller/CMR6000Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMR6000Controller/CMR6000Controller.cpp rename to ControllersTODO/CoolerMasterController/CMR6000Controller/CMR6000Controller.cpp diff --git a/Controllers/CoolerMasterController/CMR6000Controller/CMR6000Controller.h b/ControllersTODO/CoolerMasterController/CMR6000Controller/CMR6000Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMR6000Controller/CMR6000Controller.h rename to ControllersTODO/CoolerMasterController/CMR6000Controller/CMR6000Controller.h diff --git a/Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp b/ControllersTODO/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp rename to ControllersTODO/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp diff --git a/Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.h b/ControllersTODO/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.h similarity index 100% rename from Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.h rename to ControllersTODO/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.h diff --git a/Controllers/CoolerMasterController/CMRGBController/CMRGBController.cpp b/ControllersTODO/CoolerMasterController/CMRGBController/CMRGBController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMRGBController/CMRGBController.cpp rename to ControllersTODO/CoolerMasterController/CMRGBController/CMRGBController.cpp diff --git a/Controllers/CoolerMasterController/CMRGBController/CMRGBController.h b/ControllersTODO/CoolerMasterController/CMRGBController/CMRGBController.h similarity index 100% rename from Controllers/CoolerMasterController/CMRGBController/CMRGBController.h rename to ControllersTODO/CoolerMasterController/CMRGBController/CMRGBController.h diff --git a/Controllers/CoolerMasterController/CMRGBController/RGBController_CMRGBController.cpp b/ControllersTODO/CoolerMasterController/CMRGBController/RGBController_CMRGBController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMRGBController/RGBController_CMRGBController.cpp rename to ControllersTODO/CoolerMasterController/CMRGBController/RGBController_CMRGBController.cpp diff --git a/Controllers/CoolerMasterController/CMRGBController/RGBController_CMRGBController.h b/ControllersTODO/CoolerMasterController/CMRGBController/RGBController_CMRGBController.h similarity index 100% rename from Controllers/CoolerMasterController/CMRGBController/RGBController_CMRGBController.h rename to ControllersTODO/CoolerMasterController/CMRGBController/RGBController_CMRGBController.h diff --git a/Controllers/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.cpp b/ControllersTODO/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.cpp rename to ControllersTODO/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.cpp diff --git a/Controllers/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.h b/ControllersTODO/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.h similarity index 100% rename from Controllers/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.h rename to ControllersTODO/CoolerMasterController/CMSmallARGBController/CMSmallARGBController.h diff --git a/Controllers/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.cpp b/ControllersTODO/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.cpp similarity index 100% rename from Controllers/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.cpp rename to ControllersTODO/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.cpp diff --git a/Controllers/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.h b/ControllersTODO/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.h similarity index 100% rename from Controllers/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.h rename to ControllersTODO/CoolerMasterController/CMSmallARGBController/RGBController_CMSmallARGBController.h diff --git a/Controllers/CoolerMasterController/CoolerMasterControllerDetect.cpp b/ControllersTODO/CoolerMasterController/CoolerMasterControllerDetect.cpp similarity index 100% rename from Controllers/CoolerMasterController/CoolerMasterControllerDetect.cpp rename to ControllersTODO/CoolerMasterController/CoolerMasterControllerDetect.cpp diff --git a/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp b/ControllersTODO/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp rename to ControllersTODO/CorsairPeripheralController/CorsairK55RGBPROXTController.cpp diff --git a/Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.h b/ControllersTODO/CorsairPeripheralController/CorsairK55RGBPROXTController.h similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairK55RGBPROXTController.h rename to ControllersTODO/CorsairPeripheralController/CorsairK55RGBPROXTController.h diff --git a/Controllers/CorsairPeripheralController/CorsairK65MiniController.cpp b/ControllersTODO/CorsairPeripheralController/CorsairK65MiniController.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairK65MiniController.cpp rename to ControllersTODO/CorsairPeripheralController/CorsairK65MiniController.cpp diff --git a/Controllers/CorsairPeripheralController/CorsairK65MiniController.h b/ControllersTODO/CorsairPeripheralController/CorsairK65MiniController.h similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairK65MiniController.h rename to ControllersTODO/CorsairPeripheralController/CorsairK65MiniController.h diff --git a/Controllers/CorsairPeripheralController/CorsairPeripheralController.cpp b/ControllersTODO/CorsairPeripheralController/CorsairPeripheralController.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairPeripheralController.cpp rename to ControllersTODO/CorsairPeripheralController/CorsairPeripheralController.cpp diff --git a/Controllers/CorsairPeripheralController/CorsairPeripheralController.h b/ControllersTODO/CorsairPeripheralController/CorsairPeripheralController.h similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairPeripheralController.h rename to ControllersTODO/CorsairPeripheralController/CorsairPeripheralController.h diff --git a/Controllers/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp b/ControllersTODO/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp rename to ControllersTODO/CorsairPeripheralController/CorsairPeripheralControllerDetect.cpp diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp b/ControllersTODO/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp rename to ControllersTODO/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.cpp diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.h b/ControllersTODO/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.h similarity index 100% rename from Controllers/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.h rename to ControllersTODO/CorsairPeripheralController/RGBController_CorsairK55RGBPROXT.h diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp b/ControllersTODO/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp rename to ControllersTODO/CorsairPeripheralController/RGBController_CorsairK65Mini.cpp diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.h b/ControllersTODO/CorsairPeripheralController/RGBController_CorsairK65Mini.h similarity index 100% rename from Controllers/CorsairPeripheralController/RGBController_CorsairK65Mini.h rename to ControllersTODO/CorsairPeripheralController/RGBController_CorsairK65Mini.h diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairPeripheral.cpp b/ControllersTODO/CorsairPeripheralController/RGBController_CorsairPeripheral.cpp similarity index 100% rename from Controllers/CorsairPeripheralController/RGBController_CorsairPeripheral.cpp rename to ControllersTODO/CorsairPeripheralController/RGBController_CorsairPeripheral.cpp diff --git a/Controllers/CorsairPeripheralController/RGBController_CorsairPeripheral.h b/ControllersTODO/CorsairPeripheralController/RGBController_CorsairPeripheral.h similarity index 100% rename from Controllers/CorsairPeripheralController/RGBController_CorsairPeripheral.h rename to ControllersTODO/CorsairPeripheralController/RGBController_CorsairPeripheral.h diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.h b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.h similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.h rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Controller.h diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2ControllerDetect.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2Devices.h diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.cpp b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.h b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.h similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.h rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2HardwareController.h diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.cpp b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.h b/ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.h similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.h rename to ControllersTODO/CorsairPeripheralV2Controller/CorsairPeripheralV2SoftwareController.h diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp b/ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h b/ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h rename to ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp b/ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp rename to ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h b/ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h similarity index 100% rename from Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h rename to ControllersTODO/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h diff --git a/Controllers/CorsairVengeanceProController/CorsairVengeanceProController.cpp b/ControllersTODO/CorsairVengeanceProController/CorsairVengeanceProController.cpp similarity index 100% rename from Controllers/CorsairVengeanceProController/CorsairVengeanceProController.cpp rename to ControllersTODO/CorsairVengeanceProController/CorsairVengeanceProController.cpp diff --git a/Controllers/CorsairVengeanceProController/CorsairVengeanceProController.h b/ControllersTODO/CorsairVengeanceProController/CorsairVengeanceProController.h similarity index 100% rename from Controllers/CorsairVengeanceProController/CorsairVengeanceProController.h rename to ControllersTODO/CorsairVengeanceProController/CorsairVengeanceProController.h diff --git a/Controllers/CorsairVengeanceProController/CorsairVengeanceProControllerDetect.cpp b/ControllersTODO/CorsairVengeanceProController/CorsairVengeanceProControllerDetect.cpp similarity index 100% rename from Controllers/CorsairVengeanceProController/CorsairVengeanceProControllerDetect.cpp rename to ControllersTODO/CorsairVengeanceProController/CorsairVengeanceProControllerDetect.cpp diff --git a/Controllers/CorsairVengeanceProController/RGBController_CorsairVengeancePro.cpp b/ControllersTODO/CorsairVengeanceProController/RGBController_CorsairVengeancePro.cpp similarity index 100% rename from Controllers/CorsairVengeanceProController/RGBController_CorsairVengeancePro.cpp rename to ControllersTODO/CorsairVengeanceProController/RGBController_CorsairVengeancePro.cpp diff --git a/Controllers/CorsairVengeanceProController/RGBController_CorsairVengeancePro.h b/ControllersTODO/CorsairVengeanceProController/RGBController_CorsairVengeancePro.h similarity index 100% rename from Controllers/CorsairVengeanceProController/RGBController_CorsairVengeancePro.h rename to ControllersTODO/CorsairVengeanceProController/RGBController_CorsairVengeancePro.h diff --git a/Controllers/CougarController/CougarControllerDetect.cpp b/ControllersTODO/CougarController/CougarControllerDetect.cpp similarity index 100% rename from Controllers/CougarController/CougarControllerDetect.cpp rename to ControllersTODO/CougarController/CougarControllerDetect.cpp diff --git a/Controllers/CougarController/CougarKeyboardController/CougarKeyboardController.cpp b/ControllersTODO/CougarController/CougarKeyboardController/CougarKeyboardController.cpp similarity index 100% rename from Controllers/CougarController/CougarKeyboardController/CougarKeyboardController.cpp rename to ControllersTODO/CougarController/CougarKeyboardController/CougarKeyboardController.cpp diff --git a/Controllers/CougarController/CougarKeyboardController/CougarKeyboardController.h b/ControllersTODO/CougarController/CougarKeyboardController/CougarKeyboardController.h similarity index 100% rename from Controllers/CougarController/CougarKeyboardController/CougarKeyboardController.h rename to ControllersTODO/CougarController/CougarKeyboardController/CougarKeyboardController.h diff --git a/Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp b/ControllersTODO/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp similarity index 100% rename from Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp rename to ControllersTODO/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp diff --git a/Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.h b/ControllersTODO/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.h similarity index 100% rename from Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.h rename to ControllersTODO/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.h diff --git a/Controllers/CougarController/CougarRevengerSTController/CougarRevengerSTController.cpp b/ControllersTODO/CougarController/CougarRevengerSTController/CougarRevengerSTController.cpp similarity index 100% rename from Controllers/CougarController/CougarRevengerSTController/CougarRevengerSTController.cpp rename to ControllersTODO/CougarController/CougarRevengerSTController/CougarRevengerSTController.cpp diff --git a/Controllers/CougarController/CougarRevengerSTController/CougarRevengerSTController.h b/ControllersTODO/CougarController/CougarRevengerSTController/CougarRevengerSTController.h similarity index 100% rename from Controllers/CougarController/CougarRevengerSTController/CougarRevengerSTController.h rename to ControllersTODO/CougarController/CougarRevengerSTController/CougarRevengerSTController.h diff --git a/Controllers/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.cpp b/ControllersTODO/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.cpp similarity index 100% rename from Controllers/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.cpp rename to ControllersTODO/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.cpp diff --git a/Controllers/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.h b/ControllersTODO/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.h similarity index 100% rename from Controllers/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.h rename to ControllersTODO/CougarController/CougarRevengerSTController/RGBController_CougarRevengerST.h diff --git a/Controllers/CreativeController/CreativeControllerDetect.cpp b/ControllersTODO/CreativeController/CreativeControllerDetect.cpp similarity index 100% rename from Controllers/CreativeController/CreativeControllerDetect.cpp rename to ControllersTODO/CreativeController/CreativeControllerDetect.cpp diff --git a/Controllers/CreativeController/CreativeSoundBlasterAE5ControllerBase.h b/ControllersTODO/CreativeController/CreativeSoundBlasterAE5ControllerBase.h similarity index 100% rename from Controllers/CreativeController/CreativeSoundBlasterAE5ControllerBase.h rename to ControllersTODO/CreativeController/CreativeSoundBlasterAE5ControllerBase.h diff --git a/Controllers/CreativeController/CreativeSoundBlasterAE5ControllerDetect_Windows.cpp b/ControllersTODO/CreativeController/CreativeSoundBlasterAE5ControllerDetect_Windows.cpp similarity index 100% rename from Controllers/CreativeController/CreativeSoundBlasterAE5ControllerDetect_Windows.cpp rename to ControllersTODO/CreativeController/CreativeSoundBlasterAE5ControllerDetect_Windows.cpp diff --git a/Controllers/CreativeController/CreativeSoundBlasterAE5Controller_Windows.cpp b/ControllersTODO/CreativeController/CreativeSoundBlasterAE5Controller_Windows.cpp similarity index 100% rename from Controllers/CreativeController/CreativeSoundBlasterAE5Controller_Windows.cpp rename to ControllersTODO/CreativeController/CreativeSoundBlasterAE5Controller_Windows.cpp diff --git a/Controllers/CreativeController/CreativeSoundBlasterAE5Controller_Windows.h b/ControllersTODO/CreativeController/CreativeSoundBlasterAE5Controller_Windows.h similarity index 100% rename from Controllers/CreativeController/CreativeSoundBlasterAE5Controller_Windows.h rename to ControllersTODO/CreativeController/CreativeSoundBlasterAE5Controller_Windows.h diff --git a/Controllers/CreativeController/CreativeSoundBlasterXG6Controller.cpp b/ControllersTODO/CreativeController/CreativeSoundBlasterXG6Controller.cpp similarity index 100% rename from Controllers/CreativeController/CreativeSoundBlasterXG6Controller.cpp rename to ControllersTODO/CreativeController/CreativeSoundBlasterXG6Controller.cpp diff --git a/Controllers/CreativeController/CreativeSoundBlasterXG6Controller.h b/ControllersTODO/CreativeController/CreativeSoundBlasterXG6Controller.h similarity index 100% rename from Controllers/CreativeController/CreativeSoundBlasterXG6Controller.h rename to ControllersTODO/CreativeController/CreativeSoundBlasterXG6Controller.h diff --git a/Controllers/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.cpp b/ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.cpp similarity index 100% rename from Controllers/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.cpp rename to ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.cpp diff --git a/Controllers/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.h b/ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.h similarity index 100% rename from Controllers/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.h rename to ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterAE5_Windows.h diff --git a/Controllers/CreativeController/RGBController_CreativeSoundBlasterXG6.cpp b/ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterXG6.cpp similarity index 100% rename from Controllers/CreativeController/RGBController_CreativeSoundBlasterXG6.cpp rename to ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterXG6.cpp diff --git a/Controllers/CreativeController/RGBController_CreativeSoundBlasterXG6.h b/ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterXG6.h similarity index 100% rename from Controllers/CreativeController/RGBController_CreativeSoundBlasterXG6.h rename to ControllersTODO/CreativeController/RGBController_CreativeSoundBlasterXG6.h diff --git a/Controllers/CrucialController/CrucialController.cpp b/ControllersTODO/CrucialController/CrucialController.cpp similarity index 100% rename from Controllers/CrucialController/CrucialController.cpp rename to ControllersTODO/CrucialController/CrucialController.cpp diff --git a/Controllers/CrucialController/CrucialController.h b/ControllersTODO/CrucialController/CrucialController.h similarity index 100% rename from Controllers/CrucialController/CrucialController.h rename to ControllersTODO/CrucialController/CrucialController.h diff --git a/Controllers/CrucialController/CrucialControllerDetect.cpp b/ControllersTODO/CrucialController/CrucialControllerDetect.cpp similarity index 100% rename from Controllers/CrucialController/CrucialControllerDetect.cpp rename to ControllersTODO/CrucialController/CrucialControllerDetect.cpp diff --git a/Controllers/CrucialController/RGBController_Crucial.cpp b/ControllersTODO/CrucialController/RGBController_Crucial.cpp similarity index 100% rename from Controllers/CrucialController/RGBController_Crucial.cpp rename to ControllersTODO/CrucialController/RGBController_Crucial.cpp diff --git a/Controllers/CrucialController/RGBController_Crucial.h b/ControllersTODO/CrucialController/RGBController_Crucial.h similarity index 100% rename from Controllers/CrucialController/RGBController_Crucial.h rename to ControllersTODO/CrucialController/RGBController_Crucial.h diff --git a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp b/ControllersTODO/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp similarity index 100% rename from Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp rename to ControllersTODO/CryorigH7QuadLumiController/CryorigH7QuadLumiController.cpp diff --git a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h b/ControllersTODO/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h similarity index 100% rename from Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h rename to ControllersTODO/CryorigH7QuadLumiController/CryorigH7QuadLumiController.h diff --git a/Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiControllerDetect.cpp b/ControllersTODO/CryorigH7QuadLumiController/CryorigH7QuadLumiControllerDetect.cpp similarity index 100% rename from Controllers/CryorigH7QuadLumiController/CryorigH7QuadLumiControllerDetect.cpp rename to ControllersTODO/CryorigH7QuadLumiController/CryorigH7QuadLumiControllerDetect.cpp diff --git a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp b/ControllersTODO/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp similarity index 100% rename from Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp rename to ControllersTODO/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp diff --git a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h b/ControllersTODO/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h similarity index 100% rename from Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h rename to ControllersTODO/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h diff --git a/Controllers/DMXController/DMXControllerDetect.cpp b/ControllersTODO/DMXController/DMXControllerDetect.cpp similarity index 100% rename from Controllers/DMXController/DMXControllerDetect.cpp rename to ControllersTODO/DMXController/DMXControllerDetect.cpp diff --git a/Controllers/DMXController/RGBController_DMX.cpp b/ControllersTODO/DMXController/RGBController_DMX.cpp similarity index 100% rename from Controllers/DMXController/RGBController_DMX.cpp rename to ControllersTODO/DMXController/RGBController_DMX.cpp diff --git a/Controllers/DMXController/RGBController_DMX.h b/ControllersTODO/DMXController/RGBController_DMX.h similarity index 100% rename from Controllers/DMXController/RGBController_DMX.h rename to ControllersTODO/DMXController/RGBController_DMX.h diff --git a/Controllers/DRGBController/DRGBController.cpp b/ControllersTODO/DRGBController/DRGBController.cpp similarity index 100% rename from Controllers/DRGBController/DRGBController.cpp rename to ControllersTODO/DRGBController/DRGBController.cpp diff --git a/Controllers/DRGBController/DRGBController.h b/ControllersTODO/DRGBController/DRGBController.h similarity index 100% rename from Controllers/DRGBController/DRGBController.h rename to ControllersTODO/DRGBController/DRGBController.h diff --git a/Controllers/DRGBController/DRGBControllerDetect.cpp b/ControllersTODO/DRGBController/DRGBControllerDetect.cpp similarity index 100% rename from Controllers/DRGBController/DRGBControllerDetect.cpp rename to ControllersTODO/DRGBController/DRGBControllerDetect.cpp diff --git a/Controllers/DRGBController/RGBController_DRGB.cpp b/ControllersTODO/DRGBController/RGBController_DRGB.cpp similarity index 100% rename from Controllers/DRGBController/RGBController_DRGB.cpp rename to ControllersTODO/DRGBController/RGBController_DRGB.cpp diff --git a/Controllers/DRGBController/RGBController_DRGB.h b/ControllersTODO/DRGBController/RGBController_DRGB.h similarity index 100% rename from Controllers/DRGBController/RGBController_DRGB.h rename to ControllersTODO/DRGBController/RGBController_DRGB.h diff --git a/Controllers/DebugController/DebugControllerDetect.cpp b/ControllersTODO/DebugController/DebugControllerDetect.cpp similarity index 100% rename from Controllers/DebugController/DebugControllerDetect.cpp rename to ControllersTODO/DebugController/DebugControllerDetect.cpp diff --git a/Controllers/DebugController/RGBController_Debug.cpp b/ControllersTODO/DebugController/RGBController_Debug.cpp similarity index 100% rename from Controllers/DebugController/RGBController_Debug.cpp rename to ControllersTODO/DebugController/RGBController_Debug.cpp diff --git a/Controllers/DebugController/RGBController_Debug.h b/ControllersTODO/DebugController/RGBController_Debug.h similarity index 100% rename from Controllers/DebugController/RGBController_Debug.h rename to ControllersTODO/DebugController/RGBController_Debug.h diff --git a/Controllers/DreamCheekyController/DreamCheekyController.cpp b/ControllersTODO/DreamCheekyController/DreamCheekyController.cpp similarity index 100% rename from Controllers/DreamCheekyController/DreamCheekyController.cpp rename to ControllersTODO/DreamCheekyController/DreamCheekyController.cpp diff --git a/Controllers/DreamCheekyController/DreamCheekyController.h b/ControllersTODO/DreamCheekyController/DreamCheekyController.h similarity index 100% rename from Controllers/DreamCheekyController/DreamCheekyController.h rename to ControllersTODO/DreamCheekyController/DreamCheekyController.h diff --git a/Controllers/DreamCheekyController/DreamCheekyControllerDetect.cpp b/ControllersTODO/DreamCheekyController/DreamCheekyControllerDetect.cpp similarity index 100% rename from Controllers/DreamCheekyController/DreamCheekyControllerDetect.cpp rename to ControllersTODO/DreamCheekyController/DreamCheekyControllerDetect.cpp diff --git a/Controllers/DreamCheekyController/RGBController_DreamCheeky.cpp b/ControllersTODO/DreamCheekyController/RGBController_DreamCheeky.cpp similarity index 100% rename from Controllers/DreamCheekyController/RGBController_DreamCheeky.cpp rename to ControllersTODO/DreamCheekyController/RGBController_DreamCheeky.cpp diff --git a/Controllers/DreamCheekyController/RGBController_DreamCheeky.h b/ControllersTODO/DreamCheekyController/RGBController_DreamCheeky.h similarity index 100% rename from Controllers/DreamCheekyController/RGBController_DreamCheeky.h rename to ControllersTODO/DreamCheekyController/RGBController_DreamCheeky.h diff --git a/Controllers/DuckyKeyboardController/DuckyKeyboardController.cpp b/ControllersTODO/DuckyKeyboardController/DuckyKeyboardController.cpp similarity index 100% rename from Controllers/DuckyKeyboardController/DuckyKeyboardController.cpp rename to ControllersTODO/DuckyKeyboardController/DuckyKeyboardController.cpp diff --git a/Controllers/DuckyKeyboardController/DuckyKeyboardController.h b/ControllersTODO/DuckyKeyboardController/DuckyKeyboardController.h similarity index 100% rename from Controllers/DuckyKeyboardController/DuckyKeyboardController.h rename to ControllersTODO/DuckyKeyboardController/DuckyKeyboardController.h diff --git a/Controllers/DuckyKeyboardController/DuckyKeyboardControllerDetect.cpp b/ControllersTODO/DuckyKeyboardController/DuckyKeyboardControllerDetect.cpp similarity index 100% rename from Controllers/DuckyKeyboardController/DuckyKeyboardControllerDetect.cpp rename to ControllersTODO/DuckyKeyboardController/DuckyKeyboardControllerDetect.cpp diff --git a/Controllers/DuckyKeyboardController/RGBController_DuckyKeyboard.cpp b/ControllersTODO/DuckyKeyboardController/RGBController_DuckyKeyboard.cpp similarity index 100% rename from Controllers/DuckyKeyboardController/RGBController_DuckyKeyboard.cpp rename to ControllersTODO/DuckyKeyboardController/RGBController_DuckyKeyboard.cpp diff --git a/Controllers/DuckyKeyboardController/RGBController_DuckyKeyboard.h b/ControllersTODO/DuckyKeyboardController/RGBController_DuckyKeyboard.h similarity index 100% rename from Controllers/DuckyKeyboardController/RGBController_DuckyKeyboard.h rename to ControllersTODO/DuckyKeyboardController/RGBController_DuckyKeyboard.h diff --git a/Controllers/DygmaRaiseController/DygmaRaiseController.cpp b/ControllersTODO/DygmaRaiseController/DygmaRaiseController.cpp similarity index 100% rename from Controllers/DygmaRaiseController/DygmaRaiseController.cpp rename to ControllersTODO/DygmaRaiseController/DygmaRaiseController.cpp diff --git a/Controllers/DygmaRaiseController/DygmaRaiseController.h b/ControllersTODO/DygmaRaiseController/DygmaRaiseController.h similarity index 100% rename from Controllers/DygmaRaiseController/DygmaRaiseController.h rename to ControllersTODO/DygmaRaiseController/DygmaRaiseController.h diff --git a/Controllers/DygmaRaiseController/DygmaRaiseControllerDetect.cpp b/ControllersTODO/DygmaRaiseController/DygmaRaiseControllerDetect.cpp similarity index 100% rename from Controllers/DygmaRaiseController/DygmaRaiseControllerDetect.cpp rename to ControllersTODO/DygmaRaiseController/DygmaRaiseControllerDetect.cpp diff --git a/Controllers/DygmaRaiseController/RGBController_DygmaRaise.cpp b/ControllersTODO/DygmaRaiseController/RGBController_DygmaRaise.cpp similarity index 100% rename from Controllers/DygmaRaiseController/RGBController_DygmaRaise.cpp rename to ControllersTODO/DygmaRaiseController/RGBController_DygmaRaise.cpp diff --git a/Controllers/DygmaRaiseController/RGBController_DygmaRaise.h b/ControllersTODO/DygmaRaiseController/RGBController_DygmaRaise.h similarity index 100% rename from Controllers/DygmaRaiseController/RGBController_DygmaRaise.h rename to ControllersTODO/DygmaRaiseController/RGBController_DygmaRaise.h diff --git a/Controllers/E131Controller/E131ControllerDetect.cpp b/ControllersTODO/E131Controller/E131ControllerDetect.cpp similarity index 100% rename from Controllers/E131Controller/E131ControllerDetect.cpp rename to ControllersTODO/E131Controller/E131ControllerDetect.cpp diff --git a/Controllers/E131Controller/RGBController_E131.cpp b/ControllersTODO/E131Controller/RGBController_E131.cpp similarity index 100% rename from Controllers/E131Controller/RGBController_E131.cpp rename to ControllersTODO/E131Controller/RGBController_E131.cpp diff --git a/Controllers/E131Controller/RGBController_E131.h b/ControllersTODO/E131Controller/RGBController_E131.h similarity index 100% rename from Controllers/E131Controller/RGBController_E131.h rename to ControllersTODO/E131Controller/RGBController_E131.h diff --git a/Controllers/EKController/EKController.cpp b/ControllersTODO/EKController/EKController.cpp similarity index 100% rename from Controllers/EKController/EKController.cpp rename to ControllersTODO/EKController/EKController.cpp diff --git a/Controllers/EKController/EKController.h b/ControllersTODO/EKController/EKController.h similarity index 100% rename from Controllers/EKController/EKController.h rename to ControllersTODO/EKController/EKController.h diff --git a/Controllers/EKController/EKControllerDetect.cpp b/ControllersTODO/EKController/EKControllerDetect.cpp similarity index 100% rename from Controllers/EKController/EKControllerDetect.cpp rename to ControllersTODO/EKController/EKControllerDetect.cpp diff --git a/Controllers/EKController/RGBController_EKController.cpp b/ControllersTODO/EKController/RGBController_EKController.cpp similarity index 100% rename from Controllers/EKController/RGBController_EKController.cpp rename to ControllersTODO/EKController/RGBController_EKController.cpp diff --git a/Controllers/EKController/RGBController_EKController.h b/ControllersTODO/EKController/RGBController_EKController.h similarity index 100% rename from Controllers/EKController/RGBController_EKController.h rename to ControllersTODO/EKController/RGBController_EKController.h diff --git a/Controllers/EVGAAmpereGPUController/EVGAAmpereGPUControllerDetect.cpp b/ControllersTODO/EVGAAmpereGPUController/EVGAAmpereGPUControllerDetect.cpp similarity index 100% rename from Controllers/EVGAAmpereGPUController/EVGAAmpereGPUControllerDetect.cpp rename to ControllersTODO/EVGAAmpereGPUController/EVGAAmpereGPUControllerDetect.cpp diff --git a/Controllers/EVGAAmpereGPUController/EVGAGPUv3Controller.cpp b/ControllersTODO/EVGAAmpereGPUController/EVGAGPUv3Controller.cpp similarity index 100% rename from Controllers/EVGAAmpereGPUController/EVGAGPUv3Controller.cpp rename to ControllersTODO/EVGAAmpereGPUController/EVGAGPUv3Controller.cpp diff --git a/Controllers/EVGAAmpereGPUController/EVGAGPUv3Controller.h b/ControllersTODO/EVGAAmpereGPUController/EVGAGPUv3Controller.h similarity index 100% rename from Controllers/EVGAAmpereGPUController/EVGAGPUv3Controller.h rename to ControllersTODO/EVGAAmpereGPUController/EVGAGPUv3Controller.h diff --git a/Controllers/EVGAAmpereGPUController/RGBController_EVGAGPUv3.cpp b/ControllersTODO/EVGAAmpereGPUController/RGBController_EVGAGPUv3.cpp similarity index 100% rename from Controllers/EVGAAmpereGPUController/RGBController_EVGAGPUv3.cpp rename to ControllersTODO/EVGAAmpereGPUController/RGBController_EVGAGPUv3.cpp diff --git a/Controllers/EVGAAmpereGPUController/RGBController_EVGAGPUv3.h b/ControllersTODO/EVGAAmpereGPUController/RGBController_EVGAGPUv3.h similarity index 100% rename from Controllers/EVGAAmpereGPUController/RGBController_EVGAGPUv3.h rename to ControllersTODO/EVGAAmpereGPUController/RGBController_EVGAGPUv3.h diff --git a/Controllers/EVGAGP102GPUController/EVGAGP102Controller.cpp b/ControllersTODO/EVGAGP102GPUController/EVGAGP102Controller.cpp similarity index 100% rename from Controllers/EVGAGP102GPUController/EVGAGP102Controller.cpp rename to ControllersTODO/EVGAGP102GPUController/EVGAGP102Controller.cpp diff --git a/Controllers/EVGAGP102GPUController/EVGAGP102Controller.h b/ControllersTODO/EVGAGP102GPUController/EVGAGP102Controller.h similarity index 100% rename from Controllers/EVGAGP102GPUController/EVGAGP102Controller.h rename to ControllersTODO/EVGAGP102GPUController/EVGAGP102Controller.h diff --git a/Controllers/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp b/ControllersTODO/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp similarity index 100% rename from Controllers/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp rename to ControllersTODO/EVGAGP102GPUController/EVGAGP102GPUControllerDetect.cpp diff --git a/Controllers/EVGAGP102GPUController/RGBController_EVGAGP102.cpp b/ControllersTODO/EVGAGP102GPUController/RGBController_EVGAGP102.cpp similarity index 100% rename from Controllers/EVGAGP102GPUController/RGBController_EVGAGP102.cpp rename to ControllersTODO/EVGAGP102GPUController/RGBController_EVGAGP102.cpp diff --git a/Controllers/EVGAGP102GPUController/RGBController_EVGAGP102.h b/ControllersTODO/EVGAGP102GPUController/RGBController_EVGAGP102.h similarity index 100% rename from Controllers/EVGAGP102GPUController/RGBController_EVGAGP102.h rename to ControllersTODO/EVGAGP102GPUController/RGBController_EVGAGP102.h diff --git a/Controllers/EVGAPascalGPUController/EVGAGPUv1Controller.cpp b/ControllersTODO/EVGAPascalGPUController/EVGAGPUv1Controller.cpp similarity index 100% rename from Controllers/EVGAPascalGPUController/EVGAGPUv1Controller.cpp rename to ControllersTODO/EVGAPascalGPUController/EVGAGPUv1Controller.cpp diff --git a/Controllers/EVGAPascalGPUController/EVGAGPUv1Controller.h b/ControllersTODO/EVGAPascalGPUController/EVGAGPUv1Controller.h similarity index 100% rename from Controllers/EVGAPascalGPUController/EVGAGPUv1Controller.h rename to ControllersTODO/EVGAPascalGPUController/EVGAGPUv1Controller.h diff --git a/Controllers/EVGAPascalGPUController/EVGAPascalGPUControllerDetect.cpp b/ControllersTODO/EVGAPascalGPUController/EVGAPascalGPUControllerDetect.cpp similarity index 100% rename from Controllers/EVGAPascalGPUController/EVGAPascalGPUControllerDetect.cpp rename to ControllersTODO/EVGAPascalGPUController/EVGAPascalGPUControllerDetect.cpp diff --git a/Controllers/EVGAPascalGPUController/RGBController_EVGAGPUv1.cpp b/ControllersTODO/EVGAPascalGPUController/RGBController_EVGAGPUv1.cpp similarity index 100% rename from Controllers/EVGAPascalGPUController/RGBController_EVGAGPUv1.cpp rename to ControllersTODO/EVGAPascalGPUController/RGBController_EVGAGPUv1.cpp diff --git a/Controllers/EVGAPascalGPUController/RGBController_EVGAGPUv1.h b/ControllersTODO/EVGAPascalGPUController/RGBController_EVGAGPUv1.h similarity index 100% rename from Controllers/EVGAPascalGPUController/RGBController_EVGAGPUv1.h rename to ControllersTODO/EVGAPascalGPUController/RGBController_EVGAGPUv1.h diff --git a/Controllers/EVGASMBusController/EVGAACX30SMBusController.cpp b/ControllersTODO/EVGASMBusController/EVGAACX30SMBusController.cpp similarity index 100% rename from Controllers/EVGASMBusController/EVGAACX30SMBusController.cpp rename to ControllersTODO/EVGASMBusController/EVGAACX30SMBusController.cpp diff --git a/Controllers/EVGASMBusController/EVGAACX30SMBusController.h b/ControllersTODO/EVGASMBusController/EVGAACX30SMBusController.h similarity index 100% rename from Controllers/EVGASMBusController/EVGAACX30SMBusController.h rename to ControllersTODO/EVGASMBusController/EVGAACX30SMBusController.h diff --git a/Controllers/EVGASMBusController/EVGASMBusControllerDetect.cpp b/ControllersTODO/EVGASMBusController/EVGASMBusControllerDetect.cpp similarity index 100% rename from Controllers/EVGASMBusController/EVGASMBusControllerDetect.cpp rename to ControllersTODO/EVGASMBusController/EVGASMBusControllerDetect.cpp diff --git a/Controllers/EVGASMBusController/RGBController_EVGAACX30SMBus.cpp b/ControllersTODO/EVGASMBusController/RGBController_EVGAACX30SMBus.cpp similarity index 100% rename from Controllers/EVGASMBusController/RGBController_EVGAACX30SMBus.cpp rename to ControllersTODO/EVGASMBusController/RGBController_EVGAACX30SMBus.cpp diff --git a/Controllers/EVGASMBusController/RGBController_EVGAACX30SMBus.h b/ControllersTODO/EVGASMBusController/RGBController_EVGAACX30SMBus.h similarity index 100% rename from Controllers/EVGASMBusController/RGBController_EVGAACX30SMBus.h rename to ControllersTODO/EVGASMBusController/RGBController_EVGAACX30SMBus.h diff --git a/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.cpp b/ControllersTODO/EVGATuringGPUController/EVGAGPUv2Controller.cpp similarity index 100% rename from Controllers/EVGATuringGPUController/EVGAGPUv2Controller.cpp rename to ControllersTODO/EVGATuringGPUController/EVGAGPUv2Controller.cpp diff --git a/Controllers/EVGATuringGPUController/EVGAGPUv2Controller.h b/ControllersTODO/EVGATuringGPUController/EVGAGPUv2Controller.h similarity index 100% rename from Controllers/EVGATuringGPUController/EVGAGPUv2Controller.h rename to ControllersTODO/EVGATuringGPUController/EVGAGPUv2Controller.h diff --git a/Controllers/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp b/ControllersTODO/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp similarity index 100% rename from Controllers/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp rename to ControllersTODO/EVGATuringGPUController/EVGATuringGPUControllerDetect.cpp diff --git a/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp b/ControllersTODO/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp similarity index 100% rename from Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp rename to ControllersTODO/EVGATuringGPUController/RGBController_EVGAGPUv2.cpp diff --git a/Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.h b/ControllersTODO/EVGATuringGPUController/RGBController_EVGAGPUv2.h similarity index 100% rename from Controllers/EVGATuringGPUController/RGBController_EVGAGPUv2.h rename to ControllersTODO/EVGATuringGPUController/RGBController_EVGAGPUv2.h diff --git a/Controllers/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.cpp b/ControllersTODO/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.cpp similarity index 100% rename from Controllers/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.cpp rename to ControllersTODO/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.cpp diff --git a/Controllers/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.h b/ControllersTODO/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.h similarity index 100% rename from Controllers/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.h rename to ControllersTODO/EVGAUSBController/EVGAKeyboardController/EVGAKeyboardController.h diff --git a/Controllers/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.cpp b/ControllersTODO/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.cpp similarity index 100% rename from Controllers/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.cpp rename to ControllersTODO/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.cpp diff --git a/Controllers/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.h b/ControllersTODO/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.h similarity index 100% rename from Controllers/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.h rename to ControllersTODO/EVGAUSBController/EVGAKeyboardController/RGBController_EVGAKeyboard.h diff --git a/Controllers/EVGAUSBController/EVGAMouseController/EVGAMouseController.cpp b/ControllersTODO/EVGAUSBController/EVGAMouseController/EVGAMouseController.cpp similarity index 100% rename from Controllers/EVGAUSBController/EVGAMouseController/EVGAMouseController.cpp rename to ControllersTODO/EVGAUSBController/EVGAMouseController/EVGAMouseController.cpp diff --git a/Controllers/EVGAUSBController/EVGAMouseController/EVGAMouseController.h b/ControllersTODO/EVGAUSBController/EVGAMouseController/EVGAMouseController.h similarity index 100% rename from Controllers/EVGAUSBController/EVGAMouseController/EVGAMouseController.h rename to ControllersTODO/EVGAUSBController/EVGAMouseController/EVGAMouseController.h diff --git a/Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp b/ControllersTODO/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp similarity index 100% rename from Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp rename to ControllersTODO/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp diff --git a/Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.h b/ControllersTODO/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.h similarity index 100% rename from Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.h rename to ControllersTODO/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.h diff --git a/Controllers/EVGAUSBController/EVGAUSBControllerDetect.cpp b/ControllersTODO/EVGAUSBController/EVGAUSBControllerDetect.cpp similarity index 100% rename from Controllers/EVGAUSBController/EVGAUSBControllerDetect.cpp rename to ControllersTODO/EVGAUSBController/EVGAUSBControllerDetect.cpp diff --git a/Controllers/ElgatoKeyLightController/ElgatoKeyLightController.cpp b/ControllersTODO/ElgatoKeyLightController/ElgatoKeyLightController.cpp similarity index 100% rename from Controllers/ElgatoKeyLightController/ElgatoKeyLightController.cpp rename to ControllersTODO/ElgatoKeyLightController/ElgatoKeyLightController.cpp diff --git a/Controllers/ElgatoKeyLightController/ElgatoKeyLightController.h b/ControllersTODO/ElgatoKeyLightController/ElgatoKeyLightController.h similarity index 100% rename from Controllers/ElgatoKeyLightController/ElgatoKeyLightController.h rename to ControllersTODO/ElgatoKeyLightController/ElgatoKeyLightController.h diff --git a/Controllers/ElgatoKeyLightController/ElgatoKeyLightControllerDetect.cpp b/ControllersTODO/ElgatoKeyLightController/ElgatoKeyLightControllerDetect.cpp similarity index 100% rename from Controllers/ElgatoKeyLightController/ElgatoKeyLightControllerDetect.cpp rename to ControllersTODO/ElgatoKeyLightController/ElgatoKeyLightControllerDetect.cpp diff --git a/Controllers/ElgatoKeyLightController/RGBController_ElgatoKeyLight.cpp b/ControllersTODO/ElgatoKeyLightController/RGBController_ElgatoKeyLight.cpp similarity index 100% rename from Controllers/ElgatoKeyLightController/RGBController_ElgatoKeyLight.cpp rename to ControllersTODO/ElgatoKeyLightController/RGBController_ElgatoKeyLight.cpp diff --git a/Controllers/ElgatoKeyLightController/RGBController_ElgatoKeyLight.h b/ControllersTODO/ElgatoKeyLightController/RGBController_ElgatoKeyLight.h similarity index 100% rename from Controllers/ElgatoKeyLightController/RGBController_ElgatoKeyLight.h rename to ControllersTODO/ElgatoKeyLightController/RGBController_ElgatoKeyLight.h diff --git a/Controllers/ElgatoLightStripController/ElgatoLightStripController.cpp b/ControllersTODO/ElgatoLightStripController/ElgatoLightStripController.cpp similarity index 100% rename from Controllers/ElgatoLightStripController/ElgatoLightStripController.cpp rename to ControllersTODO/ElgatoLightStripController/ElgatoLightStripController.cpp diff --git a/Controllers/ElgatoLightStripController/ElgatoLightStripController.h b/ControllersTODO/ElgatoLightStripController/ElgatoLightStripController.h similarity index 100% rename from Controllers/ElgatoLightStripController/ElgatoLightStripController.h rename to ControllersTODO/ElgatoLightStripController/ElgatoLightStripController.h diff --git a/Controllers/ElgatoLightStripController/ElgatoLightStripControllerDetect.cpp b/ControllersTODO/ElgatoLightStripController/ElgatoLightStripControllerDetect.cpp similarity index 100% rename from Controllers/ElgatoLightStripController/ElgatoLightStripControllerDetect.cpp rename to ControllersTODO/ElgatoLightStripController/ElgatoLightStripControllerDetect.cpp diff --git a/Controllers/ElgatoLightStripController/RGBController_ElgatoLightStrip.cpp b/ControllersTODO/ElgatoLightStripController/RGBController_ElgatoLightStrip.cpp similarity index 100% rename from Controllers/ElgatoLightStripController/RGBController_ElgatoLightStrip.cpp rename to ControllersTODO/ElgatoLightStripController/RGBController_ElgatoLightStrip.cpp diff --git a/Controllers/ElgatoLightStripController/RGBController_ElgatoLightStrip.h b/ControllersTODO/ElgatoLightStripController/RGBController_ElgatoLightStrip.h similarity index 100% rename from Controllers/ElgatoLightStripController/RGBController_ElgatoLightStrip.h rename to ControllersTODO/ElgatoLightStripController/RGBController_ElgatoLightStrip.h diff --git a/Controllers/EpomakerController/EpomakerController.cpp b/ControllersTODO/EpomakerController/EpomakerController.cpp similarity index 100% rename from Controllers/EpomakerController/EpomakerController.cpp rename to ControllersTODO/EpomakerController/EpomakerController.cpp diff --git a/Controllers/EpomakerController/EpomakerController.h b/ControllersTODO/EpomakerController/EpomakerController.h similarity index 100% rename from Controllers/EpomakerController/EpomakerController.h rename to ControllersTODO/EpomakerController/EpomakerController.h diff --git a/Controllers/EpomakerController/EpomakerControllerDetect.cpp b/ControllersTODO/EpomakerController/EpomakerControllerDetect.cpp similarity index 100% rename from Controllers/EpomakerController/EpomakerControllerDetect.cpp rename to ControllersTODO/EpomakerController/EpomakerControllerDetect.cpp diff --git a/Controllers/EpomakerController/RGBController_EpomakerController.cpp b/ControllersTODO/EpomakerController/RGBController_EpomakerController.cpp similarity index 100% rename from Controllers/EpomakerController/RGBController_EpomakerController.cpp rename to ControllersTODO/EpomakerController/RGBController_EpomakerController.cpp diff --git a/Controllers/EpomakerController/RGBController_EpomakerController.h b/ControllersTODO/EpomakerController/RGBController_EpomakerController.h similarity index 100% rename from Controllers/EpomakerController/RGBController_EpomakerController.h rename to ControllersTODO/EpomakerController/RGBController_EpomakerController.h diff --git a/Controllers/EspurnaController/EspurnaController.cpp b/ControllersTODO/EspurnaController/EspurnaController.cpp similarity index 100% rename from Controllers/EspurnaController/EspurnaController.cpp rename to ControllersTODO/EspurnaController/EspurnaController.cpp diff --git a/Controllers/EspurnaController/EspurnaController.h b/ControllersTODO/EspurnaController/EspurnaController.h similarity index 100% rename from Controllers/EspurnaController/EspurnaController.h rename to ControllersTODO/EspurnaController/EspurnaController.h diff --git a/Controllers/EspurnaController/EspurnaControllerDetect.cpp b/ControllersTODO/EspurnaController/EspurnaControllerDetect.cpp similarity index 100% rename from Controllers/EspurnaController/EspurnaControllerDetect.cpp rename to ControllersTODO/EspurnaController/EspurnaControllerDetect.cpp diff --git a/Controllers/EspurnaController/RGBController_Espurna.cpp b/ControllersTODO/EspurnaController/RGBController_Espurna.cpp similarity index 100% rename from Controllers/EspurnaController/RGBController_Espurna.cpp rename to ControllersTODO/EspurnaController/RGBController_Espurna.cpp diff --git a/Controllers/EspurnaController/RGBController_Espurna.h b/ControllersTODO/EspurnaController/RGBController_Espurna.h similarity index 100% rename from Controllers/EspurnaController/RGBController_Espurna.h rename to ControllersTODO/EspurnaController/RGBController_Espurna.h diff --git a/Controllers/GaiZongGaiKeyboardController/GaiZhongGaiController.cpp b/ControllersTODO/GaiZongGaiKeyboardController/GaiZhongGaiController.cpp similarity index 100% rename from Controllers/GaiZongGaiKeyboardController/GaiZhongGaiController.cpp rename to ControllersTODO/GaiZongGaiKeyboardController/GaiZhongGaiController.cpp diff --git a/Controllers/GaiZongGaiKeyboardController/GaiZhongGaiController.h b/ControllersTODO/GaiZongGaiKeyboardController/GaiZhongGaiController.h similarity index 100% rename from Controllers/GaiZongGaiKeyboardController/GaiZhongGaiController.h rename to ControllersTODO/GaiZongGaiKeyboardController/GaiZhongGaiController.h diff --git a/Controllers/GaiZongGaiKeyboardController/GaiZhongGaiControllerDetect.cpp b/ControllersTODO/GaiZongGaiKeyboardController/GaiZhongGaiControllerDetect.cpp similarity index 100% rename from Controllers/GaiZongGaiKeyboardController/GaiZhongGaiControllerDetect.cpp rename to ControllersTODO/GaiZongGaiKeyboardController/GaiZhongGaiControllerDetect.cpp diff --git a/Controllers/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.cpp b/ControllersTODO/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.cpp similarity index 100% rename from Controllers/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.cpp rename to ControllersTODO/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.cpp diff --git a/Controllers/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.h b/ControllersTODO/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.h similarity index 100% rename from Controllers/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.h rename to ControllersTODO/GaiZongGaiKeyboardController/RGBController_GaiZhongGai.h diff --git a/Controllers/GainwardGPUController/GainwardGPUControllerDetect.cpp b/ControllersTODO/GainwardGPUController/GainwardGPUControllerDetect.cpp similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUControllerDetect.cpp rename to ControllersTODO/GainwardGPUController/GainwardGPUControllerDetect.cpp diff --git a/Controllers/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.cpp b/ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.cpp similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.cpp rename to ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.cpp diff --git a/Controllers/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.h b/ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.h similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.h rename to ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/GainwardGPUv1Controller.h diff --git a/Controllers/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.cpp b/ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.cpp similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.cpp rename to ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.cpp diff --git a/Controllers/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.h b/ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.h similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.h rename to ControllersTODO/GainwardGPUController/GainwardGPUv1Controller/RGBController_GainwardGPUv1.h diff --git a/Controllers/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.cpp b/ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.cpp similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.cpp rename to ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.cpp diff --git a/Controllers/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.h b/ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.h similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.h rename to ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/GainwardGPUv2Controller.h diff --git a/Controllers/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.cpp b/ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.cpp similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.cpp rename to ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.cpp diff --git a/Controllers/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.h b/ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.h similarity index 100% rename from Controllers/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.h rename to ControllersTODO/GainwardGPUController/GainwardGPUv2Controller/RGBController_GainwardGPUv2.h diff --git a/Controllers/GalaxGPUController/GalaxGPUControllerDetect.cpp b/ControllersTODO/GalaxGPUController/GalaxGPUControllerDetect.cpp similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUControllerDetect.cpp rename to ControllersTODO/GalaxGPUController/GalaxGPUControllerDetect.cpp diff --git a/Controllers/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.cpp b/ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.cpp similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.cpp rename to ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.cpp diff --git a/Controllers/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.h b/ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.h similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.h rename to ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/GalaxGPUv1Controller.h diff --git a/Controllers/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.cpp b/ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.cpp similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.cpp rename to ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.cpp diff --git a/Controllers/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.h b/ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.h similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.h rename to ControllersTODO/GalaxGPUController/GalaxGPUv1Controller/RGBController_GalaxGPUv1.h diff --git a/Controllers/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.cpp b/ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.cpp similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.cpp rename to ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.cpp diff --git a/Controllers/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.h b/ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.h similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.h rename to ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/GalaxGPUv2Controller.h diff --git a/Controllers/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.cpp b/ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.cpp similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.cpp rename to ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.cpp diff --git a/Controllers/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.h b/ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.h similarity index 100% rename from Controllers/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.h rename to ControllersTODO/GalaxGPUController/GalaxGPUv2Controller/RGBController_GalaxGPUv2.h diff --git a/Controllers/GigabyteAorusCPUCoolerController/ATC800Controller.cpp b/ControllersTODO/GigabyteAorusCPUCoolerController/ATC800Controller.cpp similarity index 100% rename from Controllers/GigabyteAorusCPUCoolerController/ATC800Controller.cpp rename to ControllersTODO/GigabyteAorusCPUCoolerController/ATC800Controller.cpp diff --git a/Controllers/GigabyteAorusCPUCoolerController/ATC800Controller.h b/ControllersTODO/GigabyteAorusCPUCoolerController/ATC800Controller.h similarity index 100% rename from Controllers/GigabyteAorusCPUCoolerController/ATC800Controller.h rename to ControllersTODO/GigabyteAorusCPUCoolerController/ATC800Controller.h diff --git a/Controllers/GigabyteAorusCPUCoolerController/GigabyteAorusCPUCoolerControllerDetect.cpp b/ControllersTODO/GigabyteAorusCPUCoolerController/GigabyteAorusCPUCoolerControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteAorusCPUCoolerController/GigabyteAorusCPUCoolerControllerDetect.cpp rename to ControllersTODO/GigabyteAorusCPUCoolerController/GigabyteAorusCPUCoolerControllerDetect.cpp diff --git a/Controllers/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.cpp b/ControllersTODO/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.cpp similarity index 100% rename from Controllers/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.cpp rename to ControllersTODO/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.cpp diff --git a/Controllers/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.h b/ControllersTODO/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.h similarity index 100% rename from Controllers/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.h rename to ControllersTODO/GigabyteAorusCPUCoolerController/RGBController_AorusATC800.h diff --git a/Controllers/GigabyteAorusLaptopController/GigabyteAorusLaptopController.cpp b/ControllersTODO/GigabyteAorusLaptopController/GigabyteAorusLaptopController.cpp similarity index 100% rename from Controllers/GigabyteAorusLaptopController/GigabyteAorusLaptopController.cpp rename to ControllersTODO/GigabyteAorusLaptopController/GigabyteAorusLaptopController.cpp diff --git a/Controllers/GigabyteAorusLaptopController/GigabyteAorusLaptopController.h b/ControllersTODO/GigabyteAorusLaptopController/GigabyteAorusLaptopController.h similarity index 100% rename from Controllers/GigabyteAorusLaptopController/GigabyteAorusLaptopController.h rename to ControllersTODO/GigabyteAorusLaptopController/GigabyteAorusLaptopController.h diff --git a/Controllers/GigabyteAorusLaptopController/GigabyteAorusLaptopControllerDetect.cpp b/ControllersTODO/GigabyteAorusLaptopController/GigabyteAorusLaptopControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteAorusLaptopController/GigabyteAorusLaptopControllerDetect.cpp rename to ControllersTODO/GigabyteAorusLaptopController/GigabyteAorusLaptopControllerDetect.cpp diff --git a/Controllers/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.cpp b/ControllersTODO/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.cpp similarity index 100% rename from Controllers/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.cpp rename to ControllersTODO/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.cpp diff --git a/Controllers/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.h b/ControllersTODO/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.h similarity index 100% rename from Controllers/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.h rename to ControllersTODO/GigabyteAorusLaptopController/RGBController_GigabyteAorusLaptop.h diff --git a/Controllers/GigabyteAorusMouseController/GigabyteAorusMouseController.cpp b/ControllersTODO/GigabyteAorusMouseController/GigabyteAorusMouseController.cpp similarity index 100% rename from Controllers/GigabyteAorusMouseController/GigabyteAorusMouseController.cpp rename to ControllersTODO/GigabyteAorusMouseController/GigabyteAorusMouseController.cpp diff --git a/Controllers/GigabyteAorusMouseController/GigabyteAorusMouseController.h b/ControllersTODO/GigabyteAorusMouseController/GigabyteAorusMouseController.h similarity index 100% rename from Controllers/GigabyteAorusMouseController/GigabyteAorusMouseController.h rename to ControllersTODO/GigabyteAorusMouseController/GigabyteAorusMouseController.h diff --git a/Controllers/GigabyteAorusMouseController/GigabyteAorusMouseControllerDetect.cpp b/ControllersTODO/GigabyteAorusMouseController/GigabyteAorusMouseControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteAorusMouseController/GigabyteAorusMouseControllerDetect.cpp rename to ControllersTODO/GigabyteAorusMouseController/GigabyteAorusMouseControllerDetect.cpp diff --git a/Controllers/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.cpp b/ControllersTODO/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.cpp similarity index 100% rename from Controllers/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.cpp rename to ControllersTODO/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.cpp diff --git a/Controllers/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.h b/ControllersTODO/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.h similarity index 100% rename from Controllers/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.h rename to ControllersTODO/GigabyteAorusMouseController/RGBController_GigabyteAorusMouse.h diff --git a/Controllers/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.cpp b/ControllersTODO/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.cpp similarity index 100% rename from Controllers/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.cpp rename to ControllersTODO/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.cpp diff --git a/Controllers/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.h b/ControllersTODO/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.h similarity index 100% rename from Controllers/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.h rename to ControllersTODO/GigabyteAorusPCCaseController/GigabyteAorusPCCaseController.h diff --git a/Controllers/GigabyteAorusPCCaseController/GigabyteAorusPCCaseControllerDetect.cpp b/ControllersTODO/GigabyteAorusPCCaseController/GigabyteAorusPCCaseControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteAorusPCCaseController/GigabyteAorusPCCaseControllerDetect.cpp rename to ControllersTODO/GigabyteAorusPCCaseController/GigabyteAorusPCCaseControllerDetect.cpp diff --git a/Controllers/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.cpp b/ControllersTODO/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.cpp similarity index 100% rename from Controllers/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.cpp rename to ControllersTODO/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.cpp diff --git a/Controllers/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.h b/ControllersTODO/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.h similarity index 100% rename from Controllers/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.h rename to ControllersTODO/GigabyteAorusPCCaseController/RGBController_GigabyteAorusPCCase.h diff --git a/Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.cpp b/ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.cpp rename to ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.cpp diff --git a/Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.h b/ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.h similarity index 100% rename from Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.h rename to ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUController.h diff --git a/Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUDefinitions.h b/ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUDefinitions.h similarity index 100% rename from Controllers/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUDefinitions.h rename to ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/GigabyteRGBFusion2BlackwellGPUDefinitions.h diff --git a/Controllers/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.cpp b/ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.cpp rename to ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.cpp diff --git a/Controllers/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.h b/ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.h similarity index 100% rename from Controllers/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.h rename to ControllersTODO/GigabyteRGBFusion2BlackwellGPUController/RGBController_GigabyteRGBFusion2BlackwellGPU.h diff --git a/Controllers/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.cpp b/ControllersTODO/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.cpp rename to ControllersTODO/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.cpp diff --git a/Controllers/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.h b/ControllersTODO/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.h similarity index 100% rename from Controllers/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.h rename to ControllersTODO/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMController.h diff --git a/Controllers/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusion2DRAMController/GigabyteRGBFusion2DRAMControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.cpp b/ControllersTODO/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.cpp rename to ControllersTODO/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.cpp diff --git a/Controllers/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.h b/ControllersTODO/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.h similarity index 100% rename from Controllers/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.h rename to ControllersTODO/GigabyteRGBFusion2DRAMController/RGBController_GigabyteRGBFusion2DRAM.h diff --git a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp b/ControllersTODO/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp rename to ControllersTODO/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.cpp diff --git a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h b/ControllersTODO/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h similarity index 100% rename from Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h rename to ControllersTODO/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUController.h diff --git a/Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusion2GPUController/GigabyteRGBFusion2GPUControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp b/ControllersTODO/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp rename to ControllersTODO/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.cpp diff --git a/Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.h b/ControllersTODO/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.h similarity index 100% rename from Controllers/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.h rename to ControllersTODO/GigabyteRGBFusion2GPUController/RGBController_GigabyteRGBFusion2GPU.h diff --git a/Controllers/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.cpp b/ControllersTODO/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.cpp rename to ControllersTODO/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.cpp diff --git a/Controllers/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.h b/ControllersTODO/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.h similarity index 100% rename from Controllers/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.h rename to ControllersTODO/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusController.h diff --git a/Controllers/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusion2SMBusController/GigabyteRGBFusion2SMBusControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.cpp b/ControllersTODO/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.cpp rename to ControllersTODO/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.cpp diff --git a/Controllers/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.h b/ControllersTODO/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.h similarity index 100% rename from Controllers/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.h rename to ControllersTODO/GigabyteRGBFusion2SMBusController/RGBController_GigabyteRGBFusion2SMBus.h diff --git a/Controllers/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.cpp b/ControllersTODO/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.cpp rename to ControllersTODO/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.cpp diff --git a/Controllers/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.h b/ControllersTODO/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.h similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.h rename to ControllersTODO/GigabyteRGBFusion2USBController/GigabyteFusion2USB_Devices.h diff --git a/Controllers/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.cpp b/ControllersTODO/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.cpp rename to ControllersTODO/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.cpp diff --git a/Controllers/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.h b/ControllersTODO/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.h similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.h rename to ControllersTODO/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBController.h diff --git a/Controllers/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusion2USBController/GigabyteRGBFusion2USBControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp b/ControllersTODO/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp rename to ControllersTODO/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp diff --git a/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h b/ControllersTODO/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h similarity index 100% rename from Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h rename to ControllersTODO/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h diff --git a/Controllers/GigabyteRGBFusionController/GigabyteRGBFusionController.cpp b/ControllersTODO/GigabyteRGBFusionController/GigabyteRGBFusionController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusionController/GigabyteRGBFusionController.cpp rename to ControllersTODO/GigabyteRGBFusionController/GigabyteRGBFusionController.cpp diff --git a/Controllers/GigabyteRGBFusionController/GigabyteRGBFusionController.h b/ControllersTODO/GigabyteRGBFusionController/GigabyteRGBFusionController.h similarity index 100% rename from Controllers/GigabyteRGBFusionController/GigabyteRGBFusionController.h rename to ControllersTODO/GigabyteRGBFusionController/GigabyteRGBFusionController.h diff --git a/Controllers/GigabyteRGBFusionController/GigabyteRGBFusionControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusionController/GigabyteRGBFusionControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusionController/GigabyteRGBFusionControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusionController/GigabyteRGBFusionControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.cpp b/ControllersTODO/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.cpp similarity index 100% rename from Controllers/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.cpp rename to ControllersTODO/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.cpp diff --git a/Controllers/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.h b/ControllersTODO/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.h similarity index 100% rename from Controllers/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.h rename to ControllersTODO/GigabyteRGBFusionController/RGBController_GigabyteRGBFusion.h diff --git a/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.cpp b/ControllersTODO/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.cpp similarity index 100% rename from Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.cpp rename to ControllersTODO/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.cpp diff --git a/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.h b/ControllersTODO/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.h similarity index 100% rename from Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.h rename to ControllersTODO/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUController.h diff --git a/Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp b/ControllersTODO/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp similarity index 100% rename from Controllers/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp rename to ControllersTODO/GigabyteRGBFusionGPUController/GigabyteRGBFusionGPUControllerDetect.cpp diff --git a/Controllers/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.cpp b/ControllersTODO/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.cpp similarity index 100% rename from Controllers/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.cpp rename to ControllersTODO/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.cpp diff --git a/Controllers/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.h b/ControllersTODO/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.h similarity index 100% rename from Controllers/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.h rename to ControllersTODO/GigabyteRGBFusionGPUController/RGBController_GigabyteRGBFusionGPU.h diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp b/ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp similarity index 100% rename from Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp rename to ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.h b/ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.h similarity index 100% rename from Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.h rename to ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.h diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBControllerDetect.cpp b/ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBControllerDetect.cpp similarity index 100% rename from Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBControllerDetect.cpp rename to ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBControllerDetect.cpp diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/LenovoDevices4Zone.h b/ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/LenovoDevices4Zone.h similarity index 100% rename from Controllers/LenovoControllers/Lenovo4ZoneUSBController/LenovoDevices4Zone.h rename to ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/LenovoDevices4Zone.h diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.cpp b/ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.cpp similarity index 100% rename from Controllers/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.cpp rename to ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.cpp diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.h b/ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.h similarity index 100% rename from Controllers/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.h rename to ControllersTODO/LenovoControllers/Lenovo4ZoneUSBController/RGBController_Lenovo4ZoneUSB.h diff --git a/Controllers/LenovoControllers/LenovoDevices.h b/ControllersTODO/LenovoControllers/LenovoDevices.h similarity index 100% rename from Controllers/LenovoControllers/LenovoDevices.h rename to ControllersTODO/LenovoControllers/LenovoDevices.h diff --git a/Controllers/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.cpp b/ControllersTODO/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.cpp rename to ControllersTODO/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.cpp diff --git a/Controllers/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.h b/ControllersTODO/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.h similarity index 100% rename from Controllers/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.h rename to ControllersTODO/LenovoControllers/LenovoLegionK510Controller/LenovoK510Controller.h diff --git a/Controllers/LenovoControllers/LenovoLegionK510Controller/LenovoK510ControllerDetect.cpp b/ControllersTODO/LenovoControllers/LenovoLegionK510Controller/LenovoK510ControllerDetect.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoLegionK510Controller/LenovoK510ControllerDetect.cpp rename to ControllersTODO/LenovoControllers/LenovoLegionK510Controller/LenovoK510ControllerDetect.cpp diff --git a/Controllers/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.cpp b/ControllersTODO/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.cpp rename to ControllersTODO/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.cpp diff --git a/Controllers/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.h b/ControllersTODO/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.h similarity index 100% rename from Controllers/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.h rename to ControllersTODO/LenovoControllers/LenovoLegionK510Controller/RGBController_LenovoK510.h diff --git a/Controllers/LenovoControllers/LenovoM300Controller/LenovoM300Controller.cpp b/ControllersTODO/LenovoControllers/LenovoM300Controller/LenovoM300Controller.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoM300Controller/LenovoM300Controller.cpp rename to ControllersTODO/LenovoControllers/LenovoM300Controller/LenovoM300Controller.cpp diff --git a/Controllers/LenovoControllers/LenovoM300Controller/LenovoM300Controller.h b/ControllersTODO/LenovoControllers/LenovoM300Controller/LenovoM300Controller.h similarity index 100% rename from Controllers/LenovoControllers/LenovoM300Controller/LenovoM300Controller.h rename to ControllersTODO/LenovoControllers/LenovoM300Controller/LenovoM300Controller.h diff --git a/Controllers/LenovoControllers/LenovoM300Controller/LenovoM300ControllerDetect.cpp b/ControllersTODO/LenovoControllers/LenovoM300Controller/LenovoM300ControllerDetect.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoM300Controller/LenovoM300ControllerDetect.cpp rename to ControllersTODO/LenovoControllers/LenovoM300Controller/LenovoM300ControllerDetect.cpp diff --git a/Controllers/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.cpp b/ControllersTODO/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.cpp rename to ControllersTODO/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.cpp diff --git a/Controllers/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.h b/ControllersTODO/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.h similarity index 100% rename from Controllers/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.h rename to ControllersTODO/LenovoControllers/LenovoM300Controller/RGBController_LenovoM300.h diff --git a/Controllers/LenovoControllers/LenovoUSBController/LenovoUSBController.cpp b/ControllersTODO/LenovoControllers/LenovoUSBController/LenovoUSBController.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController/LenovoUSBController.cpp rename to ControllersTODO/LenovoControllers/LenovoUSBController/LenovoUSBController.cpp diff --git a/Controllers/LenovoControllers/LenovoUSBController/LenovoUSBController.h b/ControllersTODO/LenovoControllers/LenovoUSBController/LenovoUSBController.h similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController/LenovoUSBController.h rename to ControllersTODO/LenovoControllers/LenovoUSBController/LenovoUSBController.h diff --git a/Controllers/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.cpp b/ControllersTODO/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.cpp rename to ControllersTODO/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.cpp diff --git a/Controllers/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.h b/ControllersTODO/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.h similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.h rename to ControllersTODO/LenovoControllers/LenovoUSBController/RGBController_LenovoUSB.h diff --git a/Controllers/LenovoControllers/LenovoUSBControllerDetect.cpp b/ControllersTODO/LenovoControllers/LenovoUSBControllerDetect.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBControllerDetect.cpp rename to ControllersTODO/LenovoControllers/LenovoUSBControllerDetect.cpp diff --git a/Controllers/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.cpp b/ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.cpp rename to ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.cpp diff --git a/Controllers/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.h b/ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.h similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.h rename to ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/LenovoUSBController_Gen7_8.h diff --git a/Controllers/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.cpp b/ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.cpp similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.cpp rename to ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.cpp diff --git a/Controllers/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.h b/ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.h similarity index 100% rename from Controllers/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.h rename to ControllersTODO/LenovoControllers/LenovoUSBController_Gen7_8/RGBController_Lenovo_Gen7_8.h diff --git a/Controllers/LianLiController/LianLiControllerDetect.cpp b/ControllersTODO/LianLiController/LianLiControllerDetect.cpp similarity index 100% rename from Controllers/LianLiController/LianLiControllerDetect.cpp rename to ControllersTODO/LianLiController/LianLiControllerDetect.cpp diff --git a/Controllers/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.cpp b/ControllersTODO/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.cpp similarity index 100% rename from Controllers/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.cpp rename to ControllersTODO/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.cpp diff --git a/Controllers/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.h b/ControllersTODO/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.h similarity index 100% rename from Controllers/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.h rename to ControllersTODO/LianLiController/LianLiGAIITrinityController/LianLiGAIITrinityController.h diff --git a/Controllers/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.cpp b/ControllersTODO/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.cpp similarity index 100% rename from Controllers/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.cpp rename to ControllersTODO/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.cpp diff --git a/Controllers/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.h b/ControllersTODO/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.h similarity index 100% rename from Controllers/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.h rename to ControllersTODO/LianLiController/LianLiGAIITrinityController/RGBController_LianLiGAIITrinity.h diff --git a/Controllers/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.cpp b/ControllersTODO/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.cpp similarity index 100% rename from Controllers/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.cpp rename to ControllersTODO/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.cpp diff --git a/Controllers/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.h b/ControllersTODO/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.h similarity index 100% rename from Controllers/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.h rename to ControllersTODO/LianLiController/LianLiStrimerLConnectController/LianLiStrimerLConnectController.h diff --git a/Controllers/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.cpp b/ControllersTODO/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.cpp similarity index 100% rename from Controllers/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.cpp rename to ControllersTODO/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.cpp diff --git a/Controllers/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.h b/ControllersTODO/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.h similarity index 100% rename from Controllers/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.h rename to ControllersTODO/LianLiController/LianLiStrimerLConnectController/RGBController_LianLiStrimerLConnect.h diff --git a/Controllers/LianLiController/LianLiUniHubALController/LianLiUniHubALController.cpp b/ControllersTODO/LianLiController/LianLiUniHubALController/LianLiUniHubALController.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubALController/LianLiUniHubALController.cpp rename to ControllersTODO/LianLiController/LianLiUniHubALController/LianLiUniHubALController.cpp diff --git a/Controllers/LianLiController/LianLiUniHubALController/LianLiUniHubALController.h b/ControllersTODO/LianLiController/LianLiUniHubALController/LianLiUniHubALController.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubALController/LianLiUniHubALController.h rename to ControllersTODO/LianLiController/LianLiUniHubALController/LianLiUniHubALController.h diff --git a/Controllers/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.cpp b/ControllersTODO/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.cpp rename to ControllersTODO/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.cpp diff --git a/Controllers/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.h b/ControllersTODO/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.h rename to ControllersTODO/LianLiController/LianLiUniHubALController/RGBController_LianLiUniHubAL.h diff --git a/Controllers/LianLiController/LianLiUniHubController/LianLiUniHubController.cpp b/ControllersTODO/LianLiController/LianLiUniHubController/LianLiUniHubController.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubController/LianLiUniHubController.cpp rename to ControllersTODO/LianLiController/LianLiUniHubController/LianLiUniHubController.cpp diff --git a/Controllers/LianLiController/LianLiUniHubController/LianLiUniHubController.h b/ControllersTODO/LianLiController/LianLiUniHubController/LianLiUniHubController.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubController/LianLiUniHubController.h rename to ControllersTODO/LianLiController/LianLiUniHubController/LianLiUniHubController.h diff --git a/Controllers/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.cpp b/ControllersTODO/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.cpp rename to ControllersTODO/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.cpp diff --git a/Controllers/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.h b/ControllersTODO/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.h rename to ControllersTODO/LianLiController/LianLiUniHubController/RGBController_LianLiUniHub.h diff --git a/Controllers/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.cpp b/ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.cpp rename to ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.cpp diff --git a/Controllers/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.h b/ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.h rename to ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/LianLiUniHubSLInfinityController.h diff --git a/Controllers/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.cpp b/ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.cpp rename to ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.cpp diff --git a/Controllers/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.h b/ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.h rename to ControllersTODO/LianLiController/LianLiUniHubSLInfinityController/RGBController_LianLiUniHubSLInfinity.h diff --git a/Controllers/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.cpp b/ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.cpp rename to ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.cpp diff --git a/Controllers/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.h b/ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.h rename to ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/LianLiUniHubSLV2Controller.h diff --git a/Controllers/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.cpp b/ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.cpp rename to ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.cpp diff --git a/Controllers/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.h b/ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.h rename to ControllersTODO/LianLiController/LianLiUniHubSLV2Controller/RGBController_LianLiUniHubSLV2.h diff --git a/Controllers/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.cpp b/ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.cpp rename to ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.cpp diff --git a/Controllers/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.h b/ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.h rename to ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/LianLiUniHub_AL10Controller.h diff --git a/Controllers/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.cpp b/ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.cpp rename to ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.cpp diff --git a/Controllers/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.h b/ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.h similarity index 100% rename from Controllers/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.h rename to ControllersTODO/LianLiController/LianLiUniHub_AL10Controller/RGBController_LianLiUniHub_AL10.h diff --git a/Controllers/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.cpp b/ControllersTODO/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.cpp rename to ControllersTODO/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.cpp diff --git a/Controllers/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.h b/ControllersTODO/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.h similarity index 100% rename from Controllers/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.h rename to ControllersTODO/LianLiController/LianLiUniversalScreenController/LianLiUniversalScreenController.h diff --git a/Controllers/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.cpp b/ControllersTODO/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.cpp similarity index 100% rename from Controllers/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.cpp rename to ControllersTODO/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.cpp diff --git a/Controllers/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.h b/ControllersTODO/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.h similarity index 100% rename from Controllers/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.h rename to ControllersTODO/LianLiController/LianLiUniversalScreenController/RGBController_LianLiUniversalScreen.h diff --git a/Controllers/LogitechController/LogitechControllerDetect.cpp b/ControllersTODO/LogitechController/LogitechControllerDetect.cpp similarity index 100% rename from Controllers/LogitechController/LogitechControllerDetect.cpp rename to ControllersTODO/LogitechController/LogitechControllerDetect.cpp diff --git a/Controllers/LogitechController/LogitechG203LController/LogitechG203LController.cpp b/ControllersTODO/LogitechController/LogitechG203LController/LogitechG203LController.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG203LController/LogitechG203LController.cpp rename to ControllersTODO/LogitechController/LogitechG203LController/LogitechG203LController.cpp diff --git a/Controllers/LogitechController/LogitechG203LController/LogitechG203LController.h b/ControllersTODO/LogitechController/LogitechG203LController/LogitechG203LController.h similarity index 100% rename from Controllers/LogitechController/LogitechG203LController/LogitechG203LController.h rename to ControllersTODO/LogitechController/LogitechG203LController/LogitechG203LController.h diff --git a/Controllers/LogitechController/LogitechG203LController/RGBController_LogitechG203L.cpp b/ControllersTODO/LogitechController/LogitechG203LController/RGBController_LogitechG203L.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG203LController/RGBController_LogitechG203L.cpp rename to ControllersTODO/LogitechController/LogitechG203LController/RGBController_LogitechG203L.cpp diff --git a/Controllers/LogitechController/LogitechG203LController/RGBController_LogitechG203L.h b/ControllersTODO/LogitechController/LogitechG203LController/RGBController_LogitechG203L.h similarity index 100% rename from Controllers/LogitechController/LogitechG203LController/RGBController_LogitechG203L.h rename to ControllersTODO/LogitechController/LogitechG203LController/RGBController_LogitechG203L.h diff --git a/Controllers/LogitechController/LogitechG213Controller/LogitechG213Controller.cpp b/ControllersTODO/LogitechController/LogitechG213Controller/LogitechG213Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG213Controller/LogitechG213Controller.cpp rename to ControllersTODO/LogitechController/LogitechG213Controller/LogitechG213Controller.cpp diff --git a/Controllers/LogitechController/LogitechG213Controller/LogitechG213Controller.h b/ControllersTODO/LogitechController/LogitechG213Controller/LogitechG213Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG213Controller/LogitechG213Controller.h rename to ControllersTODO/LogitechController/LogitechG213Controller/LogitechG213Controller.h diff --git a/Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp b/ControllersTODO/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp rename to ControllersTODO/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp diff --git a/Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.h b/ControllersTODO/LogitechController/LogitechG213Controller/RGBController_LogitechG213.h similarity index 100% rename from Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.h rename to ControllersTODO/LogitechController/LogitechG213Controller/RGBController_LogitechG213.h diff --git a/Controllers/LogitechController/LogitechG560Controller/LogitechG560Controller.cpp b/ControllersTODO/LogitechController/LogitechG560Controller/LogitechG560Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG560Controller/LogitechG560Controller.cpp rename to ControllersTODO/LogitechController/LogitechG560Controller/LogitechG560Controller.cpp diff --git a/Controllers/LogitechController/LogitechG560Controller/LogitechG560Controller.h b/ControllersTODO/LogitechController/LogitechG560Controller/LogitechG560Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG560Controller/LogitechG560Controller.h rename to ControllersTODO/LogitechController/LogitechG560Controller/LogitechG560Controller.h diff --git a/Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp b/ControllersTODO/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp rename to ControllersTODO/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp diff --git a/Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.h b/ControllersTODO/LogitechController/LogitechG560Controller/RGBController_LogitechG560.h similarity index 100% rename from Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.h rename to ControllersTODO/LogitechController/LogitechG560Controller/RGBController_LogitechG560.h diff --git a/Controllers/LogitechController/LogitechG600Controller/LogitechG600Controller.cpp b/ControllersTODO/LogitechController/LogitechG600Controller/LogitechG600Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG600Controller/LogitechG600Controller.cpp rename to ControllersTODO/LogitechController/LogitechG600Controller/LogitechG600Controller.cpp diff --git a/Controllers/LogitechController/LogitechG600Controller/LogitechG600Controller.h b/ControllersTODO/LogitechController/LogitechG600Controller/LogitechG600Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG600Controller/LogitechG600Controller.h rename to ControllersTODO/LogitechController/LogitechG600Controller/LogitechG600Controller.h diff --git a/Controllers/LogitechController/LogitechG600Controller/RGBController_LogitechG600.cpp b/ControllersTODO/LogitechController/LogitechG600Controller/RGBController_LogitechG600.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG600Controller/RGBController_LogitechG600.cpp rename to ControllersTODO/LogitechController/LogitechG600Controller/RGBController_LogitechG600.cpp diff --git a/Controllers/LogitechController/LogitechG600Controller/RGBController_LogitechG600.h b/ControllersTODO/LogitechController/LogitechG600Controller/RGBController_LogitechG600.h similarity index 100% rename from Controllers/LogitechController/LogitechG600Controller/RGBController_LogitechG600.h rename to ControllersTODO/LogitechController/LogitechG600Controller/RGBController_LogitechG600.h diff --git a/Controllers/LogitechController/LogitechG810Controller/LogitechG810Controller.cpp b/ControllersTODO/LogitechController/LogitechG810Controller/LogitechG810Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG810Controller/LogitechG810Controller.cpp rename to ControllersTODO/LogitechController/LogitechG810Controller/LogitechG810Controller.cpp diff --git a/Controllers/LogitechController/LogitechG810Controller/LogitechG810Controller.h b/ControllersTODO/LogitechController/LogitechG810Controller/LogitechG810Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG810Controller/LogitechG810Controller.h rename to ControllersTODO/LogitechController/LogitechG810Controller/LogitechG810Controller.h diff --git a/Controllers/LogitechController/LogitechG810Controller/RGBController_LogitechG810.cpp b/ControllersTODO/LogitechController/LogitechG810Controller/RGBController_LogitechG810.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG810Controller/RGBController_LogitechG810.cpp rename to ControllersTODO/LogitechController/LogitechG810Controller/RGBController_LogitechG810.cpp diff --git a/Controllers/LogitechController/LogitechG810Controller/RGBController_LogitechG810.h b/ControllersTODO/LogitechController/LogitechG810Controller/RGBController_LogitechG810.h similarity index 100% rename from Controllers/LogitechController/LogitechG810Controller/RGBController_LogitechG810.h rename to ControllersTODO/LogitechController/LogitechG810Controller/RGBController_LogitechG810.h diff --git a/Controllers/LogitechController/LogitechG815Controller/LogitechG815Controller.cpp b/ControllersTODO/LogitechController/LogitechG815Controller/LogitechG815Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG815Controller/LogitechG815Controller.cpp rename to ControllersTODO/LogitechController/LogitechG815Controller/LogitechG815Controller.cpp diff --git a/Controllers/LogitechController/LogitechG815Controller/LogitechG815Controller.h b/ControllersTODO/LogitechController/LogitechG815Controller/LogitechG815Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG815Controller/LogitechG815Controller.h rename to ControllersTODO/LogitechController/LogitechG815Controller/LogitechG815Controller.h diff --git a/Controllers/LogitechController/LogitechG815Controller/RGBController_LogitechG815.cpp b/ControllersTODO/LogitechController/LogitechG815Controller/RGBController_LogitechG815.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG815Controller/RGBController_LogitechG815.cpp rename to ControllersTODO/LogitechController/LogitechG815Controller/RGBController_LogitechG815.cpp diff --git a/Controllers/LogitechController/LogitechG815Controller/RGBController_LogitechG815.h b/ControllersTODO/LogitechController/LogitechG815Controller/RGBController_LogitechG815.h similarity index 100% rename from Controllers/LogitechController/LogitechG815Controller/RGBController_LogitechG815.h rename to ControllersTODO/LogitechController/LogitechG815Controller/RGBController_LogitechG815.h diff --git a/Controllers/LogitechController/LogitechG910Controller/LogitechG910Controller.cpp b/ControllersTODO/LogitechController/LogitechG910Controller/LogitechG910Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG910Controller/LogitechG910Controller.cpp rename to ControllersTODO/LogitechController/LogitechG910Controller/LogitechG910Controller.cpp diff --git a/Controllers/LogitechController/LogitechG910Controller/LogitechG910Controller.h b/ControllersTODO/LogitechController/LogitechG910Controller/LogitechG910Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG910Controller/LogitechG910Controller.h rename to ControllersTODO/LogitechController/LogitechG910Controller/LogitechG910Controller.h diff --git a/Controllers/LogitechController/LogitechG910Controller/RGBController_LogitechG910.cpp b/ControllersTODO/LogitechController/LogitechG910Controller/RGBController_LogitechG910.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG910Controller/RGBController_LogitechG910.cpp rename to ControllersTODO/LogitechController/LogitechG910Controller/RGBController_LogitechG910.cpp diff --git a/Controllers/LogitechController/LogitechG910Controller/RGBController_LogitechG910.h b/ControllersTODO/LogitechController/LogitechG910Controller/RGBController_LogitechG910.h similarity index 100% rename from Controllers/LogitechController/LogitechG910Controller/RGBController_LogitechG910.h rename to ControllersTODO/LogitechController/LogitechG910Controller/RGBController_LogitechG910.h diff --git a/Controllers/LogitechController/LogitechG915Controller/LogitechG915Controller.cpp b/ControllersTODO/LogitechController/LogitechG915Controller/LogitechG915Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG915Controller/LogitechG915Controller.cpp rename to ControllersTODO/LogitechController/LogitechG915Controller/LogitechG915Controller.cpp diff --git a/Controllers/LogitechController/LogitechG915Controller/LogitechG915Controller.h b/ControllersTODO/LogitechController/LogitechG915Controller/LogitechG915Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG915Controller/LogitechG915Controller.h rename to ControllersTODO/LogitechController/LogitechG915Controller/LogitechG915Controller.h diff --git a/Controllers/LogitechController/LogitechG915Controller/RGBController_LogitechG915.cpp b/ControllersTODO/LogitechController/LogitechG915Controller/RGBController_LogitechG915.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG915Controller/RGBController_LogitechG915.cpp rename to ControllersTODO/LogitechController/LogitechG915Controller/RGBController_LogitechG915.cpp diff --git a/Controllers/LogitechController/LogitechG915Controller/RGBController_LogitechG915.h b/ControllersTODO/LogitechController/LogitechG915Controller/RGBController_LogitechG915.h similarity index 100% rename from Controllers/LogitechController/LogitechG915Controller/RGBController_LogitechG915.h rename to ControllersTODO/LogitechController/LogitechG915Controller/RGBController_LogitechG915.h diff --git a/Controllers/LogitechController/LogitechG933Controller/LogitechG933Controller.cpp b/ControllersTODO/LogitechController/LogitechG933Controller/LogitechG933Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG933Controller/LogitechG933Controller.cpp rename to ControllersTODO/LogitechController/LogitechG933Controller/LogitechG933Controller.cpp diff --git a/Controllers/LogitechController/LogitechG933Controller/LogitechG933Controller.h b/ControllersTODO/LogitechController/LogitechG933Controller/LogitechG933Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechG933Controller/LogitechG933Controller.h rename to ControllersTODO/LogitechController/LogitechG933Controller/LogitechG933Controller.h diff --git a/Controllers/LogitechController/LogitechG933Controller/RGBController_LogitechG933.cpp b/ControllersTODO/LogitechController/LogitechG933Controller/RGBController_LogitechG933.cpp similarity index 100% rename from Controllers/LogitechController/LogitechG933Controller/RGBController_LogitechG933.cpp rename to ControllersTODO/LogitechController/LogitechG933Controller/RGBController_LogitechG933.cpp diff --git a/Controllers/LogitechController/LogitechG933Controller/RGBController_LogitechG933.h b/ControllersTODO/LogitechController/LogitechG933Controller/RGBController_LogitechG933.h similarity index 100% rename from Controllers/LogitechController/LogitechG933Controller/RGBController_LogitechG933.h rename to ControllersTODO/LogitechController/LogitechG933Controller/RGBController_LogitechG933.h diff --git a/Controllers/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.cpp b/ControllersTODO/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.cpp similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.cpp rename to ControllersTODO/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.cpp diff --git a/Controllers/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.h b/ControllersTODO/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.h similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.h rename to ControllersTODO/LogitechController/LogitechGLightsyncController/LogitechGLightsyncController.h diff --git a/Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.cpp b/ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.cpp similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.cpp rename to ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.cpp diff --git a/Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.h b/ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.h similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.h rename to ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync.h diff --git a/Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.cpp b/ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.cpp similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.cpp rename to ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.cpp diff --git a/Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.h b/ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.h similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.h rename to ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGLightsync1zone.h diff --git a/Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.cpp b/ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.cpp similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.cpp rename to ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.cpp diff --git a/Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.h b/ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.h similarity index 100% rename from Controllers/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.h rename to ControllersTODO/LogitechController/LogitechGLightsyncController/RGBController_LogitechGPowerPlay.h diff --git a/Controllers/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.cpp b/ControllersTODO/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.cpp similarity index 100% rename from Controllers/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.cpp rename to ControllersTODO/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.cpp diff --git a/Controllers/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.h b/ControllersTODO/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.h similarity index 100% rename from Controllers/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.h rename to ControllersTODO/LogitechController/LogitechGProKeyboardController/LogitechGProKeyboardController.h diff --git a/Controllers/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.cpp b/ControllersTODO/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.cpp similarity index 100% rename from Controllers/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.cpp rename to ControllersTODO/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.cpp diff --git a/Controllers/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.h b/ControllersTODO/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.h similarity index 100% rename from Controllers/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.h rename to ControllersTODO/LogitechController/LogitechGProKeyboardController/RGBController_LogitechGProKeyboard.h diff --git a/Controllers/LogitechController/LogitechLightspeedController/LogitechLightspeedController.cpp b/ControllersTODO/LogitechController/LogitechLightspeedController/LogitechLightspeedController.cpp similarity index 100% rename from Controllers/LogitechController/LogitechLightspeedController/LogitechLightspeedController.cpp rename to ControllersTODO/LogitechController/LogitechLightspeedController/LogitechLightspeedController.cpp diff --git a/Controllers/LogitechController/LogitechLightspeedController/LogitechLightspeedController.h b/ControllersTODO/LogitechController/LogitechLightspeedController/LogitechLightspeedController.h similarity index 100% rename from Controllers/LogitechController/LogitechLightspeedController/LogitechLightspeedController.h rename to ControllersTODO/LogitechController/LogitechLightspeedController/LogitechLightspeedController.h diff --git a/Controllers/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.cpp b/ControllersTODO/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.cpp similarity index 100% rename from Controllers/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.cpp rename to ControllersTODO/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.cpp diff --git a/Controllers/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.h b/ControllersTODO/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.h similarity index 100% rename from Controllers/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.h rename to ControllersTODO/LogitechController/LogitechLightspeedController/RGBController_LogitechLightspeed.h diff --git a/Controllers/LogitechController/LogitechProtocolCommon.cpp b/ControllersTODO/LogitechController/LogitechProtocolCommon.cpp similarity index 100% rename from Controllers/LogitechController/LogitechProtocolCommon.cpp rename to ControllersTODO/LogitechController/LogitechProtocolCommon.cpp diff --git a/Controllers/LogitechController/LogitechProtocolCommon.h b/ControllersTODO/LogitechController/LogitechProtocolCommon.h similarity index 100% rename from Controllers/LogitechController/LogitechProtocolCommon.h rename to ControllersTODO/LogitechController/LogitechProtocolCommon.h diff --git a/Controllers/LogitechController/LogitechX56Controller/LogitechX56Controller.cpp b/ControllersTODO/LogitechController/LogitechX56Controller/LogitechX56Controller.cpp similarity index 100% rename from Controllers/LogitechController/LogitechX56Controller/LogitechX56Controller.cpp rename to ControllersTODO/LogitechController/LogitechX56Controller/LogitechX56Controller.cpp diff --git a/Controllers/LogitechController/LogitechX56Controller/LogitechX56Controller.h b/ControllersTODO/LogitechController/LogitechX56Controller/LogitechX56Controller.h similarity index 100% rename from Controllers/LogitechController/LogitechX56Controller/LogitechX56Controller.h rename to ControllersTODO/LogitechController/LogitechX56Controller/LogitechX56Controller.h diff --git a/Controllers/LogitechController/LogitechX56Controller/RGBController_LogitechX56.cpp b/ControllersTODO/LogitechController/LogitechX56Controller/RGBController_LogitechX56.cpp similarity index 100% rename from Controllers/LogitechController/LogitechX56Controller/RGBController_LogitechX56.cpp rename to ControllersTODO/LogitechController/LogitechX56Controller/RGBController_LogitechX56.cpp diff --git a/Controllers/LogitechController/LogitechX56Controller/RGBController_LogitechX56.h b/ControllersTODO/LogitechController/LogitechX56Controller/RGBController_LogitechX56.h similarity index 100% rename from Controllers/LogitechController/LogitechX56Controller/RGBController_LogitechX56.h rename to ControllersTODO/LogitechController/LogitechX56Controller/RGBController_LogitechX56.h diff --git a/Controllers/RoccatController/RoccatBurstController/RGBController_RoccatBurst.cpp b/ControllersTODO/RoccatController/RoccatBurstController/RGBController_RoccatBurst.cpp similarity index 100% rename from Controllers/RoccatController/RoccatBurstController/RGBController_RoccatBurst.cpp rename to ControllersTODO/RoccatController/RoccatBurstController/RGBController_RoccatBurst.cpp diff --git a/Controllers/RoccatController/RoccatBurstController/RGBController_RoccatBurst.h b/ControllersTODO/RoccatController/RoccatBurstController/RGBController_RoccatBurst.h similarity index 100% rename from Controllers/RoccatController/RoccatBurstController/RGBController_RoccatBurst.h rename to ControllersTODO/RoccatController/RoccatBurstController/RGBController_RoccatBurst.h diff --git a/Controllers/RoccatController/RoccatBurstController/RoccatBurstController.cpp b/ControllersTODO/RoccatController/RoccatBurstController/RoccatBurstController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatBurstController/RoccatBurstController.cpp rename to ControllersTODO/RoccatController/RoccatBurstController/RoccatBurstController.cpp diff --git a/Controllers/RoccatController/RoccatBurstController/RoccatBurstController.h b/ControllersTODO/RoccatController/RoccatBurstController/RoccatBurstController.h similarity index 100% rename from Controllers/RoccatController/RoccatBurstController/RoccatBurstController.h rename to ControllersTODO/RoccatController/RoccatBurstController/RoccatBurstController.h diff --git a/Controllers/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.cpp b/ControllersTODO/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.cpp similarity index 100% rename from Controllers/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.cpp rename to ControllersTODO/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.cpp diff --git a/Controllers/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.h b/ControllersTODO/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.h similarity index 100% rename from Controllers/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.h rename to ControllersTODO/RoccatController/RoccatBurstProAirController/RGBController_RoccatBurstProAir.h diff --git a/Controllers/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.cpp b/ControllersTODO/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.cpp rename to ControllersTODO/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.cpp diff --git a/Controllers/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.h b/ControllersTODO/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.h similarity index 100% rename from Controllers/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.h rename to ControllersTODO/RoccatController/RoccatBurstProAirController/RoccatBurstProAirController.h diff --git a/Controllers/RoccatController/RoccatControllerDetect.cpp b/ControllersTODO/RoccatController/RoccatControllerDetect.cpp similarity index 100% rename from Controllers/RoccatController/RoccatControllerDetect.cpp rename to ControllersTODO/RoccatController/RoccatControllerDetect.cpp diff --git a/Controllers/RoccatController/RoccatEloController/RGBController_RoccatElo.cpp b/ControllersTODO/RoccatController/RoccatEloController/RGBController_RoccatElo.cpp similarity index 100% rename from Controllers/RoccatController/RoccatEloController/RGBController_RoccatElo.cpp rename to ControllersTODO/RoccatController/RoccatEloController/RGBController_RoccatElo.cpp diff --git a/Controllers/RoccatController/RoccatEloController/RGBController_RoccatElo.h b/ControllersTODO/RoccatController/RoccatEloController/RGBController_RoccatElo.h similarity index 100% rename from Controllers/RoccatController/RoccatEloController/RGBController_RoccatElo.h rename to ControllersTODO/RoccatController/RoccatEloController/RGBController_RoccatElo.h diff --git a/Controllers/RoccatController/RoccatEloController/RoccatEloController.cpp b/ControllersTODO/RoccatController/RoccatEloController/RoccatEloController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatEloController/RoccatEloController.cpp rename to ControllersTODO/RoccatController/RoccatEloController/RoccatEloController.cpp diff --git a/Controllers/RoccatController/RoccatEloController/RoccatEloController.h b/ControllersTODO/RoccatController/RoccatEloController/RoccatEloController.h similarity index 100% rename from Controllers/RoccatController/RoccatEloController/RoccatEloController.h rename to ControllersTODO/RoccatController/RoccatEloController/RoccatEloController.h diff --git a/Controllers/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.cpp b/ControllersTODO/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.cpp similarity index 100% rename from Controllers/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.cpp rename to ControllersTODO/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.cpp diff --git a/Controllers/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.h b/ControllersTODO/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.h similarity index 100% rename from Controllers/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.h rename to ControllersTODO/RoccatController/RoccatHordeAimoController/RGBController_RoccatHordeAimo.h diff --git a/Controllers/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.cpp b/ControllersTODO/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.cpp rename to ControllersTODO/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.cpp diff --git a/Controllers/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.h b/ControllersTODO/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.h similarity index 100% rename from Controllers/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.h rename to ControllersTODO/RoccatController/RoccatHordeAimoController/RoccatHordeAimoController.h diff --git a/Controllers/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.cpp b/ControllersTODO/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.cpp rename to ControllersTODO/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.cpp diff --git a/Controllers/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.h b/ControllersTODO/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.h rename to ControllersTODO/RoccatController/RoccatKoneAimoController/RGBController_RoccatKoneAimo.h diff --git a/Controllers/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.cpp b/ControllersTODO/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.cpp rename to ControllersTODO/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.cpp diff --git a/Controllers/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.h b/ControllersTODO/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.h rename to ControllersTODO/RoccatController/RoccatKoneAimoController/RoccatKoneAimoController.h diff --git a/Controllers/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.cpp b/ControllersTODO/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.cpp rename to ControllersTODO/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.cpp diff --git a/Controllers/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.h b/ControllersTODO/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.h rename to ControllersTODO/RoccatController/RoccatKoneProAirController/RGBController_RoccatKoneProAir.h diff --git a/Controllers/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.cpp b/ControllersTODO/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.cpp rename to ControllersTODO/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.cpp diff --git a/Controllers/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.h b/ControllersTODO/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.h rename to ControllersTODO/RoccatController/RoccatKoneProAirController/RoccatKoneProAirController.h diff --git a/Controllers/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.cpp b/ControllersTODO/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.cpp rename to ControllersTODO/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.cpp diff --git a/Controllers/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.h b/ControllersTODO/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.h rename to ControllersTODO/RoccatController/RoccatKoneProController/RGBController_RoccatKonePro.h diff --git a/Controllers/RoccatController/RoccatKoneProController/RoccatKoneProController.cpp b/ControllersTODO/RoccatController/RoccatKoneProController/RoccatKoneProController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneProController/RoccatKoneProController.cpp rename to ControllersTODO/RoccatController/RoccatKoneProController/RoccatKoneProController.cpp diff --git a/Controllers/RoccatController/RoccatKoneProController/RoccatKoneProController.h b/ControllersTODO/RoccatController/RoccatKoneProController/RoccatKoneProController.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneProController/RoccatKoneProController.h rename to ControllersTODO/RoccatController/RoccatKoneProController/RoccatKoneProController.h diff --git a/Controllers/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.cpp b/ControllersTODO/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.cpp rename to ControllersTODO/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.cpp diff --git a/Controllers/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.h b/ControllersTODO/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.h rename to ControllersTODO/RoccatController/RoccatKoneXPController/RGBController_RoccatKoneXP.h diff --git a/Controllers/RoccatController/RoccatKoneXPController/RoccatKoneXPController.cpp b/ControllersTODO/RoccatController/RoccatKoneXPController/RoccatKoneXPController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKoneXPController/RoccatKoneXPController.cpp rename to ControllersTODO/RoccatController/RoccatKoneXPController/RoccatKoneXPController.cpp diff --git a/Controllers/RoccatController/RoccatKoneXPController/RoccatKoneXPController.h b/ControllersTODO/RoccatController/RoccatKoneXPController/RoccatKoneXPController.h similarity index 100% rename from Controllers/RoccatController/RoccatKoneXPController/RoccatKoneXPController.h rename to ControllersTODO/RoccatController/RoccatKoneXPController/RoccatKoneXPController.h diff --git a/Controllers/RoccatController/RoccatKovaController/RGBController_RoccatKova.cpp b/ControllersTODO/RoccatController/RoccatKovaController/RGBController_RoccatKova.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKovaController/RGBController_RoccatKova.cpp rename to ControllersTODO/RoccatController/RoccatKovaController/RGBController_RoccatKova.cpp diff --git a/Controllers/RoccatController/RoccatKovaController/RGBController_RoccatKova.h b/ControllersTODO/RoccatController/RoccatKovaController/RGBController_RoccatKova.h similarity index 100% rename from Controllers/RoccatController/RoccatKovaController/RGBController_RoccatKova.h rename to ControllersTODO/RoccatController/RoccatKovaController/RGBController_RoccatKova.h diff --git a/Controllers/RoccatController/RoccatKovaController/RoccatKovaController.cpp b/ControllersTODO/RoccatController/RoccatKovaController/RoccatKovaController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatKovaController/RoccatKovaController.cpp rename to ControllersTODO/RoccatController/RoccatKovaController/RoccatKovaController.cpp diff --git a/Controllers/RoccatController/RoccatKovaController/RoccatKovaController.h b/ControllersTODO/RoccatController/RoccatKovaController/RoccatKovaController.h similarity index 100% rename from Controllers/RoccatController/RoccatKovaController/RoccatKovaController.h rename to ControllersTODO/RoccatController/RoccatKovaController/RoccatKovaController.h diff --git a/Controllers/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.cpp b/ControllersTODO/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.cpp similarity index 100% rename from Controllers/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.cpp rename to ControllersTODO/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.cpp diff --git a/Controllers/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.h b/ControllersTODO/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.h similarity index 100% rename from Controllers/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.h rename to ControllersTODO/RoccatController/RoccatSenseAimoController/RGBController_RoccatSenseAimo.h diff --git a/Controllers/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.cpp b/ControllersTODO/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.cpp rename to ControllersTODO/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.cpp diff --git a/Controllers/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.h b/ControllersTODO/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.h similarity index 100% rename from Controllers/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.h rename to ControllersTODO/RoccatController/RoccatSenseAimoController/RoccatSenseAimoController.h diff --git a/Controllers/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.cpp b/ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.cpp similarity index 100% rename from Controllers/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.cpp rename to ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.cpp diff --git a/Controllers/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.h b/ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.h similarity index 100% rename from Controllers/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.h rename to ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.h diff --git a/Controllers/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.cpp b/ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.cpp similarity index 100% rename from Controllers/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.cpp rename to ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.cpp diff --git a/Controllers/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.h b/ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.h similarity index 100% rename from Controllers/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.h rename to ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardController.h diff --git a/Controllers/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardLayouts.h b/ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardLayouts.h similarity index 100% rename from Controllers/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardLayouts.h rename to ControllersTODO/RoccatController/RoccatVulcanKeyboardController/RoccatVulcanKeyboardLayouts.h diff --git a/Controllers/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.cpp b/ControllersTODO/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.cpp similarity index 100% rename from Controllers/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.cpp rename to ControllersTODO/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.cpp diff --git a/Controllers/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.h b/ControllersTODO/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.h similarity index 100% rename from Controllers/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.h rename to ControllersTODO/SinowealthController/GenesisXenon200Controller/GenesisXenon200Controller.h diff --git a/Controllers/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.cpp b/ControllersTODO/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.cpp similarity index 100% rename from Controllers/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.cpp rename to ControllersTODO/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.cpp diff --git a/Controllers/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.h b/ControllersTODO/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.h similarity index 100% rename from Controllers/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.h rename to ControllersTODO/SinowealthController/GenesisXenon200Controller/RGBController_GenesisXenon200.h diff --git a/Controllers/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.cpp b/ControllersTODO/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.cpp similarity index 100% rename from Controllers/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.cpp rename to ControllersTODO/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.cpp diff --git a/Controllers/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.h b/ControllersTODO/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.h similarity index 100% rename from Controllers/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.h rename to ControllersTODO/SinowealthController/Sinowealth1007Controller/RGBController_Sinowealth1007.h diff --git a/Controllers/SinowealthController/Sinowealth1007Controller/SinowealthController1007.cpp b/ControllersTODO/SinowealthController/Sinowealth1007Controller/SinowealthController1007.cpp similarity index 100% rename from Controllers/SinowealthController/Sinowealth1007Controller/SinowealthController1007.cpp rename to ControllersTODO/SinowealthController/Sinowealth1007Controller/SinowealthController1007.cpp diff --git a/Controllers/SinowealthController/Sinowealth1007Controller/SinowealthController1007.h b/ControllersTODO/SinowealthController/Sinowealth1007Controller/SinowealthController1007.h similarity index 100% rename from Controllers/SinowealthController/Sinowealth1007Controller/SinowealthController1007.h rename to ControllersTODO/SinowealthController/Sinowealth1007Controller/SinowealthController1007.h diff --git a/Controllers/SinowealthController/SinowealthController/RGBController_Sinowealth.cpp b/ControllersTODO/SinowealthController/SinowealthController/RGBController_Sinowealth.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthController/RGBController_Sinowealth.cpp rename to ControllersTODO/SinowealthController/SinowealthController/RGBController_Sinowealth.cpp diff --git a/Controllers/SinowealthController/SinowealthController/RGBController_Sinowealth.h b/ControllersTODO/SinowealthController/SinowealthController/RGBController_Sinowealth.h similarity index 100% rename from Controllers/SinowealthController/SinowealthController/RGBController_Sinowealth.h rename to ControllersTODO/SinowealthController/SinowealthController/RGBController_Sinowealth.h diff --git a/Controllers/SinowealthController/SinowealthController/SinowealthController.cpp b/ControllersTODO/SinowealthController/SinowealthController/SinowealthController.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthController/SinowealthController.cpp rename to ControllersTODO/SinowealthController/SinowealthController/SinowealthController.cpp diff --git a/Controllers/SinowealthController/SinowealthController/SinowealthController.h b/ControllersTODO/SinowealthController/SinowealthController/SinowealthController.h similarity index 100% rename from Controllers/SinowealthController/SinowealthController/SinowealthController.h rename to ControllersTODO/SinowealthController/SinowealthController/SinowealthController.h diff --git a/Controllers/SinowealthController/SinowealthControllerDetect.cpp b/ControllersTODO/SinowealthController/SinowealthControllerDetect.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthControllerDetect.cpp rename to ControllersTODO/SinowealthController/SinowealthControllerDetect.cpp diff --git a/Controllers/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.cpp b/ControllersTODO/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.cpp rename to ControllersTODO/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.cpp diff --git a/Controllers/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.h b/ControllersTODO/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.h similarity index 100% rename from Controllers/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.h rename to ControllersTODO/SinowealthController/SinowealthGMOWController/RGBController_SinowealthGMOW.h diff --git a/Controllers/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.cpp b/ControllersTODO/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.cpp rename to ControllersTODO/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.cpp diff --git a/Controllers/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.h b/ControllersTODO/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.h similarity index 100% rename from Controllers/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.h rename to ControllersTODO/SinowealthController/SinowealthGMOWController/SinowealthGMOWController.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.h b/ControllersTODO/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard10cController/RGBController_SinowealthKeyboard10c.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.h b/ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cController.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.h b/ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard10cController/SinowealthKeyboard10cDevices.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.h b/ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/RGBController_SinowealthKeyboard16.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.h b/ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard16Controller/SinowealthKeyboard16Controller.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.h b/ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/RGBController_SinowealthKeyboard90.h diff --git a/Controllers/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.h b/ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.h rename to ControllersTODO/SinowealthController/SinowealthKeyboard90Controller/SinowealthKeyboard90Controller.h diff --git a/Controllers/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.h b/ControllersTODO/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.h rename to ControllersTODO/SinowealthController/SinowealthKeyboardController/RGBController_SinowealthKeyboard.h diff --git a/Controllers/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.cpp b/ControllersTODO/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.cpp similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.cpp rename to ControllersTODO/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.cpp diff --git a/Controllers/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.h b/ControllersTODO/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.h similarity index 100% rename from Controllers/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.h rename to ControllersTODO/SinowealthController/SinowealthKeyboardController/SinowealthKeyboardController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.h b/ControllersTODO/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.h rename to ControllersTODO/SteelSeriesController/SteelSeriesAerox3Controller/SteelSeriesAerox3Controller.h diff --git a/Controllers/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.h b/ControllersTODO/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.h rename to ControllersTODO/SteelSeriesController/SteelSeriesAerox5Controller/SteelSeriesAerox5Controller.h diff --git a/Controllers/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.h b/ControllersTODO/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesAeroxWirelessController/SteelSeriesAeroxWirelessController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.h b/ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/RGBController_SteelSeriesApex3.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.h b/ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApex3Controller/SteelSeriesApex3Controller.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.h b/ControllersTODO/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApex8ZoneController/SteelSeriesApex8ZoneController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.h b/ControllersTODO/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApex9Controller/SteelSeriesApex9Controller.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApexBaseController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApexBaseController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexBaseController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApexBaseController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApexBaseController.h b/ControllersTODO/SteelSeriesController/SteelSeriesApexBaseController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexBaseController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApexBaseController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.h b/ControllersTODO/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApexController/RGBController_SteelSeriesApex.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.h b/ControllersTODO/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApexController/SteelSeriesApexController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.h b/ControllersTODO/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApexMController/SteelSeriesApexMController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApexRegions.h b/ControllersTODO/SteelSeriesController/SteelSeriesApexRegions.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexRegions.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApexRegions.h diff --git a/Controllers/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.h b/ControllersTODO/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesApexTZoneController/SteelSeriesApexTZoneController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.h b/ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.h rename to ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/RGBController_SteelSeriesArctis5.h diff --git a/Controllers/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.h b/ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.h rename to ControllersTODO/SteelSeriesController/SteelSeriesArctis5Controller/SteelSeriesArctis5Controller.h diff --git a/Controllers/SteelSeriesController/SteelSeriesControllerDetect.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesControllerDetect.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesControllerDetect.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesControllerDetect.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesGeneric.h b/ControllersTODO/SteelSeriesController/SteelSeriesGeneric.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesGeneric.h rename to ControllersTODO/SteelSeriesController/SteelSeriesGeneric.h diff --git a/Controllers/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.h b/ControllersTODO/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesMouseController/SteelSeriesMouseController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.h b/ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.h rename to ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/RGBController_SteelSeriesOldApex.h diff --git a/Controllers/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.h b/ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesOldApexController/SteelSeriesOldApexController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.h b/ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.h rename to ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/RGBController_SteelSeriesQCKMat.h diff --git a/Controllers/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.h b/ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesQCKMatController/SteelSeriesQCKMatController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.h b/ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.h rename to ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/RGBController_SteelSeriesRival3.h diff --git a/Controllers/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.h b/ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.h rename to ControllersTODO/SteelSeriesController/SteelSeriesRival3Controller/SteelSeriesRival3Controller.h diff --git a/Controllers/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.h b/ControllersTODO/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.h rename to ControllersTODO/SteelSeriesController/SteelSeriesRivalController/RGBController_SteelSeriesRival.h diff --git a/Controllers/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.h b/ControllersTODO/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesRivalController/SteelSeriesRivalController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.h b/ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.h rename to ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/RGBController_SteelSeriesSensei.h diff --git a/Controllers/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.h b/ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesSenseiController/SteelSeriesSenseiController.h diff --git a/Controllers/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.h b/ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.h rename to ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/RGBController_SteelSeriesSiberia.h diff --git a/Controllers/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.cpp b/ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.cpp similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.cpp rename to ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.cpp diff --git a/Controllers/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.h b/ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.h similarity index 100% rename from Controllers/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.h rename to ControllersTODO/SteelSeriesController/SteelSeriesSiberiaController/SteelSeriesSiberiaController.h diff --git a/Controllers/SteelSeriesController/color32.h b/ControllersTODO/SteelSeriesController/color32.h similarity index 100% rename from Controllers/SteelSeriesController/color32.h rename to ControllersTODO/SteelSeriesController/color32.h diff --git a/DetectionManager.cpp b/DetectionManager.cpp index 478a5c630..138cc3cf9 100644 --- a/DetectionManager.cpp +++ b/DetectionManager.cpp @@ -155,7 +155,7 @@ DetectionManager::~DetectionManager() /*-----------------------------------------------------*\ | Exit HID in background thread | \*-----------------------------------------------------*/ - RunInBackgroundThread(std::bind(&DetectionManager::BackgroundHidExit, this)); + RunInBackgroundThread(std::bind(&DetectionManager::BackgroundHIDExit, this)); /*-----------------------------------------------------*\ | Mark the background detection thread as not running | @@ -622,7 +622,7 @@ void DetectionManager::BackgroundDetectDevices() | Also initialize HID on first detection, as this | | must be called from the background thread | \*-------------------------------------------------*/ - BackgroundHidInit(); + BackgroundHIDInit(); initial_detection = false; } @@ -936,7 +936,13 @@ void DetectionManager::BackgroundDetectI2CDRAMDevices(json detector_settings) SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); std::vector matching_slots = slots_with_jedec(slots, i2c_dram_device_detectors[i2c_detector_idx].jedec_id); - i2c_dram_device_detectors[i2c_detector_idx].function(i2c_buses[bus], matching_slots, i2c_dram_device_detectors[i2c_detector_idx].name); + + DetectedControllers detected_controllers = i2c_dram_device_detectors[i2c_detector_idx].function(i2c_buses[bus], matching_slots, i2c_dram_device_detectors[i2c_detector_idx].name); + + for(std::size_t detected_controller_idx = 0; detected_controller_idx < detected_controllers.size(); detected_controller_idx++) + { + RegisterRGBController(detected_controllers[detected_controller_idx]); + } } LOG_TRACE("[%s] %s detection end", DETECTIONMANAGER, detection_string.c_str()); @@ -987,7 +993,12 @@ void DetectionManager::BackgroundDetectI2CPCIDevices(json detector_settings) i2c_buses[bus]->pci_subsystem_vendor == i2c_pci_device_detectors[i2c_detector_idx].subven_id && i2c_buses[bus]->pci_subsystem_device == i2c_pci_device_detectors[i2c_detector_idx].subdev_id) { - i2c_pci_device_detectors[i2c_detector_idx].function(i2c_buses[bus], i2c_pci_device_detectors[i2c_detector_idx].i2c_addr, i2c_pci_device_detectors[i2c_detector_idx].name); + DetectedControllers detected_controllers = i2c_pci_device_detectors[i2c_detector_idx].function(i2c_buses[bus], i2c_pci_device_detectors[i2c_detector_idx].i2c_addr, i2c_pci_device_detectors[i2c_detector_idx].name); + + for(std::size_t detected_controller_idx = 0; detected_controller_idx < detected_controllers.size(); detected_controller_idx++) + { + RegisterRGBController(detected_controllers[detected_controller_idx]); + } } } } @@ -1020,86 +1031,8 @@ void DetectionManager::BackgroundDetectHIDDevices(hid_device_info* hid_devices, while(current_hid_device) { - if(LogManager::get()->getLoglevel() >= LL_DEBUG) - { - const char* manu_name = StringUtils::wchar_to_char(current_hid_device->manufacturer_string); - const char* prod_name = StringUtils::wchar_to_char(current_hid_device->product_string); - - LOG_DEBUG("[%s] %04X:%04X U=%04X P=0x%04X I=%d - %-25s - %s", DETECTIONMANAGER, current_hid_device->vendor_id, current_hid_device->product_id, current_hid_device->usage, current_hid_device->usage_page, current_hid_device->interface_number, manu_name, prod_name); - } - - detection_string = ""; - - SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - - /*-------------------------------------------------*\ - | Loop through all available detectors. If all | - | required information matches, run the detector | - \*-------------------------------------------------*/ - for(unsigned int hid_detector_idx = 0; hid_detector_idx < (unsigned int)hid_device_detectors.size() && detection_in_progress.load(); hid_detector_idx++) - { - HIDDeviceDetectorBlock & detector = hid_device_detectors[hid_detector_idx]; - - if(detector.compare(current_hid_device)) - { - detection_string = detector.name.c_str(); - - /*-----------------------------------------*\ - | Check if this detector is enabled or | - | needs to be added to the settings list | - \*-----------------------------------------*/ - bool this_device_enabled = true; - - if(detector_settings.contains("detectors") && detector_settings["detectors"].contains(detection_string)) - { - this_device_enabled = detector_settings["detectors"][detection_string]; - } - - LOG_DEBUG("[%s] %s is %s", DETECTIONMANAGER, detection_string.c_str(), ((this_device_enabled == true) ? "enabled" : "disabled")); - - if(this_device_enabled) - { - SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - - detector.function(current_hid_device, hid_device_detectors[hid_detector_idx].name); - } - } - } - - /*-------------------------------------------------*\ - | Loop through all available wrapped HID detectors. | - | If all required information matches, run the | - | detector | - \*-------------------------------------------------*/ - for(unsigned int hid_detector_idx = 0; hid_detector_idx < (unsigned int)hid_wrapped_device_detectors.size() && detection_in_progress.load(); hid_detector_idx++) - { - HIDWrappedDeviceDetectorBlock & detector = hid_wrapped_device_detectors[hid_detector_idx]; - - if(detector.compare(current_hid_device)) - { - detection_string = detector.name.c_str(); - - /*-----------------------------------------*\ - | Check if this detector is enabled or | - | needs to be added to the settings list | - \*-----------------------------------------*/ - bool this_device_enabled = true; - - if(detector_settings.contains("detectors") && detector_settings["detectors"].contains(detection_string)) - { - this_device_enabled = detector_settings["detectors"][detection_string]; - } - - LOG_DEBUG("[%s] %s is %s", DETECTIONMANAGER, detection_string.c_str(), ((this_device_enabled == true) ? "enabled" : "disabled")); - - if(this_device_enabled) - { - SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - - detector.function(default_hidapi_wrapper, current_hid_device, hid_wrapped_device_detectors[hid_detector_idx].name); - } - } - } + RunHIDDetector(current_hid_device, detector_settings); + RunHIDWrappedDetector(&default_hidapi_wrapper, current_hid_device, detector_settings); /*-------------------------------------------------*\ | Update detection percent | @@ -1167,8 +1100,12 @@ void DetectionManager::BackgroundDetectHIDDevicesSafe(json detector_settings) { SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - detector.function(current_hid_device, hid_device_detectors[hid_detector_idx].name); + DetectedControllers detected_controllers = detector.function(current_hid_device, hid_device_detectors[hid_detector_idx].name); + for(std::size_t detected_controller_idx = 0; detected_controller_idx < detected_controllers.size(); detected_controller_idx++) + { + RegisterRGBController(detected_controllers[detected_controller_idx]); + } LOG_TRACE("[%s] %s detection end", DETECTIONMANAGER, detection_string.c_str()); } } @@ -1234,52 +1171,7 @@ void DetectionManager::BackgroundDetectHIDDevicesWrapped(hid_device_info* hid_de while(current_hid_device) { - if(LogManager::get()->getLoglevel() >= LL_DEBUG) - { - const char* manu_name = StringUtils::wchar_to_char(current_hid_device->manufacturer_string); - const char* prod_name = StringUtils::wchar_to_char(current_hid_device->product_string); - - LOG_DEBUG("[%s] %04X:%04X U=%04X P=0x%04X I=%d - %-25s - %s", DETECTIONMANAGER, current_hid_device->vendor_id, current_hid_device->product_id, current_hid_device->usage, current_hid_device->usage_page, current_hid_device->interface_number, manu_name, prod_name); - } - - detection_string = ""; - - SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - - /*---------------------------------------------*\ - | Loop through all available wrapped HID | - | detectors. If all required information | - | matches, run the detector | - \*---------------------------------------------*/ - for(unsigned int hid_detector_idx = 0; hid_detector_idx < (unsigned int)hid_wrapped_device_detectors.size() && detection_in_progress.load(); hid_detector_idx++) - { - HIDWrappedDeviceDetectorBlock & detector = hid_wrapped_device_detectors[hid_detector_idx]; - - if(detector.compare(current_hid_device)) - { - detection_string = detector.name.c_str(); - - /*-------------------------------------*\ - | Check if this detector is enabled or | - | needs to be added to the settings list| - \*-------------------------------------*/ - bool this_device_enabled = true; - - if(detector_settings.contains("detectors") && detector_settings["detectors"].contains(detection_string)) - { - this_device_enabled = detector_settings["detectors"][detection_string]; - } - - LOG_DEBUG("[%s] %s is %s", DETECTIONMANAGER, detection_string.c_str(), ((this_device_enabled == true) ? "enabled" : "disabled")); - - if(this_device_enabled) - { - SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - - detector.function(wrapper, current_hid_device, detector.name); - } - } - } + RunHIDWrappedDetector(&wrapper, current_hid_device, detector_settings); /*---------------------------------------------*\ | Update detection percent | @@ -1329,7 +1221,12 @@ void DetectionManager::BackgroundDetectOtherDevices(json detector_settings) { SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); - device_detectors[detector_idx](); + DetectedControllers detected_controllers = device_detectors[detector_idx](); + + for(std::size_t detected_controller_idx = 0; detected_controller_idx < detected_controllers.size(); detected_controller_idx++) + { + RegisterRGBController(detected_controllers[detected_controller_idx]); + } } LOG_TRACE("[%s] %s detection end", DETECTIONMANAGER, detection_string.c_str()); @@ -1347,7 +1244,7 @@ void DetectionManager::BackgroundDetectOtherDevices(json detector_settings) } } -void DetectionManager::BackgroundHidExit() +void DetectionManager::BackgroundHIDExit() { /*-----------------------------------------------------*\ | Exit HID interface | @@ -1357,7 +1254,7 @@ void DetectionManager::BackgroundHidExit() LOG_DEBUG("[%s] Exiting HID interface: %s", DETECTIONMANAGER, ((hid_status == 0) ? "Success" : "Failed")); } -void DetectionManager::BackgroundHidInit() +void DetectionManager::BackgroundHIDInit() { /*-----------------------------------------------------*\ | Initialize HID interface | @@ -1367,6 +1264,121 @@ void DetectionManager::BackgroundHidInit() LOG_DEBUG("[%s] Initializing HID interfaces: %s", DETECTIONMANAGER, ((hid_status == 0) ? "Success" : "Failed")); } +/*---------------------------------------------------------*\ +| Functions to run detectors | +\*---------------------------------------------------------*/ +void DetectionManager::RunHIDDetector(hid_device_info* current_hid_device, json detector_settings) +{ + if(LogManager::get()->getLoglevel() >= LL_DEBUG) + { + const char* manu_name = StringUtils::wchar_to_char(current_hid_device->manufacturer_string); + const char* prod_name = StringUtils::wchar_to_char(current_hid_device->product_string); + + LOG_DEBUG("[%s] %04X:%04X U=%04X P=0x%04X I=%d - %-25s - %s", DETECTIONMANAGER, current_hid_device->vendor_id, current_hid_device->product_id, current_hid_device->usage, current_hid_device->usage_page, current_hid_device->interface_number, manu_name, prod_name); + } + + detection_string = ""; + + SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); + + /*-----------------------------------------------------*\ + | Loop through all available detectors. If all | + | required information matches, run the detector. | + \*-----------------------------------------------------*/ + for(std::size_t hid_detector_idx = 0; hid_detector_idx < hid_device_detectors.size() && detection_in_progress.load(); hid_detector_idx++) + { + HIDDeviceDetectorBlock & detector = hid_device_detectors[hid_detector_idx]; + + if(detector.compare(current_hid_device)) + { + detection_string = detector.name.c_str(); + + /*---------------------------------------------*\ + | Check if this detector is enabled or needs to | + | be added to the settings list | + \*---------------------------------------------*/ + bool this_device_enabled = true; + + if(detector_settings.contains("detectors") && detector_settings["detectors"].contains(detection_string)) + { + this_device_enabled = detector_settings["detectors"][detection_string]; + } + + LOG_DEBUG("[%s] %s is %s", DETECTIONMANAGER, detection_string.c_str(), ((this_device_enabled == true) ? "enabled" : "disabled")); + + if(this_device_enabled) + { + SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); + + DetectedControllers detected_controllers = detector.function(current_hid_device, detector.name); + + for(std::size_t detected_controller_idx = 0; detected_controller_idx < detected_controllers.size(); detected_controller_idx++) + { + RegisterRGBController(detected_controllers[detected_controller_idx]); + } + } + + break; + } + } +} + +void DetectionManager::RunHIDWrappedDetector(const hidapi_wrapper* wrapper, hid_device_info* current_hid_device, json detector_settings) +{ + if(LogManager::get()->getLoglevel() >= LL_DEBUG) + { + const char* manu_name = StringUtils::wchar_to_char(current_hid_device->manufacturer_string); + const char* prod_name = StringUtils::wchar_to_char(current_hid_device->product_string); + + LOG_DEBUG("[%s] %04X:%04X U=%04X P=0x%04X I=%d - %-25s - %s", DETECTIONMANAGER, current_hid_device->vendor_id, current_hid_device->product_id, current_hid_device->usage, current_hid_device->usage_page, current_hid_device->interface_number, manu_name, prod_name); + } + + detection_string = ""; + + SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); + + /*-----------------------------------------------------*\ + | Loop through all available wrapped HID detectors. If | + | all required information matches, run the detector. | + \*-----------------------------------------------------*/ + for(std::size_t hid_detector_idx = 0; hid_detector_idx < hid_wrapped_device_detectors.size() && detection_in_progress.load(); hid_detector_idx++) + { + HIDWrappedDeviceDetectorBlock & detector = hid_wrapped_device_detectors[hid_detector_idx]; + + if(detector.compare(current_hid_device)) + { + detection_string = detector.name.c_str(); + + /*---------------------------------------------*\ + | Check if this detector is enabled or needs to | + | be added to the settings list | + \*---------------------------------------------*/ + bool this_device_enabled = true; + + if(detector_settings.contains("detectors") && detector_settings["detectors"].contains(detection_string)) + { + this_device_enabled = detector_settings["detectors"][detection_string]; + } + + LOG_DEBUG("[%s] %s is %s", DETECTIONMANAGER, detection_string.c_str(), ((this_device_enabled == true) ? "enabled" : "disabled")); + + if(this_device_enabled) + { + SignalUpdate(DETECTIONMANAGER_UPDATE_REASON_DETECTION_PROGRESS_CHANGED); + + DetectedControllers detected_controllers = detector.function(*wrapper, current_hid_device, detector.name); + + for(std::size_t detected_controller_idx = 0; detected_controller_idx < detected_controllers.size(); detected_controller_idx++) + { + RegisterRGBController(detected_controllers[detected_controller_idx]); + } + } + + break; + } + } +} + /*---------------------------------------------------------*\ | Detection processing functions | \*---------------------------------------------------------*/ diff --git a/DetectionManager.h b/DetectionManager.h index f2a6f2f6c..49358bfec 100644 --- a/DetectionManager.h +++ b/DetectionManager.h @@ -43,15 +43,17 @@ using json = nlohmann::json; /*---------------------------------------------------------*\ | Detector Function Types | \*---------------------------------------------------------*/ -typedef std::function I2CBusDetectorFunction; -typedef std::function DeviceDetectorFunction; -typedef std::function&)> I2CDeviceDetectorFunction; -typedef std::function&, const std::string&)> I2CDRAMDeviceDetectorFunction; -typedef std::function I2CPCIDeviceDetectorFunction; -typedef std::function HIDDeviceDetectorFunction; -typedef std::function HIDWrappedDeviceDetectorFunction; -typedef std::function DynamicDetectorFunction; -typedef std::function PreDetectionHookFunction; +typedef std::vector DetectedControllers; + +typedef std::function I2CBusDetectorFunction; +typedef std::function DeviceDetectorFunction; +typedef std::function&)> I2CDeviceDetectorFunction; +typedef std::function&, const std::string&)> I2CDRAMDeviceDetectorFunction; +typedef std::function I2CPCIDeviceDetectorFunction; +typedef std::function HIDDeviceDetectorFunction; +typedef std::function HIDWrappedDeviceDetectorFunction; +typedef std::function DynamicDetectorFunction; +typedef std::function PreDetectionHookFunction; /*---------------------------------------------------------*\ | Detector Block Types | @@ -283,8 +285,14 @@ private: void BackgroundDetectI2CDRAMDevices(json detector_settings); void BackgroundDetectI2CPCIDevices(json detector_settings); void BackgroundDetectOtherDevices(json detector_settings); - void BackgroundHidExit(); - void BackgroundHidInit(); + void BackgroundHIDExit(); + void BackgroundHIDInit(); + + /*-----------------------------------------------------*\ + | Functions to run detectors | + \*-----------------------------------------------------*/ + void RunHIDDetector(hid_device_info* current_hid_device, json detector_settings); + void RunHIDWrappedDetector(const hidapi_wrapper* wrapper, hid_device_info* current_hid_device, json detector_settings); /*-----------------------------------------------------*\ | Detection processing functions |