Compare commits

...
Author SHA1 Message Date
Adam Honse 003c3e0af1 Sanitize filenames from clients in NetworkServer 2026-07-31 19:01:25 -05:00
Adam Honse b5f46e3f1d OpenRGB version 0.9 2023-07-09 22:51:47 -05:00
Adam Honse 16efabcce6 Disable non-English/non-QWERTY layouts 2023-07-10 01:01:16 +00:00
Adam Honse fbeb2c1c45 Use LED ID and version string to determine if mode 14 is supported 2023-07-10 01:00:02 +00:00
Chris M 0295b9041f Updated GaiZongGai keyboard metadata
* Includes changes from `https://gitlab.com/OpenRGBDevelopers/OpenRGB-
Wiki/-/merge_requests/11/diffs`
2023-07-10 08:23:05 +10:00
Cooper Hall 9a04b66bec fixed warning in RGBController_ZotacV2GPU.cpp 2023-07-09 21:38:39 +00:00
Chris M 37295adf6e Updated Gigabyte SuperIO metadata
* Includes changes from https://gitlab.com/OpenRGBDevelopers/OpenRGB-
Wiki/-/merge_requests/14/diffs
2023-07-09 21:30:42 +00:00
Dmitry K 0c16108c89 Fixed a typo in translation (HUE Bridge) 2023-07-09 20:57:58 +00:00
Adam Honse 29b0816c9c Disable libusb wrapped HID devices on non-glibc Linux as it segfaults on musl at the moment (tested on postmarketOS) 2023-07-09 13:06:39 -05:00
TheRogueZeta f679081a2c Enable all modes for Polychrome v1 2023-07-09 17:25:02 +00:00
TheRogueZeta ad2dcdb585 Commit to enable mode 14 on some ENE DRAM firmware 2023-07-09 01:36:50 -07:00
Adam Honse 35aa66455c Only show one warning at a time on powerup 2023-07-09 00:58:05 -05:00
Adam Honse ff3dbdac4c Put ENE save to device behind a setting 2023-07-09 04:20:07 +00:00
Chris 0497941209 Adjusted code to remove warnings in libcmmk 2023-07-08 21:07:02 -05:00
Adam Honse cacfffd101 Fix metadata for Cryorig and NZXT Hue 1 controllers 2023-07-08 18:01:43 -05:00
20 changed files with 298 additions and 117 deletions
@@ -105,7 +105,7 @@ RGBController_ASRockPolychromeV1SMBus::RGBController_ASRockPolychromeV1SMBus(ASR
mode Music;
Music.name = "Music";
Music.value = POLYCHROME_V1_MODE_MUSIC;
Music.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Music.flags = MODE_FLAG_AUTOMATIC_SAVE;
Music.color_mode = MODE_COLORS_NONE;
modes.push_back(Music);
@@ -122,7 +122,6 @@ RGBController_ASRockPolychromeV1SMBus::RGBController_ASRockPolychromeV1SMBus(ASR
/*---------------------------------------------------------------------*\
| Comment out until per zone modes are working. These are only for ARGB |
\*---------------------------------------------------------------------*/
/*
mode Spring;
Spring.name = "Spring";
Spring.value = POLYCHROME_V1_MODE_SPRING;
@@ -192,7 +191,6 @@ RGBController_ASRockPolychromeV1SMBus::RGBController_ASRockPolychromeV1SMBus(ASR
Rainbow.speed = POLYCHROME_V1_SPEED_DEFAULT_RAINBOW;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
*/
/*---------------------------------------------------------------------*\
| This ARGB_Config section is a hack to allow users to configure the |
@@ -9,6 +9,16 @@
#include "RGBController_CryorigH7QuadLumi.h"
/**------------------------------------------------------------------*\
@name Cryorig H7 Quad Lumi
@category Cooler
@type USB
@save :x:
@direct :white_check_mark:
@effects :white_check_mark:
@detectors DetectCryorigH7QuadLumi
@comment
\*-------------------------------------------------------------------*/
RGBController_CryorigH7QuadLumi::RGBController_CryorigH7QuadLumi(CryorigH7QuadLumiController* controller_ptr)
{
@@ -31,8 +31,9 @@ static const char* ene_channels[] = /* ENE channel strings
ENESMBusController::ENESMBusController(ENESMBusInterface* interface, ene_dev_id dev)
{
this->interface = interface;
this->dev = dev;
this->interface = interface;
this->dev = dev;
supports_mode_14 = false;
UpdateDeviceName();
@@ -93,6 +94,17 @@ ENESMBusController::ENESMBusController(ENESMBusInterface* interface, ene_dev_id
direct_reg = ENE_REG_COLORS_DIRECT_V2;
effect_reg = ENE_REG_COLORS_EFFECT_V2;
channel_cfg = ENE_CONFIG_CHANNEL_V1;
// Check for Mode 14 support, only known to exist on modules where the
// DRAM 3 zone ID exists
for(std::size_t cfg_zone_idx = 0; cfg_zone_idx < ENE_NUM_ZONES; cfg_zone_idx++)
{
if(config_table[channel_cfg + cfg_zone_idx] == (unsigned char)ENE_LED_CHANNEL_DRAM_3)
{
supports_mode_14 = true;
break;
}
}
}
// AUMA0-E6K5-0106 - Second generation motherboard controller
else if (strcmp(device_name, "AUMA0-E6K5-0106") == 0)
@@ -187,6 +199,8 @@ std::string ENESMBusController::GetDeviceLocation()
const char * ENESMBusController::GetChannelName(unsigned int cfg_zone)
{
LOG_TRACE("[%s] Config table for zone %02d: %02d", device_name, cfg_zone, config_table[channel_cfg + cfg_zone]);
switch(config_table[channel_cfg + cfg_zone])
{
case (unsigned char)ENE_LED_CHANNEL_AUDIO:
@@ -211,6 +225,7 @@ const char * ENESMBusController::GetChannelName(unsigned int cfg_zone)
case (unsigned char)ENE_LED_CHANNEL_DRAM:
case (unsigned char)ENE_LED_CHANNEL_DRAM_2:
case (unsigned char)ENE_LED_CHANNEL_DRAM_3:
return(ene_channels[5]);
break;
@@ -238,6 +253,7 @@ const char * ENESMBusController::GetChannelName(unsigned int cfg_zone)
unsigned int ENESMBusController::GetLEDCount(unsigned int cfg_zone)
{
LOG_TRACE("[%s] LED Count for zone %02d: %02d", device_name, cfg_zone, config_table[0x03 + cfg_zone]);
return(config_table[0x03 + cfg_zone]);
}
@@ -367,6 +383,11 @@ void ENESMBusController::SetMode(unsigned char mode, unsigned char speed, unsign
ENERegisterWrite(ENE_REG_APPLY, ENE_APPLY_VAL);
}
bool ENESMBusController::SupportsMode14()
{
return(supports_mode_14);
}
void ENESMBusController::UpdateDeviceName()
{
for (int i = 0; i < 16; i++)
@@ -53,6 +53,7 @@ enum
ENE_MODE_SPECTRUM_CYCLE_WAVE = 11, /* Wave effect mode */
ENE_MODE_CHASE_RAINBOW_PULSE = 12, /* Chase with Rainbow Pulse effect mode*/
ENE_MODE_RANDOM_FLICKER = 13, /* Random flicker effect mode */
ENE_MODE_DOUBLE_FADE = 14, /* Rainbow fade to dual color */
ENE_NUMBER_MODES /* Number of Aura modes */
};
@@ -74,6 +75,7 @@ enum
enum
{
ENE_LED_CHANNEL_DRAM_2 = 0x05, /* DRAM LED channel */
ENE_LED_CHANNEL_DRAM_3 = 0x0E, /* DRAM LED channel */
ENE_LED_CHANNEL_CENTER_START = 0x82, /* Center zone first LED channel */
ENE_LED_CHANNEL_CENTER = 0x83, /* Center zone LED channel */
ENE_LED_CHANNEL_AUDIO = 0x84, /* Audio zone LED channel */
@@ -118,6 +120,7 @@ public:
void SetLEDColorDirect(unsigned int led, unsigned char red, unsigned char green, unsigned char blue);
void SetLEDColorEffect(unsigned int led, unsigned char red, unsigned char green, unsigned char blue);
void SetMode(unsigned char mode, unsigned char speed, unsigned char direction);
bool SupportsMode14();
void UpdateDeviceName();
@@ -134,5 +137,5 @@ private:
unsigned char channel_cfg;
ENESMBusInterface* interface;
ene_dev_id dev;
bool supports_mode_14;
};
@@ -7,6 +7,8 @@
\*-----------------------------------------*/
#include "RGBController_ENESMBus.h"
#include "LogManager.h"
#include "ResourceManager.h"
/**------------------------------------------------------------------*\
@name ENE SMBus Device
@@ -23,6 +25,24 @@ RGBController_ENESMBus::RGBController_ENESMBus(ENESMBusController * controller_p
{
controller = controller_ptr;
/*---------------------------------------------------------*\
| Get ENEController settings |
\*---------------------------------------------------------*/
json ene_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("ENESMBusSettings");
/*---------------------------------------------------------*\
| Check if save to device is enabled |
\*---------------------------------------------------------*/
unsigned int save_flag = 0;
if(ene_settings.contains("enable_save"))
{
if(ene_settings["enable_save"] == true)
{
save_flag = MODE_FLAG_MANUAL_SAVE;
}
}
/*---------------------------------------------------------*\
| Determine name and type (DRAM or Motherboard) by checking |
| the ENE controller's version string |
@@ -46,99 +66,112 @@ RGBController_ENESMBus::RGBController_ENESMBus(ENESMBusController * controller_p
description = "ENE SMBus Device";
mode Direct;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.name = "Direct";
Direct.value = 0xFFFF;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
mode Off;
Off.name = "Off";
Off.value = ENE_MODE_OFF;
Off.flags = MODE_FLAG_MANUAL_SAVE;
Off.color_mode = MODE_COLORS_NONE;
Off.name = "Off";
Off.value = ENE_MODE_OFF;
Off.flags = save_flag;
Off.color_mode = MODE_COLORS_NONE;
modes.push_back(Off);
mode Static;
Static.name = "Static";
Static.value = ENE_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Static.color_mode = MODE_COLORS_PER_LED;
Static.name = "Static";
Static.value = ENE_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR | save_flag;
Static.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Static);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = ENE_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_MANUAL_SAVE;
Breathing.color_mode = MODE_COLORS_PER_LED;
Breathing.speed_min = ENE_SPEED_SLOWEST;
Breathing.speed_max = ENE_SPEED_FASTEST;
Breathing.speed = ENE_SPEED_NORMAL;
Breathing.name = "Breathing";
Breathing.value = ENE_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | save_flag;
Breathing.color_mode = MODE_COLORS_PER_LED;
Breathing.speed_min = ENE_SPEED_SLOWEST;
Breathing.speed_max = ENE_SPEED_FASTEST;
Breathing.speed = ENE_SPEED_NORMAL;
modes.push_back(Breathing);
mode Flashing;
Flashing.name = "Flashing";
Flashing.value = ENE_MODE_FLASHING;
Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_MANUAL_SAVE;
Flashing.color_mode = MODE_COLORS_PER_LED;
Flashing.speed_min = ENE_SPEED_SLOWEST;
Flashing.speed_max = ENE_SPEED_FASTEST;
Flashing.speed = ENE_SPEED_NORMAL;
Flashing.name = "Flashing";
Flashing.value = ENE_MODE_FLASHING;
Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | save_flag;
Flashing.color_mode = MODE_COLORS_PER_LED;
Flashing.speed_min = ENE_SPEED_SLOWEST;
Flashing.speed_max = ENE_SPEED_FASTEST;
Flashing.speed = ENE_SPEED_NORMAL;
modes.push_back(Flashing);
mode SpectrumCycle;
SpectrumCycle.name = "Spectrum Cycle";
SpectrumCycle.value = ENE_MODE_SPECTRUM_CYCLE;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_MANUAL_SAVE;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
SpectrumCycle.speed_min = ENE_SPEED_SLOWEST;
SpectrumCycle.speed_max = ENE_SPEED_FASTEST;
SpectrumCycle.speed = ENE_SPEED_NORMAL;
SpectrumCycle.name = "Spectrum Cycle";
SpectrumCycle.value = ENE_MODE_SPECTRUM_CYCLE;
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | save_flag;
SpectrumCycle.color_mode = MODE_COLORS_NONE;
SpectrumCycle.speed_min = ENE_SPEED_SLOWEST;
SpectrumCycle.speed_max = ENE_SPEED_FASTEST;
SpectrumCycle.speed = ENE_SPEED_NORMAL;
modes.push_back(SpectrumCycle);
mode Rainbow;
Rainbow.name = "Rainbow";
Rainbow.value = ENE_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_MANUAL_SAVE;
Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.speed_min = ENE_SPEED_SLOWEST;
Rainbow.speed_max = ENE_SPEED_FASTEST;
Rainbow.speed = ENE_SPEED_NORMAL;
Rainbow.direction = MODE_DIRECTION_LEFT;
Rainbow.name = "Rainbow";
Rainbow.value = ENE_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.speed_min = ENE_SPEED_SLOWEST;
Rainbow.speed_max = ENE_SPEED_FASTEST;
Rainbow.speed = ENE_SPEED_NORMAL;
Rainbow.direction = MODE_DIRECTION_LEFT;
modes.push_back(Rainbow);
mode ChaseFade;
ChaseFade.name = "Chase Fade";
ChaseFade.value = ENE_MODE_CHASE_FADE;
ChaseFade.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_MANUAL_SAVE;
ChaseFade.color_mode = MODE_COLORS_PER_LED;
ChaseFade.speed_min = ENE_SPEED_SLOWEST;
ChaseFade.speed_max = ENE_SPEED_FASTEST;
ChaseFade.speed = ENE_SPEED_NORMAL;
ChaseFade.direction = MODE_DIRECTION_LEFT;
ChaseFade.name = "Chase Fade";
ChaseFade.value = ENE_MODE_CHASE_FADE;
ChaseFade.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
ChaseFade.color_mode = MODE_COLORS_PER_LED;
ChaseFade.speed_min = ENE_SPEED_SLOWEST;
ChaseFade.speed_max = ENE_SPEED_FASTEST;
ChaseFade.speed = ENE_SPEED_NORMAL;
ChaseFade.direction = MODE_DIRECTION_LEFT;
modes.push_back(ChaseFade);
mode Chase;
Chase.name = "Chase";
Chase.value = ENE_MODE_CHASE;
Chase.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_MANUAL_SAVE;
Chase.color_mode = MODE_COLORS_PER_LED;
Chase.speed_min = ENE_SPEED_SLOWEST;
Chase.speed_max = ENE_SPEED_FASTEST;
Chase.speed = ENE_SPEED_NORMAL;
ChaseFade.direction = MODE_DIRECTION_LEFT;
Chase.name = "Chase";
Chase.value = ENE_MODE_CHASE;
Chase.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
Chase.color_mode = MODE_COLORS_PER_LED;
Chase.speed_min = ENE_SPEED_SLOWEST;
Chase.speed_max = ENE_SPEED_FASTEST;
Chase.speed = ENE_SPEED_NORMAL;
ChaseFade.direction = MODE_DIRECTION_LEFT;
modes.push_back(Chase);
mode RandomFlicker;
RandomFlicker.name = "Random Flicker";
RandomFlicker.value = ENE_MODE_RANDOM_FLICKER;
RandomFlicker.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_MANUAL_SAVE;
RandomFlicker.color_mode = MODE_COLORS_NONE;
RandomFlicker.speed_min = ENE_SPEED_SLOWEST;
RandomFlicker.speed_max = ENE_SPEED_FASTEST;
RandomFlicker.speed = ENE_SPEED_NORMAL;
RandomFlicker.name = "Random Flicker";
RandomFlicker.value = ENE_MODE_RANDOM_FLICKER;
RandomFlicker.flags = MODE_FLAG_HAS_SPEED | save_flag;
RandomFlicker.color_mode = MODE_COLORS_NONE;
RandomFlicker.speed_min = ENE_SPEED_SLOWEST;
RandomFlicker.speed_max = ENE_SPEED_FASTEST;
RandomFlicker.speed = ENE_SPEED_NORMAL;
modes.push_back(RandomFlicker);
if(controller->SupportsMode14())
{
mode DoubleFade;
DoubleFade.name = "Double Fade";
DoubleFade.value = ENE_MODE_DOUBLE_FADE;
DoubleFade.flags = MODE_FLAG_HAS_SPEED;
DoubleFade.color_mode = MODE_COLORS_NONE;
DoubleFade.speed_min = ENE_SPEED_SLOWEST;
DoubleFade.speed_max = ENE_SPEED_FASTEST;
DoubleFade.speed = ENE_SPEED_NORMAL;
modes.push_back(DoubleFade);
}
SetupZones();
/*-------------------------------------------------*\
@@ -162,6 +195,8 @@ int RGBController_ENESMBus::GetDeviceMode()
int speed = controller->ENERegisterRead(ENE_REG_SPEED);
int direction = controller->ENERegisterRead(ENE_REG_DIRECTION);
LOG_TRACE("[%s] Retrieved ENE mode from module: %02d", name.c_str(), dev_mode);
if(controller->ENERegisterRead(ENE_REG_DIRECT))
{
dev_mode = 0xFFFF;
@@ -173,6 +208,7 @@ int RGBController_ENESMBus::GetDeviceMode()
case ENE_MODE_RAINBOW:
case ENE_MODE_SPECTRUM_CYCLE:
case ENE_MODE_RANDOM_FLICKER:
case ENE_MODE_DOUBLE_FADE:
color_mode = MODE_COLORS_NONE;
break;
@@ -361,6 +361,19 @@ uint16_t LightBoard_init(uint8_t* p_in)
@effects :x:
@detectors DetectGaiZhongGaiKeyboardControllers
@comment
Open source web : https://oshwhub.com/yangzen/zui-gai68-
| function | command code | format | format | format | format |
| ----------------------------- | ----------------- | -------- | -------- | -------- | ----------------------------------------- |
| | [0] | [1] | [2] | [3] | [4] |
| ----------------------------- | ----------------- | -------- | -------- | -------- | ----------------------------------------- |
| Restore offline effects | 0xFF | undefined | undefined | undefined | undefined |
| Set color | 0x10 | LED0_G | LED0_R | LED0_B | LED1_G(And so on to LED20) |
| Set color | 0x11 | LED21_G | LED21_R | LED21_B | LED22_G(The sequence is WS2812 network) |
| Get color | 0x20 | LED0_G | LED0_R | LED0_B | LED1_G(And so on to LED20) |
| Get color | 0x21 | LED21_G | LED21_R | LED21_B | LED22_G(The sequence is WS2812 network) |
Note: Get color only sends command code, and the keyboard returns LED color data
\*-------------------------------------------------------------------*/
RGBController_GaiZhongGaiKeyboard::RGBController_GaiZhongGaiKeyboard(GaiZhongGaiKeyboardController* controller_ptr)
@@ -17,6 +17,69 @@
@effects :white_check_mark:
@detectors DetectGigabyteSuperIORGBControllers
@comment
Testing was done on an ITE8688 Chipset, and adds the support for motherboards that can only be controlled with Gigabyte’s “Ambient Led” NOT EITHER RGB Fusion 1.0/2.0.
You should first check to confirm that you DO NOT HAVE EITHER A USB OR SMBUS controllable chipset, use the following powershell command to confirm if you have a USB device:
```powershell
gwmi Win32_USBControllerDevice |%{[wmi]($_.Dependent)} | Sort Manufacturer,Description,DeviceID | Ft -GroupBy Manufacturer Description,Service,DeviceID
```
If you see anything with a VID of 048D or 8297, DO NOT PROCEED, the software is likely supportable by OpenRGB's Fusion2 USB controller.
After that check output on the SMBus: Using the OpenRGB I2C Sniffer to confirm that no data is output on either bus while changing colors in “Ambient LED”, if either bus outputs data, DO NOT PROCEED, the software is likely supportable in Gigabyte RGB Fusion.
The following chipsets are likely supported:
| Chipset ID |
| :---: |
| ITE8620E |
| ITE8626 |
| ITE8686E |
| ITE8688 |
| ITE8689 |
| ITE8728F |
| ITE8790F |
| ITE8791E |
To confirm your chipset, you can open CPU-Z, the MCU chipset model is found under Mainboard like below:
To confirm that your RGB is compatible with this Controller in OpenRGB, you will need to add the motherboard DMI Model name, which is the output of the following powershell command:
```powershell
wmic baseboard get product
```
To the struct array that is found in GigabyteSuperIORGBControllerDetect.cpp, like below
```c++
gig_device compatible_devices[] =
{
{"X570 UD"},
{"EXAMPLEBASEBOARDPRODUCTNAME"}
};
```
If your chipset is also NOT an ITE8688, you will also need to add the chipset, to get this is a bit harder, for myself I added a breakpoint, on this line, in GigabyteSuperIORGBControllerDetect.cpp:
```c++
switch (val & SIO_ID_MASK)
```
For an ITE8688, the value was 0x8688 in Hexidecimal, it is likely the case with other models as well that the code matches the MCU model.
To add this chipset you will need to first add it to the SuperIO definitions file, which is named super_io.h like below
```c++
#define SIO_ITE688_ID 0x8688 // Device ID for ITE8688 (8688)
#define SIO_NEWCHIPSETMODEL_ID 0xFOUNDHEXIDECIMALVALUE // Device ID for NEWCHIPSETMODEL (FOUNDHEXIDECIMALVALUE)
```
And lastly you will need to add the chip to the
GigabyteSuperIORGBControllerDetect.cpp like below:
```c++
switch (val & SIO_ID_MASK)
{
case SIO_ITE688_ID:
case SIO_NEWCHIPSETMODEL_ID:
```
\*-------------------------------------------------------------------*/
RGBController_GigabyteSuperIORGB::RGBController_GigabyteSuperIORGB(GigabyteSuperIORGBController* controller_ptr)
@@ -12,7 +12,7 @@
@name NZXT Hue 1
@category LEDStrip
@type USB
@save :robot:
@save :x:
@direct :white_check_mark:
@effects :white_check_mark:
@detectors DetectNZXTHue1Controllers
@@ -53,15 +53,8 @@ RGBController_ZotacV2GPU::RGBController_ZotacV2GPU(ZotacV2GPUController* control
location = controller->GetDeviceLocation();
type = DEVICE_TYPE_GPU;
try
{
config = ZOTAC_V2_GPU_CONFIG.at(controller->GetVersion());
}
catch(std::out_of_range)
{
LOG_ERROR("No zone config found for %s", version.c_str());
config = ZotacV2GPUConfig();
}
config = ZOTAC_V2_GPU_CONFIG.at(controller->GetVersion());
version += std::to_string(config.numberOfZones) + " zones, "
+ (config.supportsExternalLEDStrip ? "with" : "without") + " external LED strip support";
+17 -13
View File
@@ -356,26 +356,30 @@ KeyboardLayoutManager::KeyboardLayoutManager(KEYBOARD_LAYOUT layout, KEYBOARD_SI
tmp_name.append(KEYBOARD_NAME_QWERTY);
break;
case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_ISO_AZERTY:
ChangeKeys(iso_azerty);
tmp_name = KEYBOARD_NAME_AZERTY;
break;
case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_ISO_QWERTY:
ChangeKeys(iso_qwerty);
tmp_name = KEYBOARD_NAME_ISO;
tmp_name.append(KEYBOARD_NAME_QWERTY);
break;
case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_ISO_QWERTZ:
ChangeKeys(iso_qwertz);
tmp_name = KEYBOARD_NAME_QWERTZ;
break;
/*-------------------------------------------------*\
| Non-English, non-QWERTY layouts are disabled |
| until proper translation feature is implemented |
\*-------------------------------------------------*/
// case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_ISO_AZERTY:
// ChangeKeys(iso_azerty);
// tmp_name = KEYBOARD_NAME_AZERTY;
// break;
case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_JIS:
ChangeKeys(jis);
tmp_name = KEYBOARD_NAME_JIS;
break;
// case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_ISO_QWERTZ:
// ChangeKeys(iso_qwertz);
// tmp_name = KEYBOARD_NAME_QWERTZ;
// break;
// case KEYBOARD_LAYOUT::KEYBOARD_LAYOUT_JIS:
// ChangeKeys(jis);
// tmp_name = KEYBOARD_NAME_JIS;
// break;
}
/*---------------------------------------------------------------------*\
+12 -11
View File
@@ -8,6 +8,7 @@
#include "NetworkServer.h"
#include "LogManager.h"
#include "StringUtils.h"
#include <cstring>
#ifndef WIN32
@@ -266,7 +267,7 @@ void NetworkServer::StartServer()
for(res = result; res && socket_count < MAXSOCK; res = res->ai_next)
{
server_sock[socket_count] = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if(server_sock[socket_count] == INVALID_SOCKET)
{
printf("Error: network socket could not be created\n");
@@ -320,7 +321,7 @@ void NetworkServer::StartServer()
freeaddrinfo(result);
server_online = true;
/*-------------------------------------------------*\
| Start the connection thread |
\*-------------------------------------------------*/
@@ -430,7 +431,7 @@ void NetworkServer::ConnectionThreadFunction(int socket_idx)
socklen_t len;
len = sizeof(tmp_addr);
getpeername(client_info->client_sock, (struct sockaddr*)&tmp_addr, &len);
if(tmp_addr.ss_family == AF_INET)
{
struct sockaddr_in *s_4 = (struct sockaddr_in *)&tmp_addr;
@@ -780,7 +781,7 @@ void NetworkServer::ListenThreadFunction(NetworkClientInfo * client_info)
if(profile_manager)
{
profile_manager->SaveProfile(data);
profile_manager->SaveProfile(StringUtils::make_filename(data));
}
break;
@@ -793,7 +794,7 @@ void NetworkServer::ListenThreadFunction(NetworkClientInfo * client_info)
if(profile_manager)
{
profile_manager->LoadProfile(data);
profile_manager->LoadProfile(StringUtils::make_filename(data));
}
for(RGBController* controller : controllers)
@@ -811,7 +812,7 @@ void NetworkServer::ListenThreadFunction(NetworkClientInfo * client_info)
if(profile_manager)
{
profile_manager->DeleteProfile(data);
profile_manager->DeleteProfile(StringUtils::make_filename(data));
}
break;
@@ -1028,7 +1029,7 @@ void NetworkServer::SendReply_PluginList(SOCKET client_sock)
{
unsigned int data_size = 0;
unsigned int data_ptr = 0;
/*---------------------------------------------------------*\
| Calculate data size |
\*---------------------------------------------------------*/
@@ -1045,12 +1046,12 @@ void NetworkServer::SendReply_PluginList(SOCKET client_sock)
data_size += strlen(plugins[i].version.c_str()) + 1;
data_size += sizeof(unsigned int) * 2;
}
/*---------------------------------------------------------*\
| Create data buffer |
\*---------------------------------------------------------*/
unsigned char *data_buf = new unsigned char[data_size];
/*---------------------------------------------------------*\
| Copy in data size |
\*---------------------------------------------------------*/
@@ -1103,14 +1104,14 @@ void NetworkServer::SendReply_PluginList(SOCKET client_sock)
\*---------------------------------------------------------*/
memcpy(&data_buf[data_ptr], &i, sizeof(unsigned int));
data_ptr += sizeof(unsigned int);
/*---------------------------------------------------------*\
| Copy in plugin sdk version (data) |
\*---------------------------------------------------------*/
memcpy(&data_buf[data_ptr], &plugins[i].protocol_version, sizeof(int));
data_ptr += sizeof(int);
}
NetPacketHeader reply_hdr;
unsigned int reply_size;
+2 -2
View File
@@ -35,8 +35,8 @@ greaterThan(QT_MAJOR_VERSION, 4) {
# Application Configuration #
#-----------------------------------------------------------------------------------------------#
MAJOR = 0
MINOR = 8
REVISION = 1
MINOR = 9
REVISION =
VERSION = $$MAJOR"."$$MINOR$$REVISION
TARGET = OpenRGB
TEMPLATE = app
+7
View File
@@ -1239,6 +1239,7 @@ void ResourceManager::DetectDevicesThreadFunction()
| Reset current device pointer to first device |
\*-------------------------------------------------*/
#ifdef __linux__
#ifdef __GLIBC__
LOG_INFO("------------------------------------------------------");
LOG_INFO("| Detecting libusb HID devices |");
LOG_INFO("------------------------------------------------------");
@@ -1352,6 +1353,7 @@ void ResourceManager::DetectDevicesThreadFunction()
\*-------------------------------------------------*/
wrapper.hid_free_enumeration(hid_devices);
}
#endif
#endif
/*-------------------------------------------------*\
@@ -1431,6 +1433,9 @@ void ResourceManager::DetectDevicesThreadFunction()
"<p>See <a href='https://openrgb.org/udev'>https://openrgb.org/udev</a> to install the udev rules manually</p>";
LOG_DIALOG("%s", message);
udev_multiple = false;
i2c_interface_fail = false;
}
/*-------------------------------------------------*\
@@ -1445,6 +1450,8 @@ void ResourceManager::DetectDevicesThreadFunction()
"<p>Multiple udev rules files can conflict, it is recommended to remove one of them.</p>";
LOG_DIALOG("%s", message);
i2c_interface_fail = false;
}
#endif
+28
View File
@@ -38,3 +38,31 @@ const char* StringUtils::wchar_to_char(const wchar_t* pwchar)
return filePathC;
}
std::string StringUtils::make_filename(std::string input)
{
/*-----------------------------------------------------*\
| Replace : characters with - characters |
\*-----------------------------------------------------*/
input = std::regex_replace(input, std::regex(":"), "-");
/*-----------------------------------------------------*\
| Remove all other characters |
\*-----------------------------------------------------*/
input = std::regex_replace(input, std::regex("[#%&\\{\\}\\\\<>\\*\\?/!`';@+|=]"), "");
/*-----------------------------------------------------*\
| Remove leading . characters |
\*-----------------------------------------------------*/
input = std::regex_replace(input, std::regex("^\\.+"), "");
/*-----------------------------------------------------*\
| Remove control characters |
\*-----------------------------------------------------*/
input = std::regex_replace(input, std::regex("[\\x00-\\x1F\\x7F]"), "");
/*-----------------------------------------------------*\
| Return complete string |
\*-----------------------------------------------------*/
return(input);
}
+1
View File
@@ -5,6 +5,7 @@ class StringUtils
{
public:
static const char* wchar_to_char(const wchar_t* pwchar);
static std::string make_filename(std::string input);
};
#endif // STRING_UTILS_H
+3 -2
View File
@@ -30,8 +30,9 @@ extern "C" {
#define CMMK_ROWS_MAX 7
#define CMMK_COLS_MAX 22
#define CMMK_KEYLIST_SIZE 256
#define CMMK_BUFFER_SIZE 65
#define CMMK_FW_SIZE 16
#define CMMK_KEYLIST_SIZE 256
#define CMMK_BUFFER_SIZE 65
/*
* If we have C99 support (which we do, because libusb-1.0 requires it...), define some handy
+6 -8
View File
@@ -236,12 +236,12 @@ int cmmk_find_device(int *product)
static int cmmk_try_determine_layout(struct cmmk *dev, int product)
{
char fw[16];
char fw[CMMK_FW_SIZE];
enum cmmk_layout_type general_layout = CMMK_LAYOUT_TYPE_ANSI;
enum cmmk_product_type device_model;
enum cmmk_layout_type general_layout = CMMK_LAYOUT_TYPE_ANSI;
enum cmmk_product_type device_model = 0;
if (cmmk_get_firmware_version(dev, fw, sizeof(fw)) == 0) {
if (cmmk_get_firmware_version(dev, fw, CMMK_FW_SIZE) == 0) {
if (fw[0] == '1') {
/* ANSI firmware */
general_layout = CMMK_LAYOUT_TYPE_ANSI;
@@ -399,7 +399,7 @@ int cmmk_get_firmware_version(struct cmmk *dev, char *fw, size_t fwsiz)
fwsiz = 60;
}
strncpy(fw, (char *)data + 4, fwsiz);
memcpy(fw, (char *)data + 4, fwsiz);
return CMMK_OK;
}
@@ -890,7 +890,6 @@ int cmmk_get_multilayer_map(struct cmmk *dev, struct cmmk_effect_matrix *effmap)
{
const unsigned char HEADER_SIZE = 9;
unsigned char data_size = CMMK_BUFFER_SIZE - HEADER_SIZE;
unsigned char data_size_in_bytes = data_size / BYTE_SIZE;
int r;
unsigned char data[CMMK_BUFFER_SIZE];
@@ -939,7 +938,6 @@ int cmmk_set_multilayer_map(struct cmmk *dev, struct cmmk_effect_matrix const *e
{
const unsigned char HEADER_SIZE = 9;
unsigned char data_size = CMMK_BUFFER_SIZE - HEADER_SIZE;
unsigned char data_size_in_bytes = data_size / BYTE_SIZE;
int r;
unsigned char data[CMMK_BUFFER_SIZE];
@@ -1035,7 +1033,7 @@ int cmmk_set_all_single(struct cmmk *dev, struct rgb const *col)
*/
int cmmk_set_leds(struct cmmk *dev, struct cmmk_color_matrix const *colmap)
{
unsigned char data[CMMK_BUFFER_SIZE];
unsigned char data[CMMK_BUFFER_SIZE];
int i;
int j;
+3
View File
@@ -47,6 +47,9 @@ fi
%doc README.md
%changelog
* Sun Jul 9 2023 Adam Honse <[email protected]> - 0.9-0
- Updated to 0.9
* Tue Nov 29 2022 Adam Honse <[email protected]> - 0.8.1-0
- Updated to 0.8.1
+1 -1
View File
@@ -803,7 +803,7 @@
<message>
<location filename="../OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.ui" line="48"/>
<source>After adding a Hue entry and saving, restart OpenRGB and press the Sync button on your Hue bridge to pair it.</source>
<translation>После добавления устройств Hue и сохранения, перезапустите OpenRGB, затем нажмите кнопку Sync на мосте Hue brisge для установления связи.</translation>
<translation>После добавления устройств Hue и сохранения, перезапустите OpenRGB, затем нажмите кнопку Sync на мосте Hue bridge для установления связи.</translation>
</message>
<message>
<location filename="../OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.ui" line="14"/>
+1
View File
@@ -50,6 +50,7 @@
</description>
<releases>
<release version="0.9" date="2023-06-09"></release>
<release version="0.8" date="2022-11-27"></release>
<release version="0.7" date="2021-12-30"></release>
<release version="0.6" date="2021-06-01"></release>