Skip to content

Commit ccb20f3

Browse files
lephilousopheCalcProgrammer1
authored andcommitted
Add Champion's Bane and Ironclad suport
1 parent 3d8c11e commit ccb20f3

File tree

6 files changed

+1576
-22
lines changed

6 files changed

+1576
-22
lines changed
Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
#include "Detector.h"
22
#include "EVisionKeyboardController.h"
3+
#include "EVisionV2KeyboardController.h"
34
#include "RGBController.h"
45
#include "RGBController_EVisionKeyboard.h"
6+
#include "RGBController_EVisionV2Keyboard.h"
7+
#include "SettingsManager.h"
58
#include <vector>
69
#include <hidapi/hidapi.h>
710

811
/*-----------------------------------------------------*\
912
| Keyboard product IDs |
1013
\*-----------------------------------------------------*/
11-
#define EVISION_KEYBOARD_VID 0x0C45
12-
#define EVISION_KEYBOARD2_VID 0x320F
13-
#define EVISION_KEYBOARD_USAGE_PAGE 0xFF1C
14-
#define GLORIOUS_GMMK_TKL_PID 0x5064
15-
#define REDRAGON_K550_PID 0x5204
16-
#define REDRAGON_K552_PID 0x5104
17-
#define REDRAGON_K552_V2_PID 0x5000
18-
#define REDRAGON_K556_PID 0x5004
19-
#define TECWARE_PHANTOM_ELITE_PID 0x652F
20-
#define WARRIOR_KANE_TC235 0x8520
21-
#define WOMIER_K87_PID 0x502A
22-
#define WOMIER_K66_PID 0x7698
14+
#define EVISION_KEYBOARD_VID 0x0C45
15+
#define EVISION_KEYBOARD2_VID 0x320F
16+
#define EVISION_KEYBOARD_USAGE_PAGE 0xFF1C
17+
#define GLORIOUS_GMMK_TKL_PID 0x5064
18+
#define REDRAGON_K550_PID 0x5204
19+
#define REDRAGON_K552_PID 0x5104
20+
#define REDRAGON_K552_V2_PID 0x5000
21+
#define REDRAGON_K556_PID 0x5004
22+
#define TECWARE_PHANTOM_ELITE_PID 0x652F
23+
#define WARRIOR_KANE_TC235 0x8520
24+
#define WOMIER_K87_PID 0x502A
25+
#define WOMIER_K66_PID 0x7698
26+
#define BYGG_CSB_ICL01_PID 0x5041
2327

2428
/******************************************************************************************\
2529
* *
@@ -35,22 +39,51 @@ void DetectEVisionKeyboards(hid_device_info* info, const std::string& /*name*/)
3539

3640
if(dev)
3741
{
38-
EVisionKeyboardController* controller = new EVisionKeyboardController(dev, info->path);
42+
EVisionKeyboardController* controller = new EVisionKeyboardController(dev, info->path);
3943
RGBController_EVisionKeyboard* rgb_controller = new RGBController_EVisionKeyboard(controller);
4044
rgb_controller->name = "EVision Keyboard";
4145
ResourceManager::get()->RegisterRGBController(rgb_controller);
4246
}
4347
}
4448

49+
void DetectEVisionV2Keyboards(hid_device_info* info, const std::string& name)
50+
{
51+
json settings = ResourceManager::get()->GetSettingsManager()->GetSettings("EVision2Settings");
52+
hid_device* dev = hid_open_path(info->path);
53+
54+
if(dev)
55+
{
56+
EVisionV2KeyboardController* controller = new EVisionV2KeyboardController(dev, info->path);
57+
58+
RGBController_EVisionV2Keyboard* rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_KEYBOARD);
59+
rgb_controller->name = name;
60+
ResourceManager::get()->RegisterRGBController(rgb_controller);
61+
62+
if(!settings.contains("AdditionalZones") || settings["AdditionalZones"] == true)
63+
{
64+
rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_LOGO);
65+
rgb_controller->name = name;
66+
rgb_controller->name += " Logo";
67+
ResourceManager::get()->RegisterRGBController(rgb_controller);
68+
69+
rgb_controller = new RGBController_EVisionV2Keyboard(controller, EVISION_V2_KEYBOARD_PART_EDGE);
70+
rgb_controller->name = name;
71+
rgb_controller->name += " Edge";
72+
ResourceManager::get()->RegisterRGBController(rgb_controller);
73+
}
74+
}
75+
}
76+
4577
/*---------------------------------------------------------------------------------------------------------------------------------------------*\
4678
| Keyboards |
4779
\*---------------------------------------------------------------------------------------------------------------------------------------------*/
48-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5204", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K550_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
49-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5104", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K552_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
50-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5000", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, REDRAGON_K552_V2_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
51-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5004", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K556_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
52-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:652F", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, TECWARE_PHANTOM_ELITE_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
53-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:8520", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WARRIOR_KANE_TC235, 1, EVISION_KEYBOARD_USAGE_PAGE);
54-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:502A", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, WOMIER_K87_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
55-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:7698", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WOMIER_K66_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
56-
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5064", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, GLORIOUS_GMMK_TKL_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
80+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5204", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K550_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
81+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5104", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K552_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
82+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5000", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, REDRAGON_K552_V2_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
83+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:5004", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, REDRAGON_K556_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
84+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:652F", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, TECWARE_PHANTOM_ELITE_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
85+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:8520", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WARRIOR_KANE_TC235, 1, EVISION_KEYBOARD_USAGE_PAGE);
86+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:502A", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, WOMIER_K87_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
87+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 0C45:7698", DetectEVisionKeyboards, EVISION_KEYBOARD_VID, WOMIER_K66_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
88+
REGISTER_HID_DETECTOR_IP("EVision Keyboard 320F:5064", DetectEVisionKeyboards, EVISION_KEYBOARD2_VID, GLORIOUS_GMMK_TKL_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);
89+
REGISTER_HID_DETECTOR_IP("CSB/ICL01 Keyboard", DetectEVisionV2Keyboards, EVISION_KEYBOARD2_VID, BYGG_CSB_ICL01_PID, 1, EVISION_KEYBOARD_USAGE_PAGE);

0 commit comments

Comments
 (0)