From 9ea62f43339b2ccf5ababe3144790f45454afe28 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sat, 31 Jan 2026 20:41:19 -0600 Subject: [PATCH] Determine device type from LampArray kind --- .../HIDLampArrayController.cpp | 5 +++ .../HIDLampArrayController.h | 1 + .../RGBController_HIDLampArray.cpp | 34 ++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/Controllers/HIDLampArrayController/HIDLampArrayController.cpp b/Controllers/HIDLampArrayController/HIDLampArrayController.cpp index 6931e9c77..a0f644715 100644 --- a/Controllers/HIDLampArrayController/HIDLampArrayController.cpp +++ b/Controllers/HIDLampArrayController/HIDLampArrayController.cpp @@ -135,6 +135,11 @@ std::string HIDLampArrayController::GetSerialString() return(""); } +unsigned int HIDLampArrayController::GetLampArrayKind() +{ + return(LampArray.LampArrayKind); +} + unsigned int HIDLampArrayController::GetLampCount() { return(LampArray.LampCount); diff --git a/Controllers/HIDLampArrayController/HIDLampArrayController.h b/Controllers/HIDLampArrayController/HIDLampArrayController.h index 83fe54618..a34efd4fe 100644 --- a/Controllers/HIDLampArrayController/HIDLampArrayController.h +++ b/Controllers/HIDLampArrayController/HIDLampArrayController.h @@ -116,6 +116,7 @@ public: std::string GetDeviceName(); std::string GetSerialString(); + unsigned int GetLampArrayKind(); unsigned int GetLampCount(); std::vector GetLamps(); diff --git a/Controllers/HIDLampArrayController/RGBController_HIDLampArray.cpp b/Controllers/HIDLampArrayController/RGBController_HIDLampArray.cpp index 379715c89..43bd0dbde 100644 --- a/Controllers/HIDLampArrayController/RGBController_HIDLampArray.cpp +++ b/Controllers/HIDLampArrayController/RGBController_HIDLampArray.cpp @@ -26,11 +26,43 @@ RGBController_HIDLampArray::RGBController_HIDLampArray(HIDLampArrayController* c name = controller->GetDeviceName(); vendor = "Generic"; - type = DEVICE_TYPE_MOUSEMAT; description = "HID LampArray Device"; location = controller->GetDeviceLocation(); serial = controller->GetSerialString(); + /*-----------------------------------------------------*\ + | Determine device type from LampArray kind | + \*-----------------------------------------------------*/ + switch(controller->GetLampArrayKind()) + { + case HID_LAMPARRAY_KIND_UNDEFINED: + default: + type = DEVICE_TYPE_UNKNOWN; + break; + + case HID_LAMPARRAY_KIND_KEYBOARD: + type = DEVICE_TYPE_KEYBOARD; + break; + + case HID_LAMPARRAY_KIND_MOUSE: + type = DEVICE_TYPE_MOUSE; + break; + + case HID_LAMPARRAY_KIND_GAME_CONTROLLER: + type = DEVICE_TYPE_GAMEPAD; + break; + + case HID_LAMPARRAY_KIND_PERIPHERAL: + case HID_LAMPARRAY_KIND_SCENE: + case HID_LAMPARRAY_KIND_NOTIFICATION: + case HID_LAMPARRAY_KIND_CHASSIS: + case HID_LAMPARRAY_KIND_WEARABLE: + case HID_LAMPARRAY_KIND_FURNITURE: + case HID_LAMPARRAY_KIND_ART: + type = DEVICE_TYPE_ACCESSORY; + break; + } + mode Direct; Direct.name = "Direct"; Direct.value = 0;