Add support for Lian Li GAII Trinity AIO

This commit is contained in:
Michael Losert
2023-11-08 17:54:20 +00:00
committed by Adam Honse
parent 12e7127422
commit dbeabe613d
6 changed files with 938 additions and 5 deletions

View File

@@ -34,11 +34,14 @@
#include "RGBController_LianLiUniHubSLV2.h"
#include "LianLiUniHubSLInfinityController.h"
#include "RGBController_LianLiUniHubSLInfinity.h"
#include "LianLiGAIITrinityController.h"
#include "RGBController_LianLiGAIITrinity.h"
/*-----------------------------------------------------*\
| ENE USB vendor ID |
| USB vendor IDs |
\*-----------------------------------------------------*/
#define ENE_USB_VID 0x0CF2
#define NUVOTON_USB_VID 0x0416
/*-----------------------------------------------------*\
| Keyboard product IDs |
@@ -53,6 +56,7 @@
#define UNI_HUB_SLINF_PID 0xA102
#define UNI_HUB_SLV2_PID 0xA103
#define UNI_HUB_SLV2_V05_PID 0xA105
#define GAII_USB_PID 0x7373
/*----------------------------------------------------------------------------*\
| The Uni Hub is controlled by sending control transfers to various wIndex |
@@ -64,7 +68,7 @@ void DetectLianLiUniHub()
{
libusb_device** devices = nullptr;
int ret;
ssize_t ret;
ret = libusb_init(NULL);
if(ret < 0)
@@ -78,7 +82,7 @@ void DetectLianLiUniHub()
return;
}
int deviceCount = ret;
ssize_t deviceCount = ret;
for(int i = 0; i < deviceCount; i++)
{
@@ -110,7 +114,7 @@ void DetectLianLiUniHub_AL10()
{
libusb_device** devices = nullptr;
int ret;
ssize_t ret;
ret = libusb_init(NULL);
if(ret < 0)
@@ -124,7 +128,7 @@ void DetectLianLiUniHub_AL10()
return;
}
int deviceCount = ret;
ssize_t deviceCount = ret;
for(int i = 0; i < deviceCount; i++)
{
@@ -221,6 +225,18 @@ void DetectStrimerControllers(hid_device_info* info, const std::string& name)
}
}
void DetectLianLiGAIITrinity(hid_device_info* info, const std::string& /*name*/)
{
hid_device* dev = hid_open_path(info->path);
if(dev)
{
LianLiGAIITrinityController* controller = new LianLiGAIITrinityController(dev);
RGBController_LianLiGAIITrinity* rgb_controller = new RGBController_LianLiGAIITrinity(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
REGISTER_DETECTOR("Lian Li Uni Hub", DetectLianLiUniHub);
REGISTER_HID_DETECTOR_IPU("Lian Li Uni Hub - AL", DetectLianLiUniHubAL, ENE_USB_VID, UNI_HUB_AL_PID, 0x01, 0xFF72, 0xA1);
REGISTER_HID_DETECTOR_IPU("Lian Li Uni Hub - SL V2", DetectLianLiUniHubSLV2, ENE_USB_VID, UNI_HUB_SLV2_PID, 0x01, 0xFF72, 0xA1);
@@ -233,3 +249,5 @@ REGISTER_HID_DETECTOR_IPU("Lian Li Uni Hub - SL Infinity", DetectLianLiUniHubSLI
\*---------------------------------------------------------------------------------------------------------*/
REGISTER_HID_DETECTOR_IPU("Strimer L Connect", DetectStrimerControllers, ENE_USB_VID, STRIMER_L_CONNECT_PID, 1, 0xFF72, 0xA1);
REGISTER_HID_DETECTOR_I("Lian Li GA II Trinity", DetectLianLiGAIITrinity, NUVOTON_USB_VID, GAII_USB_PID, 0x02);