Skip to content

Commit d0d9f04

Browse files
Matthias BielakCalcProgrammer1
authored andcommitted
Add support for Turtle Beach Vulcan II TKL Pro
1 parent bd6b358 commit d0d9f04

5 files changed

Lines changed: 326 additions & 108 deletions

File tree

Controllers/RoccatController/RoccatControllerDetect.cpp

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ void DetectRoccatVulcanKeyboardControllers(hid_device_info* info, const std::str
112112
std::string dev_led_path;
113113
int dev_led_page;
114114
int dev_ctrl_page;
115+
int dev_led_iface = 3;
116+
int dev_ctrl_iface = 1;
115117

116118
switch(info->product_id)
117119
{
@@ -123,10 +125,20 @@ void DetectRoccatVulcanKeyboardControllers(hid_device_info* info, const std::str
123125
case TURTLE_BEACH_VULCAN_II_PID:
124126
dev_led_page = 0xFF00;
125127
dev_ctrl_page = 0xFF01;
128+
dev_led_iface = 3;
129+
dev_ctrl_iface = 1;
130+
break;
131+
case TURTLE_BEACH_VULCAN_II_TKL_PRO_PID:
132+
dev_led_page = 0xFF00;
133+
dev_ctrl_page = 0x0001;
134+
dev_led_iface = 4;
135+
dev_ctrl_iface = 1;
126136
break;
127137
default:
128138
dev_led_page = 0x0001;
129139
dev_ctrl_page = 0x000B;
140+
dev_led_iface = 3;
141+
dev_ctrl_iface = 1;
130142
break;
131143
}
132144

@@ -140,12 +152,12 @@ void DetectRoccatVulcanKeyboardControllers(hid_device_info* info, const std::str
140152
&& info_temp->product_id == info->product_id
141153
&& used_paths.find(info_temp->path) == used_paths.end() )
142154
{
143-
if(info_temp->interface_number == 1 && info_temp->usage_page == dev_ctrl_page)
155+
if(info_temp->interface_number == dev_ctrl_iface && info_temp->usage_page == dev_ctrl_page)
144156
{
145157
dev_ctrl = hid_open_path(info_temp->path);
146158
dev_ctrl_path = info_temp->path;
147159
}
148-
else if(info_temp->interface_number == 3 && info_temp->usage_page == dev_led_page)
160+
else if(info_temp->interface_number == dev_led_iface && info_temp->usage_page == dev_led_page)
149161
{
150162
dev_led = hid_open_path(info_temp->path);
151163
dev_led_path = info_temp->path;
@@ -313,18 +325,19 @@ REGISTER_PRE_DETECTION_HOOK(ResetRoccatVulcanKeyboardControllersPaths);
313325
/*-----------------------------------------------------------------*\
314326
| KEYBOARDS |
315327
\*-----------------------------------------------------------------*/
316-
REGISTER_HID_DETECTOR_IPU("Roccat Horde Aimo", DetectRoccatHordeAimoKeyboardControllers, ROCCAT_VID, ROCCAT_HORDE_AIMO_PID, 1, 0x0B, 0 );
317-
318-
REGISTER_HID_DETECTOR_IP ("Roccat Magma", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_PID, 1, 0xFF01);
319-
REGISTER_HID_DETECTOR_IP ("Roccat Magma Mini", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_MINI_PID, 1, 0xFF01);
320-
REGISTER_HID_DETECTOR_IP ("Roccat Pyro", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_PYRO_PID, 1, 0xFF01);
321-
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 100 Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_100_AIMO_PID, 1, 11);
322-
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 120-Series Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_120_AIMO_PID, 1, 11);
323-
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan TKL", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_TKL_PID, 1, 11);
324-
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan Pro", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_PRO_PID, 1, 0xFF01);
325-
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan II", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_II_PID, 1, 0xFF01);
326-
REGISTER_HID_DETECTOR_IP ("Turtle Beach Vulcan II", DetectRoccatVulcanKeyboardControllers, TURTLE_BEACH_VID, TURTLE_BEACH_VULCAN_II_PID, 1, 0xFF01);
327-
REGISTER_HID_DETECTOR_IP ("Turtle Beach Vulcan II TKL", DetectRoccatVulcanKeyboardControllers, TURTLE_BEACH_VID, TURTLE_BEACH_VULCAN_II_TKL_PID, 1, 11);
328+
REGISTER_HID_DETECTOR_IPU("Roccat Horde Aimo", DetectRoccatHordeAimoKeyboardControllers, ROCCAT_VID, ROCCAT_HORDE_AIMO_PID, 1, 0x0B, 0 );
329+
330+
REGISTER_HID_DETECTOR_IP ("Roccat Magma", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_PID, 1, 0xFF01);
331+
REGISTER_HID_DETECTOR_IP ("Roccat Magma Mini", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_MAGMA_MINI_PID, 1, 0xFF01);
332+
REGISTER_HID_DETECTOR_IP ("Roccat Pyro", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_PYRO_PID, 1, 0xFF01);
333+
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 100 Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_100_AIMO_PID, 1, 11);
334+
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan 120-Series Aimo", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_120_AIMO_PID, 1, 11);
335+
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan TKL", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_TKL_PID, 1, 11);
336+
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan Pro", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_PRO_PID, 1, 0xFF01);
337+
REGISTER_HID_DETECTOR_IP ("Roccat Vulcan II", DetectRoccatVulcanKeyboardControllers, ROCCAT_VID, ROCCAT_VULCAN_II_PID, 1, 0xFF01);
338+
REGISTER_HID_DETECTOR_IP ("Turtle Beach Vulcan II", DetectRoccatVulcanKeyboardControllers, TURTLE_BEACH_VID, TURTLE_BEACH_VULCAN_II_PID, 1, 0xFF01);
339+
REGISTER_HID_DETECTOR_IP ("Turtle Beach Vulcan II TKL", DetectRoccatVulcanKeyboardControllers, TURTLE_BEACH_VID, TURTLE_BEACH_VULCAN_II_TKL_PID, 1, 11);
340+
REGISTER_HID_DETECTOR_IP ("Turtle Beach Vulcan II TKL Pro", DetectRoccatVulcanKeyboardControllers, TURTLE_BEACH_VID, TURTLE_BEACH_VULCAN_II_TKL_PRO_PID, 1, 0x0001);
328341

329342
/*-----------------------------------------------------------------*\
330343
| MICE |

Controllers/RoccatController/RoccatVulcanKeyboardController/RGBController_RoccatVulcanKeyboard.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ void RGBController_RoccatVulcanKeyboard::SetupZones()
115115
case TURTLE_BEACH_VULCAN_II_TKL_PID:
116116
keyboard_ptr = &RoccatVulcanTKLLayouts;
117117
break;
118+
case TURTLE_BEACH_VULCAN_II_TKL_PRO_PID:
119+
keyboard_ptr = &TurtleBeachVulcanIITKLProLayouts;
120+
break;
118121
case ROCCAT_VULCAN_PRO_PID:
119122
case ROCCAT_PYRO_PID:
120123
keyboard_ptr = &RoccatPyroLayouts;
@@ -186,7 +189,7 @@ void RGBController_RoccatVulcanKeyboard::ResizeZone(int /*zone*/, int /*new_size
186189

187190
void RGBController_RoccatVulcanKeyboard::DeviceUpdateLEDs()
188191
{
189-
if (modes[active_mode].value == ROCCAT_VULCAN_MODE_DIRECT)
192+
if(modes[active_mode].value == ROCCAT_VULCAN_MODE_DIRECT)
190193
{
191194
std::vector<led_color> led_color_list = {};
192195

@@ -228,6 +231,6 @@ void RGBController_RoccatVulcanKeyboard::DeviceUpdateMode()
228231
controller->SendMode(modes[active_mode].value, modes[active_mode].speed, modes[active_mode].brightness, led_color_list);
229232
controller->WaitUntilReady();
230233

231-
controller->EnableDirect(modes[active_mode].value != ROCCAT_VULCAN_MODE_DEFAULT);
234+
controller->EnableDirect(modes[active_mode].value == ROCCAT_VULCAN_MODE_DIRECT);
232235
controller->WaitUntilReady();
233236
}

0 commit comments

Comments
 (0)