From b9309c61e181bf3e4ed089f9251bb58d165ee183 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 21 Jul 2026 00:01:13 -0500 Subject: [PATCH] Split EVision keyboard files into folders and split the shared detector file --- .../EVisionKeyboardController.cpp | 0 .../EVisionKeyboardController.h | 0 .../EVisionKeyboardControllerDetect.cpp | 81 +++++++++++ .../EVisionKeyboardControllerDetect.cpp | 129 ------------------ .../EVisionV2KeyboardController.cpp | 0 .../EVisionV2KeyboardController.h | 0 .../EVisionV2KeyboardControllerDetect.cpp | 90 ++++++++++++ .../RGBController_EVisionKeyboard.cpp | 0 .../RGBController_EVisionKeyboard.h | 0 .../RGBController_EVisionV2Keyboard.cpp | 0 .../RGBController_EVisionV2Keyboard.h | 0 11 files changed, 171 insertions(+), 129 deletions(-) rename Controllers/EVisionKeyboardController/{ => EVisionKeyboardController}/EVisionKeyboardController.cpp (100%) rename Controllers/EVisionKeyboardController/{ => EVisionKeyboardController}/EVisionKeyboardController.h (100%) create mode 100644 Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp delete mode 100644 Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp rename Controllers/EVisionKeyboardController/{ => EVisionV2KeyboardController}/EVisionV2KeyboardController.cpp (100%) rename Controllers/EVisionKeyboardController/{ => EVisionV2KeyboardController}/EVisionV2KeyboardController.h (100%) create mode 100644 Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardControllerDetect.cpp rename Controllers/EVisionKeyboardController/{ => EVisionV2KeyboardController}/RGBController_EVisionKeyboard.cpp (100%) rename Controllers/EVisionKeyboardController/{ => EVisionV2KeyboardController}/RGBController_EVisionKeyboard.h (100%) rename Controllers/EVisionKeyboardController/{ => EVisionV2KeyboardController}/RGBController_EVisionV2Keyboard.cpp (100%) rename Controllers/EVisionKeyboardController/{ => EVisionV2KeyboardController}/RGBController_EVisionV2Keyboard.h (100%) diff --git a/Controllers/EVisionKeyboardController/EVisionKeyboardController.cpp b/Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardController.cpp similarity index 100% rename from Controllers/EVisionKeyboardController/EVisionKeyboardController.cpp rename to Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardController.cpp diff --git a/Controllers/EVisionKeyboardController/EVisionKeyboardController.h b/Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardController.h similarity index 100% rename from Controllers/EVisionKeyboardController/EVisionKeyboardController.h rename to Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardController.h diff --git a/Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp b/Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp new file mode 100644 index 000000000..ac1480127 --- /dev/null +++ b/Controllers/EVisionKeyboardController/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp @@ -0,0 +1,81 @@ +/*---------------------------------------------------------*\ +| EVisionKeyboardControllerDetect.cpp | +| | +| Detector for EVision/Huafenda keyboards | +| | +| This file is part of the OpenRGB project | +| SPDX-License-Identifier: GPL-2.0-or-later | +\*---------------------------------------------------------*/ + +#include +#include "DetectionManager.h" +#include "EVisionKeyboardController.h" +#include "RGBController_EVisionKeyboard.h" +#include "ResourceManager.h" +#include "SettingsManager.h" + +/*---------------------------------------------------------*\ +| EVision vendor ID | +| NOTE: EVision (and Huafenda) use rebranded Sonix MCUs | +| Some EVision/Huafenda keyboards use the Sonix VID while | +| others use EVision's VID | +\*---------------------------------------------------------*/ +#define SONIX_VID 0x0C45 +#define EVISION_VID 0x320F + +/*---------------------------------------------------------*\ +| EVision Usage Page | +\*---------------------------------------------------------*/ +#define EVISION_KEYBOARD_USAGE_PAGE 0xFF1C + +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ +#define EVISION_SONIX_5004_PID 0x5004 +#define EVISION_SONIX_5104_PID 0x5104 +#define EVISION_SONIX_5204_PID 0x5204 +#define EVISION_SONIX_652F_PID 0x652F +#define EVISION_SONIX_7672_PID 0x7672 +#define EVISION_SONIX_7698_PID 0x7698 +#define EVISION_SONIX_8520_PID 0x8520 +#define EVISION_5000_PID 0x5000 +#define EVISION_502A_PID 0x502A +#define EVISION_505B_PID 0x505B +#define EVISION_5064_PID 0x5064 +#define EVISION_5078_PID 0x5078 +#define EVISION_5084_PID 0x5084 + +DetectedControllers DetectEVisionKeyboards(hid_device_info* info, const std::string& name) +{ + 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); + + detected_controllers.push_back(rgb_controller); + } + + return(detected_controllers); +} + +/*---------------------------------------------------------*\ +| Keyboards | +\*---------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5004", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_5004_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5104", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_5104_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5204", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_5204_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:652F", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_652F_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:7672", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_7672_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:7698", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_7698_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:8520", DetectEVisionKeyboards, SONIX_VID, EVISION_SONIX_8520_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5000", DetectEVisionKeyboards, EVISION_VID, EVISION_5000_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:502A", DetectEVisionKeyboards, EVISION_VID, EVISION_502A_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:505B", DetectEVisionKeyboards, EVISION_VID, EVISION_505B_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5078", DetectEVisionKeyboards, EVISION_VID, EVISION_5078_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5064", DetectEVisionKeyboards, EVISION_VID, EVISION_5064_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5084", DetectEVisionKeyboards, EVISION_VID, EVISION_5084_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); diff --git a/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp b/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp deleted file mode 100644 index e6dbc63a3..000000000 --- a/Controllers/EVisionKeyboardController/EVisionKeyboardControllerDetect.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/*---------------------------------------------------------*\ -| EVisionKeyboardControllerDetect.cpp | -| | -| Detector for EVision keyboards | -| | -| This file is part of the OpenRGB project | -| SPDX-License-Identifier: GPL-2.0-or-later | -\*---------------------------------------------------------*/ - -#include -#include "DetectionManager.h" -#include "EVisionKeyboardController.h" -#include "EVisionV2KeyboardController.h" -#include "RGBController_EVisionKeyboard.h" -#include "RGBController_EVisionV2Keyboard.h" -#include "ResourceManager.h" -#include "SettingsManager.h" - -/*---------------------------------------------------------*\ -| Keyboard product IDs | -\*---------------------------------------------------------*/ -#define EVISION_KEYBOARD_VID 0x0C45 -#define EVISION_KEYBOARD2_VID 0x320F -#define EVISION_KEYBOARD3_VID 0x3299 -#define EVISION_KEYBOARD_USAGE_PAGE 0xFF1C -#define ENDORFY_OMNIS_PID 0x0012 -#define DEXP_BLAZE_PID 0x5084 -#define GLORIOUS_GMMK_TKL_PID 0x5064 -#define REDRAGON_K550_PID 0x5204 -#define MARS_GAMING_MKMINI_PID 0x5078 -#define SKILLKORP_K5_PID 0x505B -#define REDRAGON_K552_PID 0x5104 -#define REDRAGON_K552_V2_PID 0x5000 -#define REDRAGON_K556_PID 0x5004 -#define TECWARE_PHANTOM_ELITE_PID 0x652F -#define WARRIOR_KANE_TC235 0x8520 -#define WOMIER_K87_PID 0x502A -#define WOMIER_K66_PID 0x7698 -#define BYGG_CSB_ICL01_PID 0x5041 -#define GAMEPOWER_OGRE_RGB_PID 0x7672 - -DetectedControllers DetectEVisionKeyboards(hid_device_info* info, const std::string& name) -{ - 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); - - detected_controllers.push_back(rgb_controller); - } - - return(detected_controllers); -} - -DetectedControllers DetectEVisionV2Keyboards(hid_device_info* info, const std::string& name) -{ - 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); - - detected_controllers.push_back(rgb_controller); - - if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true) - { - rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_LOGO); - - detected_controllers.push_back(rgb_controller); - - rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_EDGE); - - detected_controllers.push_back(rgb_controller); - } - } - - return(detected_controllers); -} - -DetectedControllers DetectEndorfyKeyboards(hid_device_info* info, const std::string& name) -{ - 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); - - detected_controllers.push_back(rgb_controller); - - if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true) - { - rgb_controller = new RGBController_EVisionV2Keyboard(controller, ENDORFY_KEYBOARD_PART_EDGE); - - detected_controllers.push_back(rgb_controller); - } - } - - return(detected_controllers); -} - -/*---------------------------------------------------------------------------------------------------------------------------------------------*\ -| Keyboards | -\*---------------------------------------------------------------------------------------------------------------------------------------------*/ -REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5078", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, MARS_GAMING_MKMINI_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5204", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K550_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5104", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K552_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5000", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, REDRAGON_K552_V2_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5004", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K556_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:652F", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, TECWARE_PHANTOM_ELITE_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:8520", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WARRIOR_KANE_TC235, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:502A", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, WOMIER_K87_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:7698", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WOMIER_K66_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5064", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, GLORIOUS_GMMK_TKL_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5084", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, DEXP_BLAZE_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:505B", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, SKILLKORP_K5_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("Endorfy Omnis", DetectEndorfyKeyboards, EVISION_KEYBOARD3_VID, ENDORFY_OMNIS_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("CSB/ICL01 Keyboard", DetectEVisionV2Keyboards, EVISION_KEYBOARD2_VID, BYGG_CSB_ICL01_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); -REGISTER_HID_DETECTOR_IP("Gamepower Ogre RGB 0C45:7672", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, GAMEPOWER_OGRE_RGB_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); diff --git a/Controllers/EVisionKeyboardController/EVisionV2KeyboardController.cpp b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardController.cpp similarity index 100% rename from Controllers/EVisionKeyboardController/EVisionV2KeyboardController.cpp rename to Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardController.cpp diff --git a/Controllers/EVisionKeyboardController/EVisionV2KeyboardController.h b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardController.h similarity index 100% rename from Controllers/EVisionKeyboardController/EVisionV2KeyboardController.h rename to Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardController.h diff --git a/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardControllerDetect.cpp b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardControllerDetect.cpp new file mode 100644 index 000000000..b0e0e43f0 --- /dev/null +++ b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/EVisionV2KeyboardControllerDetect.cpp @@ -0,0 +1,90 @@ +/*---------------------------------------------------------*\ +| EVisionKeyboardV2ControllerDetect.cpp | +| | +| Detector for EVision V2 keyboards | +| | +| This file is part of the OpenRGB project | +| SPDX-License-Identifier: GPL-2.0-or-later | +\*---------------------------------------------------------*/ + +#include +#include "DetectionManager.h" +#include "EVisionV2KeyboardController.h" +#include "RGBController_EVisionV2Keyboard.h" +#include "ResourceManager.h" +#include "SettingsManager.h" + +/*---------------------------------------------------------*\ +| EVision vendor ID | +\*---------------------------------------------------------*/ +#define EVISION_VID 0x320F +#define SPCGEAR_VID 0x3299 + +/*---------------------------------------------------------*\ +| EVision Usage Page | +\*---------------------------------------------------------*/ +#define EVISION_KEYBOARD_USAGE_PAGE 0xFF1C + +/*---------------------------------------------------------*\ +| Keyboard product IDs | +\*---------------------------------------------------------*/ +#define ENDORFY_OMNIS_PID 0x0012 +#define BYGG_CSB_ICL01_PID 0x5041 + +DetectedControllers DetectEVisionV2Keyboards(hid_device_info* info, const std::string& name) +{ + 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); + + detected_controllers.push_back(rgb_controller); + + if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true) + { + rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_LOGO); + + detected_controllers.push_back(rgb_controller); + + rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_EDGE); + + detected_controllers.push_back(rgb_controller); + } + } + + return(detected_controllers); +} + +DetectedControllers DetectEndorfyKeyboards(hid_device_info* info, const std::string& name) +{ + 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); + + detected_controllers.push_back(rgb_controller); + + if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true) + { + rgb_controller = new RGBController_EVisionV2Keyboard(controller, ENDORFY_KEYBOARD_PART_EDGE); + + detected_controllers.push_back(rgb_controller); + } + } + + return(detected_controllers); +} + +/*---------------------------------------------------------*\ +| Keyboards | +\*---------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5041", DetectEVisionV2Keyboards, EVISION_VID, BYGG_CSB_ICL01_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); +REGISTER_HID_DETECTOR_IP("Endorfy Omnis", DetectEndorfyKeyboards, SPCGEAR_VID, ENDORFY_OMNIS_PID, 1, EVISION_KEYBOARD_USAGE_PAGE); diff --git a/Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.cpp b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionKeyboard.cpp similarity index 100% rename from Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.cpp rename to Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionKeyboard.cpp diff --git a/Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.h b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionKeyboard.h similarity index 100% rename from Controllers/EVisionKeyboardController/RGBController_EVisionKeyboard.h rename to Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionKeyboard.h diff --git a/Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.cpp b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionV2Keyboard.cpp similarity index 100% rename from Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.cpp rename to Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionV2Keyboard.cpp diff --git a/Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.h b/Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionV2Keyboard.h similarity index 100% rename from Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.h rename to Controllers/EVisionKeyboardController/EVisionV2KeyboardController/RGBController_EVisionV2Keyboard.h