Use HID path for Location on Poseidon Z RGB controller

This commit is contained in:
Adam Honse
2020-10-05 00:11:03 -05:00
parent e4229aae47
commit fe8ed09e77
4 changed files with 14 additions and 4 deletions

View File

@@ -22,9 +22,10 @@ static unsigned int keys[] = {0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x
0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x66, 0x67, 0x68, 0x69, 0x6A,
0x6C, 0x6D, 0x6F, 0x70, 0x72, 0x73, 0x75, 0x76, 0x77, 0x78, 0x7C, 0x80, 0x81 };
PoseidonZRGBController::PoseidonZRGBController(hid_device* dev_handle)
PoseidonZRGBController::PoseidonZRGBController(hid_device* dev_handle, const char* path)
{
dev = dev_handle;
dev = dev_handle;
location = path;
}
PoseidonZRGBController::~PoseidonZRGBController()
@@ -32,6 +33,11 @@ PoseidonZRGBController::~PoseidonZRGBController()
}
std::string PoseidonZRGBController::GetDeviceLocation()
{
return(location);
}
void PoseidonZRGBController::SetMode(unsigned char mode, unsigned char direction, unsigned char speed)
{
active_mode = mode;

View File

@@ -74,9 +74,11 @@ enum
class PoseidonZRGBController
{
public:
PoseidonZRGBController(hid_device* dev_handle);
PoseidonZRGBController(hid_device* dev_handle, const char* path);
~PoseidonZRGBController();
std::string GetDeviceLocation();
void SetMode(unsigned char mode, unsigned char direction, unsigned char speed);
void SetLEDsDirect(std::vector<RGBColor> colors);
void SetLEDs(std::vector<RGBColor> colors);
@@ -86,6 +88,7 @@ private:
unsigned char active_mode;
unsigned char active_direction;
unsigned char active_speed;
std::string location;
void SendControl
(

View File

@@ -41,7 +41,7 @@ void DetectPoseidonZRGBControllers(std::vector<RGBController*>& rgb_controllers)
dev = hid_open_path(info->path);
if( dev )
{
PoseidonZRGBController* controller = new PoseidonZRGBController(dev);
PoseidonZRGBController* controller = new PoseidonZRGBController(dev, info->path);
RGBController_PoseidonZRGB* rgb_controller = new RGBController_PoseidonZRGB(controller);

View File

@@ -150,6 +150,7 @@ RGBController_PoseidonZRGB::RGBController_PoseidonZRGB(PoseidonZRGBController* p
name = "Thermaltake Poseidon Z RGB";
type = DEVICE_TYPE_KEYBOARD;
description = "Thermaltake Poseidon Z RGB Device";
location = poseidon->GetDeviceLocation();
mode Direct;
Direct.name = "Direct";