From fc1395dfe66cc0895964dce7acf5dbde42b8eec5 Mon Sep 17 00:00:00 2001 From: flora Date: Tue, 3 Jan 2023 13:08:41 +0100 Subject: [PATCH] Refactored redragon mouse controller and added M808 --- ...11.cpp => RGBController_RedragonMouse.cpp} | 83 +++++++++---------- ...onM711.h => RGBController_RedragonMouse.h} | 19 ++--- .../RedragonControllerDetect.cpp | 12 +-- .../RedragonM711Controller.h | 70 ---------------- ...roller.cpp => RedragonMouseController.cpp} | 36 ++++---- .../RedragonMouseController.h | 71 ++++++++++++++++ OpenRGB.pro | 16 ++-- 7 files changed, 154 insertions(+), 153 deletions(-) rename Controllers/RedragonController/{RGBController_RedragonM711.cpp => RGBController_RedragonMouse.cpp} (50%) rename Controllers/RedragonController/{RGBController_RedragonM711.h => RGBController_RedragonMouse.h} (58%) delete mode 100644 Controllers/RedragonController/RedragonM711Controller.h rename Controllers/RedragonController/{RedragonM711Controller.cpp => RedragonMouseController.cpp} (77%) create mode 100644 Controllers/RedragonController/RedragonMouseController.h diff --git a/Controllers/RedragonController/RGBController_RedragonM711.cpp b/Controllers/RedragonController/RGBController_RedragonMouse.cpp similarity index 50% rename from Controllers/RedragonController/RGBController_RedragonM711.cpp rename to Controllers/RedragonController/RGBController_RedragonMouse.cpp index bca7e210..af903034 100644 --- a/Controllers/RedragonController/RGBController_RedragonM711.cpp +++ b/Controllers/RedragonController/RGBController_RedragonMouse.cpp @@ -1,13 +1,12 @@ /*-----------------------------------------*\ -| RGBController_RedragonM711.cpp | +| RGBController_RedragonMouse.cpp | | | -| Generic RGB Interface for Redragon M711 | -| Cobra RGB Mouse | +| Generic RGB Interface for Redragon Mouse | | | | Adam Honse (CalcProgrammer1) 3/25/2020 | \*-----------------------------------------*/ -#include "RGBController_RedragonM711.h" +#include "RGBController_RedragonMouse.h" /**------------------------------------------------------------------*\ @name Redragon Mice @@ -20,7 +19,7 @@ @comment \*-------------------------------------------------------------------*/ -RGBController_RedragonM711::RGBController_RedragonM711(RedragonM711Controller* controller_ptr) +RGBController_RedragonMouse::RGBController_RedragonMouse(RedragonMouseController* controller_ptr) { controller = controller_ptr; @@ -32,74 +31,74 @@ RGBController_RedragonM711::RGBController_RedragonM711(RedragonM711Controller* c serial = controller->GetSerialString(); mode Static; - Static.name = "Static"; - Static.value = REDRAGON_M711_MODE_STATIC; - Static.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE; - Static.color_mode = MODE_COLORS_PER_LED; + Static.name = "Static"; + Static.value = REDRAGON_MOUSE_MODE_STATIC; + Static.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE; + Static.color_mode = MODE_COLORS_PER_LED; modes.push_back(Static); mode Wave; - Wave.name = "Wave"; - Wave.value = REDRAGON_M711_MODE_WAVE; - Wave.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE; - Wave.color_mode = MODE_COLORS_PER_LED; + Wave.name = "Wave"; + Wave.value = REDRAGON_MOUSE_MODE_WAVE; + Wave.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE; + Wave.color_mode = MODE_COLORS_PER_LED; modes.push_back(Wave); mode Breathing; Breathing.name = "Breathing"; - Breathing.value = REDRAGON_M711_MODE_BREATHING; + Breathing.value = REDRAGON_MOUSE_MODE_BREATHING; Breathing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_AUTOMATIC_SAVE; Breathing.color_mode = MODE_COLORS_PER_LED; modes.push_back(Breathing); mode Rainbow; - Rainbow.name = "Rainbow"; - Rainbow.value = REDRAGON_M711_MODE_RAINBOW; - Rainbow.flags = MODE_FLAG_AUTOMATIC_SAVE; - Rainbow.color_mode = MODE_COLORS_NONE; + Rainbow.name = "Rainbow"; + Rainbow.value = REDRAGON_MOUSE_MODE_RAINBOW; + Rainbow.flags = MODE_FLAG_AUTOMATIC_SAVE; + Rainbow.color_mode = MODE_COLORS_NONE; modes.push_back(Rainbow); mode Flashing; - Flashing.name = "Flashing"; - Flashing.value = REDRAGON_M711_MODE_FLASHING; - Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE; - Flashing.color_mode = MODE_COLORS_PER_LED; + Flashing.name = "Flashing"; + Flashing.value = REDRAGON_MOUSE_MODE_FLASHING; + Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE; + Flashing.color_mode = MODE_COLORS_PER_LED; modes.push_back(Flashing); SetupZones(); } -RGBController_RedragonM711::~RGBController_RedragonM711() +RGBController_RedragonMouse::~RGBController_RedragonMouse() { delete controller; } -void RGBController_RedragonM711::SetupZones() +void RGBController_RedragonMouse::SetupZones() { - zone m711_zone; - m711_zone.name = "Mouse"; - m711_zone.type = ZONE_TYPE_SINGLE; - m711_zone.leds_min = 1; - m711_zone.leds_max = 1; - m711_zone.leds_count = 1; - m711_zone.matrix_map = NULL; - zones.push_back(m711_zone); + zone mouse_zone; + mouse_zone.name = "Mouse"; + mouse_zone.type = ZONE_TYPE_SINGLE; + mouse_zone.leds_min = REDRAGON_MOUSE_LED_COUNT; + mouse_zone.leds_max = REDRAGON_MOUSE_LED_COUNT; + mouse_zone.leds_count = REDRAGON_MOUSE_LED_COUNT; + mouse_zone.matrix_map = NULL; + zones.push_back(mouse_zone); - led m711_led; - m711_led.name = "Mouse"; - leds.push_back(m711_led); + led mouse_led; + mouse_led.name = "Mouse"; + leds.push_back(mouse_led); SetupColors(); } -void RGBController_RedragonM711::ResizeZone(int /*zone*/, int /*new_size*/) +void RGBController_RedragonMouse::ResizeZone(int /*zone*/, int /*new_size*/) { /*---------------------------------------------------------*\ | This device does not support resizing zones | \*---------------------------------------------------------*/ } -void RGBController_RedragonM711::DeviceUpdateLEDs() +void RGBController_RedragonMouse::DeviceUpdateLEDs() { unsigned char red = RGBGetRValue(colors[0]); unsigned char grn = RGBGetGValue(colors[0]); @@ -109,26 +108,26 @@ void RGBController_RedragonM711::DeviceUpdateLEDs() controller->SendMouseApply(); } -void RGBController_RedragonM711::UpdateZoneLEDs(int /*zone*/) +void RGBController_RedragonMouse::UpdateZoneLEDs(int /*zone*/) { DeviceUpdateLEDs(); } -void RGBController_RedragonM711::UpdateSingleLED(int /*led*/) +void RGBController_RedragonMouse::UpdateSingleLED(int /*led*/) { DeviceUpdateLEDs(); } -void RGBController_RedragonM711::DeviceUpdateMode() +void RGBController_RedragonMouse::DeviceUpdateMode() { bool random = (modes[active_mode].color_mode == MODE_COLORS_RANDOM); unsigned char red = RGBGetRValue(colors[0]); unsigned char grn = RGBGetGValue(colors[0]); unsigned char blu = RGBGetBValue(colors[0]); - if((modes[active_mode].value == REDRAGON_M711_MODE_BREATHING) && random) + if((modes[active_mode].value == REDRAGON_MOUSE_MODE_BREATHING) && random) { - controller->SendMouseMode(REDRAGON_M711_MODE_RANDOM_BREATHING, 0, red, grn, blu); + controller->SendMouseMode(REDRAGON_MOUSE_MODE_RANDOM_BREATHING, 0, red, grn, blu); } else { diff --git a/Controllers/RedragonController/RGBController_RedragonM711.h b/Controllers/RedragonController/RGBController_RedragonMouse.h similarity index 58% rename from Controllers/RedragonController/RGBController_RedragonM711.h rename to Controllers/RedragonController/RGBController_RedragonMouse.h index 2da47b8b..9f37888e 100644 --- a/Controllers/RedragonController/RGBController_RedragonM711.h +++ b/Controllers/RedragonController/RGBController_RedragonMouse.h @@ -1,21 +1,20 @@ /*-----------------------------------------*\ -| RGBController_RedragonM711.h | +| RGBController_RedragonMouse.h | | | -| Generic RGB Interface for Redragon M711 | -| Cobra RGB Mouse | +| Generic RGB Interface for Redragon Mouse | | | | Adam Honse (CalcProgrammer1) 3/25/2020 | \*-----------------------------------------*/ - #pragma once -#include "RGBController.h" -#include "RedragonM711Controller.h" -class RGBController_RedragonM711 : public RGBController +#include "RGBController.h" +#include "RedragonMouseController.h" + +class RGBController_RedragonMouse : public RGBController { public: - RGBController_RedragonM711(RedragonM711Controller* controller_ptr); - ~RGBController_RedragonM711(); + RGBController_RedragonMouse(RedragonMouseController* controller_ptr); + ~RGBController_RedragonMouse(); void SetupZones(); void ResizeZone(int zone, int new_size); @@ -27,5 +26,5 @@ public: void DeviceUpdateMode(); private: - RedragonM711Controller* controller; + RedragonMouseController* controller; }; diff --git a/Controllers/RedragonController/RedragonControllerDetect.cpp b/Controllers/RedragonController/RedragonControllerDetect.cpp index 97ec6cb7..9d1f0a48 100644 --- a/Controllers/RedragonController/RedragonControllerDetect.cpp +++ b/Controllers/RedragonController/RedragonControllerDetect.cpp @@ -1,7 +1,7 @@ #include "Detector.h" -#include "RedragonM711Controller.h" +#include "RedragonMouseController.h" #include "RGBController.h" -#include "RGBController_RedragonM711.h" +#include "RGBController_RedragonMouse.h" #include #include @@ -15,6 +15,7 @@ #define REDRAGON_M716_PID 0xFC3A #define REDRAGON_M908_PID 0xFC4D #define REDRAGON_M602_PID 0xFC38 +#define REDRAGON_M808_PID 0xFC5F /******************************************************************************************\ * * @@ -29,8 +30,8 @@ void DetectRedragonMice(hid_device_info* info, const std::string& name) hid_device* dev = hid_open_path(info->path); if( dev ) { - RedragonM711Controller* controller = new RedragonM711Controller(dev, info->path); - RGBController_RedragonM711* rgb_controller = new RGBController_RedragonM711(controller); + RedragonMouseController* controller = new RedragonMouseController(dev, info->path); + RGBController_RedragonMouse* rgb_controller = new RGBController_RedragonMouse(controller); rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); } @@ -43,4 +44,5 @@ REGISTER_HID_DETECTOR_IP("Redragon M711 Cobra", DetectRedragonMice, RE 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); REGISTER_HID_DETECTOR_IP("Redragon M908 Impact", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M908_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("Redragon M602 Griffin", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M602_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); \ No newline at end of file +REGISTER_HID_DETECTOR_IP("Redragon M602 Griffin", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M602_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("Redragon M808 Storm", DetectRedragonMice, REDRAGON_MOUSE_VID, REDRAGON_M808_PID, 2, REDRAGON_MOUSE_USAGE_PAGE); diff --git a/Controllers/RedragonController/RedragonM711Controller.h b/Controllers/RedragonController/RedragonM711Controller.h deleted file mode 100644 index 8c4e7477..00000000 --- a/Controllers/RedragonController/RedragonM711Controller.h +++ /dev/null @@ -1,70 +0,0 @@ -/*-----------------------------------------*\ -| RedragonM711Controller.h | -| | -| Definitions and types for Redragon M711 | -| Cobra mouse lighting controller | -| | -| Adam Honse (CalcProgrammer1) 3/15/2020 | -\*-----------------------------------------*/ - -#include "RGBController.h" - -#include -#include - -#pragma once - -enum -{ - REDRAGON_M711_MODE_WAVE = 0x00, - REDRAGON_M711_MODE_RANDOM_BREATHING = 0x01, - REDRAGON_M711_MODE_STATIC = 0x02, - REDRAGON_M711_MODE_BREATHING = 0x04, - REDRAGON_M711_MODE_RAINBOW = 0x08, - REDRAGON_M711_MODE_FLASHING = 0x10, -}; - -class RedragonM711Controller -{ -public: - RedragonM711Controller(hid_device* dev_handle, const char* path); - ~RedragonM711Controller(); - - std::string GetDeviceLocation(); - std::string GetSerialString(); - - void SendMouseApply(); - - void SendMouseColor - ( - unsigned char red, - unsigned char green, - unsigned char blue - ); - - void SendMouseMode - ( - unsigned char mode, - unsigned char speed - ); - - void SendMouseMode - ( - unsigned char mode, - unsigned char speed, - unsigned char red, - unsigned char green, - unsigned char blue - ); - -private: - hid_device* dev; - std::string location; - - void SendWritePacket - ( - unsigned short address, - unsigned char data_size, - unsigned char * data - ); -}; diff --git a/Controllers/RedragonController/RedragonM711Controller.cpp b/Controllers/RedragonController/RedragonMouseController.cpp similarity index 77% rename from Controllers/RedragonController/RedragonM711Controller.cpp rename to Controllers/RedragonController/RedragonMouseController.cpp index f30d3ab6..53af0a0f 100644 --- a/Controllers/RedragonController/RedragonM711Controller.cpp +++ b/Controllers/RedragonController/RedragonMouseController.cpp @@ -1,8 +1,8 @@ -#include "RedragonM711Controller.h" +#include "RedragonMouseController.h" #include -RedragonM711Controller::RedragonM711Controller(hid_device* dev_handle, const char* path) +RedragonMouseController::RedragonMouseController(hid_device* dev_handle, const char* path) { dev = dev_handle; location = path; @@ -13,17 +13,17 @@ RedragonM711Controller::RedragonM711Controller(hid_device* dev_handle, const cha SendMouseApply(); } -RedragonM711Controller::~RedragonM711Controller() +RedragonMouseController::~RedragonMouseController() { hid_close(dev); } -std::string RedragonM711Controller::GetDeviceLocation() +std::string RedragonMouseController::GetDeviceLocation() { return("HID: " + location); } -std::string RedragonM711Controller::GetSerialString() +std::string RedragonMouseController::GetSerialString() { wchar_t serial_string[128]; int ret = hid_get_serial_number_string(dev, serial_string, 128); @@ -39,7 +39,7 @@ std::string RedragonM711Controller::GetSerialString() return(return_string); } -void RedragonM711Controller::SendMouseColor +void RedragonMouseController::SendMouseColor ( unsigned char red, unsigned char green, @@ -55,7 +55,7 @@ void RedragonM711Controller::SendMouseColor SendWritePacket(0x0449, 3, color_buf); } -void RedragonM711Controller::SendMouseMode +void RedragonMouseController::SendMouseMode ( unsigned char mode, unsigned char speed @@ -70,7 +70,7 @@ void RedragonM711Controller::SendMouseMode SendWritePacket(0x044C, 3, mode_buf); } -void RedragonM711Controller::SendMouseMode +void RedragonMouseController::SendMouseMode ( unsigned char mode, unsigned char speed, @@ -95,19 +95,19 @@ void RedragonM711Controller::SendMouseMode | Private packet sending functions. | \*-------------------------------------------------------------------------------------------------*/ -void RedragonM711Controller::SendMouseApply() +void RedragonMouseController::SendMouseApply() { - char usb_buf[16]; + char usb_buf[REDRAGON_MOUSE_REPORT_SIZE]; /*-----------------------------------------------------*\ | Zero out buffer | \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); + memset(usb_buf, 0x00, REDRAGON_MOUSE_REPORT_SIZE); /*-----------------------------------------------------*\ | Set up Apply packet | \*-----------------------------------------------------*/ - usb_buf[0x00] = 0x02; + usb_buf[0x00] = REDRAGON_MOUSE_REPORT_ID; usb_buf[0x01] = 0xF1; usb_buf[0x02] = 0x02; usb_buf[0x03] = 0x04; @@ -115,27 +115,27 @@ void RedragonM711Controller::SendMouseApply() /*-----------------------------------------------------*\ | Send packet | \*-----------------------------------------------------*/ - hid_send_feature_report(dev, (unsigned char *)usb_buf, 16); + hid_send_feature_report(dev, (unsigned char *)usb_buf, REDRAGON_MOUSE_REPORT_SIZE); } -void RedragonM711Controller::SendWritePacket +void RedragonMouseController::SendWritePacket ( unsigned short address, unsigned char data_size, unsigned char * data ) { - char usb_buf[16]; + char usb_buf[REDRAGON_MOUSE_REPORT_SIZE]; /*-----------------------------------------------------*\ | Zero out buffer | \*-----------------------------------------------------*/ - memset(usb_buf, 0x00, sizeof(usb_buf)); + memset(usb_buf, 0x00, REDRAGON_MOUSE_REPORT_SIZE); /*-----------------------------------------------------*\ | Set up Lighting Control packet | \*-----------------------------------------------------*/ - usb_buf[0x00] = 0x02; + usb_buf[0x00] = REDRAGON_MOUSE_REPORT_ID; usb_buf[0x01] = 0xF3; usb_buf[0x02] = address & 0xFF; usb_buf[0x03] = address >> 8; @@ -149,5 +149,5 @@ void RedragonM711Controller::SendWritePacket /*-----------------------------------------------------*\ | Send packet | \*-----------------------------------------------------*/ - hid_send_feature_report(dev, (unsigned char *)usb_buf, 16); + hid_send_feature_report(dev, (unsigned char *)usb_buf, REDRAGON_MOUSE_REPORT_SIZE); } diff --git a/Controllers/RedragonController/RedragonMouseController.h b/Controllers/RedragonController/RedragonMouseController.h new file mode 100644 index 00000000..c9fbfcac --- /dev/null +++ b/Controllers/RedragonController/RedragonMouseController.h @@ -0,0 +1,71 @@ +/*-----------------------------------------*\ +| RedragonMouseController.h | +| | +| Definitions and types for Redragon Mouse | +| lighting controller | +| | +| Adam Honse (CalcProgrammer1) 3/15/2020 | +\*-----------------------------------------*/ +#pragma once + +#include +#include + +#define REDRAGON_MOUSE_REPORT_ID 0x02 +#define REDRAGON_MOUSE_REPORT_SIZE 16 +#define REDRAGON_MOUSE_LED_COUNT 1 + +enum +{ + REDRAGON_MOUSE_MODE_WAVE = 0x00, + REDRAGON_MOUSE_MODE_RANDOM_BREATHING = 0x01, + REDRAGON_MOUSE_MODE_STATIC = 0x02, + REDRAGON_MOUSE_MODE_BREATHING = 0x04, + REDRAGON_MOUSE_MODE_RAINBOW = 0x08, + REDRAGON_MOUSE_MODE_FLASHING = 0x10 +}; + +class RedragonMouseController +{ +public: + RedragonMouseController(hid_device* dev_handle, const char* path); + ~RedragonMouseController(); + + std::string GetDeviceLocation(); + std::string GetSerialString(); + + void SendMouseApply(); + + void SendMouseColor + ( + unsigned char red, + unsigned char green, + unsigned char blue + ); + + void SendMouseMode + ( + unsigned char mode, + unsigned char speed + ); + + void SendMouseMode + ( + unsigned char mode, + unsigned char speed, + unsigned char red, + unsigned char green, + unsigned char blue + ); + +private: + hid_device* dev; + std::string location; + + void SendWritePacket + ( + unsigned short address, + unsigned char data_size, + unsigned char * data + ); +}; diff --git a/OpenRGB.pro b/OpenRGB.pro index 62045865..8a6b5bac 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -180,8 +180,6 @@ contains(QMAKE_PLATFORM, freebsd) { HEADERS += \ Colors.h \ - Controllers/RoccatController/RGBController_RoccatElo.h \ - Controllers/RoccatController/RoccatEloController.h \ dependencies/ColorWheel/ColorWheel.h \ dependencies/Swatches/swatches.h \ dependencies/json/json.hpp \ @@ -560,16 +558,18 @@ HEADERS += Controllers/RazerController/RGBController_Razer.h \ Controllers/RazerController/RGBController_RazerAddressable.h \ Controllers/RazerController/RGBController_RazerKraken.h \ - Controllers/RedragonController/RedragonM711Controller.h \ - Controllers/RedragonController/RGBController_RedragonM711.h \ + Controllers/RedragonController/RGBController_RedragonMouse.h \ + Controllers/RedragonController/RedragonMouseController.h \ Controllers/RedSquareKeyroxController/RedSquareKeyroxController.h \ Controllers/RedSquareKeyroxController/RGBController_RedSquareKeyrox.h \ Controllers/RoccatController/RGBController_RoccatBurst.h \ + Controllers/RoccatController/RGBController_RoccatElo.h \ Controllers/RoccatController/RGBController_RoccatHordeAimo.h \ Controllers/RoccatController/RGBController_RoccatKoneAimo.h \ Controllers/RoccatController/RGBController_RoccatKova.h \ Controllers/RoccatController/RGBController_RoccatVulcanAimo.h \ Controllers/RoccatController/RoccatBurstController.h \ + Controllers/RoccatController/RoccatEloController.h \ Controllers/RoccatController/RoccatHordeAimoController.h \ Controllers/RoccatController/RoccatKoneAimoController.h \ Controllers/RoccatController/RoccatKovaController.h \ @@ -669,8 +669,6 @@ contains(QMAKE_PLATFORM, freebsd) { } SOURCES += \ - Controllers/RoccatController/RGBController_RoccatElo.cpp \ - Controllers/RoccatController/RoccatEloController.cpp \ dependencies/Swatches/swatches.cpp \ dependencies/dmiinfo.cpp \ dependencies/ColorWheel/ColorWheel.cpp \ @@ -1161,18 +1159,20 @@ SOURCES += Controllers/RazerController/RGBController_Razer.cpp \ Controllers/RazerController/RGBController_RazerAddressable.cpp \ Controllers/RazerController/RGBController_RazerKraken.cpp \ - Controllers/RedragonController/RedragonM711Controller.cpp \ + Controllers/RedragonController/RGBController_RedragonMouse.cpp \ Controllers/RedragonController/RedragonControllerDetect.cpp \ - Controllers/RedragonController/RGBController_RedragonM711.cpp \ + Controllers/RedragonController/RedragonMouseController.cpp \ Controllers/RedSquareKeyroxController/RedSquareKeyroxController.cpp \ Controllers/RedSquareKeyroxController/RedSquareKeyroxControllerDetect.cpp \ Controllers/RedSquareKeyroxController/RGBController_RedSquareKeyrox.cpp \ Controllers/RoccatController/RGBController_RoccatBurst.cpp \ + Controllers/RoccatController/RGBController_RoccatElo.cpp \ Controllers/RoccatController/RGBController_RoccatHordeAimo.cpp \ Controllers/RoccatController/RGBController_RoccatKoneAimo.cpp \ Controllers/RoccatController/RGBController_RoccatKova.cpp \ Controllers/RoccatController/RGBController_RoccatVulcanAimo.cpp \ Controllers/RoccatController/RoccatBurstController.cpp \ + Controllers/RoccatController/RoccatEloController.cpp \ Controllers/RoccatController/RoccatHordeAimoController.cpp \ Controllers/RoccatController/RoccatKoneAimoController.cpp \ Controllers/RoccatController/RoccatKovaController.cpp \