From 2f08436e95a0e051664831c143bb974af3ab3665 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 2 Oct 2020 12:55:23 -0500 Subject: [PATCH] Use HID path for Location on HyperX Alloy Origins controller --- .../HyperXAlloyOriginsController.cpp | 10 ++++++++-- .../HyperXAlloyOriginsController.h | 5 ++++- .../HyperXKeyboardControllerDetect.cpp | 2 +- .../RGBController_HyperXAlloyOrigins.cpp | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.cpp b/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.cpp index e313ab7e..d9a4bc41 100644 --- a/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.cpp +++ b/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.cpp @@ -14,9 +14,10 @@ // Skip these indices in the color output static unsigned int skip_idx[] = { 6, 23, 29, 41, 47, 59, 70, 71, 75, 76, 87, 88, 93, 99, 100, 102, 108, 113, 114, 120, 123, 124 }; -HyperXAlloyOriginsController::HyperXAlloyOriginsController(hid_device* dev_handle) +HyperXAlloyOriginsController::HyperXAlloyOriginsController(hid_device* dev_handle, const char* path) { - dev = dev_handle; + dev = dev_handle; + location = path; } HyperXAlloyOriginsController::~HyperXAlloyOriginsController() @@ -24,6 +25,11 @@ HyperXAlloyOriginsController::~HyperXAlloyOriginsController() } +std::string HyperXAlloyOriginsController::GetDeviceLocation() +{ + return(location); +} + void HyperXAlloyOriginsController::SetLEDsDirect(std::vector colors) { /*-----------------------------------------------------*\ diff --git a/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.h b/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.h index 26642694..0d230fe4 100644 --- a/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.h +++ b/Controllers/HyperXKeyboardController/HyperXAlloyOriginsController.h @@ -17,13 +17,16 @@ class HyperXAlloyOriginsController { public: - HyperXAlloyOriginsController(hid_device* dev_handle); + HyperXAlloyOriginsController(hid_device* dev_handle, const char* path); ~HyperXAlloyOriginsController(); + std::string GetDeviceLocation(); + void SetLEDsDirect(std::vector colors); private: hid_device* dev; + std::string location; void SendDirectInitialization(); void SendDirectColorPacket diff --git a/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp b/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp index 00eaa2b9..4384b463 100644 --- a/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp +++ b/Controllers/HyperXKeyboardController/HyperXKeyboardControllerDetect.cpp @@ -94,7 +94,7 @@ void DetectHyperXKeyboardControllers(std::vector& rgb_controller if( dev ) { - HyperXAlloyOriginsController* controller = new HyperXAlloyOriginsController(dev); + HyperXAlloyOriginsController* controller = new HyperXAlloyOriginsController(dev, info->path); RGBController_HyperXAlloyOrigins* rgb_controller = new RGBController_HyperXAlloyOrigins(controller); diff --git a/Controllers/HyperXKeyboardController/RGBController_HyperXAlloyOrigins.cpp b/Controllers/HyperXKeyboardController/RGBController_HyperXAlloyOrigins.cpp index 6e7a9771..adb55f35 100644 --- a/Controllers/HyperXKeyboardController/RGBController_HyperXAlloyOrigins.cpp +++ b/Controllers/HyperXKeyboardController/RGBController_HyperXAlloyOrigins.cpp @@ -198,6 +198,7 @@ RGBController_HyperXAlloyOrigins::RGBController_HyperXAlloyOrigins(HyperXAlloyOr name = "HyperX Alloy Origins Keyboard Device"; type = DEVICE_TYPE_KEYBOARD; description = "HyperX Alloy Origins Keyboard Device"; + location = hyperx->GetDeviceLocation(); mode Direct; Direct.name = "Direct";