Update Lian Li Strimer L Connect controller files to new standardized header comment

This commit is contained in:
Adam Honse 2024-05-25 18:08:01 -05:00
parent cdcbf5209c
commit 8d14059d2e
6 changed files with 118 additions and 109 deletions

View file

@ -1,29 +1,29 @@
/*-----------------------------------------*\
| LianLiControllerDetect.cpp |
| |
| Detector for Lian Li Uni Hub USB |
| lighting controller |
| |
| Luca Lovisa 2/20/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| LianLiControllerDetect.cpp |
| |
| Detector for Lian Li devices |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include <string>
#include <vector>
#include "Detector.h"
#include "ResourceManager.h"
#ifdef __FreeBSD__
#include <libusb.h>
#else
#include <libusb-1.0/libusb.h>
#endif
#include "Detector.h"
#include "ResourceManager.h"
/*-----------------------------------------------------*\
| LianLi USB Controller specific includes |
\*-----------------------------------------------------*/
#include "RGBController_LianLiUniHub.h"
#include "RGBController_StrimerLConnect.h"
#include "RGBController_LianLiStrimerLConnect.h"
#include "LianLiUniHubController.h"
#include "RGBController_LianLiUniHub.h"
#include "LianLiUniHubALController.h"
@ -213,14 +213,14 @@ void DetectLianLiUniHubSLInfinity(hid_device_info* info, const std::string& name
}
} /* DetectLianLiUniHubSLInfinity() */
void DetectStrimerControllers(hid_device_info* info, const std::string& name)
void DetectLianLiStrimerControllers(hid_device_info* info, const std::string& name)
{
hid_device* dev = hid_open_path(info->path);
if(dev)
{
StrimerLConnectController* controller = new StrimerLConnectController(dev, info->path);
RGBController_StrimerLConnect* rgb_controller = new RGBController_StrimerLConnect(controller);
LianLiStrimerLConnectController* controller = new LianLiStrimerLConnectController(dev, info->path);
RGBController_LianLiStrimerLConnect* rgb_controller = new RGBController_LianLiStrimerLConnect(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
@ -252,6 +252,6 @@ REGISTER_HID_DETECTOR_IPU("Lian Li Uni Hub - SL Infinity", DetectLianLiUniH
| DUMMY_DEVICE_DETECTOR("Lian Li Uni Hub", DetectLianLiUniHub, 0x0CF2, 0x7750 ) |
\*---------------------------------------------------------------------------------------------------------*/
REGISTER_HID_DETECTOR_IPU("Strimer L Connect", DetectStrimerControllers, ENE_USB_VID, STRIMER_L_CONNECT_PID, 1, 0xFF72, 0xA1);
REGISTER_HID_DETECTOR_IPU("Strimer L Connect", DetectLianLiStrimerControllers, 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);
REGISTER_HID_DETECTOR_I("Lian Li GA II Trinity Performance", DetectLianLiGAIITrinity, NUVOTON_USB_VID, GAII_Perf_USB_PID, 0x02);

View file

@ -1,13 +1,15 @@
/*---------------------------------------------------------------------*\
| StrimerLConnectController.cpp |
| |
| Driver for StrimerLConnect USB Controller |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
\*---------------------------------------------------------------------*/
/*---------------------------------------------------------*\
| LianLiStrimerLConnectController.cpp |
| |
| Driver for Lian Li Strimer L Connect |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "StrimerLConnectController.h"
#include "LianLiStrimerLConnectController.h"
static uint8_t speed_data[5] =
{
@ -19,7 +21,7 @@ static uint8_t brightness_data[5] =
0x08, 0x03, 0x02, 0x01, 0x00 /* 0%, 25%, 50%, 75%, 100% */
};
StrimerLConnectController::StrimerLConnectController(hid_device* dev_handle, const char* path)
LianLiStrimerLConnectController::LianLiStrimerLConnectController(hid_device* dev_handle, const char* path)
{
const uint8_t sz = HID_MAX_STR;
wchar_t tmp[sz];
@ -36,17 +38,17 @@ StrimerLConnectController::StrimerLConnectController(hid_device* dev_handle, con
device_name.append(" ").append(std::string(wName.begin(), wName.end()));
}
StrimerLConnectController::~StrimerLConnectController()
LianLiStrimerLConnectController::~LianLiStrimerLConnectController()
{
hid_close(dev);
}
std::string StrimerLConnectController::GetDeviceName()
std::string LianLiStrimerLConnectController::GetDeviceName()
{
return device_name;
}
std::string StrimerLConnectController::GetSerial()
std::string LianLiStrimerLConnectController::GetSerial()
{
const uint8_t sz = HID_MAX_STR;
wchar_t tmp[sz];
@ -65,19 +67,19 @@ std::string StrimerLConnectController::GetSerial()
return serial;
}
std::string StrimerLConnectController::GetLocation()
std::string LianLiStrimerLConnectController::GetLocation()
{
return("HID: " + location);
}
void StrimerLConnectController::SendApply()
void LianLiStrimerLConnectController::SendApply()
{
uint8_t buffer[STRIMERLCONNECT_PACKET_SIZE] = { STRIMERLCONNECT_REPORT_ID, 0x2C, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00 };
hid_write(dev, buffer, STRIMERLCONNECT_PACKET_SIZE);
}
void StrimerLConnectController::SetMode(uint8_t mode, uint8_t zone, uint8_t speed, uint8_t brightness, uint8_t direction, bool /*random_colours*/)
void LianLiStrimerLConnectController::SetMode(uint8_t mode, uint8_t zone, uint8_t speed, uint8_t brightness, uint8_t direction, bool /*random_colours*/)
{
uint8_t buffer[STRIMERLCONNECT_PACKET_SIZE] = { STRIMERLCONNECT_REPORT_ID, STRIMERLCONNECT_MODE_COMMAND, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
@ -91,7 +93,7 @@ void StrimerLConnectController::SetMode(uint8_t mode, uint8_t zone, uint8_t spee
hid_write(dev, buffer, STRIMERLCONNECT_PACKET_SIZE);
}
void StrimerLConnectController::SetLedsDirect(uint8_t zone, RGBColor * led_colours, uint8_t led_count)
void LianLiStrimerLConnectController::SetLedsDirect(uint8_t zone, RGBColor * led_colours, uint8_t led_count)
{
uint8_t buffer[STRIMERLCONNECT_PACKET_SIZE] = { STRIMERLCONNECT_REPORT_ID, STRIMERLCONNECT_COLOUR_COMMAND, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View file

@ -1,19 +1,21 @@
/*---------------------------------------------------------------------*\
| StrimerLConnectController.h |
| |
| Driver for StrimerLConnect USB Controller |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
\*---------------------------------------------------------------------*/
/*---------------------------------------------------------*\
| LianLiStrimerLConnectController.h |
| |
| Driver for Lian Li Strimer L Connect |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi/hidapi.h>
#include "LogManager.h"
#include "RGBController.h"
#pragma once
#define HID_MAX_STR 255
#define STRIMERLCONNECT_PACKET_SIZE 255 //Buffer requires a prepended ReportID hence + 1
@ -73,11 +75,11 @@ enum
STRIMERLCONNECT_SPEED_FASTEST = 4,
};
class StrimerLConnectController
class LianLiStrimerLConnectController
{
public:
StrimerLConnectController(hid_device* dev_handle, const char* path);
~StrimerLConnectController();
LianLiStrimerLConnectController(hid_device* dev_handle, const char* path);
~LianLiStrimerLConnectController();
std::string GetDeviceName();
std::string GetSerial();

View file

@ -1,13 +1,15 @@
/*---------------------------------------------------------------------*\
| RGBController_StrimerLConnect.cpp |
| |
| Driver for StrimerLConnect USB Controller |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
\*---------------------------------------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_LianLiStrimerLConnect.cpp |
| |
| RGBController for Lian Li Strimer L Connect |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "RGBController_StrimerLConnect.h"
#include "RGBController_LianLiStrimerLConnect.h"
/**------------------------------------------------------------------*\
@name Lian Li Strimer L Connect
@ -16,12 +18,12 @@
@save :x:
@direct :rotating_light:
@effects :white_check_mark:
@detectors DetectStrimerControllers
@detectors DetectLianLiStrimerControllers
@comment The Lian Li Strimer L Connect `Direct` mode stutters at high frame rates and
and has been rate limited to ~10FPS.
\*-------------------------------------------------------------------*/
RGBController_StrimerLConnect::RGBController_StrimerLConnect(StrimerLConnectController *controller_ptr)
RGBController_LianLiStrimerLConnect::RGBController_LianLiStrimerLConnect(LianLiStrimerLConnectController *controller_ptr)
{
controller = controller_ptr;
@ -143,12 +145,12 @@ RGBController_StrimerLConnect::RGBController_StrimerLConnect(StrimerLConnectCont
SetupZones();
}
RGBController_StrimerLConnect::~RGBController_StrimerLConnect()
RGBController_LianLiStrimerLConnect::~RGBController_LianLiStrimerLConnect()
{
delete controller;
}
void RGBController_StrimerLConnect::Init_Controller()
void RGBController_LianLiStrimerLConnect::Init_Controller()
{
const uint8_t zone_split = STRIMERLCONNECT_STRIP_COUNT / 2;
@ -182,7 +184,7 @@ void RGBController_StrimerLConnect::Init_Controller()
}
}
void RGBController_StrimerLConnect::SetupZones()
void RGBController_LianLiStrimerLConnect::SetupZones()
{
/*-------------------------------------------------*\
| Clear any existing color/LED configuration |
@ -209,14 +211,14 @@ void RGBController_StrimerLConnect::SetupZones()
SetupColors();
}
void RGBController_StrimerLConnect::ResizeZone(int /*zone*/, int /*new_size*/)
void RGBController_LianLiStrimerLConnect::ResizeZone(int /*zone*/, int /*new_size*/)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
}
bool RGBController_StrimerLConnect::TimeToSend()
bool RGBController_LianLiStrimerLConnect::TimeToSend()
{
/*-----------------------------------------------------*\
| Rate limit is 1000(ms) / wait_time in Frames Per Sec |
@ -226,7 +228,7 @@ bool RGBController_StrimerLConnect::TimeToSend()
return (std::chrono::steady_clock::now() - last_commit_time) > std::chrono::milliseconds(wait_time);
}
void RGBController_StrimerLConnect::DeviceUpdateLEDs()
void RGBController_LianLiStrimerLConnect::DeviceUpdateLEDs()
{
if(TimeToSend())
{
@ -245,7 +247,7 @@ void RGBController_StrimerLConnect::DeviceUpdateLEDs()
}
}
void RGBController_StrimerLConnect::UpdateZoneLEDs(int zone)
void RGBController_LianLiStrimerLConnect::UpdateZoneLEDs(int zone)
{
mode current_mode = modes[active_mode];
@ -253,13 +255,13 @@ void RGBController_StrimerLConnect::UpdateZoneLEDs(int zone)
controller->SetMode(current_mode.value, zone, current_mode.speed, current_mode.brightness, current_mode.direction, false);
}
void RGBController_StrimerLConnect::UpdateSingleLED(int led)
void RGBController_LianLiStrimerLConnect::UpdateSingleLED(int led)
{
UpdateZoneLEDs(GetLED_Zone(led));
controller->SendApply();
}
void RGBController_StrimerLConnect::DeviceUpdateMode()
void RGBController_LianLiStrimerLConnect::DeviceUpdateMode()
{
if(TimeToSend())
{
@ -297,7 +299,7 @@ void RGBController_StrimerLConnect::DeviceUpdateMode()
}
}
int RGBController_StrimerLConnect::GetLED_Zone(int led_idx)
int RGBController_LianLiStrimerLConnect::GetLED_Zone(int led_idx)
{
for(size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
{
@ -313,7 +315,7 @@ int RGBController_StrimerLConnect::GetLED_Zone(int led_idx)
return -1;
}
mode RGBController_StrimerLConnect::CreateMode(std::string name, int value, uint8_t colour_count, uint8_t colour_mode)
mode RGBController_LianLiStrimerLConnect::CreateMode(std::string name, int value, uint8_t colour_count, uint8_t colour_mode)
{
mode new_mode;
new_mode.name = name;

View file

@ -0,0 +1,44 @@
/*---------------------------------------------------------*\
| RGBController_LianLiStrimerLConnect.h |
| |
| RGBController for Lian Li Strimer L Connect |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <vector>
#include "LogManager.h"
#include "RGBController.h"
#include "LianLiStrimerLConnectController.h"
class RGBController_LianLiStrimerLConnect : public RGBController
{
public:
RGBController_LianLiStrimerLConnect(LianLiStrimerLConnectController* controller_ptr);
~RGBController_LianLiStrimerLConnect();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
void Init_Controller();
int GetDeviceMode();
int GetLED_Zone(int led_idx);
mode CreateMode(std::string name, int value, uint8_t colour_count, uint8_t colour_mode);
bool TimeToSend();
LianLiStrimerLConnectController* controller;
std::chrono::time_point<std::chrono::steady_clock> last_commit_time;
};

View file

@ -1,41 +0,0 @@
/*---------------------------------------------------------------------*\
| RGBController_StrimerLConnect.h |
| |
| Driver for StrimerLConnect USB Controller |
| |
| Chris M (Dr_No) 03 Jul 2022 |
| |
\*---------------------------------------------------------------------*/
#pragma once
#include <vector>
#include "LogManager.h"
#include "RGBController.h"
#include "StrimerLConnectController.h"
class RGBController_StrimerLConnect : public RGBController
{
public:
RGBController_StrimerLConnect(StrimerLConnectController* controller_ptr);
~RGBController_StrimerLConnect();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
void Init_Controller();
int GetDeviceMode();
int GetLED_Zone(int led_idx);
mode CreateMode(std::string name, int value, uint8_t colour_count, uint8_t colour_mode);
bool TimeToSend();
StrimerLConnectController* controller;
std::chrono::time_point<std::chrono::steady_clock> last_commit_time;
};