Skip to content

Commit a0726dc

Browse files
Store name in LogitechControllers to avoid setting it in detectors
1 parent 86fbdfa commit a0726dc

35 files changed

Lines changed: 259 additions & 186 deletions

Controllers/LogitechController/LogitechControllerDetect.cpp

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@ void DetectLogitechKeyboardG213(hid_device_info* info, const std::string& name)
148148

149149
if(dev)
150150
{
151-
LogitechG213Controller* controller = new LogitechG213Controller(dev, info->path);
151+
LogitechG213Controller* controller = new LogitechG213Controller(dev, info->path, name);
152152
RGBController_LogitechG213* rgb_controller = new RGBController_LogitechG213(controller);
153-
rgb_controller->name = name;
153+
154154
ResourceManager::get()->RegisterRGBController(rgb_controller);
155155
}
156156
}
@@ -190,9 +190,8 @@ void DetectLogitechKeyboardG810(hid_device_info* info, const std::string& name)
190190
}
191191
if(dev_usage_0x0602 && dev_usage_0x0604)
192192
{
193-
LogitechG810Controller* controller = new LogitechG810Controller(dev_usage_0x0602, dev_usage_0x0604);
193+
LogitechG810Controller* controller = new LogitechG810Controller(dev_usage_0x0602, dev_usage_0x0604, name);
194194
RGBController_LogitechG810* rgb_controller = new RGBController_LogitechG810(controller);
195-
rgb_controller->name = name;
196195

197196
ResourceManager::get()->RegisterRGBController(rgb_controller);
198197
}
@@ -207,9 +206,8 @@ void DetectLogitechKeyboardG810(hid_device_info* info, const std::string& name)
207206

208207
if(dev)
209208
{
210-
LogitechG810Controller* controller = new LogitechG810Controller(dev, dev);
209+
LogitechG810Controller* controller = new LogitechG810Controller(dev, dev, name);
211210
RGBController_LogitechG810* rgb_controller = new RGBController_LogitechG810(controller);
212-
rgb_controller->name = name;
213211

214212
ResourceManager::get()->RegisterRGBController(rgb_controller);
215213
}
@@ -251,9 +249,8 @@ void DetectLogitechKeyboardG910(hid_device_info* info, const std::string& name)
251249
}
252250
if(dev_usage_0x0602 && dev_usage_0x0604)
253251
{
254-
LogitechG910Controller* controller = new LogitechG910Controller(dev_usage_0x0602, dev_usage_0x0604);
252+
LogitechG910Controller* controller = new LogitechG910Controller(dev_usage_0x0602, dev_usage_0x0604, name);
255253
RGBController_LogitechG910* rgb_controller = new RGBController_LogitechG910(controller);
256-
rgb_controller->name = name;
257254

258255
ResourceManager::get()->RegisterRGBController(rgb_controller);
259256
}
@@ -268,9 +265,8 @@ void DetectLogitechKeyboardG910(hid_device_info* info, const std::string& name)
268265

269266
if(dev)
270267
{
271-
LogitechG910Controller* controller = new LogitechG910Controller(dev, dev);
268+
LogitechG910Controller* controller = new LogitechG910Controller(dev, dev, name);
272269
RGBController_LogitechG910* rgb_controller = new RGBController_LogitechG910(controller);
273-
rgb_controller->name = name;
274270

275271
ResourceManager::get()->RegisterRGBController(rgb_controller);
276272
}
@@ -312,9 +308,8 @@ void DetectLogitechKeyboardG815(hid_device_info* info, const std::string& name)
312308
}
313309
if(dev_usage_0x0602 && dev_usage_0x0604)
314310
{
315-
LogitechG815Controller* controller = new LogitechG815Controller(dev_usage_0x0602, dev_usage_0x0604);
311+
LogitechG815Controller* controller = new LogitechG815Controller(dev_usage_0x0602, dev_usage_0x0604, name);
316312
RGBController_LogitechG815* rgb_controller = new RGBController_LogitechG815(controller);
317-
rgb_controller->name = name;
318313

319314
ResourceManager::get()->RegisterRGBController(rgb_controller);
320315
}
@@ -337,9 +332,8 @@ void DetectLogitechKeyboardG815(hid_device_info* info, const std::string& name)
337332

338333
if(dev)
339334
{
340-
LogitechG815Controller* controller = new LogitechG815Controller(dev, dev);
335+
LogitechG815Controller* controller = new LogitechG815Controller(dev, dev, name);
341336
RGBController_LogitechG815* rgb_controller = new RGBController_LogitechG815(controller);
342-
rgb_controller->name = name;
343337

344338
ResourceManager::get()->RegisterRGBController(rgb_controller);
345339
}
@@ -353,9 +347,8 @@ void DetectLogitechKeyboardG915(hid_device_info* info, const std::string& name)
353347

354348
if(dev)
355349
{
356-
LogitechG915Controller* controller = new LogitechG915Controller(dev, false);
350+
LogitechG915Controller* controller = new LogitechG915Controller(dev, false, name);
357351
RGBController_LogitechG915* rgb_controller = new RGBController_LogitechG915(controller, is_tkl);
358-
rgb_controller->name = name;
359352

360353
ResourceManager::get()->RegisterRGBController(rgb_controller);
361354
}
@@ -368,9 +361,8 @@ void DetectLogitechKeyboardG915Wired(hid_device_info* info, const std::string& n
368361

369362
if(dev)
370363
{
371-
LogitechG915Controller* controller = new LogitechG915Controller(dev, true);
364+
LogitechG915Controller* controller = new LogitechG915Controller(dev, true, name);
372365
RGBController_LogitechG915* rgb_controller = new RGBController_LogitechG915(controller, is_tkl);
373-
rgb_controller->name = name;
374366

375367
ResourceManager::get()->RegisterRGBController(rgb_controller);
376368
}
@@ -411,9 +403,8 @@ void DetectLogitechKeyboardGPro(hid_device_info* info, const std::string& name)
411403
}
412404
if(dev_usage_0x0602 && dev_usage_0x0604)
413405
{
414-
LogitechGProKeyboardController* controller = new LogitechGProKeyboardController(dev_usage_0x0602, dev_usage_0x0604);
406+
LogitechGProKeyboardController* controller = new LogitechGProKeyboardController(dev_usage_0x0602, dev_usage_0x0604, name);
415407
RGBController_LogitechGProKeyboard* rgb_controller = new RGBController_LogitechGProKeyboard(controller);
416-
rgb_controller->name = name;
417408

418409
ResourceManager::get()->RegisterRGBController(rgb_controller);
419410
}
@@ -428,9 +419,8 @@ void DetectLogitechKeyboardGPro(hid_device_info* info, const std::string& name)
428419

429420
if(dev)
430421
{
431-
LogitechGProKeyboardController* controller = new LogitechGProKeyboardController(dev, dev);
422+
LogitechGProKeyboardController* controller = new LogitechGProKeyboardController(dev, dev, name);
432423
RGBController_LogitechGProKeyboard* rgb_controller = new RGBController_LogitechGProKeyboard(controller);
433-
rgb_controller->name = name;
434424

435425
ResourceManager::get()->RegisterRGBController(rgb_controller);
436426
}
@@ -472,9 +462,8 @@ static void addLogitechLightsyncMouse1zone(hid_device_info* info, const std::str
472462
}
473463
if(dev_usage_1 && dev_usage_2)
474464
{
475-
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev_usage_1, dev_usage_2, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id);
465+
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev_usage_1, dev_usage_2, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id, name);
476466
RGBController_LogitechGLightsync1zone* rgb_controller = new RGBController_LogitechGLightsync1zone (controller);
477-
rgb_controller->name = name;
478467

479468
ResourceManager::get()->RegisterRGBController(rgb_controller);
480469
}
@@ -492,9 +481,8 @@ static void addLogitechLightsyncMouse1zone(hid_device_info* info, const std::str
492481

493482
if(dev)
494483
{
495-
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev, dev, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id);
484+
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev, dev, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id, name);
496485
RGBController_LogitechGLightsync1zone* rgb_controller = new RGBController_LogitechGLightsync1zone(controller);
497-
rgb_controller->name = name;
498486

499487
ResourceManager::get()->RegisterRGBController(rgb_controller);
500488
}
@@ -534,9 +522,8 @@ static void addLogitechLightsyncMouse2zone(hid_device_info* info, const std::str
534522
}
535523
if(dev_usage_1 && dev_usage_2)
536524
{
537-
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev_usage_1, dev_usage_2, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id);
525+
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev_usage_1, dev_usage_2, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id, name);
538526
RGBController_LogitechGLightsync* rgb_controller = new RGBController_LogitechGLightsync (controller);
539-
rgb_controller->name = name;
540527

541528
ResourceManager::get()->RegisterRGBController(rgb_controller);
542529
}
@@ -553,9 +540,8 @@ static void addLogitechLightsyncMouse2zone(hid_device_info* info, const std::str
553540

554541
if(dev)
555542
{
556-
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev, dev, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id);
543+
LogitechGLightsyncController* controller = new LogitechGLightsyncController(dev, dev, info->path, hid_dev_index, hid_feature_index, hid_fctn_ase_id, name);
557544
RGBController_LogitechGLightsync* rgb_controller = new RGBController_LogitechGLightsync(controller);
558-
rgb_controller->name = name;
559545

560546
ResourceManager::get()->RegisterRGBController(rgb_controller);
561547
}
@@ -574,9 +560,8 @@ void DetectLogitechMouseG203L(hid_device_info* info, const std::string& name)
574560

575561
if(dev)
576562
{
577-
LogitechG203LController* controller = new LogitechG203LController(dev, info->path);
563+
LogitechG203LController* controller = new LogitechG203LController(dev, info->path, name);
578564
RGBController_LogitechG203L* rgb_controller = new RGBController_LogitechG203L(controller);
579-
rgb_controller->name = name;
580565

581566
ResourceManager::get()->RegisterRGBController(rgb_controller);
582567
}
@@ -609,9 +594,8 @@ void DetectLogitechG560(hid_device_info* info, const std::string& name)
609594
/*---------------------------------------------*\
610595
| Add G560 Speaker |
611596
\*---------------------------------------------*/
612-
LogitechG560Controller* controller = new LogitechG560Controller(dev, info->path);
597+
LogitechG560Controller* controller = new LogitechG560Controller(dev, info->path, name);
613598
RGBController_LogitechG560* rgb_controller = new RGBController_LogitechG560(controller);
614-
rgb_controller->name = name;
615599

616600
ResourceManager::get()->RegisterRGBController(rgb_controller);
617601
}
@@ -626,9 +610,8 @@ void DetectLogitechG933(hid_device_info* info, const std::string& name)
626610
/*---------------------------------------------*\
627611
| Add G933 Headset |
628612
\*---------------------------------------------*/
629-
LogitechG933Controller* controller = new LogitechG933Controller(dev, info->path);
613+
LogitechG933Controller* controller = new LogitechG933Controller(dev, info->path, name);
630614
RGBController_LogitechG933* rgb_controller = new RGBController_LogitechG933(controller);
631-
rgb_controller->name = name;
632615

633616
ResourceManager::get()->RegisterRGBController(rgb_controller);
634617
}
@@ -643,9 +626,8 @@ void DetectLogitechX56(hid_device_info* info, const std::string& name)
643626
/*---------------------------------------------*\
644627
| Add X56 Devices |
645628
\*---------------------------------------------*/
646-
LogitechX56Controller* controller = new LogitechX56Controller(dev, info->path);
629+
LogitechX56Controller* controller = new LogitechX56Controller(dev, info->path, name);
647630
RGBController_LogitechX56* rgb_controller = new RGBController_LogitechX56(controller);
648-
rgb_controller->name = name;
649631

650632
ResourceManager::get()->RegisterRGBController(rgb_controller);
651633
}

Controllers/LogitechController/LogitechG203LController/LogitechG203LController.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313

1414
#define PACKET_SIZE 20
1515

16-
LogitechG203LController::LogitechG203LController(hid_device* dev_handle, const char* path)
16+
LogitechG203LController::LogitechG203LController(hid_device* dev_handle, const char* path, std::string dev_name)
1717
{
1818
dev = dev_handle;
1919
location = path;
20+
name = dev_name;
2021

2122
// enable software control
2223
unsigned char usb_buf[PACKET_SIZE];
@@ -47,6 +48,11 @@ std::string LogitechG203LController::GetDeviceLocation()
4748
return("HID: " + location);
4849
}
4950

51+
std::string LogitechG203LController::GetNameString()
52+
{
53+
return(name);
54+
}
55+
5056
std::string LogitechG203LController::GetSerialString()
5157
{
5258
wchar_t serial_string[128];

Controllers/LogitechController/LogitechG203LController/LogitechG203LController.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,21 @@ enum
2727
class LogitechG203LController
2828
{
2929
public:
30-
LogitechG203LController(hid_device* dev_handle, const char* path);
30+
LogitechG203LController(hid_device* dev_handle, const char* path, std::string dev_name);
3131
~LogitechG203LController();
3232

3333
std::string GetDeviceLocation();
34+
std::string GetNameString();
3435
std::string GetSerialString();
3536

3637
void SetSingleLED(int led, unsigned char red, unsigned char green, unsigned char blue);
3738
void SetMode(int mode, int speed, unsigned char brightness, unsigned char dir, unsigned char red, unsigned char green, unsigned char blue);
3839
void SetDevice(std::vector<RGBColor> colors);
3940

4041
private:
41-
hid_device* dev;
42-
std::string location;
42+
hid_device* dev;
43+
std::string location;
44+
std::string name;
4345

4446
void SendApply();
4547
void SendPacket(unsigned char* buffer);

Controllers/LogitechController/LogitechG203LController/RGBController_LogitechG203L.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222

2323
RGBController_LogitechG203L::RGBController_LogitechG203L(LogitechG203LController* controller_ptr)
2424
{
25-
controller = controller_ptr;
26-
27-
name = "Logitech Mouse Device";
28-
vendor = "Logitech";
29-
type = DEVICE_TYPE_MOUSE;
30-
description = "Logitech Mouse Device";
31-
location = controller->GetDeviceLocation();
32-
serial = controller->GetSerialString();
25+
controller = controller_ptr;
26+
27+
name = controller->GetNameString();
28+
vendor = "Logitech";
29+
type = DEVICE_TYPE_MOUSE;
30+
description = "Logitech Mouse Device";
31+
location = controller->GetDeviceLocation();
32+
serial = controller->GetSerialString();
3333

3434
mode Direct;
3535
Direct.name = "Direct";

Controllers/LogitechController/LogitechG213Controller/LogitechG213Controller.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313
#include "LogitechG213Controller.h"
1414
#include "StringUtils.h"
1515

16-
LogitechG213Controller::LogitechG213Controller(hid_device* dev_handle, const char* path)
16+
LogitechG213Controller::LogitechG213Controller(hid_device* dev_handle, const char* path, std::string dev_name)
1717
{
1818
dev = dev_handle;
1919
location = path;
20+
name = dev_name;
2021
}
2122

2223
LogitechG213Controller::~LogitechG213Controller()
@@ -29,6 +30,11 @@ std::string LogitechG213Controller::GetDeviceLocation()
2930
return("HID: " + location);
3031
}
3132

33+
std::string LogitechG213Controller::GetNameString()
34+
{
35+
return(name);
36+
}
37+
3238
std::string LogitechG213Controller::GetSerialString()
3339
{
3440
wchar_t serial_string[128];

Controllers/LogitechController/LogitechG213Controller/LogitechG213Controller.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ enum
5252
class LogitechG213Controller
5353
{
5454
public:
55-
LogitechG213Controller(hid_device* dev_handle, const char* path);
55+
LogitechG213Controller(hid_device* dev_handle, const char* path, std::string dev_name);
5656
~LogitechG213Controller();
5757

5858
std::string GetDeviceLocation();
59+
std::string GetNameString();
5960
std::string GetSerialString();
6061

6162
void SetDirect
@@ -79,6 +80,7 @@ class LogitechG213Controller
7980
private:
8081
hid_device* dev;
8182
std::string location;
83+
std::string name;
8284

8385
void SendMode
8486
(

Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ static const unsigned char led_values[] =
4444

4545
RGBController_LogitechG213::RGBController_LogitechG213(LogitechG213Controller* controller_ptr)
4646
{
47-
controller = controller_ptr;
47+
controller = controller_ptr;
4848

49-
name = "Logitech G213 Keyboard Device";
50-
vendor = "Logitech";
51-
type = DEVICE_TYPE_KEYBOARD;
52-
description = "Logitech G213 Keyboard Device";
53-
location = controller->GetDeviceLocation();
54-
serial = controller->GetSerialString();
49+
name = controller->GetNameString();
50+
vendor = "Logitech";
51+
type = DEVICE_TYPE_KEYBOARD;
52+
description = "Logitech G213 Keyboard Device";
53+
location = controller->GetDeviceLocation();
54+
serial = controller->GetSerialString();
5555

5656
mode Direct;
5757
Direct.name = "Direct";
@@ -78,14 +78,14 @@ RGBController_LogitechG213::RGBController_LogitechG213(LogitechG213Controller* c
7878
modes.push_back(Cycle);
7979

8080
mode Wave;
81-
Wave.name = "Wave";
82-
Wave.value = LOGITECH_G213_MODE_WAVE;
83-
Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_UD;
84-
Wave.color_mode = MODE_COLORS_NONE;
85-
Wave.speed_min = LOGITECH_G213_SPEED_SLOWEST;
86-
Wave.speed_max = LOGITECH_G213_SPEED_FASTEST;
87-
Wave.speed = LOGITECH_G213_SPEED_NORMAL;
88-
Wave.direction = MODE_DIRECTION_LEFT;
81+
Wave.name = "Wave";
82+
Wave.value = LOGITECH_G213_MODE_WAVE;
83+
Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_UD;
84+
Wave.color_mode = MODE_COLORS_NONE;
85+
Wave.speed_min = LOGITECH_G213_SPEED_SLOWEST;
86+
Wave.speed_max = LOGITECH_G213_SPEED_FASTEST;
87+
Wave.speed = LOGITECH_G213_SPEED_NORMAL;
88+
Wave.direction = MODE_DIRECTION_LEFT;
8989
modes.push_back(Wave);
9090

9191
mode Breathing;

Controllers/LogitechController/LogitechG560Controller/LogitechG560Controller.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717

1818
using namespace std::chrono_literals;
1919

20-
LogitechG560Controller::LogitechG560Controller(hid_device* dev_handle, const char* path)
20+
LogitechG560Controller::LogitechG560Controller(hid_device* dev_handle, const char* path, std::string dev_name)
2121
{
2222
dev = dev_handle;
2323
location = path;
24+
name = dev_name;
2425
}
2526

2627
LogitechG560Controller::~LogitechG560Controller()
@@ -33,6 +34,11 @@ std::string LogitechG560Controller::GetDeviceLocation()
3334
return("HID: " + location);
3435
}
3536

37+
std::string LogitechG560Controller::GetDeviceName()
38+
{
39+
return(name);
40+
}
41+
3642
void LogitechG560Controller::SetDirectMode(uint8_t zone)
3743
{
3844
unsigned char usb_buf[LOGI_G560_LED_PACKET_SIZE];

0 commit comments

Comments
 (0)