Skip to content

Commit 8926d29

Browse files
Chr1sNoCalcProgrammer1
authored andcommitted
Initial commit for Razer Deathadder Essential V2 to resolve #2651
+ Added PID entry for the Deathadder Essential V2 + Registered detectors + Added metadata to RazerDevices.h + Added capabilities to RazerController.cpp + Added `GetMaxBrightness()` to account for difference in brightness value
1 parent 3ac70cd commit 8926d29

File tree

5 files changed

+121
-43
lines changed

5 files changed

+121
-43
lines changed

Controllers/RazerController/RGBController_Razer.cpp

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -14,44 +14,45 @@
1414

1515
RGBController_Razer::RGBController_Razer(RazerController* controller_ptr)
1616
{
17-
controller = controller_ptr;
17+
controller = controller_ptr;
1818

19-
name = controller->GetName();
20-
vendor = "Razer";
21-
type = controller->GetDeviceType();
22-
description = "Razer Device";
23-
location = controller->GetDeviceLocation();
24-
version = controller->GetFirmwareString();
25-
serial = controller->GetSerialString();
19+
name = controller->GetName();
20+
vendor = "Razer";
21+
type = controller->GetDeviceType();
22+
description = "Razer Device";
23+
location = controller->GetDeviceLocation();
24+
version = controller->GetFirmwareString();
25+
serial = controller->GetSerialString();
26+
uint8_t max_brightness = controller->GetMaxBrightness();
2627

2728
mode Direct;
28-
Direct.name = "Direct";
29-
Direct.value = RAZER_MODE_DIRECT;
30-
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
31-
Direct.color_mode = MODE_COLORS_PER_LED;
32-
Direct.brightness_min = 0;
33-
Direct.brightness_max = 255;
34-
Direct.brightness = 255;
29+
Direct.name = "Direct";
30+
Direct.value = RAZER_MODE_DIRECT;
31+
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
32+
Direct.color_mode = MODE_COLORS_PER_LED;
33+
Direct.brightness_min = 0;
34+
Direct.brightness_max = max_brightness;
35+
Direct.brightness = max_brightness;
3536
modes.push_back(Direct);
3637

3738
mode Off;
38-
Off.name = "Off";
39-
Off.value = RAZER_MODE_OFF;
40-
Off.flags = 0;
41-
Off.color_mode = MODE_COLORS_NONE;
39+
Off.name = "Off";
40+
Off.value = RAZER_MODE_OFF;
41+
Off.flags = 0;
42+
Off.color_mode = MODE_COLORS_NONE;
4243
modes.push_back(Off);
4344

4445
mode Static;
45-
Static.name = "Static";
46-
Static.value = RAZER_MODE_STATIC;
47-
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
48-
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
49-
Static.colors_min = 1;
50-
Static.colors_max = 1;
46+
Static.name = "Static";
47+
Static.value = RAZER_MODE_STATIC;
48+
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS;
49+
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
50+
Static.colors_min = 1;
51+
Static.colors_max = 1;
5152
Static.colors.resize(1);
52-
Static.brightness_min = 0;
53-
Static.brightness_max = 255;
54-
Static.brightness = 255;
53+
Static.brightness_min = 0;
54+
Static.brightness_max = max_brightness;
55+
Static.brightness = max_brightness;
5556
modes.push_back(Static);
5657

5758
if(controller->SupportsBreathing())
@@ -65,8 +66,8 @@ RGBController_Razer::RGBController_Razer(RazerController* controller_ptr)
6566
Breathing.colors_max = 2;
6667
Breathing.colors.resize(1);
6768
Breathing.brightness_min = 0;
68-
Breathing.brightness_max = 255;
69-
Breathing.brightness = 255;
69+
Breathing.brightness_max = max_brightness;
70+
Breathing.brightness = max_brightness;
7071
modes.push_back(Breathing);
7172
}
7273

@@ -76,21 +77,21 @@ RGBController_Razer::RGBController_Razer(RazerController* controller_ptr)
7677
SpectrumCycle.flags = MODE_FLAG_HAS_BRIGHTNESS;
7778
SpectrumCycle.color_mode = MODE_COLORS_NONE;
7879
SpectrumCycle.brightness_min = 0;
79-
SpectrumCycle.brightness_max = 255;
80-
SpectrumCycle.brightness = 255;
80+
SpectrumCycle.brightness_max = max_brightness;
81+
SpectrumCycle.brightness = max_brightness;
8182
modes.push_back(SpectrumCycle);
8283

8384
if(controller->SupportsWave())
8485
{
8586
mode Wave;
86-
Wave.name = "Wave";
87-
Wave.value = RAZER_MODE_WAVE;
88-
Wave.flags = MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_BRIGHTNESS;
89-
Wave.direction = MODE_DIRECTION_RIGHT;
90-
Wave.color_mode = MODE_COLORS_NONE;
91-
Wave.brightness_min = 0;
92-
Wave.brightness_max = 255;
93-
Wave.brightness = 255;
87+
Wave.name = "Wave";
88+
Wave.value = RAZER_MODE_WAVE;
89+
Wave.flags = MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_BRIGHTNESS;
90+
Wave.direction = MODE_DIRECTION_RIGHT;
91+
Wave.color_mode = MODE_COLORS_NONE;
92+
Wave.brightness_min = 0;
93+
Wave.brightness_max = max_brightness;
94+
Wave.brightness = max_brightness;
9495
modes.push_back(Wave);
9596
}
9697

@@ -105,8 +106,8 @@ RGBController_Razer::RGBController_Razer(RazerController* controller_ptr)
105106
Reactive.colors_max = 1;
106107
Reactive.colors.resize(1);
107108
Reactive.brightness_min = 0;
108-
Reactive.brightness_max = 255;
109-
Reactive.brightness = 255;
109+
Reactive.brightness_max = max_brightness;
110+
Reactive.brightness = max_brightness;
110111
modes.push_back(Reactive);
111112
}
112113

Controllers/RazerController/RazerController.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
5757
case RAZER_TARTARUS_CHROMA_PID:
5858
case RAZER_TARTARUS_V2_PID:
5959
case RAZER_DEATHADDER_CHROMA_PID:
60+
case RAZER_DEATHADDER_ESSENTIAL_V2_PID:
6061
case RAZER_DEATHADDER_V2_MINI_PID:
6162
case RAZER_LAPTOP_STAND_CHROMA_PID:
6263
case RAZER_LAPTOP_STAND_CHROMA_V2_PID:
@@ -123,6 +124,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
123124
case RAZER_CORE_X_PID:
124125
case RAZER_DEATHADDER_ELITE_PID:
125126
case RAZER_DEATHADDER_V2_MINI_PID:
127+
case RAZER_DEATHADDER_ESSENTIAL_V2_PID:
126128
case RAZER_FIREFLY_V2_PID:
127129
case RAZER_GOLIATHUS_CHROMA_EXTENDED_PID:
128130
case RAZER_GOLIATHUS_CHROMA_PID:
@@ -241,6 +243,7 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
241243
case RAZER_CYNOSA_V2_PID:
242244
case RAZER_DEATHADDER_ELITE_PID:
243245
case RAZER_DEATHADDER_ESSENTIAL_PID:
246+
case RAZER_DEATHADDER_ESSENTIAL_V2_PID:
244247
case RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID:
245248
case RAZER_DEATHADDER_V2_MINI_PID:
246249
case RAZER_DEATHADDER_V2_PID:
@@ -367,6 +370,29 @@ void RazerController::SetAddressableZoneSizes(unsigned char zone_1_size, unsigne
367370
razer_usb_send(&report);
368371
}
369372

373+
unsigned char RazerController::GetMaxBrightness()
374+
{
375+
/*-----------------------------------------------------*\
376+
| Max brightness for most devices is 0xFF (255) |
377+
| Add PIDs only for devices that use 0x64 (100) |
378+
| or any another arbitrary value |
379+
\*-----------------------------------------------------*/
380+
unsigned char max_brightness = 255;
381+
382+
switch(dev_pid)
383+
{
384+
/*-----------------------------------------------------*\
385+
| Mice |
386+
\*-----------------------------------------------------*/
387+
case RAZER_DEATHADDER_ESSENTIAL_V2_PID:
388+
389+
max_brightness = 100;
390+
break;
391+
}
392+
393+
return(max_brightness);
394+
}
395+
370396
void RazerController::SetBrightness(unsigned char brightness)
371397
{
372398
razer_set_brightness(brightness);

Controllers/RazerController/RazerController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ class RazerController
168168
std::string GetFirmwareString();
169169
std::string GetName();
170170
std::string GetSerialString();
171+
unsigned char GetMaxBrightness();
171172

172173
void SetBrightness(unsigned char brightness);
173174

@@ -263,7 +264,7 @@ class RazerController
263264
void razer_set_custom_frame(unsigned char row_index, unsigned char start_col, unsigned char stop_col, unsigned char* rgb_data);
264265

265266
void razer_set_device_mode(unsigned char device_mode);
266-
267+
267268
void razer_set_mode_breathing_random();
268269
void razer_set_mode_breathing_one_color(unsigned char red, unsigned char grn, unsigned char blu);
269270
void razer_set_mode_breathing_two_colors(unsigned char r1, unsigned char g1, unsigned char b1, unsigned char r2, unsigned char g2, unsigned char b2);

Controllers/RazerController/RazerControllerDetect.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ REGISTER_HID_DETECTOR_IPU("Razer Basilisk V3", Det
320320
REGISTER_HID_DETECTOR_IPU("Razer Deathadder Chroma", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_CHROMA_PID, 0x00, 0x01, 0x02);
321321
REGISTER_HID_DETECTOR_IPU("Razer Deathadder Elite", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ELITE_PID, 0x00, 0x01, 0x02);
322322
REGISTER_HID_DETECTOR_IPU("Razer Deathadder Essential", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ESSENTIAL_PID, 0x00, 0x01, 0x02);
323+
REGISTER_HID_DETECTOR_IPU("Razer Deathadder Essential V2", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ESSENTIAL_V2_PID, 0x00, 0x01, 0x02);
323324
REGISTER_HID_DETECTOR_IPU("Razer Deathadder Essential White Edition", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID, 0x00, 0x01, 0x02);
324325
REGISTER_HID_DETECTOR_IPU("Razer Deathadder V2", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_V2_PID, 0x00, 0x01, 0x02);
325326
REGISTER_HID_DETECTOR_IPU("Razer Deathadder V2 Mini", DetectRazerControllers, RAZER_VID, RAZER_DEATHADDER_V2_MINI_PID, 0x00, 0x01, 0x02);

Controllers/RazerController/RazerDevices.h

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@
111111
#define RAZER_DEATHADDER_CHROMA_PID 0x0043
112112
#define RAZER_DEATHADDER_ELITE_PID 0x005C
113113
#define RAZER_DEATHADDER_ESSENTIAL_PID 0x006E
114+
#define RAZER_DEATHADDER_ESSENTIAL_V2_PID 0x0098
114115
#define RAZER_DEATHADDER_ESSENTIAL_WHITE_EDITION_PID 0x0071
115116
#define RAZER_DEATHADDER_V2_MINI_PID 0x008C
116117
#define RAZER_DEATHADDER_V2_PID 0x0084
@@ -5297,6 +5298,53 @@ static const razer_device deathadder_essential_device =
52975298
0
52985299
};
52995300

5301+
/*-------------------------------------------------------------*\
5302+
| Razer Deathadder Essential V2 1532:0098 |
5303+
| |
5304+
| Zone "Logo" |
5305+
| Single |
5306+
| 1 LED |
5307+
| |
5308+
| Zone "Scroll Wheel" |
5309+
| Single |
5310+
| 1 LED |
5311+
\*-------------------------------------------------------------*/
5312+
static const razer_zone deathadder_essential_v2_logo_zone =
5313+
{
5314+
"Logo",
5315+
ZONE_TYPE_SINGLE,
5316+
1,
5317+
1
5318+
};
5319+
5320+
static const razer_zone deathadder_essential_v2_scroll_wheel_zone =
5321+
{
5322+
"Scroll Wheel",
5323+
ZONE_TYPE_SINGLE,
5324+
1,
5325+
1
5326+
};
5327+
5328+
static const razer_device deathadder_essential_v2_device =
5329+
{
5330+
"Razer DeathAdder Essential V2",
5331+
RAZER_DEATHADDER_ESSENTIAL_V2_PID,
5332+
DEVICE_TYPE_MOUSE,
5333+
false,
5334+
1,
5335+
2,
5336+
{
5337+
&deathadder_essential_v2_logo_zone,
5338+
&deathadder_essential_v2_scroll_wheel_zone,
5339+
NULL,
5340+
NULL,
5341+
NULL,
5342+
NULL
5343+
},
5344+
NULL,
5345+
0
5346+
};
5347+
53005348
/*-------------------------------------------------------------*\
53015349
| Razer Deathadder Essential White Edition 1532:0071 |
53025350
| |
@@ -8222,6 +8270,7 @@ static const razer_device* device_list[] =
82228270
&deathadder_chroma_device,
82238271
&deathadder_elite_device,
82248272
&deathadder_essential_device,
8273+
&deathadder_essential_v2_device,
82258274
&deathadder_essential_white_edition_device,
82268275
&deathadder_v2_device,
82278276
&deathadder_v2_mini_device,

0 commit comments

Comments
 (0)