Compare commits

..
Author SHA1 Message Date
Adam Honse 0083d45103 Replace most instances of sprintf() with snprintf() 2023-03-02 00:14:17 -06:00
Adam Honse a67430cf04 change i2c path 2023-02-02 21:31:03 -06:00
44 changed files with 236 additions and 876 deletions
-2
View File
@@ -6,8 +6,6 @@ OpenRGB
openrgb
OpenRGB-x86_64.AppImage
60-openrgb.rules
debian/changelog
fedora/OpenRGB.spec
# Directories
.build/
+1 -9
View File
@@ -109,7 +109,6 @@ before_script:
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:buster-32
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage --target-arch i386 -us -B
- rm -v ../openrgb-dbgsym*.*deb
@@ -138,7 +137,6 @@ before_script:
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:buster-64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.*deb
@@ -167,7 +165,6 @@ before_script:
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-32
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage --target-arch i386 -us -B
- rm -v ../openrgb-dbgsym*.*deb
@@ -196,7 +193,6 @@ before_script:
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.*deb
@@ -225,7 +221,6 @@ before_script:
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-32
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage --target-arch i386 -us -B
- rm -v ../openrgb-dbgsym*.deb
@@ -254,7 +249,6 @@ before_script:
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.deb
@@ -284,7 +278,6 @@ before_script:
script:
- dnf install rpmdevtools dnf-plugins-core -y
- rpmdev-setuptree
- ./scripts/build-package-files.sh fedora/OpenRGB.spec
- ls /root/
- cp fedora/OpenRGB.spec /root/rpmbuild/SPECS
- cp ../OpenRGB /root/rpmbuild/SOURCES/ -r
@@ -317,9 +310,8 @@ before_script:
image: fedora:36
stage: build
script:
- dnf install rpmdevtools dnf-plugins-core libcurl-devel qt5-qtbase-devel -y
- dnf install rpmdevtools dnf-plugins-core libcurl-devel -y
- rpmdev-setuptree
- ./scripts/build-package-files.sh fedora/OpenRGB.spec
- ls /root/
- cp fedora/OpenRGB.spec /root/rpmbuild/SPECS
- cp ../OpenRGB /root/rpmbuild/SOURCES/ -r
@@ -138,7 +138,7 @@ int AuraTUFKeyboardController::GetLayout()
{
char layout[4];
sprintf(layout, "%X", version);
snprintf(layout, 4, "%X", version);
int layoutnum = std::stoi(std::string(layout, 1));
@@ -37,11 +37,10 @@ void DetectColorfulGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, co
}
}
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ultra W OC 12G L-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ultra W OC 12G L-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G_2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ti Ultra W OC LHR-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G_2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ultra W OC LHR", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ULTRAW_OC, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_TI_ADVANCED_OCV2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4080 Ultra W OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4080_ULTRAW_OCV2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ultra W OC 12G L-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3060 Ultra W OC 12G L-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3060_ULTRAW_OC_12G_2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ADVANCED_OCV2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ultra W OC LHR", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_ULTRAW_OC, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 3070 Ti Advanced OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_3070_TI_ADVANCED_OCV2, 0x61);
REGISTER_I2C_PCI_DETECTOR("iGame GeForce RTX 4080 Ultra W OC-V", DetectColorfulGPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, COLORFUL_SUB_VEN, COLORFUL_IGAME_RTX_4080_ULTRAW_OCV2, 0x61);
@@ -240,7 +240,7 @@ void RGBController_CorsairLightingNode::SetupZones()
for (unsigned int channel_idx = 0; channel_idx < CORSAIR_LIGHTING_NODE_NUM_CHANNELS; channel_idx++)
{
char ch_idx_string[2];
sprintf(ch_idx_string, "%d", channel_idx + 1);
snprintf(ch_idx_string, 2, "%d", channel_idx + 1);
zones[channel_idx].name = "Corsair Channel ";
zones[channel_idx].name.append(ch_idx_string);
@@ -264,7 +264,7 @@ void RGBController_CorsairLightingNode::SetupZones()
for (unsigned int led_ch_idx = 0; led_ch_idx < zones[channel_idx].leds_count; led_ch_idx++)
{
char led_idx_string[4];
sprintf(led_idx_string, "%d", led_ch_idx + 1);
snprintf(led_idx_string, 4, "%d", led_ch_idx + 1);
led new_led;
new_led.name = "Corsair Channel ";
@@ -132,17 +132,6 @@ ENESMBusController::ENESMBusController(ENESMBusInterface* interface, ene_dev_id
// Read LED count from configuration table
led_count = config_table[ENE_CONFIG_LED_COUNT_0107];
}
// AUMA0-E6K5-1110 - Third generation GPU controller?
// found an ASUS ROG Strix 4080 OC, seems to be equal to AUMA0-E6K5-0107
else if (strcmp(device_name, "AUMA0-E6K5-1110") == 0)
{
direct_reg = ENE_REG_COLORS_DIRECT_V2;
effect_reg = ENE_REG_COLORS_EFFECT_V2;
channel_cfg = ENE_CONFIG_CHANNEL_V2;
// Read LED count from configuration table
led_count = config_table[ENE_CONFIG_LED_COUNT_1110];
}
// Assume first generation controller if string does not match
else
{
@@ -224,20 +213,6 @@ const char * ENESMBusController::GetChannelName(unsigned int led)
return(ene_channels[9]);
break;
/*---------------------------------------------*\
| If the config table entry is zero, this LED |
| is part of the previous zone. Search |
| backwards until finding a non-zero entry. |
\*---------------------------------------------*/
case 0:
for(int id = led; led >= 0; id--)
{
if(config_table[channel_cfg + id] != 0)
{
return(GetChannelName(id));
}
}
default:
return(ene_channels[10]);
break;
@@ -90,7 +90,6 @@ enum
{
ENE_CONFIG_LED_COUNT = 0x02, /* LED Count configuration offset */
ENE_CONFIG_LED_COUNT_0107 = 0x03, /* LED Count configuration offset */
ENE_CONFIG_LED_COUNT_1110 = 0x03, /* LED Count configuration offset */
ENE_CONFIG_CHANNEL_V1 = 0x13, /* LED Channel configuration offset */
ENE_CONFIG_CHANNEL_V2 = 0x1B, /* LED Channel V2 configuration offset */
};
@@ -364,7 +364,6 @@ REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3070Ti O8G V2 GAMING", DetectEN
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3070Ti O8G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3070TI_O8G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3080 10G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3080_10G_GAMING_PD, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3080 10G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3080_10G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS ROG RTX 3080 10G GUNDAM EDITION", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3080_10G_GUNDAM_EDITION, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3080 O10G OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3080_O10G_OC, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX 3080 10G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_3080_10G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX 3080 O10G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_3080_O10G_GAMING, 0x67);
@@ -388,8 +387,6 @@ REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3090 O24G", DetectEN
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3090 O24G OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3090_O24G_OC, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 3090Ti O24G OC GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_3090TI_O24G_OC_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 4070 Ti 12G Gaming", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_4070TI_12G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 4070 Ti O12G Gaming", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_4070TI_O12G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX RTX 4080 O16G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_4080_O16G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 4090 O24G OC", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_4090_O24G_OC_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS TUF RTX 4090 O24G", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, ASUS_SUB_VEN, ASUS_TUF_RTX_4090_O24G_GAMING, 0x67);
REGISTER_I2C_PCI_DETECTOR("ASUS ROG STRIX RTX 4090 O24G GAMING", DetectENESMBusGPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, ASUS_SUB_VEN, ASUS_ROG_STRIX_RTX_4090_O24G_GAMING, 0x67);
@@ -373,17 +373,16 @@ void RGBController_ENESMBus::SetupZones()
/*---------------------------------------------------------*\
| Create LED entries for each zone |
\*---------------------------------------------------------*/
std::size_t led_idx = 0;
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
{
for(std::size_t zone_led_idx = 0; zone_led_idx < zones[zone_idx].leds_count; zone_led_idx++)
for(std::size_t led_idx = 0; led_idx < zones[zone_idx].leds_count; led_idx++)
{
led* new_led = new led();
new_led->name = zones[zone_idx].name + " LED ";
new_led->name.append(std::to_string(zone_led_idx + 1));
new_led->name.append(std::to_string(led_idx + 1));
new_led->value = led_map[led_idx++];
new_led->value = led_map[led_idx];
leds.push_back(*new_led);
}
@@ -18,7 +18,7 @@ GaiZhongGaiKeyboardController::GaiZhongGaiKeyboardController(hid_device* dev_han
| Obtaining the Firmware Version |
\*-----------------------------------------------------*/
char str[10];
sprintf(str, "Ver%04X", info->release_number);
snprintf(str, 10, "Ver%04X", info->release_number);
version = str;
}
@@ -55,7 +55,7 @@ bool TestForGigabyteRGBFusion2GPUController(i2c_smbus_interface* bus, unsigned c
// Assemble C-string with respons for debugging
char str[32];
for(int idx = 0; idx < read_sz; ++idx)
sprintf(&str[5*idx], " 0x%02X", data_readpkt[idx]);
snprintf(&str[5*idx], 32, " 0x%02X", data_readpkt[idx]);
LOG_DEBUG("[%s] at address 0x%02X invalid. Expected 0xAB [0x*] but received:%s", GIGABYTEGPU_CONTROLLER_NAME2, address, str);
pass = false;
}
@@ -99,10 +99,8 @@ REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX2080 SUPER 8G Rev 1.0",
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX2080 SUPER Waterforce WB 8G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_WATERFORCE_WB_SUB_DEV, 0x51);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX2080 Ti XTREME 11G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080TI_EXTREME_SUB_DEV, 0x50);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX3060 ELITE 12G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_ELITE_12GB_SUB_DEV, 0x70);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX3060 ELITE 12G Rev a1", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_GA106_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_ELITE_12GB_SUB_DEV, 0x70);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX3060 ELITE 12G LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_ELITE_12GB_SUB_DEV, 0x70);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX3060 Ti ELITE 8G LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_ELITE_8GB_SUB_DEV, 0x70);
REGISTER_I2C_PCI_DETECTOR("Gigabyte RTX3060 Ti GAMING OC 8G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_SUB_DEV, 0x62);
REGISTER_I2C_PCI_DETECTOR("Gigabyte RTX3060 Ti GAMING OC LHR 8G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_SUB_DEV, 0x62);
REGISTER_I2C_PCI_DETECTOR("Gigabyte RTX3060 Ti GAMING OC PRO 8G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_PRO_SUB_DEV, 0x62);
REGISTER_I2C_PCI_DETECTOR("Gigabyte RTX3060 Ti Gaming OC PRO 8G LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_PRO_SUB_DEV, 0x62);
@@ -120,6 +118,5 @@ REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX3090 XTREME WATERFORCE 24G",
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX3090 XTREME WATERFORCE WB 24G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3090_XTREME_WATERFORCE_WB_SUB_DEV, 0x64);
REGISTER_I2C_PCI_DETECTOR("Gigabyte RTX4080 Gaming OC 16G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4080_GAMING_OC_SUB_DEV, 0x71);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX4080 MASTER 16G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX4080_MASTER_16G_SUB_DEV, 0x71);
REGISTER_I2C_PCI_DETECTOR("Gigabyte RTX4090 GAMING OC 24G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4090_GAMING_OC_24G_SUB_DEV, 0x71);
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RTX4090 MASTER 24G", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX4090_MASTER_24G_SUB_DEV, 0x71);
@@ -27,7 +27,7 @@ HyperXAlloyOriginsCoreController::HyperXAlloyOriginsCoreController(hid_device* d
memset(fw_version_buf, '\0', sizeof(fw_version_buf));
unsigned short version = dev_info->release_number;
sprintf(fw_version_buf, "%.2X.%.2X", (version & 0xFF00) >> 8, version & 0x00FF);
snprintf(fw_version_buf, 8, "%.2X.%.2X", (version & 0xFF00) >> 8, version & 0x00FF);
firmware_version = fw_version_buf;
}
@@ -37,8 +37,7 @@ void DetectMSIGPUv2Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const
} /* DetectMSIGPUv2Controllers() */
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4070Ti 12GB Gaming X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, MSI_SUB_VEN, MSI_RTX4070TI_GAMING_X_TRIO_SUB_DEV, 0x68);
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4070Ti 12GB Suprim X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, MSI_SUB_VEN, MSI_RTX4070TI_SUPRIM_X_TRIO_SUB_DEV, 0x68);
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4070Ti 12GB Gaming X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, MSI_SUB_VEN, MSI_RTX4070TI_GAMING_X_TRIO_SUB_DEV, 0x68);
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4080 16GB Gaming X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, MSI_SUB_VEN, MSI_RTX4080_GAMING_X_TRIO_SUB_DEV, 0x68);
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4080 16GB Suprim X", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, MSI_SUB_VEN, MSI_RTX4080_SUPRIM_X_SUB_DEV, 0x68);
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4090 24GB Gaming X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, MSI_SUB_VEN, MSI_RTX4090_GAMING_X_TRIO_SUB_DEV, 0x68);
@@ -379,7 +379,7 @@ void MountainKeyboardController::SendColorPacketCmd(unsigned char pkt_no,unsigne
memset(&usb_buf[MOUNTAIN_KEYBOARD_USB_BUFFER_HEADER_SIZE + data_size],0x00,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE-data_size);
}
hid_write(dev, usb_buf, MOUNTAIN_KEYBOARD_USB_BUFFER_SIZE);
std::this_thread::sleep_for(5ms);
std::this_thread::sleep_for(10ms);
}
}
@@ -402,7 +402,7 @@ void MountainKeyboardController::SendColorEdgePacketCmd(unsigned char pkt_no, un
memset(&usb_buf[MOUNTAIN_KEYBOARD_USB_BUFFER_HEADER_SIZE + data_size],0x00,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE-data_size);
}
hid_write(dev, usb_buf, MOUNTAIN_KEYBOARD_USB_BUFFER_SIZE);
std::this_thread::sleep_for(5ms);
std::this_thread::sleep_for(10ms);
}
}
@@ -422,106 +422,48 @@ void MountainKeyboardController::SendColorPacketFinishCmd()
}
}
void MountainKeyboardController::SendDirectColorEdgeCmd(bool quick_mode, unsigned char brightness, unsigned char *color_data, unsigned int data_size)
void MountainKeyboardController::SendDirectColorEdgeCmd(unsigned char brightness, unsigned char *color_data, unsigned int data_size)
{
static bool first_call = true;
static unsigned char prv_buffer[MOUNTAIN_KEYBOARD_TRANSFER_EDGE_BUFFER_SIZE] = {0};
unsigned char pkt_no = 0;
unsigned char pkt_no = 0;
unsigned char *data_ptr = color_data;
unsigned char *prv_data_ptr = prv_buffer;
unsigned int data_len = data_size;
if(MOUNTAIN_KEYBOARD_TRANSFER_EDGE_BUFFER_SIZE >= data_len)
unsigned char *data_ptr = color_data;
SendColorStartPacketCmd(brightness);
while(data_size>0)
{
if(!quick_mode)
if(data_size >= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE)
{
SendColorStartPacketCmd(brightness);
MountainKeyboardController::SendColorEdgePacketCmd(pkt_no++,data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE);
data_ptr += MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
data_size -= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
}
while(data_len>0)
else
{
if(data_len >= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE)
{
if(first_call || !quick_mode || memcmp(data_ptr,prv_data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE))
{
MountainKeyboardController::SendColorEdgePacketCmd(pkt_no,data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE);
memcpy(prv_data_ptr,data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE);
}
pkt_no++;
data_ptr += MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
prv_data_ptr += MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
data_len -= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
}
else
{
if(first_call || !quick_mode || memcmp(data_ptr,prv_data_ptr,data_len))
{
MountainKeyboardController::SendColorEdgePacketCmd(pkt_no,data_ptr,data_len);
memcpy(prv_data_ptr,data_ptr,data_len);
}
data_len = 0;
}
}
if(!quick_mode)
{
SendColorPacketFinishCmd();
}
if (first_call)
{
first_call = false;
MountainKeyboardController::SendColorEdgePacketCmd(pkt_no++,data_ptr,data_size);
data_size = 0;;
}
}
SendColorPacketFinishCmd();
}
void MountainKeyboardController::SendDirectColorCmd(bool quick_mode, unsigned char brightness, unsigned char *color_data, unsigned int data_size)
void MountainKeyboardController::SendDirectColorCmd(unsigned char brightness, unsigned char *color_data, unsigned int data_size)
{
static bool first_call = true;
static unsigned char prv_buffer[MOUNTAIN_KEYBOARD_TRANSFER_BUFFER_SIZE] = {0};
unsigned char pkt_no = 0;
unsigned char pkt_no = 0;
unsigned char *data_ptr = color_data;
unsigned char *prv_data_ptr = prv_buffer;
unsigned int data_len = data_size;
if(MOUNTAIN_KEYBOARD_TRANSFER_BUFFER_SIZE >= data_len)
unsigned char *data_ptr = color_data;
SendColorStartPacketCmd(brightness);
while(data_size>0)
{
if(!quick_mode)
if(data_size >= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE)
{
SendColorStartPacketCmd(brightness);
MountainKeyboardController::SendColorPacketCmd(pkt_no++,brightness,data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE);
data_ptr += MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
data_size -= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
}
while(data_len>0)
else
{
if(data_len >= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE)
{
if(first_call || !quick_mode || memcmp(data_ptr,prv_data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE))
{
MountainKeyboardController::SendColorPacketCmd(pkt_no,brightness,data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE);
memcpy(prv_data_ptr,data_ptr,MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE);
}
pkt_no++;
data_ptr += MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
prv_data_ptr += MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
data_len -= MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE;
}
else
{
if(first_call || !quick_mode || memcmp(data_ptr,prv_data_ptr,data_len))
{
MountainKeyboardController::SendColorPacketCmd(pkt_no,brightness,data_ptr,data_len);
memcpy(prv_data_ptr,data_ptr,data_len);
}
data_len = 0;
}
}
if(!quick_mode)
{
SendColorPacketFinishCmd();
}
if (first_call)
{
first_call = false;
MountainKeyboardController::SendColorPacketCmd(pkt_no++,brightness,data_ptr,data_size);
data_size = 0;;
}
}
SendColorPacketFinishCmd();
}
@@ -22,12 +22,6 @@
#define MOUNTAIN_EVEREST_PID 0x0001
#define MOUNTAIN_KEYBOARD_MAX_TRANSFER_COLORS 126
#define MOUNTAIN_KEYBOARD_TRANSFER_BUFFER_SIZE (3*MOUNTAIN_KEYBOARD_MAX_TRANSFER_COLORS)
#define MOUNTAIN_KEYBOARD_MAX_TRANSFER_EDGE_COLORS 46
#define MOUNTAIN_KEYBOARD_TRANSFER_EDGE_BUFFER_SIZE (3*MOUNTAIN_KEYBOARD_MAX_TRANSFER_EDGE_COLORS)
#define MOUNTAIN_KEYBOARD_USB_BUFFER_SIZE 65
#define MOUNTAIN_KEYBOARD_USB_BUFFER_HEADER_SIZE 8
#define MOUNTAIN_KEYBOARD_USB_MAX_DIRECT_PAYLOAD_SIZE \
@@ -135,8 +129,8 @@ public:
void SendColorMatrixCmd(color_setup setup);
void SendColorReactiveCmd(color_setup setup);
void SendDirectColorCmd(bool quick_mode, unsigned char brightness, unsigned char *color_data, unsigned int color_count);
void SendDirectColorEdgeCmd(bool quick_mode, unsigned char brightness, unsigned char *color_data, unsigned int data_size);
void SendDirectColorCmd(unsigned char brightness, unsigned char *color_data, unsigned int color_count);
void SendDirectColorEdgeCmd(unsigned char brightness, unsigned char *color_data, unsigned int data_size);
void SaveData(unsigned char mode_idx);
void SelectMode(unsigned char mode_idx);
@@ -19,308 +19,51 @@ static const unsigned char reactive_speed_values [MOUNTAIN_KEYBOARD_SPEED_MAX
//0xFFFFFFFF indicates an unused entry in matrix
#define NA 0xFFFFFFFF
#define KEYBOARD_MATRIX_TKL_HEIGHT 6
#define KEYBOARD_MATRIX_TKL_WIDTH 19
#define KEYBOARD_MATRIX_TKL_KEYS_NO 87
#define KEYBOARD_MATRIX_HEIGHT 6
#define KEYBOARD_MATRIX_WIDTH 24
#define KEYBOARD_MATRIX_NUM_HEIGHT 6
#define KEYBOARD_MATRIX_NUM_WIDTH 4
#define KEYBOARD_MATRIX_NUM_KEYS_NO 17
#define KEYBOARD_MATRIX_EDGE_HEIGHT 6
#define KEYBOARD_MATRIX_EDGE_WIDTH 19
#define KEYBOARD_MATRIX_EDGE_TKL_HEIGHT 6
#define KEYBOARD_MATRIX_EDGE_TKL_WIDTH 14
#define KEYBOARD_MATRIX_EDGE_TKL_KEYS_NO 32
static unsigned int matrix_map[KEYBOARD_MATRIX_HEIGHT][KEYBOARD_MATRIX_WIDTH] =
{ { 0, NA, 9, 18, 27, 36, NA, 45, 54, 63, 72, NA, 81, 90, 99, 108, 117, 114, 123, NA, NA, NA, NA, NA },
{ 1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, NA, 100, 109, 87, NA, 96, 105, 115, NA, 6, 24, 16, 15 },
{ 2, NA, 11, 20, 29, 38, NA, 47, 56, 65, 74, 83, 92, 101, 110, 119, 88, 97, 106, NA, 61, 69, 70, 7 },
{ 3, NA, 12, 21, 30, 39, NA, 48, 57, 6, 75, 84, 93, 102, NA, 120, NA, NA, NA, NA, 51, 52, 60, NA },
{ 4, NA, 22, 31, 40, 49, NA, 58, NA, 67, 76, 85, 94, 103, 121, NA, NA, 124, NA, NA, 34, 42, 43, 33 },
{ 5, 14, 23, NA, NA, NA, NA, 41, NA, NA, NA, NA, 68, 77, 86, 95, 104, 113, 122, NA, 78, NA, 79, NA } };
#define KEYBOARD_MATRIX_EDGE_NUMPAD_HEIGHT 6
#define KEYBOARD_MATRIX_EDGE_NUMPAD_WIDTH 5
#define KEYBOARD_MATRIX_EDGE_NUMPAD_KEYS_NO 14
#define KEYBOARD_MATRIX_KEYS_NO (KEYBOARD_MATRIX_TKL_KEYS_NO + KEYBOARD_MATRIX_NUM_KEYS_NO)
#define KEYBOARD_MATRIX_EDGE_KEYS_NO (KEYBOARD_MATRIX_EDGE_TKL_KEYS_NO + KEYBOARD_MATRIX_EDGE_NUMPAD_KEYS_NO)
static unsigned int matrix_edge_map[KEYBOARD_MATRIX_EDGE_HEIGHT][KEYBOARD_MATRIX_EDGE_WIDTH] =
{ { NA, 13, 14, 15, 7, 6, 5, 4, 3, 2, 1, 0, 45, NA, NA, 44, 43, 42, NA },
{ 16, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 9, 31, NA, NA, NA, 41 },
{ 17, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 8, 32, NA, NA, NA, 40 },
{ 18, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 10, 33, NA, NA, NA, 39 },
{ 19, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 11, 34, NA, NA, NA, 38 },
{ NA, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 12, NA, NA, 35, 36, 37, NA } };
/*-------------------------------*\
| TODO: Detect detached keypad |
\*-------------------------------*/
enum
{
IDX_EDGE_00,
IDX_EDGE_01,
IDX_EDGE_02,
IDX_EDGE_03,
IDX_EDGE_04,
IDX_EDGE_05,
IDX_EDGE_06,
IDX_EDGE_07,
IDX_EDGE_08,
IDX_EDGE_09,
IDX_EDGE_10,
IDX_EDGE_11,
IDX_EDGE_12,
IDX_EDGE_13,
IDX_EDGE_14,
IDX_EDGE_15,
IDX_EDGE_16,
IDX_EDGE_17,
IDX_EDGE_18,
IDX_EDGE_19,
IDX_EDGE_20,
IDX_EDGE_21,
IDX_EDGE_22,
IDX_EDGE_23,
IDX_EDGE_24,
IDX_EDGE_25,
IDX_EDGE_26,
IDX_EDGE_27,
IDX_EDGE_28,
IDX_EDGE_29,
IDX_EDGE_30,
IDX_EDGE_31,
IDX_EDGE_32,
IDX_EDGE_33,
IDX_EDGE_34,
IDX_EDGE_35,
IDX_EDGE_36,
IDX_EDGE_37,
IDX_EDGE_38,
IDX_EDGE_39,
IDX_EDGE_40,
IDX_EDGE_41,
IDX_EDGE_42,
IDX_EDGE_43,
IDX_EDGE_44,
IDX_EDGE_45
};
enum
{
IDX_KEY_EN_ESCAPE = 0,
IDX_KEY_EN_BACK_TICK,
IDX_KEY_EN_TAB,
IDX_KEY_EN_CAPS_LOCK,
IDX_KEY_EN_LEFT_SHIFT,
IDX_KEY_EN_LEFT_CONTROL,
IDX_KEY_EN_NUMPAD_LOCK,
IDX_KEY_EN_NUMPAD_PLUS,
IDX_KEY_EN_UNUSED_8,
IDX_KEY_EN_F1,
IDX_KEY_EN_1,
IDX_KEY_EN_Q,
IDX_KEY_EN_A,
IDX_KEY_EN_UNUSED_13,
IDX_KEY_EN_LEFT_WINDOWS,
IDX_KEY_EN_NUMPAD_TIMES,
IDX_KEY_EN_NUMPAD_MINUS,
IDX_KEY_EN_UNUSED_17,
IDX_KEY_EN_F2,
IDX_KEY_EN_2,
IDX_KEY_EN_W,
IDX_KEY_EN_S,
IDX_KEY_EN_Z,
IDX_KEY_EN_LEFT_ALT,
IDX_KEY_EN_NUMPAD_DIVIDE,
IDX_KEY_EN_UNUSED_25,
IDX_KEY_EN_UNUSED_26,
IDX_KEY_EN_F3,
IDX_KEY_EN_3,
IDX_KEY_EN_E,
IDX_KEY_EN_D,
IDX_KEY_EN_X,
IDX_KEY_EN_UNUSED_32,
IDX_KEY_EN_NUMPAD_ENTER,
IDX_KEY_EN_NUMPAD_1,
IDX_KEY_EN_UNUSED_35,
IDX_KEY_EN_F4,
IDX_KEY_EN_4,
IDX_KEY_EN_R,
IDX_KEY_EN_F,
IDX_KEY_EN_C,
IDX_KEY_EN_SPACE,
IDX_KEY_EN_NUMPAD_2,
IDX_KEY_EN_NUMPAD_3,
IDX_KEY_EN_UNUSED_44,
IDX_KEY_EN_F5,
IDX_KEY_EN_5,
IDX_KEY_EN_T,
IDX_KEY_EN_G,
IDX_KEY_EN_V,
IDX_KEY_EN_UNUSED_50,
IDX_KEY_EN_NUMPAD_4,
IDX_KEY_EN_NUMPAD_5,
IDX_KEY_EN_UNUSED_53,
IDX_KEY_EN_F6,
IDX_KEY_EN_6,
IDX_KEY_EN_Y,
IDX_KEY_EN_H,
IDX_KEY_EN_B,
IDX_KEY_EN_UNUSED_59,
IDX_KEY_EN_NUMPAD_6,
IDX_KEY_EN_NUMPAD_7,
IDX_KEY_EN_UNUSED_62,
IDX_KEY_EN_F7,
IDX_KEY_EN_7,
IDX_KEY_EN_U,
IDX_KEY_EN_J,
IDX_KEY_EN_N,
IDX_KEY_EN_RIGHT_ALT,
IDX_KEY_EN_NUMPAD_8,
IDX_KEY_EN_NUMPAD_9,
IDX_KEY_EN_UNUSED_71,
IDX_KEY_EN_F8,
IDX_KEY_EN_8,
IDX_KEY_EN_I,
IDX_KEY_EN_K,
IDX_KEY_EN_M,
IDX_KEY_EN_RIGHT_WINDOWS,
IDX_KEY_EN_NUMPAD_0,
IDX_KEY_EN_NUMPAD_PERIOD,
IDX_KEY_EN_UNUSED_80,
IDX_KEY_EN_F9,
IDX_KEY_EN_9,
IDX_KEY_EN_O,
IDX_KEY_EN_L,
IDX_KEY_EN_COMMA,
IDX_KEY_EN_RIGHT_FUNCTION,
IDX_KEY_EN_BACKSPACE,
IDX_KEY_EN_DELETE,
IDX_KEY_EN_UNUSED_89,
IDX_KEY_EN_F10,
IDX_KEY_EN_0,
IDX_KEY_EN_P,
IDX_KEY_EN_SEMICOLON,
IDX_KEY_EN_PERIOD,
IDX_KEY_EN_RIGHT_CONTROL,
IDX_KEY_EN_INSERT,
IDX_KEY_EN_END,
IDX_KEY_EN_UNUSED_98,
IDX_KEY_EN_F11,
IDX_KEY_EN_MINUS,
IDX_KEY_EN_LEFT_BRACKET,
IDX_KEY_EN_QUOTE,
IDX_KEY_EN_FORWARD_SLASH,
IDX_KEY_EN_LEFT_ARROW,
IDX_KEY_EN_HOME,
IDX_KEY_EN_PAGE_DOWN,
IDX_KEY_EN_UNUSED_107,
IDX_KEY_EN_F12,
IDX_KEY_EN_EQUALS,
IDX_KEY_EN_RIGHT_BRACKET,
IDX_KEY_EN_UNUSED_111,
IDX_KEY_EN_UNUSED_112,
IDX_KEY_EN_DOWN_ARROW,
IDX_KEY_EN_SCROLL_LOCK,
IDX_KEY_EN_PAGE_UP,
IDX_KEY_EN_UNUSED_116,
IDX_KEY_EN_PRINT_SCREEN,
IDX_KEY_EN_UNUSED_118,
IDX_KEY_EN_ANSI_BACK_SLASH,
IDX_KEY_EN_ANSI_ENTER,
IDX_KEY_EN_RIGHT_SHIFT,
IDX_KEY_EN_RIGHT_ARROW,
IDX_KEY_EN_PAUSE_BREAK,
IDX_KEY_EN_UP_ARROW,
};
static unsigned int matrix_tkl_map[KEYBOARD_MATRIX_TKL_HEIGHT][KEYBOARD_MATRIX_TKL_WIDTH] =
{ { 0, NA, 8, 14, 19, 24, NA, 30, 36, 40, 45, NA, 53, 59, 65, 70, 74, 78, 83},
{ 1, 6, 9, 15, 20, 25, 29, 31, 37, 41, 46, NA, 54, 60, 66, NA, 75, 79, 84},
{ 2, NA, 10, 16, 21, 26, NA, 32, 38, 42, 47, 50, 55, 61, 67, 71, 76, 80, 85},
{ 3, NA, 11, 17, 22, 27, NA, 33, 39, 43, 48, 51, 56, 62, NA, 72, NA, NA, NA},
{ 4, NA, 12, 18, 23, 28, NA, 34, NA, 44, 49, 52, 57, 63, 68, NA, NA, 81, NA},
{ 5, 7, 13, NA, NA, NA, NA, 35, NA, NA, NA, NA, 58, 64, 69, 73, 77, 82, 86} };
static unsigned int matrix_num_map[KEYBOARD_MATRIX_NUM_HEIGHT][KEYBOARD_MATRIX_NUM_WIDTH] =
{ { NA, NA, NA, NA },
{ 0, 5, 9, 14 },
{ 1, 6, 10, 15 },
{ 2, 7, 11, NA },
{ 3, 8, 12, 16 },
{ 4, NA, 13, NA } };
static unsigned int matrix_tkl_map_lut[KEYBOARD_MATRIX_TKL_KEYS_NO] =
{
IDX_KEY_EN_ESCAPE, IDX_KEY_EN_BACK_TICK, IDX_KEY_EN_TAB, IDX_KEY_EN_CAPS_LOCK, IDX_KEY_EN_LEFT_SHIFT, IDX_KEY_EN_LEFT_CONTROL,
IDX_KEY_EN_1, IDX_KEY_EN_LEFT_WINDOWS,
IDX_KEY_EN_F1, IDX_KEY_EN_2, IDX_KEY_EN_Q, IDX_KEY_EN_A, IDX_KEY_EN_Z, IDX_KEY_EN_LEFT_ALT,
IDX_KEY_EN_F2, IDX_KEY_EN_3, IDX_KEY_EN_W, IDX_KEY_EN_S, IDX_KEY_EN_X,
IDX_KEY_EN_F3, IDX_KEY_EN_4, IDX_KEY_EN_E, IDX_KEY_EN_D, IDX_KEY_EN_C,
IDX_KEY_EN_F4, IDX_KEY_EN_5, IDX_KEY_EN_R, IDX_KEY_EN_F, IDX_KEY_EN_V,
IDX_KEY_EN_6,
IDX_KEY_EN_F5, IDX_KEY_EN_7, IDX_KEY_EN_T, IDX_KEY_EN_G, IDX_KEY_EN_B, IDX_KEY_EN_SPACE,
IDX_KEY_EN_F6, IDX_KEY_EN_8, IDX_KEY_EN_Y, IDX_KEY_EN_H,
IDX_KEY_EN_F7, IDX_KEY_EN_9, IDX_KEY_EN_U, IDX_KEY_EN_J, IDX_KEY_EN_N,
IDX_KEY_EN_F8, IDX_KEY_EN_0, IDX_KEY_EN_I, IDX_KEY_EN_K, IDX_KEY_EN_M,
IDX_KEY_EN_O, IDX_KEY_EN_L, IDX_KEY_EN_COMMA,
IDX_KEY_EN_F9, IDX_KEY_EN_MINUS, IDX_KEY_EN_P, IDX_KEY_EN_SEMICOLON, IDX_KEY_EN_PERIOD, IDX_KEY_EN_RIGHT_ALT,
IDX_KEY_EN_F10, IDX_KEY_EN_EQUALS, IDX_KEY_EN_LEFT_BRACKET, IDX_KEY_EN_QUOTE, IDX_KEY_EN_FORWARD_SLASH, IDX_KEY_EN_RIGHT_WINDOWS,
IDX_KEY_EN_F11, IDX_KEY_EN_BACKSPACE, IDX_KEY_EN_RIGHT_BRACKET, IDX_KEY_EN_RIGHT_SHIFT, IDX_KEY_EN_RIGHT_FUNCTION,
IDX_KEY_EN_F12, IDX_KEY_EN_ANSI_BACK_SLASH, IDX_KEY_EN_ANSI_ENTER, IDX_KEY_EN_RIGHT_CONTROL,
IDX_KEY_EN_PRINT_SCREEN, IDX_KEY_EN_INSERT, IDX_KEY_EN_DELETE, IDX_KEY_EN_LEFT_ARROW,
IDX_KEY_EN_SCROLL_LOCK, IDX_KEY_EN_HOME, IDX_KEY_EN_END, IDX_KEY_EN_UP_ARROW, IDX_KEY_EN_DOWN_ARROW,
IDX_KEY_EN_PAUSE_BREAK, IDX_KEY_EN_PAGE_UP, IDX_KEY_EN_PAGE_DOWN, IDX_KEY_EN_RIGHT_ARROW
};
static unsigned int matrix_num_map_lut[KEYBOARD_MATRIX_NUM_KEYS_NO] =
{
IDX_KEY_EN_NUMPAD_LOCK, IDX_KEY_EN_NUMPAD_7, IDX_KEY_EN_NUMPAD_4, IDX_KEY_EN_NUMPAD_1, IDX_KEY_EN_NUMPAD_0,
IDX_KEY_EN_NUMPAD_DIVIDE, IDX_KEY_EN_NUMPAD_8, IDX_KEY_EN_NUMPAD_5, IDX_KEY_EN_NUMPAD_2,
IDX_KEY_EN_NUMPAD_TIMES, IDX_KEY_EN_NUMPAD_9, IDX_KEY_EN_NUMPAD_6, IDX_KEY_EN_NUMPAD_3, IDX_KEY_EN_NUMPAD_PERIOD,
IDX_KEY_EN_NUMPAD_MINUS, IDX_KEY_EN_NUMPAD_PLUS, IDX_KEY_EN_NUMPAD_ENTER
};
static unsigned int matrix_edge_tkl_map_lut[KEYBOARD_MATRIX_EDGE_TKL_KEYS_NO]=
{
IDX_EDGE_16, IDX_EDGE_17, IDX_EDGE_18, IDX_EDGE_19,
IDX_EDGE_13, IDX_EDGE_20,
IDX_EDGE_14, IDX_EDGE_21,
IDX_EDGE_15, IDX_EDGE_22,
IDX_EDGE_07, IDX_EDGE_23,
IDX_EDGE_06, IDX_EDGE_24,
IDX_EDGE_05, IDX_EDGE_25,
IDX_EDGE_04, IDX_EDGE_26,
IDX_EDGE_03, IDX_EDGE_27,
IDX_EDGE_02, IDX_EDGE_28,
IDX_EDGE_01, IDX_EDGE_29,
IDX_EDGE_00, IDX_EDGE_30,
IDX_EDGE_45, IDX_EDGE_12,
IDX_EDGE_09, IDX_EDGE_08, IDX_EDGE_10, IDX_EDGE_11
};
static unsigned int matrix_edge_numpad_map_lut[KEYBOARD_MATRIX_EDGE_NUMPAD_KEYS_NO]=
{
IDX_EDGE_31, IDX_EDGE_32, IDX_EDGE_33, IDX_EDGE_34,
IDX_EDGE_44, IDX_EDGE_35,
IDX_EDGE_43, IDX_EDGE_36,
IDX_EDGE_42, IDX_EDGE_37,
IDX_EDGE_41, IDX_EDGE_40, IDX_EDGE_39, IDX_EDGE_38
};
static unsigned int matrix_edge_tkl_map[KEYBOARD_MATRIX_EDGE_TKL_HEIGHT][KEYBOARD_MATRIX_EDGE_TKL_WIDTH] =
{ { NA, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, NA },
{ 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 28 },
{ 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 29 },
{ 2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 30 },
{ 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 31 },
{ NA, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, NA } };
static unsigned int matrix_edge_numpad_map[KEYBOARD_MATRIX_EDGE_NUMPAD_HEIGHT][KEYBOARD_MATRIX_EDGE_NUMPAD_WIDTH] =
{ { NA, 4, 6, 8, NA },
{ 0, NA, NA, NA, 10 },
{ 1, NA, NA, NA, 11 },
{ 2, NA, NA, NA, 12 },
{ 3, NA, NA, NA, 13 },
{ NA, 5, 7, 9, NA } };
/*---------------------------------------------------*\
| TODO: Detect detached keypad |
| TODO: Figure out how to read RGB state |
| TODO: separatee display brughness from backlight |
\*---------------------------------------------------*/
#if 0
static unsigned int matrix_map_tkl[6][19] =
{ { 0, NA, 9, 18, 27, 36, NA, 45, 54, 63, 72, NA, 81, 90, 99, 108, 117, 114, 123},
{ 1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, NA, 100, 109, 87, NA, 96, 105, 115},
{ 2, NA, 11, 20, 29, 38, NA, 47, 56, 65, 74, 83, 92, 101, 110, 119, 88, 97, 106},
{ 3, NA, 12, 21, 30, 39, NA, 48, 57, 6, 75, 84, 93, 102, NA, 120, NA, NA, NA},
{ 4, NA, 22, 31, 40, 49, NA, 58, NA, 67, 76, 85, 94, 103, 121, NA, NA, 124, NA},
{ 5, 14, 23, NA, NA, NA, NA, 41, NA, NA, NA, NA, 68, 77, 86, 95, 104, 113, 122} };
#endif
typedef struct
{
const char* name;
zone_type type;
unsigned int* ptr;
unsigned int* ptr_lut;
unsigned int size;
unsigned int height;
unsigned int width;
@@ -331,43 +74,26 @@ static const mountain_zone_t zone_definitions[] =
{
ZONE_EN_KEYBOARD,
ZONE_TYPE_MATRIX,
(unsigned int*)&matrix_tkl_map,
(unsigned int*)&matrix_tkl_map_lut,
KEYBOARD_MATRIX_TKL_KEYS_NO,
KEYBOARD_MATRIX_TKL_HEIGHT,
KEYBOARD_MATRIX_TKL_WIDTH
},
{
"Numpad",
ZONE_TYPE_MATRIX,
(unsigned int*)&matrix_num_map,
(unsigned int*)&matrix_num_map_lut,
KEYBOARD_MATRIX_NUM_KEYS_NO,
KEYBOARD_MATRIX_NUM_HEIGHT,
KEYBOARD_MATRIX_NUM_WIDTH
(unsigned int*)&matrix_map,
125,
KEYBOARD_MATRIX_HEIGHT,
KEYBOARD_MATRIX_WIDTH
},
{
"Keyboard Edge",
ZONE_TYPE_MATRIX,
(unsigned int*)&matrix_edge_tkl_map,
(unsigned int*)&matrix_edge_tkl_map_lut,
KEYBOARD_MATRIX_EDGE_TKL_KEYS_NO,
KEYBOARD_MATRIX_EDGE_TKL_HEIGHT,
KEYBOARD_MATRIX_EDGE_TKL_WIDTH
},
{
"Numpad Edge",
ZONE_TYPE_MATRIX,
(unsigned int*)&matrix_edge_numpad_map,
(unsigned int*)&matrix_edge_numpad_map_lut,
KEYBOARD_MATRIX_EDGE_NUMPAD_KEYS_NO,
KEYBOARD_MATRIX_EDGE_NUMPAD_HEIGHT,
KEYBOARD_MATRIX_EDGE_NUMPAD_WIDTH
(unsigned int*)&matrix_edge_map,
46,
KEYBOARD_MATRIX_EDGE_HEIGHT,
KEYBOARD_MATRIX_EDGE_WIDTH
}
};
/*-------------------------------*\
| TODO: Detect detached keypad |
\*-------------------------------*/
static const char *led_names[MOUNTAIN_KEYBOARD_MAX_TRANSFER_COLORS] =
static const char *led_names[] =
{
KEY_EN_ESCAPE,
KEY_EN_BACK_TICK,
@@ -501,7 +227,7 @@ static const char *led_names[MOUNTAIN_KEYBOARD_MAX_TRANSFER_COLORS] =
@category Keyboard
@type USB
@save :white_check_mark:
@direct :rotating_light:
@direct :white_check_mark:
@effects :white_check_mark:
@detectors DetectMountainKeyboardControllers
@comment
@@ -521,20 +247,13 @@ RGBController_MountainKeyboard::RGBController_MountainKeyboard(MountainKeyboardC
mode Direct;
Direct.name = "Direct";
Direct.value = MOUNTAIN_KEYBOARD_MODE_DIRECT;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Direct.brightness_min = MOUNTAIN_KEYBOARD_BRIGHTNESS_MIN;
Direct.brightness = MOUNTAIN_KEYBOARD_BRIGHTNESS_MAX;
Direct.brightness_max = MOUNTAIN_KEYBOARD_BRIGHTNESS_MAX;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
mode Custom;
Custom.name = "Custom";
Custom.value = MOUNTAIN_KEYBOARD_MODE_DIRECT;
Custom.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Custom.brightness_min = MOUNTAIN_KEYBOARD_BRIGHTNESS_MIN;
Custom.brightness = MOUNTAIN_KEYBOARD_BRIGHTNESS_MAX;
Custom.brightness_max = MOUNTAIN_KEYBOARD_BRIGHTNESS_MAX;
Custom.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Custom);
mode Off;
Off.name = "Off";
Off.value = MOUNTAIN_KEYBOARD_MODE_OFF;
@@ -676,7 +395,6 @@ void RGBController_MountainKeyboard::SetupZones()
for(unsigned int zone_idx = 0; zone_idx < sizeof(zone_definitions)/sizeof(zone_definitions[0]); zone_idx++)
{
zone new_zone;
new_zone.name = zone_definitions[zone_idx].name;
new_zone.type = zone_definitions[zone_idx].type;
new_zone.leds_min = zone_definitions[zone_idx].size;
@@ -689,37 +407,30 @@ void RGBController_MountainKeyboard::SetupZones()
zones.push_back(new_zone);
}
for(unsigned int zone_idx = 0; zone_idx < sizeof(zone_definitions)/sizeof(zone_definitions[0]); zone_idx++)
for(unsigned int zone_idx = 0; zone_idx < zones.size(); zone_idx++)
{
if (zone_definitions[zone_idx].ptr_lut)
if(zone_idx == 0)
{
for(unsigned int led_idx=0;led_idx<zones[zone_idx].leds_count;led_idx++)
{
led* new_led = new led();
switch(zone_idx)
{
case 0:
case 1:
{
new_led->name = led_names[zone_definitions[zone_idx].ptr_lut[led_idx]];
}
break;
case 2:
case 3:
{
new_led->name = zones[zone_idx].name + " LED:";
new_led->name.append(std::to_string(led_idx + 1));
}
break;
default:
break;
}
new_led->name = led_names[led_idx];
leds.push_back(*new_led);
}
}
else
{
for(unsigned int led_idx=0;led_idx<zones[zone_idx].leds_count;led_idx++)
{
led* new_led = new led();
new_led->name = zones[zone_idx].name + " LED:";
new_led->name.append(std::to_string(led_idx + 1));
leds.push_back(*new_led);
}
}
}
SetupColors();
DeviceUpdateMode();
@@ -738,58 +449,42 @@ void RGBController_MountainKeyboard::DeviceUpdate(const mode& current_mode)
{
case MOUNTAIN_KEYBOARD_MODE_DIRECT:
{
unsigned char color_data[MOUNTAIN_KEYBOARD_TRANSFER_BUFFER_SIZE] = {0};
unsigned char color_edge_data[MOUNTAIN_KEYBOARD_TRANSFER_EDGE_BUFFER_SIZE] = {0};
unsigned char *color_data;
for(int led_idx = 0; led_idx < colors.size(); led_idx++)
color_data = (unsigned char*)malloc(colors.size() * 3);
if(color_data)
{
if(led_idx < zones[0].leds_count)
for(int led_idx = 0; led_idx < colors.size(); led_idx++)
{
unsigned int zone_led_idx = led_idx;
unsigned int idx = zone_definitions[0].ptr_lut[zone_led_idx];
color_data[(3 * idx)] = RGBGetRValue(colors[led_idx]);
color_data[(3 * idx)+1] = RGBGetGValue(colors[led_idx]);
color_data[(3 * idx)+2] = RGBGetBValue(colors[led_idx]);
color_data[(3 * led_idx)] = RGBGetRValue(colors[led_idx]);
color_data[(3 * led_idx)+1] = RGBGetGValue(colors[led_idx]);
color_data[(3 * led_idx)+2] = RGBGetBValue(colors[led_idx]);
}
else if (led_idx < zones[0].leds_count + zones[1].leds_count)
{
unsigned int zone_led_idx = led_idx - zones[0].leds_count;
unsigned int idx = zone_definitions[1].ptr_lut[zone_led_idx];
color_data[(3 * idx)] = RGBGetRValue(colors[led_idx]);
color_data[(3 * idx)+1] = RGBGetGValue(colors[led_idx]);
color_data[(3 * idx)+2] = RGBGetBValue(colors[led_idx]);
}
else if (led_idx < zones[0].leds_count + zones[1].leds_count + zones[2].leds_count)
unsigned char *color_ptr = color_data;
for(unsigned int zone_idx=0;zone_idx<zones.size();zone_idx++)
{
unsigned int zone_led_idx = led_idx - zones[0].leds_count - zones[1].leds_count;
unsigned int idx = zone_definitions[2].ptr_lut[zone_led_idx];
color_edge_data[(3 * idx)] = RGBGetRValue(colors[led_idx]);
color_edge_data[(3 * idx)+1] = RGBGetGValue(colors[led_idx]);
color_edge_data[(3 * idx)+2] = RGBGetBValue(colors[led_idx]);
}
else
{
unsigned int zone_led_idx = led_idx - zones[0].leds_count - zones[1].leds_count - zones[2].leds_count;
unsigned int idx = zone_definitions[3].ptr_lut[zone_led_idx];
color_edge_data[(3 * idx)] = RGBGetRValue(colors[led_idx]);
color_edge_data[(3 * idx)+1] = RGBGetGValue(colors[led_idx]);
color_edge_data[(3 * idx)+2] = RGBGetBValue(colors[led_idx]);
}
}
switch(zone_idx)
{
case 0:
{
controller->SendDirectColorCmd(current_mode.brightness, color_ptr,zones[zone_idx].leds_count * 3);
color_ptr += zones[zone_idx].leds_count * 3;
}
break;
case 1:
{
controller->SendDirectColorEdgeCmd(current_mode.brightness, color_ptr,zones[zone_idx].leds_count * 3);
color_ptr += zones[zone_idx].leds_count * 3;
}
break;
/*---------------------------------------------------------*\
| Check if we running pseud DIRECT mode or CUSTOM one |
\*---------------------------------------------------------*/
if(current_mode.flags & MODE_FLAG_MANUAL_SAVE)
{
controller->SendDirectColorCmd(false, current_mode.brightness, color_data,MOUNTAIN_KEYBOARD_TRANSFER_BUFFER_SIZE);
controller->SendDirectColorEdgeCmd(false, current_mode.brightness, color_edge_data,MOUNTAIN_KEYBOARD_TRANSFER_EDGE_BUFFER_SIZE);
}
else
{
controller->SendDirectColorCmd(true, current_mode.brightness, color_data,MOUNTAIN_KEYBOARD_TRANSFER_BUFFER_SIZE);
controller->SendDirectColorEdgeCmd(true, current_mode.brightness, color_edge_data,MOUNTAIN_KEYBOARD_TRANSFER_EDGE_BUFFER_SIZE);
default:
break;
}
}
free(color_data);
}
}
break;
@@ -55,7 +55,6 @@ static const gpu_pci_device device_list[] =
{NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA 3060TI LHR" },
{NVIDIA_VEN, NVIDIA_RTX3080_DEV, NVIDIA_VEN, NVIDIA_RTX3080_FE_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA 3080 FE" },
{NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, NVIDIA_VEN, NVIDIA_RTX3080TI_FE_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA 3080TI FE" },
{NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, NVIDIA_VEN, MANLI_RTX3080TI_GALLARDO_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGB, "MANLI 3080TI GALLARDO" },
{NVIDIA_VEN, NVIDIA_RTX3090_DEV, NVIDIA_VEN, NVIDIA_RTX3090_FE_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA 3090 FE" },
{NVIDIA_VEN, NVIDIA_RTX3090TI_DEV, NVIDIA_VEN, NVIDIA_RTX3090TI_FE_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA 3090TI FE" },
{NVIDIA_VEN, NVIDIA_RTX4080_DEV, NVIDIA_VEN, NVIDIA_RTX4080_FE_SUB_DEV, NVIDIA_ILLUMINATION_V1, TREATS_RGBW_AS_RGBW, "NVIDIA 4080 FE" },
@@ -240,10 +240,9 @@ void RGBController_Razer::SetupZones()
for(unsigned int i = 0; i < device_list[device_index]->keymap_size; i++)
{
if(zone_id == device_list[device_index]->keymap[i].zone &&
row_id == device_list[device_index]->keymap[i].row &&
col_id == device_list[device_index]->keymap[i].col &&
layout_type & device_list[device_index]->keymap[i].layout)
if(zone_id == device_list[device_index]->keymap[i].zone &&
row_id == device_list[device_index]->keymap[i].row &&
col_id == device_list[device_index]->keymap[i].col)
{
new_led->name = device_list[device_index]->keymap[i].name;
not_found = false;
@@ -8,7 +8,6 @@
#include "RazerController.h"
#include "RazerDevices.h"
#include "LogManager.h"
#include <string.h>
@@ -56,7 +55,6 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
case RAZER_BLACKWIDOW_2019_PID:
case RAZER_BLACKWIDOW_V3_MINI_WIRED_PID:
case RAZER_BLADE_2021_BASE_V2_PID:
case RAZER_BLADE_14_2022_PID:
case RAZER_CYNOSA_V2_PID:
case RAZER_ORNATA_CHROMA_V2_PID:
case RAZER_ORNATA_V3_PID:
@@ -135,7 +133,6 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
case RAZER_BASILISK_V3_PRO_BLUETOOTH_PID:
case RAZER_BASE_STATION_CHROMA_PID:
case RAZER_BASE_STATION_V2_CHROMA_PID:
case RAZER_BLADE_14_2022_PID:
case RAZER_CHARGING_PAD_CHROMA_PID:
case RAZER_CHROMA_HDK_PID:
case RAZER_CORE_X_PID:
@@ -200,7 +197,6 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
| These devices use a standard matrix report |
\*-------------------------------------------------*/
case RAZER_BLACKWIDOW_CHROMA_V2_PID:
case RAZER_BLACKWIDOW_X_CHROMA_TE_PID:
case RAZER_BLADE_2016_PID:
case RAZER_BLADE_LATE_2016_PID:
case RAZER_BLADE_2018_ADVANCED_PID:
@@ -217,7 +213,6 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
case RAZER_BLADE_2021_BASE_PID:
case RAZER_BLADE_2021_BASE_V2_PID:
case RAZER_BLADE_14_2021_PID:
case RAZER_BLADE_14_2022_PID:
case RAZER_BLADE_PRO_2016_PID:
case RAZER_BLADE_PRO_2017_PID:
case RAZER_BLADE_PRO_2017_FULLHD_PID:
@@ -358,9 +353,6 @@ RazerController::RazerController(hid_device* dev_handle, hid_device* dev_argb_ha
case RAZER_ORBWEAVER_CHROMA_PID:
matrix_type = RAZER_MATRIX_TYPE_CUSTOM;
break;
default:
LOG_WARNING("[%s] Report matrix type was not selected, device may not repsond to mode updates.", name.c_str());
}
}
@@ -591,7 +583,6 @@ bool RazerController::SupportsWave()
case RAZER_BLADE_2021_BASE_PID:
case RAZER_BLADE_2021_BASE_V2_PID:
case RAZER_BLADE_14_2021_PID:
case RAZER_BLADE_14_2022_PID:
case RAZER_BLADE_PRO_2016_PID:
case RAZER_BLADE_PRO_2017_PID:
case RAZER_BLADE_PRO_2017_FULLHD_PID:
@@ -1230,6 +1221,7 @@ unsigned char RazerController::GetKeyboardLayoutType()
return RAZER_LAYOUT_TYPE_ANSI;
case RAZER_KEYBOARD_LAYOUT_GREEK: // Unconfirmed
case RAZER_KEYBOARD_LAYOUT_GERMAN: // Unconfirmed
case RAZER_KEYBOARD_LAYOUT_FRENCH:
case RAZER_KEYBOARD_LAYOUT_UK:
case RAZER_KEYBOARD_LAYOUT_NORDIC:
@@ -1246,9 +1238,6 @@ unsigned char RazerController::GetKeyboardLayoutType()
case RAZER_KEYBOARD_LAYOUT_JAPAN: // Unconfirmed
return RAZER_LAYOUT_TYPE_JIS;
case RAZER_KEYBOARD_LAYOUT_GERMAN:
return RAZER_LAYOUT_TYPE_QWERTZ;
default:
return RAZER_LAYOUT_TYPE_ALL;
}
@@ -1264,7 +1253,7 @@ std::string RazerController::GetKeyboardLayoutName()
switch(layout)
{
case RAZER_KEYBOARD_LAYOUT_US: return "US (ANSI)";
case RAZER_KEYBOARD_LAYOUT_GERMAN: return "German (QWERTZ)";
case RAZER_KEYBOARD_LAYOUT_GERMAN: return "German (ISO)"; // Unconfirmed
case RAZER_KEYBOARD_LAYOUT_GREEK: return "Greek (ISO)"; // Unconfirmed
case RAZER_KEYBOARD_LAYOUT_FRENCH: return "French (ISO)";
case RAZER_KEYBOARD_LAYOUT_RUSSIAN: return "Russian (ANSI)"; // Unconfirmed
@@ -137,10 +137,8 @@ enum
RAZER_LAYOUT_TYPE_ANSI = 0x01,
RAZER_LAYOUT_TYPE_ISO = 0x02,
RAZER_LAYOUT_TYPE_JIS = 0x04,
RAZER_LAYOUT_TYPE_QWERTZ = 0x08,
RAZER_LAYOUT_TYPE_ALL = RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO
| RAZER_LAYOUT_TYPE_JIS | RAZER_LAYOUT_TYPE_QWERTZ
RAZER_LAYOUT_TYPE_ALL = RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS
};
/*---------------------------------------------------------*\
@@ -277,7 +277,6 @@ REGISTER_HID_DETECTOR_IPU("Razer Ornata V3 X", Det
REGISTER_HID_DETECTOR_IPU("Razer Blade (2016)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2016_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Blade (Late 2016)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_LATE_2016_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Blade 14 (2021)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_14_2021_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Blade 14 (2022)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_14_2022_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2018 Advanced)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2018_ADVANCED_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2018 Base)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2018_BASE_PID, 0x02, 0x01, 0x02);
REGISTER_HID_DETECTOR_IPU("Razer Blade 15 (2018 Mercury)", DetectRazerControllers, RAZER_VID, RAZER_BLADE_2018_MERCURY_PID, 0x02, 0x01, 0x02);
@@ -579,107 +579,6 @@ static const razer_key blade_14_2021_keymap[] =
{ 0, 5, 15, KEY_EN_DOWN_ARROW, RAZER_LAYOUT_TYPE_ALL },
};
#define BLADE_14_2022_KEYMAP_SIZE (sizeof(blade_14_2022_keymap) / sizeof(blade_14_2022_keymap[0]))
static const razer_key blade_14_2022_keymap[] =
{
/*-------------------------------------------------------------------------------------------------------------*\
| Zone, Row, Column, Key Layout Type |
\*-------------------------------------------------------------------------------------------------------------*/
{ 0, 0, 1, KEY_EN_ESCAPE, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 2, KEY_EN_F1, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 3, KEY_EN_F2, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 4, KEY_EN_F3, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 5, KEY_EN_F4, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 6, KEY_EN_F5, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 7, KEY_EN_F6, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 8, KEY_EN_F7, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 9, KEY_EN_F8, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 10, KEY_EN_F9, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 11, KEY_EN_F10, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 12, KEY_EN_F11, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 13, KEY_EN_F12, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 14, KEY_EN_DELETE, RAZER_LAYOUT_TYPE_ALL },
{ 0, 0, 15, KEY_EN_POWER, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 1, KEY_EN_BACK_TICK, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 1, 1, KEY_JP_CHEVRON, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 1, 2, KEY_EN_1, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 3, KEY_EN_2, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 4, KEY_EN_3, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 5, KEY_EN_4, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 6, KEY_EN_5, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 7, KEY_EN_6, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 8, KEY_EN_7, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 9, KEY_EN_8, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 10, KEY_EN_9, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 11, KEY_EN_0, RAZER_LAYOUT_TYPE_ALL },
{ 0, 1, 12, KEY_EN_MINUS, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 1, 12, KEY_DE_ESZETT, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 1, 13, KEY_EN_EQUALS, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 1, 13, KEY_EN_BACK_TICK, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 1, 15, KEY_EN_BACKSPACE, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 1, KEY_EN_TAB, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 2, KEY_EN_Q, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 3, KEY_EN_W, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 4, KEY_EN_E, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 5, KEY_EN_R, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 6, KEY_EN_T, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 7, KEY_EN_Y, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 2, 7, KEY_EN_Z, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 2, 8, KEY_EN_U, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 9, KEY_EN_I, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 10, KEY_EN_O, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 11, KEY_EN_P, RAZER_LAYOUT_TYPE_ALL },
{ 0, 2, 12, KEY_EN_LEFT_BRACKET, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 2, 12, KEY_DE_DIAERESIS_U, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 2, 13, KEY_EN_RIGHT_BRACKET, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 2, 13, KEY_EN_PLUS, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 2, 15, KEY_EN_ANSI_BACK_SLASH, RAZER_LAYOUT_TYPE_ANSI },
{ 0, 3, 1, KEY_EN_CAPS_LOCK, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 2, KEY_EN_A, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 3, KEY_EN_S, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 4, KEY_EN_D, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 5, KEY_EN_F, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 6, KEY_EN_G, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 7, KEY_EN_H, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 8, KEY_EN_J, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 9, KEY_EN_K, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 10, KEY_EN_L, RAZER_LAYOUT_TYPE_ALL },
{ 0, 3, 11, KEY_EN_SEMICOLON, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 3, 11, KEY_DE_DIAERESIS_O, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 3, 12, KEY_EN_QUOTE, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 3, 12, KEY_DE_DIAERESIS_A, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 3, 13, KEY_EN_POUND, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 3, 15, KEY_EN_ANSI_ENTER, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 1, KEY_EN_LEFT_SHIFT, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 2, KEY_EN_ISO_BACK_SLASH, RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 4, 2, KEY_NORD_ANGLE_BRACKET, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 4, 3, KEY_EN_Z, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 4, 3, KEY_EN_Y, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 4, 4, KEY_EN_X, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 5, KEY_EN_C, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 6, KEY_EN_V, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 7, KEY_EN_B, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 8, KEY_EN_N, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 9, KEY_EN_M, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 10, KEY_EN_COMMA, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 11, KEY_EN_PERIOD, RAZER_LAYOUT_TYPE_ALL },
{ 0, 4, 12, KEY_EN_FORWARD_SLASH, RAZER_LAYOUT_TYPE_ANSI | RAZER_LAYOUT_TYPE_ISO | RAZER_LAYOUT_TYPE_JIS },
{ 0, 4, 12, KEY_EN_MINUS, RAZER_LAYOUT_TYPE_QWERTZ },
{ 0, 4, 15, KEY_EN_RIGHT_SHIFT, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 1, KEY_EN_LEFT_CONTROL, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 2, KEY_EN_LEFT_FUNCTION, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 3, KEY_EN_LEFT_WINDOWS, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 5, KEY_EN_LEFT_ALT, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 7, KEY_EN_SPACE, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 9, KEY_EN_RIGHT_ALT, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 11, KEY_EN_RIGHT_CONTROL, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 12, KEY_EN_LEFT_ARROW, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 13, KEY_EN_UP_ARROW, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 14, KEY_EN_RIGHT_ARROW, RAZER_LAYOUT_TYPE_ALL },
{ 0, 5, 15, KEY_EN_DOWN_ARROW, RAZER_LAYOUT_TYPE_ALL },
};
#define BLADE_17_PRO_2021_KEYMAP_SIZE (sizeof(blade_17_pro_2021_keymap) / sizeof(blade_17_pro_2021_keymap[0]))
static const razer_key blade_17_pro_2021_keymap[] =
@@ -4189,41 +4088,6 @@ static const razer_device blade_14_2021_device =
BLADE_14_2021_KEYMAP_SIZE
};
/*-------------------------------------------------------------*\
| Razer Blade 14 (2022) 1532:028C |
| |
| Zone "Keyboard" |
| Matrix |
| 6 Rows, 16 Columns |
\*-------------------------------------------------------------*/
static const razer_zone blade_14_2022_zone =
{
ZONE_EN_KEYBOARD,
ZONE_TYPE_MATRIX,
6,
16
};
static const razer_device blade_14_2022_device =
{
"Razer Blade 14 (2022)",
RAZER_BLADE_14_2022_PID,
DEVICE_TYPE_KEYBOARD,
true,
6,
16,
{
&blade_14_2022_zone,
NULL,
NULL,
NULL,
NULL,
NULL
},
blade_14_2022_keymap,
BLADE_14_2022_KEYMAP_SIZE
};
/*-------------------------------------------------------------*\
| Razer Book 13 (2020) |
| |
@@ -8600,7 +8464,6 @@ const razer_device* razer_device_list[] =
&blade_15_2021_base_device,
&blade_15_2021_base_v2_device,
&blade_14_2021_device,
&blade_14_2022_device,
&book_13_2020_device,
&blade_pro_2016_device,
&blade_pro_2017_device,
@@ -63,7 +63,6 @@
#define RAZER_BLADE_2021_BASE_V2_PID 0x027A
#define RAZER_BLADE_14_2021_PID 0x0270
#define RAZER_BLADE_14_2022_PID 0x028C
#define RAZER_BLADE_PRO_2016_PID 0x0210
#define RAZER_BLADE_PRO_2017_PID 0x0225
@@ -122,7 +122,7 @@ void RoccatKovaController::FetchFirmwareVersion()
uint8_t version = buf[ROCCAT_KOVA_FIRMWARE_VERSION_IDX];
char version_str[5] {00};
sprintf(version_str, "%.2f", version / 100.);
snprintf(version_str, 5, "%.2f", version / 100.);
firmware_version = version_str;
}
@@ -71,7 +71,7 @@ void RGBController_SRGBmodsPico::SetupZones()
for(unsigned int channel_idx = 0; channel_idx < SRGBMODS_PICO_NUM_CHANNELS; channel_idx++)
{
char ch_idx_string[2];
sprintf(ch_idx_string, "%d", channel_idx + 1);
snprintf(ch_idx_string, 2, "%d", channel_idx + 1);
zones[channel_idx].name = "Channel ";
zones[channel_idx].name.append(ch_idx_string);
@@ -94,7 +94,7 @@ void RGBController_SRGBmodsPico::SetupZones()
for(unsigned int led_ch_idx = 0; led_ch_idx < zones[channel_idx].leds_count; led_ch_idx++)
{
char led_idx_string[4];
sprintf(led_idx_string, "%d", led_ch_idx + 1);
snprintf(led_idx_string, 4, "%d", led_ch_idx + 1);
led new_led;
new_led.name = "LED ";
@@ -149,4 +149,4 @@ void RGBController_SRGBmodsPico::UpdateSingleLED(int led)
void RGBController_SRGBmodsPico::DeviceUpdateMode()
{
DeviceUpdateLEDs();
}
}
@@ -147,7 +147,7 @@ void RGBController_ThermaltakeRiing::SetupZones()
for (unsigned int channel_idx = 0; channel_idx < THERMALTAKE_NUM_CHANNELS; channel_idx++)
{
char ch_idx_string[2];
sprintf(ch_idx_string, "%d", channel_idx + 1);
snprintf(ch_idx_string, 2, "%d", channel_idx + 1);
zones[channel_idx].name = "Riing Channel ";
zones[channel_idx].name.append(ch_idx_string);
@@ -170,7 +170,7 @@ void RGBController_ThermaltakeRiing::SetupZones()
for (unsigned int led_ch_idx = 0; led_ch_idx < zones[channel_idx].leds_count; led_ch_idx++)
{
char led_idx_string[3];
sprintf(led_idx_string, "%d", led_ch_idx + 1);
snprintf(led_idx_string, 3, "%d", led_ch_idx + 1);
led new_led;
new_led.name = "Riing Channel ";
@@ -74,7 +74,7 @@ void RGBController_ThermaltakeRiingQuad::SetupZones()
for (unsigned int channel_idx = 0; channel_idx < THERMALTAKE_QUAD_NUM_CHANNELS; channel_idx++)
{
char ch_idx_string[2];
sprintf(ch_idx_string, "%d", channel_idx + 1);
snprintf(ch_idx_string, 2, "%d", channel_idx + 1);
zones[channel_idx].name = "Riing Channel ";
zones[channel_idx].name.append(ch_idx_string);
@@ -97,7 +97,7 @@ void RGBController_ThermaltakeRiingQuad::SetupZones()
for (unsigned int led_ch_idx = 0; led_ch_idx < zones[channel_idx].leds_count; led_ch_idx++)
{
char led_idx_string[3];
sprintf(led_idx_string, "%d", led_ch_idx + 1);
snprintf(led_idx_string, 3, "%d", led_ch_idx + 1);
led new_led;
new_led.name = "Riing Channel ";
@@ -8,75 +8,65 @@
#include <string>
/**------------------------------------------------------------------*\
@name Viewsonic Monitor
@category Accessory
@type USB
@save :x:
@direct :x:
@effects :white_check_mark:
@detectors DetectViewSonic
@comment
\*-------------------------------------------------------------------*/
RGBController_XG270QG::RGBController_XG270QG(VS_XG270QG_Controller* controller_ptr)
{
controller = controller_ptr;
name = "ViewSonic Elite XG270QG";
vendor = "ViewSonic";
type = DEVICE_TYPE_ACCESSORY;
version = controller->GetVersion();
type = DEVICE_TYPE_UNKNOWN;
description = "ViewSonic Monitor";
location = controller->GetLocation();
serial = controller->GetSerial();
mode Off;
Off.name = "Off";
Off.value = VS_MODE_OFF;
Off.color_mode = MODE_COLORS_NONE;
Off.name = "Off";
Off.value = VS_MODE_OFF;
Off.color_mode = MODE_COLORS_NONE;
modes.push_back(Off);
mode StaticColor;
StaticColor.name = "Static";
StaticColor.value = VS_MODE_STATIC;
StaticColor.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
StaticColor.colors_min = 1;
StaticColor.colors_max = 1;
StaticColor.color_mode = MODE_COLORS_MODE_SPECIFIC;
StaticColor.name = "Static";
StaticColor.value = VS_MODE_STATIC;
StaticColor.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
StaticColor.colors_min = 1;
StaticColor.colors_max = 1;
StaticColor.color_mode = MODE_COLORS_MODE_SPECIFIC;
StaticColor.colors.resize(1);
modes.push_back(StaticColor);
mode Rainbow;
Rainbow.name = "Rainbow Wave";
Rainbow.value = VS_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_AUTOMATIC_SAVE;
Rainbow.color_mode = MODE_COLORS_NONE;
Rainbow.name = "Rainbow Wave";
Rainbow.value = VS_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_AUTOMATIC_SAVE;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
mode Breath;
Breath.name = "Breathing";
Breath.value = VS_MODE_BREATHING;
Breath.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Breath.colors_min = 1;
Breath.colors_max = 1;
Breath.color_mode = MODE_COLORS_MODE_SPECIFIC;
Breath.name = "Breathing";
Breath.value = VS_MODE_BREATHING;
Breath.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Breath.colors_min = 1;
Breath.colors_max = 1;
Breath.color_mode = MODE_COLORS_MODE_SPECIFIC;
Breath.colors.resize(1);
modes.push_back(Breath);
mode Waterfall;
Waterfall.name = "Waterfall";
Waterfall.value = VS_MODE_WATERFALL;
Waterfall.flags = MODE_FLAG_AUTOMATIC_SAVE;
Waterfall.color_mode = MODE_COLORS_NONE;
Waterfall.name = "Waterfall";
Waterfall.value = VS_MODE_WATERFALL;
Waterfall.flags = MODE_FLAG_AUTOMATIC_SAVE;
Waterfall.color_mode = MODE_COLORS_NONE;
modes.push_back(Waterfall);
mode Elite;
Elite.name = "Elite";
Elite.value = VS_MODE_ELITE;
Elite.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Elite.colors_min = 1;
Elite.colors_max = 1;
Elite.color_mode = MODE_COLORS_MODE_SPECIFIC;
Elite.name = "Elite";
Elite.value = VS_MODE_ELITE;
Elite.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_AUTOMATIC_SAVE;
Elite.colors_min = 1;
Elite.colors_max = 1;
Elite.color_mode = MODE_COLORS_MODE_SPECIFIC;
Elite.colors.resize(1);
modes.push_back(Elite);
@@ -104,31 +94,27 @@ RGBController_XG270QG::RGBController_XG270QG(VS_XG270QG_Controller* controller_p
void RGBController_XG270QG::SetupZones()
{
zone back_circle;
back_circle.name = "Back Circle";
back_circle.type = ZONE_TYPE_SINGLE;
back_circle.leds_min = 1;
back_circle.leds_max = 1;
back_circle.leds_count = 1;
back_circle.matrix_map = NULL;
back_circle.name = "back circle";
back_circle.type = ZONE_TYPE_SINGLE;
back_circle.leds_min = 1;
back_circle.leds_max = 1;
back_circle.leds_count = 1;
zones.push_back(back_circle);
zone down;
down.name = "Down Stuff";
down.type = ZONE_TYPE_SINGLE;
down.leds_min = 1;
down.leds_max = 1;
down.leds_count = 1;
down.matrix_map = NULL;
down.name = "down stuff";
down.type = ZONE_TYPE_SINGLE;
down.leds_min = 1;
down.leds_max = 1;
down.leds_count = 1;
zones.push_back(down);
led back;
back.name = "Back";
back.value = 0x00;
back.name = "back";
back.value = 0x00;
leds.push_back(back);
led d;
d.name = "Down";
d.value = 0x01;
d.name = "down";
d.value = 0x01;
leds.push_back(d);
SetupColors();
@@ -170,4 +156,4 @@ void RGBController_XG270QG::DeviceUpdateMode()
b = RGBGetBValue(modes[active_mode].colors[0]);
}
controller->SetMode(modes[active_mode].value, r, g, b);
}
}
@@ -19,6 +19,11 @@ VS_XG270QG_Controller::~VS_XG270QG_Controller()
hid_close(dev);
}
std::string VS_XG270QG_Controller::GetVersion()
{
return "?";
}
std::string VS_XG270QG_Controller::GetLocation()
{
return location;
@@ -35,6 +35,7 @@ public:
VS_XG270QG_Controller(hid_device* device, const char* path);
~VS_XG270QG_Controller();
std::string GetVersion();
std::string GetLocation();
std::string GetSerial();
@@ -207,7 +207,7 @@ void RGBController_ZalmanZSync::SetupZones()
for (unsigned int channel_idx = 0; channel_idx < ZALMAN_Z_SYNC_NUM_CHANNELS; channel_idx++)
{
char ch_idx_string[2];
sprintf(ch_idx_string, "%d", channel_idx + 1);
snprintf(ch_idx_string, 2, "%d", channel_idx + 1);
zones[channel_idx].name = "Channel ";
zones[channel_idx].name.append(ch_idx_string);
@@ -231,7 +231,7 @@ void RGBController_ZalmanZSync::SetupZones()
for (unsigned int led_ch_idx = 0; led_ch_idx < zones[channel_idx].leds_count; led_ch_idx++)
{
char led_idx_string[4];
sprintf(led_idx_string, "%d", led_ch_idx + 1);
snprintf(led_idx_string, 4, "%d", led_ch_idx + 1);
led new_led;
new_led.name = "LED ";
+1 -4
View File
@@ -34,10 +34,7 @@ greaterThan(QT_MAJOR_VERSION, 4) {
#-----------------------------------------------------------------------------------------------#
# Application Configuration #
#-----------------------------------------------------------------------------------------------#
MAJOR = 0
MINOR = 8
REVISION = 1
VERSION = $$MAJOR"."$$MINOR$$REVISION
VERSION = 0.81
TARGET = OpenRGB
TEMPLATE = app
-7
View File
@@ -30,7 +30,6 @@ const char* KEY_EN_F12 = "Key: F12";
const char* KEY_EN_PRINT_SCREEN = "Key: Print Screen";
const char* KEY_EN_SCROLL_LOCK = "Key: Scroll Lock";
const char* KEY_EN_PAUSE_BREAK = "Key: Pause/Break";
const char* KEY_EN_POWER = "Key: Power";
const char* KEY_EN_BACK_TICK = "Key: `";
const char* KEY_EN_1 = "Key: 1";
@@ -44,7 +43,6 @@ const char* KEY_EN_8 = "Key: 8";
const char* KEY_EN_9 = "Key: 9";
const char* KEY_EN_0 = "Key: 0";
const char* KEY_EN_MINUS = "Key: -";
const char* KEY_EN_PLUS = "Key: +";
const char* KEY_EN_EQUALS = "Key: =";
const char* KEY_EN_BACKSPACE = "Key: Backspace";
const char* KEY_EN_INSERT = "Key: Insert";
@@ -164,8 +162,3 @@ const char* KEY_NORD_BACKSLASH = "Key: \\/`/´";
const char* KEY_NORD_CHEVRON = "Key: ^/~";
const char* KEY_NORD_QUOTE = "Key: '/*";
const char* KEY_NORD_ANGLE_BRACKET = "Key: </>";
const char* KEY_DE_ESZETT = "Key: ß";
const char* KEY_DE_DIAERESIS_A = "Key: Ä";
const char* KEY_DE_DIAERESIS_O = "Key: Ö";
const char* KEY_DE_DIAERESIS_U = "Key: Ü";
-7
View File
@@ -30,7 +30,6 @@ extern const char* KEY_EN_F12;
extern const char* KEY_EN_PRINT_SCREEN;
extern const char* KEY_EN_SCROLL_LOCK;
extern const char* KEY_EN_PAUSE_BREAK;
extern const char* KEY_EN_POWER;
extern const char* KEY_EN_BACK_TICK;
extern const char* KEY_EN_1;
@@ -44,7 +43,6 @@ extern const char* KEY_EN_8;
extern const char* KEY_EN_9;
extern const char* KEY_EN_0;
extern const char* KEY_EN_MINUS;
extern const char* KEY_EN_PLUS;
extern const char* KEY_EN_EQUALS;
extern const char* KEY_EN_BACKSPACE;
extern const char* KEY_EN_INSERT;
@@ -164,8 +162,3 @@ extern const char* KEY_NORD_BACKSLASH;
extern const char* KEY_NORD_CHEVRON;
extern const char* KEY_NORD_QUOTE;
extern const char* KEY_NORD_ANGLE_BRACKET;
extern const char* KEY_DE_ESZETT;
extern const char* KEY_DE_DIAERESIS_A;
extern const char* KEY_DE_DIAERESIS_O;
extern const char* KEY_DE_DIAERESIS_U;
+1 -1
View File
@@ -1,4 +1,4 @@
openrgb (__VERSION__) UNRELEASED; urgency=medium
openrgb (0.81.1) UNRELEASED; urgency=medium
* Builds from git master. See git history for more information.
@@ -1,7 +1,7 @@
%global _name OpenRGB
Name: openrgb
Version: __VERSION__
Version: 0.8.1
Release: 0%{?dist}
Summary: Open source RGB lighting control that doesn't depend on manufacturer software
+1 -1
View File
@@ -663,7 +663,7 @@ bool i2c_smbus_i801_detect()
return(false);
}
sprintf(bus->device_name, "Intel(R) SMBus - %X", bus->pci_device);
snprintf(bus->device_name, 512, "Intel(R) SMBus - %X", bus->pci_device);
((i2c_smbus_i801 *)bus)->i801_smba = ReadConfigPortWord(0x20) & 0xFFFE;
ResourceManager::get()->RegisterI2CBus(bus);
+6 -6
View File
@@ -59,7 +59,7 @@ s32 i2c_smbus_linux::i2c_xfer(u8 addr, char read_write, int* size, u8* data)
}
free(msg.buf);
return ret_val;
}
@@ -85,7 +85,7 @@ bool i2c_smbus_linux_detect()
char *ptr;
// Start looking for I2C adapters in /sys/bus/i2c/devices/
strcpy(driver_path, "/sys/bus/i2c/devices/");
strcpy(driver_path, "/sys/class/i2c-adapter/");
dir = opendir(driver_path);
if(dir == NULL)
@@ -116,7 +116,7 @@ bool i2c_smbus_linux_detect()
if(test_fd)
{
memset(device_string, 0x00, sizeof(device_string));
if(read(test_fd, device_string, sizeof(device_string)) < 0)
{
LOG_WARNING("[i2c_smbus_linux] Failed to read i2c device name");
@@ -166,7 +166,7 @@ bool i2c_smbus_linux_detect()
{
LOG_WARNING("[i2c_smbus_linux] Failed to read i2c device PCI vendor ID");
}
buff[strlen(buff) - 1] = 0x00;
pci_vendor = strtoul(buff, NULL, 16);
close(test_fd);
@@ -195,7 +195,7 @@ bool i2c_smbus_linux_detect()
if (test_fd >= 0)
{
memset(buff, 0x00, sizeof(buff));
if(read(test_fd, buff, sizeof(buff)) < 0)
{
LOG_WARNING("[i2c_smbus_linux] Failed to read i2c device PCI subvendor ID");
@@ -222,7 +222,7 @@ bool i2c_smbus_linux_detect()
pci_subsystem_device = strtoul(buff, NULL, 16);
close(test_fd);
}
strcpy(device_string, "/dev/");
strcat(device_string, ent->d_name);
test_fd = open(device_string, O_RDWR);
+6 -6
View File
@@ -115,7 +115,7 @@ s32 i2c_smbus_nct6775::nct6775_access(u16 addr, char read_write, u8 command, int
len = 0;
}
WriteIoPortByte(SMBHSTCMD, NCT6775_WRITE_BLOCK);
}
else
@@ -271,19 +271,19 @@ bool i2c_smbus_nct6775_detect()
switch (val & SIO_ID_MASK)
{
case SIO_NCT5577_ID:
sprintf(bus->device_name, "Nuvoton NCT5577D SMBus at %X", smba);
snprintf(bus->device_name, 512, "Nuvoton NCT5577D SMBus at %X", smba);
break;
case SIO_NCT6102_ID:
sprintf(bus->device_name, "Nuvoton NCT6102D/NCT6106D SMBus at %X", smba);
snprintf(bus->device_name, 512, "Nuvoton NCT6102D/NCT6106D SMBus at %X", smba);
break;
case SIO_NCT6793_ID:
sprintf(bus->device_name, "Nuvoton NCT6793D SMBus at %X", smba);
snprintf(bus->device_name, 512, "Nuvoton NCT6793D SMBus at %X", smba);
break;
case SIO_NCT6796_ID:
sprintf(bus->device_name, "Nuvoton NCT6796D SMBus at %X", smba);
snprintf(bus->device_name, 512, "Nuvoton NCT6796D SMBus at %X", smba);
break;
case SIO_NCT6798_ID:
sprintf(bus->device_name, "Nuvoton NCT6798D SMBus at %X", smba);
snprintf(bus->device_name, 512, "Nuvoton NCT6798D SMBus at %X", smba);
break;
}
+2 -2
View File
@@ -103,7 +103,7 @@ s32 i2c_smbus_nvapi::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int mo
case I2C_SMBUS_WORD_DATA:
data->word = (i2c_data.data[0] | (i2c_data.data[1] << 8));
break;
case I2C_SMBUS_BLOCK_DATA:
case I2C_SMBUS_I2C_BLOCK_DATA:
data->block[0] = i2c_data.size;
@@ -179,7 +179,7 @@ bool i2c_smbus_nvapi_detect()
{
i2c_smbus_nvapi * nvapi_bus = new i2c_smbus_nvapi(gpu_handles[gpu_idx]);
sprintf(nvapi_bus->device_name, "NVidia NvAPI I2C on GPU %d", gpu_idx);
snprintf(nvapi_bus->device_name, 512, "NVidia NvAPI I2C on GPU %d", gpu_idx);
res = NvAPI_GPU_GetPCIIdentifiers(gpu_handles[gpu_idx], &device_id, &sub_system_id, &revision_id, &ext_device_id);
+11 -11
View File
@@ -22,12 +22,12 @@ std::string i2c_detect(i2c_smbus_interface * bus, int mode)
char line[128];
std::string text;
sprintf(line, " 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
snprintf(line, 128, " 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
text.append(line);
for (i = 0; i < 128; i += 16)
{
sprintf(line, "%02x: ", i);
snprintf(line, 128, "%02x: ", i);
text.append(line);
for (j = 0; j < 16; j++)
@@ -35,7 +35,7 @@ std::string i2c_detect(i2c_smbus_interface * bus, int mode)
/* Skip unwanted addresses */
if (i+j < first || i+j > last)
{
sprintf(line, " ");
snprintf(line, 128, " ");
text.append(line);
continue;
}
@@ -63,16 +63,16 @@ std::string i2c_detect(i2c_smbus_interface * bus, int mode)
if (res < 0)
{
sprintf(line, "-- ");
snprintf(line, 128, "-- ");
text.append(line);
}
else
{
sprintf(line, "%02x ", i + j);
snprintf(line, 128, "%02x ", i + j);
text.append(line);
}
}
sprintf(line, "\r\n");
snprintf(line, 128, "\r\n");
text.append(line);
}
@@ -100,21 +100,21 @@ std::string i2c_dump(i2c_smbus_interface * bus, unsigned char address)
char line[128];
std::string text;
sprintf(line, " 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
snprintf(line, 128, " 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
text.append(line);
for (i = 0; i < 0xFF; i += 16)
{
sprintf(line, "%04x: ", i + start);
snprintf(line, 128, "%04x: ", i + start);
text.append(line);
for (j = 0; j < 16; j++)
{
sprintf(line, "%02x ", (unsigned char )bus->i2c_smbus_read_byte_data(address, start + i + j));
snprintf(line, 128, "%02x ", (unsigned char )bus->i2c_smbus_read_byte_data(address, start + i + j));
text.append(line);
}
sprintf(line, "\r\n");
snprintf(line, 128, "\r\n");
text.append(line);
}
@@ -146,7 +146,7 @@ std::string i2c_read(i2c_smbus_interface * bus, unsigned char address, unsigned
for(i = 0; i < size; i++)
{
sprintf(line, "%02x ", (unsigned char)bus->i2c_smbus_read_byte(address));
snprintf(line, 128, "%02x ", (unsigned char)bus->i2c_smbus_read_byte(address));
text.append(line);
}
+1 -12
View File
@@ -1,4 +1,4 @@
/*---------------------------------------------------------*\
/*---------------------------------------------------------*\
| PCI Vendor IDs |
\*---------------------------------------------------------*/
#define AMD_VEN 0x1022
@@ -75,7 +75,6 @@
#define NVIDIA_RTX3050_DEV 0x2507
#define NVIDIA_RTX3060_DEV 0x2503
#define NVIDIA_RTX3060_GA104_DEV 0x2487
#define NVIDIA_RTX3060_GA106_DEV 0x2503
#define NVIDIA_RTX3060_LHR_DEV 0x2504
#define NVIDIA_RTX3060TI_DEV 0x2486
#define NVIDIA_RTX3060TI_LHR_DEV 0x2489
@@ -217,7 +216,6 @@
#define ASUS_ROG_STRIX_RTX_3080_O10G_V2_WHITE 0x8830
#define ASUS_ROG_STRIX_RTX_3080_O10G_V2_GAMING 0x882E
#define ASUS_TUF_RTX_3080_10G_GAMING_PD 0x87C4
#define ASUS_TUF_RTX_3080_10G_GUNDAM_EDITION 0x87CE
#define ASUS_TUF_RTX_3080_10G_GAMING 0x87B2
#define ASUS_TUF_RTX_3080_O10G_OC 0x87B0
#define ASUS_TUF_RTX_3080_O10G_V2_GAMING_8822 0x8822
@@ -246,10 +244,8 @@
#define ASUS_TUF_RX_6950XT_016G_GAMING 0x0504
#define ASUS_ROG_STRIX_LC_RX_6950XT_O16G_GAMING 0x05E9
#define ASUS_TUF_RTX_4070TI_12G_GAMING 0x88A4
#define ASUS_TUF_RTX_4070TI_O12G_GAMING 0x88A3
#define ASUS_TUF_RTX_4090_O24G_OC_GAMING 0x889A
#define ASUS_TUF_RTX_4090_O24G_GAMING 0x889B
#define ASUS_ROG_STRIX_RTX_4080_O16G_GAMING 0x88BF
#define ASUS_ROG_STRIX_RTX_4090_O24G_GAMING 0x889C
/*-----------------------------------------------------*\
@@ -458,7 +454,6 @@
#define GIGABYTE_RTX3090_XTREME_WATERFORCE_WB_SUB_DEV 0x403A
#define GIGABYTE_RTX4080_GAMING_OC_SUB_DEV 0x40BC
#define GIGABYTE_AORUS_RTX4080_MASTER_16G_SUB_DEV 0x40BD
#define GIGABYTE_RTX4090_GAMING_OC_24G_SUB_DEV 0x40BF
#define GIGABYTE_AORUS_RTX4090_MASTER_24G_SUB_DEV 0x40C0
/*-----------------------------------------------------*\
@@ -512,7 +507,6 @@
#define MSI_RTX3090TI_SUPRIM_X_SUB_DEV 0x5090
#define MSI_RTX3090TI_GAMING_X_TRIO_SUB_DEV 0x5091
#define MSI_RTX4070TI_GAMING_X_TRIO_SUB_DEV 0x5132
#define MSI_RTX4070TI_SUPRIM_X_TRIO_SUB_DEV 0x5133
#define MSI_RTX4080_GAMING_X_TRIO_SUB_DEV 0x5111
#define MSI_RTX4080_SUPRIM_X_SUB_DEV 0x5110
#define MSI_RTX4090_GAMING_X_TRIO_SUB_DEV 0x5103
@@ -587,11 +581,6 @@
#define ZOTAC_RTX2070S_GAMING_SUB_DEV 0x7500
#define ZOTAC_RTX2080_AMP_SUB_DEV 0x3500
/*-----------------------------------------------------*\
| Manli Sub-Device IDs |
\*-----------------------------------------------------*/
#define MANLI_RTX3080TI_GALLARDO_SUB_DEV 0x2612
/*---------------------------------------------------------*\
| PCI ID Macros |
\*---------------------------------------------------------*/
-6
View File
@@ -99,7 +99,6 @@ static const std::map<std::string, led_label> led_label_lookup =
{ KEY_EN_F12, { "F12" , "F12", }},
{ KEY_EN_BACK_TICK, { "`" , "`", }},
{ KEY_EN_MINUS, { "-" , "-", }},
{ KEY_EN_PLUS, { "+" , "+", }},
{ KEY_EN_EQUALS, { "=" , "=", }},
{ KEY_EN_LEFT_BRACKET, { "[" , "[", }},
{ KEY_EN_RIGHT_BRACKET, { "]" , "]", }},
@@ -166,7 +165,6 @@ static const std::map<std::string, led_label> led_label_lookup =
{ KEY_EN_MEDIA_MUTE, { "Mte" , "\xF0\x9F\x94\x87", }}, // 🔇
{ KEY_EN_MEDIA_VOLUME_DOWN, { "Vl-" , "\xF0\x9F\x94\x88", }}, // 🔉
{ KEY_EN_MEDIA_VOLUME_UP, { "Vl+" , "\xF0\x9F\x94\x89", }}, // 🔊
{ KEY_EN_POWER, { "Pwr" , "\xE2\x8F\xBB", }}, // ⏻
{ KEY_JP_RO, { "_" , "_", }},
{ KEY_JP_EJ, { "E/J" , "E/J", }},
{ KEY_JP_ZENKAKU, { "Zen" , "\xE5\x8D\x8A\xE8"
@@ -201,10 +199,6 @@ static const std::map<std::string, led_label> led_label_lookup =
{ KEY_NORD_CHEVRON, { "^/~" , "^/~", }},
{ KEY_NORD_QUOTE, { "'/*" , "'/*", }},
{ KEY_NORD_ANGLE_BRACKET, { "</>" , "</>" }},
{ KEY_DE_ESZETT, { "ß" , "\xc3\x9F", }},
{ KEY_DE_DIAERESIS_A, { "Ä" , "\xC3\x84", }},
{ KEY_DE_DIAERESIS_O, { "Ö" , "\xC3\x96", }},
{ KEY_DE_DIAERESIS_U, { "Ü" , "\xC3\x9C" }},
};
void DeviceView::setController(RGBController * controller_ptr)
-30
View File
@@ -1,30 +0,0 @@
#!/bin/bash
PROJECT_FILE="OpenRGB.pro"
VERSION_PATTERN="__VERSION__"
INFILE_SUFFIX=".in"
if [ -z "$1" ]; then
echo "ERROR! No file give to parse."
exit 1
fi
INFILE_PATH=${1}${INFILE_SUFFIX}
if [ -e ${INFILE_PATH} ]; then
echo "ERROR! Source file ${INFILE_PATH} missing."
fi
if [ -e ${1} ]; then
echo "Warning: File ${1} exists and will be overwritten"
fi
MAJOR=$(grep MAJOR\ ${PROJECT_FILE} | cut -d= -f 2 | tr -d [:space:])
MINOR=$(grep MINOR\ ${PROJECT_FILE} | cut -d= -f 2 | tr -d [:space:])
REVISION=$(grep REVISION\ ${PROJECT_FILE} | cut -d= -f 2 | tr -d [:space:])
#Convert Revision to a nummber in case it is blank in the project file
REVISION=$(( ${REVISION} + 0 ))
PACKAGE_VERSION="${MAJOR}.${MINOR}.${REVISION}"
sed -e "s/${VERSION_PATTERN}/${PACKAGE_VERSION}/g" ${INFILE_PATH} > ${1}