From ef6241fe388e3f6fc0a3f8512beb62a7ce897528 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 14 Aug 2025 22:31:59 -0500 Subject: [PATCH] Store name in ValkyrieKeyboardController to avoid setting it in detector --- .../RGBController_ValkyrieKeyboard.cpp | 22 +++---- .../ValkyrieKeyboardController.cpp | 16 +++-- .../ValkyrieKeyboardController.h | 66 ++++++++++--------- .../ValkyrieKeyboardControllerDetect.cpp | 3 +- 4 files changed, 57 insertions(+), 50 deletions(-) diff --git a/Controllers/ValkyrieKeyboardController/RGBController_ValkyrieKeyboard.cpp b/Controllers/ValkyrieKeyboardController/RGBController_ValkyrieKeyboard.cpp index 21b27581..389bbb6c 100644 --- a/Controllers/ValkyrieKeyboardController/RGBController_ValkyrieKeyboard.cpp +++ b/Controllers/ValkyrieKeyboardController/RGBController_ValkyrieKeyboard.cpp @@ -272,20 +272,20 @@ static const char *normal_led_names[] = RGBController_ValkyrieKeyboard::RGBController_ValkyrieKeyboard(ValkyrieKeyboardController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "Valkyrie Keyboard Device"; - vendor = "Valkyrie"; - type = DEVICE_TYPE_KEYBOARD; - description = "Valkyrie Keyboard Device"; - location = controller->GetDeviceLocation(); - serial = controller->GetSerialString(); + name = controller->GetNameString(); + vendor = "Valkyrie"; + type = DEVICE_TYPE_KEYBOARD; + description = "Valkyrie Keyboard Device"; + location = controller->GetDeviceLocation(); + serial = controller->GetSerialString(); mode Direct; - Direct.name = "Direct"; - Direct.value = 0xFFFF; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = 0xFFFF; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); SetupZones(); diff --git a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.cpp b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.cpp index 440f1314..6e0f5358 100644 --- a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.cpp +++ b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.cpp @@ -14,12 +14,13 @@ #include "StringUtils.h" #include "ValkyrieKeyboardController.h" -ValkyrieKeyboardController::ValkyrieKeyboardController(hid_device* dev_handle, const char* path, const unsigned short pid, const int interface) +ValkyrieKeyboardController::ValkyrieKeyboardController(hid_device* dev_handle, const char* path, const unsigned short pid, const int interface, std::string dev_name) { - dev = dev_handle; - location = path; - usb_pid = pid; - interface_num = interface; + dev = dev_handle; + location = path; + name = dev_name; + usb_pid = pid; + interface_num = interface; } ValkyrieKeyboardController::~ValkyrieKeyboardController() @@ -32,6 +33,11 @@ std::string ValkyrieKeyboardController::GetDeviceLocation() return("HID: " + location); } +std::string ValkyrieKeyboardController::GetNameString() +{ + return(name); +} + std::string ValkyrieKeyboardController::GetSerialString() { wchar_t serial_string[128]; diff --git a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.h b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.h index 1bc77b2f..793be80e 100644 --- a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.h +++ b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardController.h @@ -30,47 +30,49 @@ class ValkyrieKeyboardController { public: - ValkyrieKeyboardController(hid_device* dev_handle, const char* path, const unsigned short pid, const int interface); + ValkyrieKeyboardController(hid_device* dev_handle, const char* path, const unsigned short pid, const int interface, std::string dev_name); ~ValkyrieKeyboardController(); std::string GetDeviceLocation(); + std::string GetNameString(); std::string GetSerialString(); unsigned short GetUSBPID(); int GetInterfaceNum(); - void SendColors - ( - unsigned char* color_data, - unsigned int color_data_size - ); + void SendColors + ( + unsigned char* color_data, + unsigned int color_data_size + ); private: - hid_device* dev; - std::string location; - unsigned short usb_pid; - int interface_num; + hid_device* dev; + std::string location; + std::string name; + unsigned short usb_pid; + int interface_num; - void SendInitializeColorPacket(); - void SendTerminateColorPacket(); - int key_code_99[98] = - { - 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x77, - 0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x67, - 0x74,0x20,0x21,0x22,0x7A,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D, - 0x2E,0x2F,0x30,0x31,0x43,0x76,0x32,0x33,0x34,0x7B,0x37,0x38,0x39,0x3A, - 0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x55,0x79,0x44,0x45,0x46,0x49, - 0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x65,0x56,0x57, - 0x58,0x6A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x62,0x63,0x64,0x66,0x68,0x69 - }; - int key_code_103[102] = - { - 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x77,0x70,0x73, - 0x75,0x78,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x67, - 0x74,0x20,0x21,0x22,0x7A,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, - 0x30,0x31,0x43,0x76,0x32,0x33,0x34,0x7B,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E, - 0x3F,0x40,0x41,0x42,0x55,0x79,0x44,0x45,0x46,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, - 0x50,0x51,0x52,0x53,0x54,0x65,0x56,0x57,0x58,0x6A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60, - 0x62,0x63,0x64,0x66,0x68,0x69 - }; + int key_code_99[98] = + { + 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x77, + 0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x67, + 0x74,0x20,0x21,0x22,0x7A,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D, + 0x2E,0x2F,0x30,0x31,0x43,0x76,0x32,0x33,0x34,0x7B,0x37,0x38,0x39,0x3A, + 0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x55,0x79,0x44,0x45,0x46,0x49, + 0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x65,0x56,0x57, + 0x58,0x6A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x62,0x63,0x64,0x66,0x68,0x69 + }; + int key_code_103[102] = + { + 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x77,0x70,0x73, + 0x75,0x78,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x67, + 0x74,0x20,0x21,0x22,0x7A,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, + 0x30,0x31,0x43,0x76,0x32,0x33,0x34,0x7B,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E, + 0x3F,0x40,0x41,0x42,0x55,0x79,0x44,0x45,0x46,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, + 0x50,0x51,0x52,0x53,0x54,0x65,0x56,0x57,0x58,0x6A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60, + 0x62,0x63,0x64,0x66,0x68,0x69 + }; + void SendInitializeColorPacket(); + void SendTerminateColorPacket(); }; diff --git a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp index 50299282..c3415533 100644 --- a/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp +++ b/Controllers/ValkyrieKeyboardController/ValkyrieKeyboardControllerDetect.cpp @@ -20,9 +20,8 @@ void DetectValkyrieKeyboardControllers(hid_device_info* info, const std::string& if(dev) { - ValkyrieKeyboardController* controller = new ValkyrieKeyboardController(dev, info->path, info->product_id, info->interface_number); + ValkyrieKeyboardController* controller = new ValkyrieKeyboardController(dev, info->path, info->product_id, info->interface_number, name); RGBController_ValkyrieKeyboard* rgb_controller = new RGBController_ValkyrieKeyboard(controller); - rgb_controller->name = name; ResourceManager::get()->RegisterRGBController(rgb_controller); } }