fix layout detection for Roccat Vulcan keyboards
This commit is contained in:
parent
a989166cdc
commit
977f68c65c
4 changed files with 19 additions and 12 deletions
|
|
@ -78,16 +78,21 @@ RGBController_RoccatVulcanAimo::~RGBController_RoccatVulcanAimo()
|
|||
|
||||
void RGBController_RoccatVulcanAimo::SetupZones()
|
||||
{
|
||||
unsigned char layout = controller->GetDeviceInfo().layout_variant;
|
||||
unsigned char layout;
|
||||
|
||||
if(RoccatVulcanLayouts.find(layout) == RoccatVulcanLayouts.end())
|
||||
switch(controller->GetDeviceInfo().layout_type)
|
||||
{
|
||||
/*---------------------------------------------------------*\
|
||||
| If Layout not found, take uk or us |
|
||||
\*---------------------------------------------------------*/
|
||||
layout = controller->GetDeviceInfo().layout_type == 1 ? ROCCAT_VULCAN_LAYOUT_UK : ROCCAT_VULCAN_LAYOUT_US;
|
||||
case ROCCAT_VULCAN_LAYOUT_DE:
|
||||
case ROCCAT_VULCAN_LAYOUT_UK:
|
||||
case ROCCAT_VULCAN_LAYOUT_FR:
|
||||
layout = ROCCAT_VULCAN_LAYOUT_UK;
|
||||
break;
|
||||
case ROCCAT_VULCAN_LAYOUT_US:
|
||||
default:
|
||||
layout = ROCCAT_VULCAN_LAYOUT_US;
|
||||
}
|
||||
|
||||
|
||||
zone keyboard_zone;
|
||||
keyboard_zone.name = "Keyboard";
|
||||
keyboard_zone.type = ZONE_TYPE_MATRIX;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
#include <cstring>
|
||||
#include <math.h>
|
||||
|
||||
#include "LogManager.h"
|
||||
|
||||
RoccatVulcanAimoController::RoccatVulcanAimoController(hid_device* dev_ctrl_handle, hid_device* dev_led_handle, char *path)
|
||||
{
|
||||
dev_ctrl = dev_ctrl_handle;
|
||||
|
|
@ -55,8 +57,8 @@ device_info RoccatVulcanAimoController::InitDeviceInfo()
|
|||
|
||||
dev_info.version = std::to_string((int) floor(usb_buf[2] / 100)) + "." + std::to_string(usb_buf[2] % 100);
|
||||
|
||||
dev_info.layout_type = usb_buf[6];
|
||||
dev_info.layout_variant = usb_buf[7];
|
||||
dev_info.layout_type = usb_buf[6];
|
||||
LOG_DEBUG("[Roccat Vulcan Aimo]: Detected layout '0x%02X'", usb_buf[6]);
|
||||
|
||||
return dev_info;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ struct device_info
|
|||
{
|
||||
std::string version;
|
||||
int layout_type;
|
||||
int layout_variant;
|
||||
};
|
||||
|
||||
struct led_color
|
||||
|
|
|
|||
|
|
@ -16,9 +16,10 @@
|
|||
|
||||
enum
|
||||
{
|
||||
ROCCAT_VULCAN_LAYOUT_US = 6,
|
||||
ROCCAT_VULCAN_LAYOUT_DE = 7,
|
||||
ROCCAT_VULCAN_LAYOUT_UK = 0xFF, // this is a placeholder, since the id isn't known
|
||||
ROCCAT_VULCAN_LAYOUT_US = 0,
|
||||
ROCCAT_VULCAN_LAYOUT_DE = 1,
|
||||
ROCCAT_VULCAN_LAYOUT_UK = 2,
|
||||
ROCCAT_VULCAN_LAYOUT_FR = 3,
|
||||
};
|
||||
|
||||
#define NA 0xFFFFFFFF
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue