From b79cf82d9676ff1993e43fcec0630b906f84773c Mon Sep 17 00:00:00 2001 From: Mola19 Date: Sat, 25 Nov 2023 03:12:43 +0100 Subject: [PATCH] add support for Roccat Vulcan 100 AIMO to resolve #2489 --- .../RGBController_RoccatVulcanKeyboard.cpp | 3 +- .../RoccatControllerDetect.cpp | 73 +++++++++++++------ .../RoccatVulcanKeyboardController.h | 1 + 3 files changed, 55 insertions(+), 22 deletions(-) diff --git a/Controllers/RoccatController/RGBController_RoccatVulcanKeyboard.cpp b/Controllers/RoccatController/RGBController_RoccatVulcanKeyboard.cpp index c3bd551f..72920c8c 100644 --- a/Controllers/RoccatController/RGBController_RoccatVulcanKeyboard.cpp +++ b/Controllers/RoccatController/RGBController_RoccatVulcanKeyboard.cpp @@ -48,7 +48,7 @@ RGBController_RoccatVulcanKeyboard::RGBController_RoccatVulcanKeyboard(RoccatVul Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; Direct.color_mode = MODE_COLORS_PER_LED; - if(pid != ROCCAT_VULCAN_120_AIMO_PID) + if(pid != ROCCAT_VULCAN_120_AIMO_PID && pid != ROCCAT_VULCAN_100_AIMO_PID) { Direct.flags |= MODE_FLAG_HAS_BRIGHTNESS; Direct.brightness_min = ROCCAT_VULCAN_BRIGHTNESS_MIN; @@ -105,6 +105,7 @@ void RGBController_RoccatVulcanKeyboard::SetupZones() switch(pid) { + case ROCCAT_VULCAN_100_AIMO_PID: case ROCCAT_VULCAN_120_AIMO_PID: keyboard_ptr = &RoccatVulcan120AimoLayouts; break; diff --git a/Controllers/RoccatController/RoccatControllerDetect.cpp b/Controllers/RoccatController/RoccatControllerDetect.cpp index ce9bbf29..fb6b8d92 100644 --- a/Controllers/RoccatController/RoccatControllerDetect.cpp +++ b/Controllers/RoccatController/RoccatControllerDetect.cpp @@ -8,7 +8,7 @@ #include "RoccatEloController.h" #include "RGBController.h" #include "RGBController_RoccatBurst.h" -#include "RGBController_RoccatBurstProAir.h"" +#include "RGBController_RoccatBurstProAir.h" #include "RGBController_RoccatHordeAimo.h" #include "RGBController_RoccatKoneAimo.h" #include "RGBController_RoccatSenseAimo.h" @@ -20,20 +20,32 @@ #define ROCCAT_VID 0x1E7D +/*--------------------------------------------------------------------------------*\ +| KEYBOARDS | +| RoccatVulcanKeyboardController PIDs defined in RoccatVulcanKeyboardController.h | +\*--------------------------------------------------------------------------------*/ +#define ROCCAT_HORDE_AIMO_PID 0x303E + +/*-----------------------------------------------------------------*\ +| MICE | +\*-----------------------------------------------------------------*/ #define ROCCAT_BURST_CORE_PID 0x2DE6 #define ROCCAT_BURST_PRO_PID 0x2DE1 #define ROCCAT_BURST_PRO_AIR_PID 0x2CA6 -#define ROCCAT_ELO_PID 0x3A34 -#define ROCCAT_HORDE_AIMO_PID 0x303E #define ROCCAT_KONE_AIMO_PID 0x2E27 #define ROCCAT_KONE_AIMO_16K_PID 0x2E2C #define ROCCAT_KOVA_PID 0x2CEE -#define ROCCAT_MAGMA_PID 0x3124 -#define ROCCAT_MAGMA_MINI_PID 0x69A0 + +/*-----------------------------------------------------------------*\ +| MOUSEMATS | +\*-----------------------------------------------------------------*/ #define ROCCAT_SENSE_AIMO_MID_PID 0x343A #define ROCCAT_SENSE_AIMO_XXL_PID 0x343B -#define ROCCAT_VULCAN_120_AIMO_PID 0x3098 -#define ROCCAT_VULCAN_TKL_PID 0x2FEE + +/*-----------------------------------------------------------------*\ +| HEADSETS | +\*-----------------------------------------------------------------*/ +#define ROCCAT_ELO_PID 0x3A34 void DetectRoccatMouseControllers(hid_device_info* info, const std::string& name) { @@ -222,18 +234,37 @@ void DetectRoccatSenseAimoControllers(hid_device_info* info, const std::string& REGISTER_PRE_DETECTION_HOOK(ResetRoccatVulcanKeyboardControllersPaths); -REGISTER_HID_DETECTOR_IPU("Roccat Burst Core", DetectRoccatBurstCoreControllers, ROCCAT_VID, ROCCAT_BURST_CORE_PID, 3, 0xFF01, 1 ); -REGISTER_HID_DETECTOR_IPU("Roccat Burst Pro", DetectRoccatBurstProControllers, ROCCAT_VID, ROCCAT_BURST_PRO_PID, 3, 0xFF01, 1 ); -REGISTER_HID_DETECTOR_IPU("Roccat Burst Pro Air", DetectRoccatBurstProAirControllers, ROCCAT_VID, ROCCAT_BURST_PRO_AIR_PID, 0, 0x01, 2 ); -REGISTER_HID_DETECTOR_IPU("Roccat Elo 7.1", DetectRoccatEloControllers, ROCCAT_VID, ROCCAT_ELO_PID, 3, 0x0C, 1 ); -REGISTER_HID_DETECTOR_IPU("Roccat Horde Aimo", DetectRoccatHordeAimoKeyboardControllers, ROCCAT_VID, ROCCAT_HORDE_AIMO_PID, 1, 0x0B, 0 ); -REGISTER_HID_DETECTOR_IPU("Roccat Kone Aimo", DetectRoccatMouseControllers, ROCCAT_VID, ROCCAT_KONE_AIMO_PID, 0, 0x0B, 0 ); -REGISTER_HID_DETECTOR_IPU("Roccat Kova", DetectRoccatKovaControllers, ROCCAT_VID, ROCCAT_KOVA_PID, 0, 0x0B, 0 ); -REGISTER_HID_DETECTOR_IPU("Roccat Kone Aimo 16K", DetectRoccatMouseControllers, ROCCAT_VID, ROCCAT_KONE_AIMO_16K_PID, 0, 0x0B, 0 ); -REGISTER_HID_DETECTOR_IP ("Roccat Magma", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_PID, 1, 0xFF01 ); -REGISTER_HID_DETECTOR_IP ("Roccat Magma Mini", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_MINI_PID, 1, 0xFF01 ); -REGISTER_HID_DETECTOR_IPU("Roccat Sense Aimo Mid", DetectRoccatSenseAimoControllers, ROCCAT_VID, ROCCAT_SENSE_AIMO_MID_PID, 0, 0xFF01, 1 ); -REGISTER_HID_DETECTOR_IPU("Roccat Sense Aimo XXL", DetectRoccatSenseAimoControllers, ROCCAT_VID, ROCCAT_SENSE_AIMO_XXL_PID, 0, 0xFF01, 1 ); -REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 120-Series Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_120_AIMO_PID, 1, 0x0B ); -REGISTER_HID_DETECTOR_IP ("Roccat Vulcan TKL", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_TKL_PID, 1, 0x0B ); +/*-----------------------------------------------------------------*\ +| KEYBOARDS | +\*-----------------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IPU("Roccat Horde Aimo", DetectRoccatHordeAimoKeyboardControllers, ROCCAT_VID, ROCCAT_HORDE_AIMO_PID, 1, 0x0B, 0 ); + +REGISTER_HID_DETECTOR_IP ("Roccat Magma", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_PID, 1, 0xFF01); +REGISTER_HID_DETECTOR_IP ("Roccat Magma Mini", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_MINI_PID, 1, 0xFF01); +REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 100 Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_100_AIMO_PID, 1, 11); +REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 120-Series Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_120_AIMO_PID, 1, 11); +REGISTER_HID_DETECTOR_IP ("Roccat Vulcan TKL", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_TKL_PID, 1, 11); + +/*-----------------------------------------------------------------*\ +| MICE | +\*-----------------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IPU("Roccat Burst Core", DetectRoccatBurstCoreControllers, ROCCAT_VID, ROCCAT_BURST_CORE_PID, 3, 0xFF01, 1 ); +REGISTER_HID_DETECTOR_IPU("Roccat Burst Pro", DetectRoccatBurstProControllers, ROCCAT_VID, ROCCAT_BURST_PRO_PID, 3, 0xFF01, 1 ); +REGISTER_HID_DETECTOR_IPU("Roccat Burst Pro Air", DetectRoccatBurstProAirControllers, ROCCAT_VID, ROCCAT_BURST_PRO_AIR_PID, 0, 0x01, 2 ); + +REGISTER_HID_DETECTOR_IPU("Roccat Kone Aimo", DetectRoccatMouseControllers, ROCCAT_VID, ROCCAT_KONE_AIMO_PID, 0, 0x0B, 0 ); +REGISTER_HID_DETECTOR_IPU("Roccat Kone Aimo 16K", DetectRoccatMouseControllers, ROCCAT_VID, ROCCAT_KONE_AIMO_16K_PID, 0, 0x0B, 0 ); + +REGISTER_HID_DETECTOR_IPU("Roccat Kova", DetectRoccatKovaControllers, ROCCAT_VID, ROCCAT_KOVA_PID, 0, 0x0B, 0 ); + +/*-----------------------------------------------------------------*\ +| MOUSEMATS | +\*-----------------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IPU("Roccat Sense Aimo Mid", DetectRoccatSenseAimoControllers, ROCCAT_VID, ROCCAT_SENSE_AIMO_MID_PID, 0, 0xFF01, 1 ); +REGISTER_HID_DETECTOR_IPU("Roccat Sense Aimo XXL", DetectRoccatSenseAimoControllers, ROCCAT_VID, ROCCAT_SENSE_AIMO_XXL_PID, 0, 0xFF01, 1 ); + +/*-----------------------------------------------------------------*\ +| HEADSETS | +\*-----------------------------------------------------------------*/ +REGISTER_HID_DETECTOR_IPU("Roccat Elo 7.1", DetectRoccatEloControllers, ROCCAT_VID, ROCCAT_ELO_PID, 3, 0x0C, 1 ); diff --git a/Controllers/RoccatController/RoccatVulcanKeyboardController.h b/Controllers/RoccatController/RoccatVulcanKeyboardController.h index f0c60115..54ca0a60 100644 --- a/Controllers/RoccatController/RoccatVulcanKeyboardController.h +++ b/Controllers/RoccatController/RoccatVulcanKeyboardController.h @@ -17,6 +17,7 @@ enum { + ROCCAT_VULCAN_100_AIMO_PID = 0x307A, ROCCAT_VULCAN_120_AIMO_PID = 0x3098, ROCCAT_VULCAN_TKL_PID = 0x2FEE, ROCCAT_MAGMA_PID = 0x3124,