Compare commits

..
Author SHA1 Message Date
Adam Honse 5c931a61b4 Add support for Keychron K10 V2 in QMKKeychronController 2026-06-24 23:33:23 -05:00
Wolfieee Wolf ad7534d00d fix(razer): apply Tartarus V2 keypad LED layout in OpenRGB 2026-06-24 22:01:20 -05:00
Richard Harris c81f8699f1 Add support for Govee H6022 Smart Table Lamp 2 2026-06-24 21:52:47 -05:00
Adam Honse 2af03eb0dc Return false if no PawnIO bus was detected so that the warning dialog actually displays 2026-06-24 18:30:37 -05:00
Adam Honse 5064ba3f1d Update warning messages and remove references to help.openrgb.org. 2026-06-24 15:02:20 -05:00
Adam Honse c5abe47859 Create a common type for storing QMK LED info and use it in both VialRGB and Keychron controllers 2026-06-24 11:55:26 -05:00
Nikhil Jeikar P M 8fdd0e40f8 Adding support for MSI PRO X870E-S EVO WIFI 2026-06-24 16:14:26 +05:30
HorrorTroll a6a07ba0d7 Added support for Colorful iGame GeForce RTX 5060 Ultra W OC when using OC mode 2026-06-23 23:50:18 -05:00
Ken Sanislo 614fef4189 G515 LS TKL and G502 X PLUS support, via Logitech HID++ 2.0 controller with feature discovery 2026-06-23 19:33:18 -05:00
Adam Honse d3e7dba2b7 Add supported feature check in QMKKeychronController 2026-06-23 19:22:50 -05:00
Stefanie Jane 39343c3e9e Fix buffer overflow in KeyboardLayoutManager::GetKeyMap() 2026-06-22 20:49:53 -05:00
Adam Honse 73865fec59 Improve matrix generation for QMK Keychron controller, clean up modes, implement manual save 2026-06-22 18:42:03 -05:00
Adam Honse b508818f23 Update PawnIO Modules to Release 0.2.9 and re-add Intel Skylake-X IMC SMBus support 2026-06-21 22:17:49 -05:00
lin bef8ae0a2f Add support for Gigabyte AORUS GeForce RTX 5090 D V2 MASTER ICE 2026-06-22 10:33:29 +08:00
Adam Honse cce2d41500 Cleanups to QMKKeychronController and create common QMK VIA protocol header 2026-06-21 21:14:46 -05:00
Amadej Kastelic 175f3ed338 feat: add Keychron Q1 HE keyboard support and restructure Keychron controllers 2026-06-21 21:14:46 -05:00
Adam Honse c2cc7c6163 Move priority setup to ResourceManager and make it configurable 2026-06-21 21:14:46 -05:00
RedBlackAka 8fee041fad Lower process priority 2026-06-21 21:14:46 -05:00
Wolfieee Wolf dfc1f8524a fix(razer): add BlackWidow X Chroma keyboard layout 2026-06-21 18:30:31 -05:00
Wolfieee Wolf 752bd2e35a fix(intel): number Arc A770 LE per-LED dropdown labels 2026-06-21 18:26:31 -05:00
I-Kerosin-I 01fe0b4630 Add support for Gigabyte GeForce RTX 4070 GAMING OC V2 with AD103 2026-06-21 18:05:32 -05:00
Daniel Clark e7f8bc0136 Fix X870 Gaming WIFI6 and X870 Aorus Tachyon ICE layouts 2026-06-17 06:45:01 -07:00
Rodrigo Henrique 370918e07f Add Gigabyte GeForce RTX 5070 Eagle OC ICE 2026-06-17 07:35:31 -05:00
trjohnson19 133966677b Add support for ASUS TUF RTX5070 Ti OC BTF White 2026-06-16 07:52:28 -05:00
kStor2poche 44f84e4781 Add Gigabyte Radeon RX 6800 XT GAMING OC. Closes #5657 2026-06-16 07:41:56 -05:00
Roy Biggins a8354ee046 Add Gigabyte Aorus Waterforce X II 360 AIO controller (Castor3) 2026-06-16 00:02:41 -05:00
Luca Cesarano 4550e3073a Fix NZXT Kraken Elite V2 effects 2026-06-15 23:58:57 -05:00
Adam Honse abe7a49092 Updates to DRAM controllers to avoid use of SMBus Quick Write and add fallback paths if SMBus Block Write is unavailable, in preparation for X299 SMBus support 2026-06-15 23:54:33 -05:00
Adam Honse 82a486bfb6 Update SMBus tools page to add more SMBus operation commands 2026-06-15 23:54:33 -05:00
Victor Hugo Garzo Prado ad06e733f8 Add missing push_back to insert Corsair AIO leds into leds vector 2026-06-15 23:40:05 -05:00
Adam Honse 4306603a28 Remove Skylake-X IMC SMBus PawnIO module for now as it does not support the necessary features yet 2026-06-09 22:58:41 -05:00
Jerry Fan 554f834a90 Fix typo of custled in RealtekARGBController 2026-06-09 08:16:39 -05:00
manuelulreich 7236bec61f [New Device] Add razer blackwidow v4 low profile tenkeyless hyperspeed 2026-06-09 07:29:23 -05:00
XPRAMT c799f1bfe9 Improve ColorWheel drag behavior 2026-06-09 07:19:14 -05:00
Adam Honse f15c3c1420 Add Redragon M921 2026-06-07 14:08:34 -05:00
Adam Honse aa67045330 Fix duplicate entries in SteelSeriesControllerDetect 2026-06-07 13:28:46 -05:00
Alexey Kopytko 736640f38d Add support for Zotac RTX 5090 SOLID OC 2026-06-07 13:21:29 -05:00
David Glushkov e9caf663bc Fix MSILaptopController ALC zone mapping and packet initialization 2026-06-07 13:09:19 -05:00
Daniel Clark 8afbea53de Update RGBFusion2USB Driver. 2026-06-07 01:13:03 -05:00
metroite c3d496ad5b Initial commit for SteelSeries Apex Pro TKL Gen 3 2026-06-07 01:09:30 -05:00
ilyaKhalidov88 06501f528d Add support for ASUS ROG Astral 5090 2026-06-07 00:46:27 -05:00
Jerry Fan f6a678c1a4 Add support for RealtekARGBController 2026-06-05 01:03:29 -05:00
Andy Herbert 30690d0ebd New device- MSI MAG272CQR monitor 2026-06-04 11:54:51 -05:00
Kyle Finter 7a830cddf9 Added new Govee devices H612F and H607C 2026-06-04 07:27:02 +00:00
Adam Honse 3dc1365d39 Add PowerShell implementation of build-msi for building MSI on Windows, add additional information about PawnIO and the OpenRGB system service to the installer. 2026-06-02 22:07:17 -05:00
Adam Honse b03cd94ae8 Fix incorrect firmware packet format and add timeouts to HID reads in ThermaltakeRiingController 2026-06-02 01:07:33 -05:00
Jefferson González bbf348d273 Add HyperX Eve 1800 keyboard support 2026-06-02 00:15:19 -05:00
David Glushkov dce48eb415 Add MSI Raider A18 HX A9WJG SteelSeries RGB 2026-06-02 00:05:18 -05:00
Ox HaK decf14635d Add Fnatic Streak65 support 2026-06-01 08:27:17 -05:00
Richard Harris db4f49bbba Implement Direct mode support for Roccat Vulcan TKL (non-Pro) 2026-05-31 12:38:57 -05:00
HorrorTroll 26824fcb6e Added support for Colorful iGame GeForce RTX 5060 Ultra W OC 2026-05-31 15:12:36 +07:00
Jerry Fan 8afad91b33 Add support for RealtekBridgeController 2026-05-29 07:46:22 -05:00
Adam Honse 69de0b13c4 Update PawnIO modules to 0.2.6 and enable Intel Skylake IMC SMBus module 2026-05-28 23:48:42 -05:00
alstruit 967153bc10 Add support for ASUS ROG Gladius III Core 2026-05-25 12:08:43 -05:00
JAO1988 971d9be1bd Added Colorful iGame RTX 5060TI 16GB Ultra W DUO Variant 2026-05-23 23:10:36 -05:00
Mark Willis 7a3faef886 Initial commit for ASUS TUF GeForce RTX 5070 Ti Gaming White OC 2026-05-22 12:25:59 -05:00
Purrple Kitten f67030fcc7 Add support for the Gigabyte AORUS RTX 5080 MASTER ICE 2026-05-18 07:30:37 -05:00
Alex Jawhari 7353e99449 Fix AMD GPU i2c bus PCI ID detection on Linux (sysfs path traversal) 2026-05-17 23:58:21 -05:00
JAO1988 91d9597c89 Added Support for ASUS ROG ASTRAL GeForce RTX 5080 WHITE 2026-05-17 23:47:55 -05:00
Adam Honse 2eb569912b XPGSummonerKeyboardController - Remove fake modes 2026-05-13 11:49:05 -05:00
Ken Sanislo 9410d9c066 Add support for Thrustmaster Sol series joystick RGB LEDs 2026-05-09 00:21:40 -05:00
Adam Honse 29d8788e25 Allow value 0x27 at address 0x00 for Galax GPU controllers at address 0x23 2026-05-08 20:05:40 -05:00
Elvis Pranskevichus 0304c50bc6 Add support for Gigabyte AORUS RX 7900 XTX ELITE 24G 2026-05-08 00:12:43 -05:00
Adam Honse dd22150cfe Add vertical spacer to OpenRGBDeviceInfoPage 2026-05-07 16:17:46 -05:00
Barry H 07e7feca56 Nollie 2.1 firmware for Master 2026-05-04 14:16:29 -05:00
Sha_425 a93eec8f50 Add ASUS ROG STRIX RTX 3060 Ti V2 LHR (subsystem 1043:8835) 2026-05-03 12:15:13 -05:00
w43322 88bad762e5 add MSI MEG Z890 UNIFY-X (MS-7E20) support 2026-05-02 19:19:10 -05:00
w43322 18dfe6ca8b add ASUS TUF GeForce RTX 5060 Gaming OC support 2026-05-02 19:15:16 -05:00
mangobiche 96dfa7009f Add support for Corsair Vengeance RGB DDR5 CMH32GX5M2E6000C36 2026-05-02 15:06:09 -05:00
NaifuKishi 92a9d8ad11 Initial commit for ASUS TUF Radeon RX 7900 GRE Gaming OC 2026-05-01 11:09:31 -05:00
Francesco P 2ab9094b41 Add support for MSI MAG B850 TOMAHAWK WiFi7 2026-04-29 21:54:51 -05:00
M1dDler Official f6154ccbc4 Add msi rtx 5070 gaming trio 2026-04-28 20:04:53 -05:00
Illustrious-Net-8110 0be01dde19 Add Asus Ryujin AIO Gen1 support 2026-04-24 07:35:53 -05:00
Adam Honse e113e91423 Deploy QOpenGL and QtCore5Compat frameworks used by the OpenRGB Effects Plugin 2026-04-23 23:42:36 -05:00
Adam Honse 28c63b8b9d Call macdeployqt a second time on Qt6 builds to ensure frameworks depended on by default plugins are deployed 2026-04-23 12:37:49 -05:00
Adam Honse c5aac4c44f Fix libsharpyuv macdeployqt error for Qt5 builds 2026-04-23 10:52:54 -05:00
Adam Honse 42e7f2a5c3 Ignore SDK version in Mac build 2026-04-23 03:56:07 -05:00
Adam Honse ae9ae18d31 Add build-macos.sh script for easier MacOS builds 2026-04-23 00:37:45 -05:00
ricarim f89cdac198 Initial commit for HyperX Origins 2 65 2026-04-20 23:32:49 -05:00
acehighdan e8f345ff77 Sync autostart system configuration with OpenRGB settings on startup
If the autostart system configuration is deleted (e.g. by a reinstall or
package manager) but the JSON config still has enabled=true, OpenRGB
would silently fail to start at login. Fix by calling ConfigureAutoStart()
in the settings page constructor so the system configuration is always
reconciled with the stored JSON state every time OpenRGB starts.

Commit amended to make wording more generic by Adam Honse <[email protected]>
2026-04-20 23:32:49 -05:00
Dmitry Kychanov aff0610df9 Fix default language load on start 2026-04-20 23:32:49 -05:00
JAO1988 9199d062d1 Add Support for MSI GeForce RTX 5080 SUPRIM LIQUID SOC 2026-04-20 23:32:49 -05:00
Dmitry Kychanov 0ec4aaa629 Fix losing software info upon changing language 2026-04-20 23:32:49 -05:00
Adam Honse 9fca99b4ef Reduce i2c_smbus_linux PCI log messages from warning to info, they are expected in many cases 2026-04-20 23:32:31 -05:00
Vasily Galkin 14853895f3 Add support for Gigabyte GTX 1050 G1 Gaming 2GB (1458:372B) 2026-04-20 23:32:31 -05:00
Adam Honse d79a400c8c Fix corrupted text in TabLabels when translation occurs after the constructor 2026-04-20 23:32:31 -05:00
Adam Honse f741385e43 Fix bug introduced in MSI controller merge 2026-04-20 23:32:31 -05:00
Adam Honse 840bd92afb Add AI guidelines section to CONTRIBUTING.md 2026-04-20 23:32:31 -05:00
Nameless Monarch 96e1fb0b10 Add support for MSI PRO B850M-VC WIFI6E 2026-04-20 23:32:31 -05:00
Adam Honse 388557e5f9 Ensure device view is initialized if there are no LEDs to avoid accessing out of bounds 2026-04-20 23:32:17 -05:00
Slim Amamou 3f32817272 Added support for PNY GeForce RTX 5060Ti ARGB Epic-X OC 2026-04-20 23:32:10 -05:00
Adam Honse 056b383536 Add SMBus Sleep Mode settings page 2026-04-15 00:29:54 -05:00
Adam Honse 0691f40588 Update PawnIO modules to release 0.2.4 and implement SMBus sleep mode setting 2026-04-15 00:03:38 -05:00
Adam Honse 800ca0aa7c Fix same heap buffer overflow in RGBController_MSIMysticLight761.cpp 2026-04-13 11:42:03 -05:00
kuroki-kael a91679609b Fix heap-buffer-overflow in RGBController_MSIMysticLight185::GetDeviceConfig() 2026-04-13 11:40:46 -05:00
Adam Honse 19f9408990 Fix remaining warning 2026-04-13 11:34:28 -05:00
Adam Honse 0eea0c9aca Fix warnings 2026-04-13 10:54:34 -05:00
Stella 9f95aa8271 Add support for colorful igame rtx 5070 ultraw ocv 2 2026-04-11 02:24:15 -05:00
Adam Honse 0ee04c497b Revert "Change test in ENE SMBus controller to fix a conflict where it locks up Corsair DDR5 Light Enhancement Kit sticks"
This reverts commit c4e0164479.
2026-04-11 01:29:05 -05:00
Adam Honse 2847270c97 Remove out-of-range addresses from ENE RAM address list 2026-04-10 11:52:50 -05:00
Adam Honse b98174afba Fix off-by-one error in CorsairDRAMController 2026-04-10 11:03:34 -05:00
MissingDLL 3416980849 Add MSI MPG B850 EDGE TI WIFI (MS-7E62) to 761 controller 2026-04-09 20:49:35 -05:00
Joseph E c171bfbf3b Apex Pro Gen 3 TKL wired, add media light and regional layout support 2026-04-09 18:11:52 -05:00
Eder Sánchez 583a737cb5 Fix Windows build in ZOTAC Blackwell GPU controller 2026-04-09 15:03:21 -05:00
rjc862003 d2af6289dd Roccat vulcan ii max support 2026-04-09 13:28:33 -05:00
Moh'd Khier Abualruz 44e6f455e9 Fix Apex Pro TKL 2023 Wireless (PIDs 0x1630/0x1632) RGB control 2026-04-09 13:18:38 -05:00
Eder Sánchez b3a50d669e Add support for ZOTAC GAMING GeForce RTX 5080 AMP Extreme INFINITY 2026-04-09 12:21:52 -05:00
ricarim 0092ea22e2 Fix name assignment for HyperXAlloyOrigins60and65 2026-04-09 10:14:06 -05:00
Jérôme Bauer 58fb35a9bb Fix MSI Mystic Light 185 for Common PID boards (0x0DB0:0x0076) 2026-04-09 10:09:55 -05:00
Adam Honse 9a6ff77545 Combine Corsair RAM controllers, Corsair RAM identification packet testing 2026-04-09 00:47:06 -05:00
Adam Honse c4e0164479 Change test in ENE SMBus controller to fix a conflict where it locks up Corsair DDR5 Light Enhancement Kit sticks 2026-04-08 22:24:56 -05:00
Adam Honse f872f1c591 Ignore modes out of range in VialRGB controller 2026-04-08 18:50:47 -05:00
kuroki-kael 03e64da845 Fix heap corruption in i2c_smbus_linux when sysfs files are empty 2026-04-08 15:54:38 -05:00
Frans Meulenbroeks 3150f64895 Mountain Everest 60: fix led index 2026-04-08 09:33:56 -05:00
Hugo Chabert 8b36e9c317 Add razer blackwidow v4 tenkeyless hyperspeed 2026-04-07 07:30:59 -05:00
Stella c5c5fc6c02 Add support for Colorful iGAME RTX 5060Ti 16GB Ultra W DUO V 2026-04-05 03:46:51 -05:00
Artemis Tomaras c7d9992a3d Fix SL V2 SendStartAction/SendCommitAction packet size 2026-04-05 01:52:56 -05:00
InterStella0 0d8f2c6b14 add colorful rtx 5070 ultra w ocv support 2026-04-03 18:22:49 -05:00
vitutu1 c1800f2a6f Add support for MSI RTX 4070 SUPER Gaming X Slim MLG 2026-04-03 16:46:23 +00:00
Micael Pereira d41a115a07 Add support for MSI PRO A620M-B (MS-7E28) 2026-04-03 01:31:28 -05:00
Elijah Mock 2640a3b93f Update docstring detector to match registered detector 2026-03-26 21:50:02 -05:00
Adam Honse 984c18cb11 Add Gigabyte 9070XT GAMING OC ICE 2026-03-23 16:44:30 -05:00
Adam Honse 23db15dfb9 Add support for E6K5-1114 ENE device 2026-03-23 11:46:04 -05:00
Org van Rensburg 9426f954b0 Add support for MSI MAG Z890 Tomahawk WIFI (MS-7E32) - Resolves #5438 2026-03-23 07:24:22 -05:00
asheriif 133b64778b Add support for Apex Pro TKL Gen 3 Wireless 2026-03-22 22:19:37 +01:00
Aakrisht Sharma Paudel a8a97fa38d Legion 5 gen10 2026-03-17 07:50:23 -05:00
Roy Biggins da6061bbde Add X570 AORUS XTREME zone mapping for IT8297BX 2026-03-16 10:29:38 -05:00
asheriif dfad607697 Add support for Steel Series CS2 Dragon Lore Edition 2026-03-10 21:58:47 +01:00
Yaroslav Syrytsia 5d7565bc59 Controllers/Razer: add initial support for Razer Basilisk V3 Pro 35K Phantom Green Edition 2026-03-08 23:28:27 -05:00
Anton Klimanov ab962ca98f Add support for Gigabyte Radeon RX 7900 XTX GAMING OC 24G (1458:240e) 2026-03-09 01:36:27 +03:00
Adam Honse dbbf9858f8 Fix warnings in CMARGBController 2026-03-04 22:23:20 -06:00
Adam Honse 51edb35e3f Rework CoolerMaster ARGB controller so that it doesn't create multiple devices and prepare it for per-zone mode support 2026-03-04 11:45:48 -06:00
Adam Honse 81c6ee6270 Replace usages of sprintf with snprintf 2026-03-03 11:29:19 -06:00
Adam Honse 9ad37cc98f Fix logical error from changing type to unsigned 2026-03-03 11:25:22 -06:00
Adam Honse c76864dd4b Warning fixes and cleanups 2026-03-03 11:05:11 -06:00
Marco Martinez e3889508c0 Add support for another Airgoo Fan + DRGB Controller variant 2026-03-03 07:37:45 -06:00
Adam Honse 22d908b9a3 Fix warnings in ClevoLightbarController.cpp 2026-03-02 23:18:40 -06:00
Adam Honse 13d3e09f1a Fix warnings in ClevoKeyboardController.cpp 2026-03-02 23:17:23 -06:00
Adam Honse 9ec15673d1 Fix warnings in AsusMonitorController.cpp 2026-03-02 23:15:36 -06:00
Adam Honse 3a00a803e9 Fix warnings in LianLiUniHubSLController 2026-03-02 23:08:51 -06:00
Adam Honse 4a12a0db90 Fix warnings in LianLiUniversalScreenController 2026-03-02 23:07:12 -06:00
Adam Honse b4940e3a75 Fix warning in QMKVialRGBController 2026-03-02 23:04:40 -06:00
Adam Honse ffe07bbe3b Fix warning in RazerKrakenV3Controller 2026-03-02 23:03:00 -06:00
Adam Honse 7fdb006465 Fix warning in WootingV1KeyboardController 2026-03-02 23:01:29 -06:00
Adam Honse 99da577c41 Fix warning in SPDAccessor.cpp 2026-03-02 22:54:22 -06:00
Adam Honse 0f6fdd6c3b Fix warnings in HPOmenLaptopWMI_Windows 2026-03-02 22:52:12 -06:00
Adam Honse 52ec58d67f Fix warnings in NVFC nvapi.cpp 2026-03-02 22:44:19 -06:00
Adam Honse c55fc59d18 Clean up and fix warning in SteelSeriesApexController 2026-03-02 18:07:52 -06:00
Adam Honse b68b63e8c9 Fix warning in LianLiUniHubSLController 2026-03-02 16:16:10 -06:00
Kevin Ferrare 84bb05d504 Add support for MSI PRO B850M-P WIFI (MS-7E71) 2026-02-26 22:50:46 +01:00
Frans Meulenbroeks f33a7ba870 Mountain Everest 60: fix initialisation 2026-02-22 17:19:18 -06:00
chetrez911 93830c12ee Add support for MSI MAG B850 TOMAHAWK MAX WIFI (MS-7E62) 2026-02-22 11:56:23 -06:00
Arno b8b50f6651 Initial commit for MSI PRO Z790-S WIFI 2026-02-22 11:40:25 -06:00
sebastien ayanouglou 8f331090f9 Added support to RTX 5070Ti MSI Vanguard 16G 2026-02-16 07:21:32 -06:00
gozzarda 7ec1e8ddfa PowerColor GPU: Accept V1 magic from V2 controller. 2026-02-15 14:05:32 -06:00
Adam Honse 880dc1450d PNY ARGB Epic-X GPU: Add additional modes 2026-02-13 16:27:30 -06:00
Daenney 801e655c09 Add support for MSI MPG X870E EDGE TI WiFi 2026-02-13 13:36:54 -06:00
Adam Honse 5e269dd089 Add support for the PNY Epic-X ARGB 5070, 5080, and 5090 variants 2026-02-13 11:25:42 -06:00
John360Boxer 476f81d5e8 Initial commit for Redragon K686 Eisa Pro 2026-02-09 07:39:40 -06:00
storto 66dfb5f6fd Add/Fix support for the Gigabyte AORUS 5080 MASTER GPU 2026-02-08 12:45:02 -06:00
Michał Przytarski a2f2991192 feat: support MSI GeForce RTX 4060 GAMING X NV Edition 8G 2026-02-07 14:42:15 -06:00
Adam Honse cfedcd2180 Add Razer Blackwidow V4 Pro 75% wireless mode and add missing underglow LEDs to the matrix 2026-02-07 00:14:36 -06:00
Arthur de Groot cc06c62164 Rename Setting RunZoneChecks -> run_zone_checks 2026-02-05 17:20:14 -06:00
bernibaer b4ca000402 Initial support for Corsair K70 CORE TKL Keyboard ID 1b1c:2b01. Volume knob... 2026-01-30 13:49:48 -06:00
eriosgamer b78a6f4418 Fixed incorrect PID and device name. 2026-01-29 20:18:55 -06:00
Kirill Khakimov d5693b7a08 Add PCI device ID for Palit GeForce RTX 5070 Ti GamingPro-S 2026-01-29 16:54:41 -06:00
Werner Sembach cae0670065 Add new keynames 2026-01-29 16:18:13 -06:00
Adam Honse f2d1188fdd Fix swatches not resizing properly when maximized 2026-01-28 18:35:22 -06:00
Yohan 70be81c92d Merge: Add CDC Check in JGINYUE Usb Controller #5128 2026-01-27 10:54:51 -06:00
rszyma 5d5af93401 Add support for MSI PRO X870-P WIFI (MS-7E47) motherboard 2026-01-27 01:30:11 -06:00
superstrom 74cbdcce55 New Device: Razer Kraken Kitty V2 Pro 2026-01-25 17:40:54 -06:00
John Smith 96d19a76cc Add support for Sapphire Radeon RX 9060 XT Pure 2026-01-25 12:01:23 +03:00
Kyle Cascade 55d2d44371 Convert the ClevoKeyboardController to use KLM 2026-01-24 18:11:26 -06:00
Koosha Hosseiny c6b05f5e3c Add support for 'OC' version of Astral card 2026-01-24 19:37:31 +01:00
Adam Honse ba91bf4d2e Silence codecvt deprecation warning in StringUtils.cpp 2026-01-23 09:14:01 -06:00
Adam Honse c1e5f7bb1b Use mbedtls@3 for MacOS as homebrew updated mbedtls to 4 and it breaks hueplusplus 2026-01-23 01:18:42 -06:00
Kyle Cascade 4855628d7a Added Effects for Clevo Lightbar 2026-01-21 16:55:46 -06:00
Muhamad Visat e48908573a add support for the Lian Li UniHub SL v1.8 2026-01-20 19:49:01 -06:00
Grace Atwood 1df9d60fa9 Add Gigabyte AORUS RTX 5080 MASTER GPU controller
New controller for RTX 5080 AORUS MASTER 16G (GV-N5080AORUS M-16GD) with
per-LED fan ring control. This GPU uses a different protocol than legacy
RGB Fusion 2 cards and requires a separate controller.

Hardware info:
- PCI Device ID: 0x2C02 (NVIDIA Blackwell)
- Subsystem ID: 0x4178
- I2C Address: 0x71

LED configuration:
- 3 fan rings × 8 LEDs each = 24 fan LEDs
- 1 logo LED
- Total: 25 individually addressable zones

Protocol details (reverse engineered from Gigabyte Control Center on Windows):
- Mode command (0x88) must include zone selector byte (0x02/0x05/0x06)
- Each fan requires mode command before color registers will respond
- Color registers: 0xB0-0xB3 (left), 0xB4-0xB7 (middle), 0xB8-0xBB (right)
- Logo: 0xBC with mode byte 0x00 (fans use 0x01)
- Apply command (0xAA) must be sent after each zone for multi-zone updates

Verified working on Linux with i2ctransfer and OpenRGB CLI:
- All 24 fan LEDs individually addressable
- Logo LED working
- Color cycling and per-LED gradients tested

Note: Fan LEDs only illuminate when fans are spinning.
2026-01-20 18:58:25 -06:00
TitanHZZ e69cb3bf88 Add support for 4-zone HP Omen laptops on Windows
Commits squashed and cleaned up by Adam Honse <[email protected]>
2026-01-20 18:48:02 -06:00
Kyle Cascade c58ae260e5 Add support for TUXEDO laptop per-key RGB keyboard (ITE 8291) 2026-01-20 18:47:53 -06:00
515orestis 555fb7b042 add support for manli RTX 4090 gallardo issue #4168 2026-01-20 18:47:31 -06:00
Kyle Cascade 7a4eb4ddf8 Add support for TUXEDO laptop lightbar (ITE 8291 rev 0.03) 2026-01-20 18:47:20 -06:00
Денис Николаев 4c3ddccd2f Initial commit for MSI B850 GAMING PLUS WIFI (MS-7E56) 2026-01-20 17:34:54 -06:00
Joseph East 68af4d047b Fall back to SteelSeriesApexBaseController::GetSerial() if not using new protocol 2026-01-18 10:54:54 +10:30
Kasslim 81128d1537 add part_number() to SPDAccessor interfaces and implement 2026-01-17 12:28:20 -06:00
Your Name# ac00a8f36f Add more device IDs for Palit cards 2026-01-15 18:05:08 +00:00
Leche de Rata 7f6eee119a Add support for MSI MPG X870I EDGE TI EVO WIFI. 2026-01-14 16:25:21 -08:00
Sergi Chafer 950951be6e Add support for MSI PRO X870E-P WIFI (MS-7E70) motherboard 2026-01-13 15:44:57 -06:00
Kasslim 351d7b9e74 SPDAccessor.cpp: replace magic numbers with defines 2026-01-11 19:19:16 +00:00
Adam Honse f948d6e1d3 Clean up some stuff in the Mountain keyboard controllers that violated conventions
* Mountain60KeyboardController's detector was setting the name member directly, this is an outdated convention that breaks the RGBController rework, moved to a Controller member
    * Mountain60KeyboardController had some sort of HID redetect logic, this should not be part of the Controller, this will be handled in the future by HID hotplugging
    * Both MountainKeyboardControllers defined static variables to keep track of current mode, moved these to class members so that they won't conflict if two instances exist
    * Don't send any device updates as part of SetupZones
2026-01-11 03:41:52 -06:00
Adam Honse 416898b97b Remove QMessageLogger debugging stuff left in Mountain keyboard controller 2026-01-11 02:22:13 -06:00
Adam Honse ec2290ae47 Drop Ubuntu 22.04 test as it has started failing 2026-01-11 02:02:49 -06:00
Adam Honse 02e0504227 Fix controls on OpenRGBClientInfoPage list not working on Qt6 2026-01-11 00:37:43 -06:00
Soufian Batta 0b45eac52c Add Support on Mountain Everest 60 Device /3 2026-01-10 15:20:38 -06:00
Francesco 15a3deadbe Added MSI B850M GAMING PLUS WIFI (MS-7E66) 2026-01-10 15:19:03 -06:00
Kasslim c1db812b67 Linux SPD accessors out-of-bounds check 2026-01-10 00:48:01 -06:00
Matthew Everitt ccee553257 Fix swapped PCI device IDs for Palit 5070Ti / 5080 2026-01-10 00:27:27 -06:00
Serhat Öktem 69ccd56fef Turkish language file 2026-01-09 23:53:34 -06:00
filipesn c13f031119 Fix support for SteelSeries Apex Pro TKL 2023 2026-01-09 23:51:32 -06:00
Matthew Everitt 5a484a0ef3 Enable support for MSI PRO B850-P WIFI (MS-7E56) motherboard 2026-01-09 21:55:45 +00:00
Skydust 95648b20b9 Fix wrong @detectors for Corsair Commander Core for udev rules generation 2026-01-08 20:06:02 +01:00
Alexender Yatsenko 72dc73cf88 Add support for Gigabyte Radeon RX 6700 XT GAMING OC 12G (1458:232D) 2026-01-06 15:23:02 -06:00
Richard Harris 5cfd064da1 Robobloq Monitor Light Strip support 2026-01-06 08:18:42 -06:00
Husky2490 de3482c791 Fixed direct mode on ASRock Polychrome USB devices 2026-01-06 00:45:31 -06:00
Adam Honse d09c66900d Set TCP_QUICKACK on Linux to improve responsiveness when using client/service configuration 2026-01-06 00:23:52 -06:00
Ektor Angelopoulos 2a1b7a9e2e Fixed MSI B450 Tomahawk Max not being detected 2026-01-05 12:03:50 -06:00
Sascha Hannes 9efdd13e58 Add Roccat Vulcan TKL Pro 2026-01-04 18:42:48 -06:00
Evan Debenham 0ef5103012 Add Gigabyte RTX 4070Ti Eagle 2026-01-04 17:13:27 -06:00
Daniel Lamphere 9fd352efc4 Prevent division by zero crash in QMK OpenRGB controllers 2026-01-04 12:51:34 -06:00
Daniel Lamphere d5db3d6428 Fix G703 Hero RGB control (wired and wireless) 2026-01-04 12:06:17 -06:00
Amadej Kastelic b3c3e167f3 controllers/powercolor/gpu: add 6900 XT; fix controller mapping 2026-01-03 12:32:00 -06:00
Richard Harris de35e6a403 Add Windows 11 x86_64 build products to gitignore 2026-01-02 22:27:06 +00:00
Adam Honse 36a6a864be Initialize NZXT Hue+ zones to detected size 2026-01-01 17:47:07 -06:00
Morgan Gangwere 452f3353ee Add support for MSI X870E Tomahawk Wifi (MS-7E59) 2026-01-01 09:59:40 -08:00
CjayDoesCode b7230b661f Add MSI RX 5600 XT Gaming X 2025-12-30 11:26:14 +08:00
Venkatesh Deore c28aa02946 [NEW DEVICE] Add support for MSI X870E GAMING PLUS WIFI (MS-7E70) 2025-12-29 19:59:47 -06:00
Dawid Kasieczka 1d208c14fa Add support for Redragon M914. Create generic Areson driver 2025-12-29 13:43:51 -06:00
Jonas Whatley 1a6d68d3bf Add Support for Gigabyte 5070 Aero OC 2025-12-29 13:37:16 -06:00
Bastiti 3d93b60e64 [New Device] Corsair Slipstream Wireless Receiver V2 2025-12-28 19:26:05 -06:00
Milan Cermak ff6cee33c4 Razer Chroma ARGB direct mode LED restoration 2025-12-27 10:02:26 +01:00
SU wuyi 5869e5ff31 Fix JGINYUE USB controller.Add destructor function to avoid memory leaks and serial occupied. 2025-12-26 10:34:32 +00:00
Diogo Trindade 298d80e056 Add support for Wooting devices with firmware v2.12 and above 2025-12-25 23:59:54 -06:00
Ljghϯnjng b6ad5e9223 Add support for Gigabyte RTX 4070 Aero OC 12G 2025-12-23 23:49:51 -06:00
IOXAM 4ff52d9bcf AORUS GeForce RTX 5090 MASTER & ICE on 0x71 2025-12-22 10:33:14 +00:00
Ljghϯnjng f9f9bf0cb8 Add support for Gigabyte RTX 4070 Aero OC 12G 2025-12-21 12:15:52 -06:00
Jerry Hoogenboom b62b2a4ad9 Add support for Gigabyte GeForce RTX 5080 Aero OC SFF 16G 2025-12-21 12:12:19 -06:00
Marco Martinez c91a9636cd Add support for Airgoo Fan + DRGB Controller 2025-12-20 11:36:40 -06:00
Adam Honse e631ca9f11 Add missing 0x08 LED in AMD Wraith Prism ring 2025-12-19 16:04:55 -06:00
idiom444 b2572eeeda Lenovo: Add Legion 7 Gen 10 (C197) support 2025-12-17 21:25:25 -08:00
Adam Honse d591cd638e Initial commit for Lian Li Universal Screen LED controller 2025-12-17 20:48:04 -06:00
Alexis Delahaye 2a87e38f7a Add support for Gigabyte Radeon RX 9060 XT GAMING 16G. 2025-12-17 13:56:53 -06:00
Adam Honse 42d96fbc3d Clean up .gitlab-ci.yml formatting and add rules to only build upstream repo on default branch or merge request 2025-12-17 09:34:06 -06:00
YanZhi 8dea53ba5c add DRGB E8 2025-12-17 09:02:12 -06:00
Adam Honse 68194928ca Fix more warnings 2025-12-16 11:30:24 -06:00
Egor Vorontsov 56b75aaffc Set SO_REUSEADDR on network sockets. 2025-12-16 06:24:30 +03:00
Adam Honse c509698b54 Fix a bunch of warnings 2025-12-15 19:21:15 -06:00
Adam Honse b3c5a65884 Reduce duplicate code in zone selection handling in OpenRGBDevicePage 2025-12-15 18:16:19 -06:00
pumpkin142 90e4da1a39 Adds support for the Gigabyte Radeon RX 9060 XT Gaming OC 16G. Verified Device ID 0x7590 and Subsystem 0x2429 via GPU-Z. Closes #4916
Commit amended to move from RGB Fusion GPU 2 to RGB Fusion 2 Blackwell GPU controller by Adam Honse <[email protected]>, as address was identified as 0x75
2025-12-14 00:37:01 -06:00
Peter Berendi fd270c2553 Ignore errors in Set-MpPreference -DisableRealtimeMonitoring $true 2025-12-14 00:36:48 -06:00
Richard Harris 21dc3612f7 Add support for Zotac RTX 3090 Amp Core Holo 2025-12-11 11:30:10 -06:00
Artem Baleevskih cff3a400a4 fix(keyboard): correct keymap overlay values for AULA F75 layout 2025-12-10 15:50:22 -06:00
Eduard Stanishevskij 279c16b5c0 support for asus tuf k3 gen2 2025-12-10 23:10:55 +02:00
Eduard Stanishevskij 9fc5408640 support for asus tuf k3 gen2
# Conflicts:
#	Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/AsusAuraTUFKeyboardController.cpp
#	Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/AsusAuraTUFKeyboardController.h
#	Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp
2025-12-10 22:50:22 +02:00
Eduard Stanishevskij 849904309b support for asus tuf k3 gen2
# Conflicts:
#	Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/AsusAuraTUFKeyboardController.cpp
#	Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/AsusAuraTUFKeyboardController.h
#	Controllers/AsusAuraUSBController/AsusAuraUSBControllerDetect.cpp
2025-12-10 22:46:19 +02:00
Matthias Bielak d0d9f04751 Add support for Turtle Beach Vulcan II TKL Pro 2025-12-10 13:58:05 -06:00
Adam Honse bd6b358e0d Fix some issues with detector settings page 2025-12-08 15:33:17 -06:00
Adam Honse 6da0dbf511 Add configuration for detector settings (HID safe mode and detection delay) to settings page 2025-12-08 01:00:09 -06:00
Artem Baleevskih 30dc059ddb Add LEOBOG Hi75C Pro (PID 0xA3) layout for Sinowealth 010C 2025-12-07 18:58:33 -06:00
Adam Honse 2ce0beec82 Add a configurable settings option to delay detection after opening 2025-12-07 15:32:53 -06:00
Adam Honse 74922bdf60 Add 1.0rc1 and 1.0rc2 to metainfo releases 2025-12-06 18:26:20 -06:00
Vendicated 46eebd9936 add support for MSI B850 Gaming WIFI6E (MS-7E80) 2025-12-06 17:53:48 -06:00
Adam Honse 0721f643c4 Check for errors in build-windows.bat so CI job fails if build fails 2025-12-06 17:45:19 -06:00
josch 0b5010cda6 Controllers/MNTKeyboardController: MSVC does not like C99 variable length... 2025-12-06 15:46:21 -06:00
Johannes Schauer Marin Rodrigues 246150b44a Controllers/MNTKeyboardController: fix hidapi.h include for windows 2025-12-06 02:11:21 +01:00
josch 21b113200c MNTKeyboardController: Add support for the MNT Reform and MNT Pocket Reform RGB keyboards 2025-12-05 08:05:07 -06:00
Kosta A 6672b53542 Add suport for brightness to Glorious Model O 2025-12-04 11:23:12 -06:00
Benjamin Birkelid 6e3271fe95 Add AULA F87 Pro (PID 0x0B) layout for Sinowealth 010C 2025-11-30 20:13:52 +00:00
Michal Malý 61d3bc0e98 On Linux include both the I2C/SMBus bus name and device path in the device_name 2025-11-30 20:37:35 +01:00
Michal Malý 77ff2a367c Add alternate name for OEM i2c bus exposed by Linux amdgpu driver 2025-11-30 20:37:35 +01:00
Michal Malý 4d92056b97 Implement i2c bus check for MSI GPUs 2025-11-30 20:37:35 +01:00
Michal Malý e8ea65432f Implement i2c bus check for Gigabyte Fusion 2 GPUs 2025-11-30 20:37:35 +01:00
Michal Malý 318fbeb995 Implement i2c bus check for Gigabyte Blackwell GPUs 2025-11-30 20:37:35 +01:00
Michal Malý ea798a7752 Implement i2c bus check for Asus Aura GPUs 2025-11-30 20:37:35 +01:00
Michal Malý 3608cafc32 Implement i2c bus check for PowerColor Red Devil GPUs 2025-11-30 20:37:35 +01:00
Michal Malý 4e0c09efd4 Move correct i2c bus detection for AMD GPUs to separate header file 2025-11-30 20:37:33 +01:00
Michal Malý f5fc3ff450 Do not introduce a new field in i2c_smbus class 2025-11-30 09:43:05 +01:00
Michal Malý 23ec68701a Check for bus name when looking for Sapphire GPU RGB controls 2025-11-30 09:39:15 +01:00
Tobias Gruetzmacher 5c30da6171 Add inital support for the ASUS TUF Gaming K3 GEN II MIKU EDITION 2025-11-29 18:00:46 -06:00
berendi f516970d76 Remove i2c_smbus_thread as mutex already prevents concurrent access 2025-11-29 17:17:06 -06:00
Clément Villemur b0a08c7d10 Added instructions to install udev rules for immutable systems 2025-11-29 17:02:03 -06:00
Patrick Uven c541716225 Add support for SteelSeries Apex 9 2025-11-29 16:35:43 -06:00
Tyler Hoeflicker 70f3ae1b6d Add support for the Gigabyte Radeon RX 6900 XT Gaming OC video card 2025-11-28 20:42:57 -06:00
Kosta A 8b9a4d141a Add support for Glorious Model I 2025-11-28 18:07:36 -06:00
Rodrigo Tavares 05b4f00629 Add support for Aula F99 and Aula F75 2025-11-28 13:51:39 -06:00
mikee 946383b502 Add Fnatic STREAK and miniSTREAK support 2025-11-27 14:15:46 -06:00
Prince Nna 7ef7edb1d3 Add legion 7s gen8 2025-11-27 14:11:36 -06:00
Adam Honse 396853658c Remove struct initial values as this causes compile errors on Windows Qt6, the only place it is used these values get initialized anyways 2025-11-26 22:28:57 -06:00
Adam Honse 696008b48f Add manual device configuration for QMK VialRGB protocol 2025-11-26 12:49:25 -06:00
Jax-Tsai d63a955082 add support for msi z890 gaming plus wifi 2025-11-25 23:05:35 -06:00
Chris M c1d67aa740 Refactored Gigabyte Fusion2USB controller
* Refactored RGBController_GigabyteRGBFusion2USBBoards &
RGBController_GigabyteRGBFusion2USBLayouts into single
GigabyteFusion2USB_Devices to align with structure of
RazerDevices and CorsairV2Devices.
* Replaced definition for `gb_fusion2_layout`
* Adjusted code paths to suit new variable structures
* Removed redundant files
2025-11-24 23:27:54 -06:00
Egor Vorontsov 7886dc4c14 Added VialRGB dynamic detector. 2025-11-24 20:37:08 -06:00
gashtal a3c77d20a0 Add support for MSI X870E CARBON WIFI RGB Headers 2025-11-24 20:34:54 -06:00
leon121212 6e53097f83 Add support for ASUS RTX5090 Matrix 2025-11-23 10:38:31 +08:00
Adam Honse e657f5c8d4 Make segment type configurable 2025-11-22 12:55:27 -06:00
UbayGD 31a0e2d61f Update fedora version for pipeline 2025-11-21 08:07:17 -06:00
superstrom fb4359b009 Kraken V3: Cleanup and add additional devices from pcaps 2025-11-19 00:32:47 -06:00
Marcel Berwanger 769d433373 added support for ViewSonic XG270QC 2025-11-18 08:01:18 -06:00
Caleb Evans b6673965e2 Add Palit GeForce RTX 5080 GamingPro 2025-11-18 07:51:03 -06:00
mhueske 9c66a76419 new device ASUS TUF Gaming B850M-Plus WiFi 7 - resolves #5228 2025-11-18 07:47:49 -06:00
Adam Honse d79f0cf928 Rework MacOS CI to build both Qt5 and Qt6 builds 2025-11-18 00:06:26 -06:00
Mathieu Roux 0d0a3bece4 Implements Asus TUF Gaming K3 Gen II PID 2025-11-16 11:55:08 -06:00
Adam Honse 0b25cae5e5 Add Logitech G502 X Plus wired detector, only shows as one zone in direct mode 2025-11-16 00:49:15 -06:00
Adam Honse a6b890a48d Use ResourceManager::RescanDevices() to initiate a rescan in places where ResourceManager::DetectDevices() was still being used 2025-11-14 20:31:10 -06:00
RobRoyEerkes da582e3ba5 Added Support for NZXT F420 case fans 2025-11-14 00:29:18 -06:00
Adam Honse 41928d17ec Set configuration directory to service_config in executable path if running as Windows service 2025-11-13 19:29:58 -06:00
Caique Ribeiro de Oliveira 7efa26a11d Add support for Razer BlackWidow V4 75% (Wired) 2025-11-13 15:12:42 -06:00
MadeUReadThis 7c07031603 Add initial support for ASUS ROG Strix G17 G733QR (layouts + zones) 2025-11-13 19:32:14 +00:00
Carlos Jordão 9fca9da408 Adds layout for Gigabyte B550 Aorus Elite AX V2 2025-11-13 07:45:38 -06:00
Chris M 380905cc72 Removed redundant layout declaration
* Removed `aura_core_laptop_16_values` as it is identical to
`aura_core_laptop_15_values`
2025-11-13 09:12:17 +11:00
Emilio Pulido Gil ec442416fa Add support for Asus ROG Strix G16 2023 (G614JZ) 2025-11-11 08:12:18 -06:00
Emilio Pulido Gil 0c079c2bf4 Add support for Asus ROG Strix Scope RX 96 2025-11-10 12:34:54 -06:00
Adam Honse 269e7c6115 Add tmpfiles for initializing /etc/openrgb for systemd service 2025-11-10 01:01:39 -06:00
Adam Honse b22438d345 Use /etc/openrgb as config path for systemd service 2025-11-10 00:05:13 -06:00
MG-5 999dbc3024 Add support for ASUS TUF Radeon RX 9070 Gaming OC device 2025-11-08 13:39:26 -06:00
Carlos Jordão fcb0363812 Change leds index - fixes bug #5203 2025-11-08 13:38:48 -06:00
nkey 463b827556 add support for STEELSERIES_QCK_PRISM_CLOTH_5XL_PID 2025-11-08 12:56:15 +01:00
Carlos Jordão f0a1ed2c0f Refactor HyperX Alloy Origins Core to use KLM 2025-11-03 16:53:46 -06:00
Bnyro 665069d98f Add support for Lenovo Legion K510 keyboard 2025-11-03 11:47:36 +01:00
superstrom bbf50ef812 add Kraken V3 X 2025-11-02 19:04:33 -06:00
Adam Honse ba186cfaee Add new controller for Razer Kraken V4 and Razer Kraken Kitty V3 Pro 2025-11-02 14:20:34 -06:00
Catarina Bressan 692ca00011 Updates msvc redist link in README.md 2025-10-31 07:57:46 -05:00
YanZhi f855d160ca Add YICO and clean up DRGB controller 2025-10-30 11:18:30 -05:00
Logan Phillips 9eb0169fcf Adds "Save to Device" feature to QuadCast 2S and logging 2025-10-29 12:59:16 -05:00
morg d99be3e0e6 Add support for QuadCast 2S. Closes #5113 2025-10-29 12:59:16 -05:00
Gediminas Jocys 5603ca86a3 Added support for Sapphire RX 9060 XT Nitro+ 2025-10-29 12:55:35 -05:00
justbispo 4835353ce0 Add support for alternative version (242B) of Gigabyte Radeon RX 7600 OC 2025-10-29 13:50:30 +00:00
superstrom 30ea38d133 Add Razer Quartz keyboard variant 2025-10-28 17:10:00 +00:00
morg 7a939c8233 Add support for Asus monitors. Closes #4174 2025-10-27 17:49:01 -05:00
Shottgun 51a014fecb Add support for Gigabyte Radeon RX 7700 XT GAMING OC 2025-10-27 08:38:39 -05:00
Serhii Koreiba (eXXon) 2acdcec678 Add missing backslash key to Cherry G80-3000N ANSI layout 2025-10-26 23:27:29 -05:00
Logan Phillips 8a63cfbf25 Add Cooler Master GD160 ARGB Gaming Desk support 2025-10-20 17:00:29 -05:00
Adam Honse d4e802f3b3 Clean up Linux LED controller 2025-10-20 12:23:13 -05:00
Chris Morgan c1781bc4cb Add support for led_classdev_mc via sysfs
Update the LinuxLEDController to support multicolor LEDs defined by
the Linux kernel. For multicolor LEDs Linux exposes a single
brightness which allows a range of 0 (off) to 255 (max) and a multi_intensity
value that accepts multiple channels of colors. This current implementation
assumes that there are 3 multi_intensity channels between 0 and 255.

https://docs.kernel.org/leds/leds-class-multicolor.html

Note that for now in Linux the brightness value doesn't so much affect
the brightness of the LED as it does apply a coefficient to the individual
channel intensities. For now hard code the brightness to 255 and simply
adjust the intensities to alter the color.

This change should keep the existing sysfs code path as-is and only attempt
to use this new method when a led_rgb_path is present in the config file.

For reference, my OpenRGB.json has the following lines:
`    "LinuxLEDDevices" : {
        "devices": [
            {
                "name": "Fan LED 1",
                "rgb_path": "/sys/class/leds/rgb:programming-0/"
            }
        ]
    }`

Signed-off-by: Chris Morgan <[email protected]>
2025-10-20 12:13:50 -05:00
Kulothungan U G 5966632276 Add support for msi b850m gaming plus wifi6e 2025-10-20 08:58:47 -05:00
Wojciech Lazarski 76d3a6051a Added support for Razer Thunderbolt 5 Dock Chroma 2025-10-16 23:41:31 +02:00
Adam Honse da9a96e3f2 Add ASUS ROG RTX4090 with PID 8933 2025-10-16 14:07:37 -05:00
Liam f573af369f Add support for Palit GeForce RTX 5070 Ti GamingPro 2025-10-15 18:14:32 +02:00
Andre Toerien b58b3c0402 Install systemd service under PREFIX 2025-10-15 07:53:15 -05:00
Logan Phillips db517c01af Support AE-5 and AE-5 Plus on Windows 2025-10-15 00:05:50 -04:00
Adam Honse 3fb56e610d Update CONTRIBUTING.md with comment box style updates and update CI section to reflect the CI state in 2025 2025-10-14 21:09:58 -05:00
Adam Honse 63936126f3 Perform VialRGB version and flag checks before registering QMK VialRGB controllers 2025-10-09 11:28:10 -05:00
Bergmann89 d7bab0dc7b Add support for MSI X870 GAMING PLUS WIFI (MS-7E47) 2025-10-09 09:14:44 +02:00
JoakoI98 fa03750957 Added support to RTX 5080 MSI Vanguard OC 2025-10-08 23:02:58 -05:00
Erik Junghanns d3f3df0b83 Improve PawnIO initialization 2025-10-07 22:48:05 -05:00
UbayGD 13edc400c9 feat: add initial support for MSI MPG B850I EDGE TI WIFI 2025-10-07 22:45:40 -05:00
Adam Honse 6aa8eb6101 Clean up OpenRGB and VialRGB QMK controllers into a common folder and move keymap definitions to QMK common files 2025-10-07 17:07:28 -05:00
Aaditya Menon 28ee8cd6eb Split Top and Side Logo zones for Gigabyte AORUS RTX 5080 XTREME WATERFORCE 2025-10-06 08:35:32 -05:00
Aaditya Menon 4ea6ccc17b Add support for Gigabyte AORUS GeForce RTX 5080 XTREME WATERFORCE 16G. Closes #5099 2025-10-05 13:03:50 -05:00
rom4ster e80a89f094 Fix X870 Implementation 2025-10-05 01:09:10 -05:00
Hans Lambermont 58360fb6d4 Add support for Corsair M75 Gaming Mouse (1B1C:1BF0) 2025-10-04 23:54:19 -05:00
BestPig 22bee9be29 Add config for the MSI B650M PROJECT ZERO (7E09) 2025-10-04 10:23:44 +00:00
phob d2e8ea066d Add support for ASUS ROG ASTRAL GeForce RTX 5080 OC WHITE in I2C PCI detector 2025-10-04 02:32:47 -05:00
Adam Honse 60b4810666 Initial QMK VialRGB controller 2025-10-04 02:03:40 -05:00
Adam Honse 93dd7f2122 Start server before detecting devices 2025-09-28 01:57:07 -05:00
Adam Honse c71cc4f18a Change SPDX license identifier from GPL 2.0 only to GPL 2.0 or later, as the original LICENSE file includes an or later clause at the end so the file headers were incorrect 2025-09-28 00:47:08 -05:00
ptkovsky 011d36492e Add support for the MSI GeForce RTX™ 5090 32G SUPRIM SOC 2025-09-27 10:55:01 -05:00
finnff 3cd7560534 Add support for the MSI GeForce RTX™ 5090 32G VANGUARD SOC 2025-09-25 11:58:41 -05:00
idoybh 82f4177bdc Add support for Gigabyte Radeon RX 7600 XT GAMING OC 16G 2025-09-25 07:58:34 -05:00
morg 3be23b3285 Add support for Redragon M987 Reaping 2025-09-24 10:37:03 -05:00
Tiago de Paula 63833ba123 Support for Gigabyte Radeon RX 7600 OC
- Vendor: 1002
- Device: 7480
- SVendor: 1458
- SDevice: 240b
- I2C Address: 0x55

Closes #4611
2025-09-21 20:36:54 -03:00
Jaden Korr 8d2d4d68c8 Support for MSI MEG X399 CREATION via MSI Mystic Light 162-byte Controller 2025-09-21 09:25:47 +02:00
⍚~Nex d72702129f Remove "Ice" from "Gigabyte GeForce RTX 4070 SUPER Eagle OC Ice" 2025-09-18 13:32:48 -05:00
Lucas Andreussi f2c1f85b2f Gigabyte RTX3060Ti GAMING OC LHR Rev 2 support 2025-09-18 08:30:59 -05:00
Barry H 1b01bbb7fc Set Asus USB motherboard to use Gen 1 2025-09-18 08:28:52 -05:00
Joachim 679b790687 Add support for Gigabyte Aorus Radeon RX 6900 XT Extreme Waterforce WB 2025-09-18 08:25:05 -05:00
Terence Tan dc7b13a5f7 Initial commit for Palit GeForce RTX 5060 Ti White OC 16GB 2025-09-18 08:09:53 -05:00
Adam Honse 5161d673b1 Change suffix back to git after 1.0rc2 release candidate 2025-09-15 23:31:49 -05:00
Adam Honse 0fca93e454 OpenRGB Release Candidate 1.0rc2 2025-09-14 14:31:57 -05:00
Adam Honse 664b794efa Update warning message if I2C doesn't load 2025-09-14 14:31:46 -05:00
Adam Honse c60cf5d2de Update SMBus documentation for PawnIO 2025-09-14 14:31:33 -05:00
Adam Honse 8d8f70bfdf Only build PawnIO support in 64-bit builds, provide non-functional stub implementations in super_io.cpp for 32-bit builds 2025-09-14 14:31:23 -05:00
Adam Honse b349c3ff2c Update PawnIO SMBus driver to use standardized API between all drivers, add NCT6793 driver, and remove WinRing0 SMBus drivers 2025-09-14 14:31:13 -05:00
Stephen Horvath 30a250c7df Replace WinRing0 with PawnIO for SMBus and Super-IO access on Windows
Commits squashed, files cleaned up, and rebased by Adam Honse <[email protected]>
2025-09-14 14:31:02 -05:00
Adam Honse a1449d99cf Change suffix back to git after 1.0rc2wr0 release candidate 2025-09-14 14:30:51 -05:00
Adam Honse a589a0f0b8 OpenRGB Release Candidate 1.0rc2wr0 2025-09-14 14:30:17 -05:00
Adam Honse 21594063ca More warning fixes 2025-09-14 13:41:44 -05:00
Adam Honse 8f89583eb0 Fix some warnings 2025-09-14 13:29:08 -05:00
austinleroy 8487b5c89d Adding support for Logitech G600 Mouse 2025-09-14 13:15:55 -05:00
John DeSilva 3a2d0f46ac Update HYTEMouseMatController to compile on FreeBSD
This change includes the libusb implementation files of
HYTEMouseMatController as sources when compiling on FreeBSD. Without
this change, we see `error: unknown type name 'HYTEMousematController'`.
2025-09-14 13:00:47 +00:00
John DeSilva 8af2461735 Include a startup source for FreeBSD
This seems to have been missed when the startup files were split out
during a refactor to support starting OpenRGB as a Windows service in
cf2df815e3.

Without this change, we see `ld: error: undefined symbol: main` when
compiling on FreeBSD.

I chose to name the file main_FreeBSD_Linux_MacOS instead of
main_Linux_MacOS_FreeBSD to keep the list alphabetical.
2025-09-14 13:00:47 +00:00
Adam Honse 6c8c48d2fe Add option for installing OpenRGB as a service in Wix installer 2025-09-14 03:54:27 -05:00
Fefedu973 f8895af960 Add support for the StreamDeck 2025-09-14 00:59:48 -05:00
Adam Honse 4664a27d6b Disable realtime malware scanning on GitLab CI so that it doesn't break builds with WinRing0 2025-09-14 00:27:46 -05:00
Adam Honse 2609822f8a Fix flickering on JGINYUE USB controller direct mode 2025-09-13 17:01:22 -05:00
Barry H cd3ad1822b Add EVGA RTX 2070 FTW3 Ultra OC, RTX 2080 XC HYBRID GAMING & 2080 Ti FTW3 Ultra Hydro Copper Gaming 2025-09-12 10:35:37 -05:00
Austin Blake 0a6930945e Add support for Gigabyte Radeon RX 9070 XT Gaming 16G 2025-09-11 11:57:14 -05:00
Alexander Mateides 4373df41ba Support for Gigabyte RX9070 Gaming OC 16G 2025-09-11 01:01:23 -05:00
Cosebdd 0971aa92c3 Excluded mode change from MSI GPU FPS Limiter 2025-09-10 07:49:49 -05:00
Fefedu973 f2aef24b8a Fixed govee direct mode control 2025-09-10 00:36:04 -05:00
silverspy18 f019320df1 Increased I2C_SMBUS_BLOCK_MAX and added error handling for buffer overflow. 2025-09-07 13:31:42 -05:00
Sniper Framirez 3af3d137a5 Support Gainward GeForce RTX 3060 Pegasus 12G 2025-09-07 00:33:08 -05:00
Nexrem 9d0d65ca3a Commonize other RedDevil driver under one tree and detector as V1 2025-09-05 08:45:20 -05:00
Nexrem 9a33c95b69 Add support for PowerColor Red Devil RX9070XT 2025-09-04 09:20:17 -05:00
Adam Honse b113fd8cbc Update RGBController documentation 2025-08-26 20:16:28 -05:00
Adam Honse 1836b5e417 Update Detector documentation 2025-08-26 17:07:02 -05:00
Erick Granados d5f9411ecb Fixes for the XPGSummoner keyboard controller 2025-08-26 12:23:25 -05:00
The Cyric 9ad0fa26bf Add another subdevice id for Gigabyte 5090 XTREME WATERFORCE 2025-08-26 08:16:03 -05:00
morg 6a4550c6f0 DetectNZXTKrakenElite: Add missing detector in controller comments 2025-08-26 08:09:01 -05:00
Daniel Clark cc3414408f Fix upstream regression. in DeviceUpdateLEDs() RGBFusion 2.0 USB. 2025-08-25 18:38:17 -05:00
Zoran Peričić fd8101b0c3 Support Kingston Fury Beast DDR5 with Jedec ID: 0x3011 2025-08-24 20:37:24 +02:00
2B 18f484c274 add support for Gigabyte Radeon RX 7900 XT GAMING OC 20G 2025-08-23 01:15:51 -05:00
Adam Honse 221f5007ab Fix laptop and monitor device type strings 2025-08-22 21:52:31 -05:00
Chris fbb7d16039 Changed Gigabyte Fusion 2 controller
* Removed warnings
* Refactored RGBFusion2USBController::SetLEDEffect() to improve readability
* Tidied up Mode declarations
* Other changes for style and formatting
2025-08-22 07:57:02 -05:00
Nikola Jurkovic ca84bad1fc MM700 Extended 3XL 2025-08-22 07:52:25 -05:00
Adam Honse be9fe7bb2d Fix Commander Core XT when configuring RGB header zone to zero and when switching between zero and nonzero modes 2025-08-21 22:43:32 -05:00
Nikola Jurkovic e21d29fa27 Commander Core XT 2025-08-21 22:38:04 -05:00
Erick Granados febdd2ad5e Added Controller for XPG Summoner 2025-08-18 15:26:53 -05:00
Daniel Clark 503ad36256 Merge rework of IT8297, IT5702, IT5711 driver code. Adds new controller IT82950. 2025-08-18 14:46:00 -05:00
Erick Granados 1be1656ce8 Added Controller for SteelSeries QCK PRISM XL Destiny 2: Lightfall Edition 2025-08-18 01:05:41 -05:00
Barry H cd6831ccbe Add Nollie 1, 8, 16 & 32 OS2 Firmware support 2025-08-18 01:03:18 -05:00
Adam Honse 676547b8b0 Pass name string into I2C DIMM detectors, store name in KingstonFuryDRAMController to avoid setting it in detector 2025-08-17 01:17:02 -05:00
Adam Honse c82a6052a2 Store name in AsusAuraUSBControllers to avoid setting it in detectors 2025-08-16 18:26:09 -05:00
Adam Honse a0726dc065 Store name in LogitechControllers to avoid setting it in detectors 2025-08-16 16:47:44 -05:00
Robert Ernst 86fbdfa6e7 Add Mystic Light Controller with PID 7D14 of Mainboard MSI A520M PRO 2025-08-16 12:04:55 -05:00
Anshi Mehta 0eb082f21b docs: improve wording and clarity in mode description 2025-08-16 12:03:36 -05:00
Shaydera 714736bf73 Fix RGB controller detection for Gigabyte AORUS RTX 5090 MASTER (use 0x75) 2025-08-16 12:03:05 -05:00
Adam Honse 079e344c5a Store name in RoccatControllers to avoid setting it in detectors 2025-08-16 02:07:11 -05:00
Adam Honse c2e0bd496f Store name in SinowealthControllers to avoid setting it in detectors 2025-08-16 01:15:15 -05:00
Adam Honse f1a050a503 Store name in SteelSeriesControllers to avoid setting it in detectors, rework SteelSeriesApexBaseController to move code out of header file 2025-08-16 00:37:51 -05:00
Adam Honse bf24ab3d53 Store name in ENESMBusController to avoid setting it in detector 2025-08-15 22:53:36 -05:00
Adam Honse 5190274004 Store name in MSIGPUv2Controller to avoid setting it in detector 2025-08-15 16:57:02 -05:00
Adam Honse 5db766cfa0 Store name in CoolerMasterControllers to avoid setting it in detectors 2025-08-15 16:16:13 -05:00
Eve ddc8bc5885 Alternate PCI subsystem ID for EVGA RTX3070 FTW3 Ultra LHR 2025-08-15 16:11:06 -05:00
Adam Honse 4036a9e414 Store name in CorsairPeripheralV2Controllers to avoid setting it in detectors 2025-08-15 12:19:05 -05:00
Adam Honse fa74b64d6d Remove unused CorsairK95PlatinumXTController files 2025-08-15 12:10:09 -05:00
Adam Honse 59c2ca2052 Store name in CorsairPeripheralControllers to avoid setting it in detectors 2025-08-15 11:40:28 -05:00
Chris M a528db1604 Simplified / Modularised the Appimage runner scripts 2025-08-15 01:06:20 -05:00
Chris M 72a5afc910 Added Trixie builds
* Combined common Deb build steps
2025-08-15 01:04:05 -05:00
jurkovic-nikola 974f7d1e26 commander core packet size 2025-08-15 00:39:42 -05:00
Adam Honse 2a6ad477e6 Store name in HoltekControllers to avoid setting it in detectors 2025-08-14 23:37:05 -05:00
Adam Honse ce64dbc686 Store name in ZotacV2GPUController to avoid setting it in detector 2025-08-14 23:36:56 -05:00
Adam Honse eb199dae67 Store name in ZotacTuringGPUController to avoid setting it in detector 2025-08-14 23:36:48 -05:00
Adam Honse ad9fd08a08 Store name in ZETKeyboardController to avoid setting it in detector 2025-08-14 23:36:40 -05:00
Adam Honse 86b2ced685 Store name in ZETEdgeAirProController to avoid setting it in detector 2025-08-14 23:36:33 -05:00
Adam Honse 4e96056ac4 Store name in ZalmanZSyncController to avoid setting it in detector 2025-08-14 23:01:51 -05:00
Adam Honse 84c24e70c0 Store name in WushiController to avoid setting it in detector 2025-08-14 22:59:05 -05:00
Adam Honse d069947252 Store name in WootingKeyboardController to avoid setting it in detector 2025-08-14 22:56:43 -05:00
Adam Honse 550503d757 Store name in ViewSonicController to avoid setting it in detector 2025-08-14 22:43:40 -05:00
Adam Honse ef6241fe38 Store name in ValkyrieKeyboardController to avoid setting it in detector 2025-08-14 22:31:59 -05:00
Adam Honse fcce668d66 Store name in TrustControllers to avoid setting it in detectors 2025-08-14 20:20:10 -05:00
Adam Honse 1bd9215a72 Store name in SRGBmodsControllers to avoid setting it in detectors 2025-08-14 20:11:54 -05:00
Adam Honse 840512751c Store name in SonyDualSenseController to avoid setting it in detector 2025-08-14 20:08:40 -05:00
Adam Honse 517287117b Store name in SkyloongController to avoid setting it in detector 2025-08-14 20:05:55 -05:00
Adam Honse 46d935c1a4 Store name in SapphireGPUControllers to avoid setting it in detectors 2025-08-14 20:03:41 -05:00
Adam Honse 9680d072fa Store name in RedSquareControllers to avoid setting it in detectors 2025-08-14 19:32:37 -05:00
Adam Honse 06413f2877 Store name in RedragonMouseController to avoid setting it in detector 2025-08-14 19:28:20 -05:00
Adam Honse ce86faabfe Store name in PowerColorRedDevilGPUController to avoid setting it in detector 2025-08-14 19:24:58 -05:00
Adam Honse 2134323bf8 Store name in PNYLovelaceGPUController to avoid setting it in detector 2025-08-14 19:17:34 -05:00
Adam Honse 67e08d3415 Store name in PatriotViperMouseController to avoid setting it in detector 2025-08-14 19:13:11 -05:00
Adam Honse f8d3c7a838 Store name in PalitGPUController to avoid setting it in detector 2025-08-14 19:10:35 -05:00
Adam Honse 2c630a5218 Store name in OKSKeyboardController to avoid setting it in detector 2025-08-14 19:06:29 -05:00
Adam Honse e418aa7f95 Store name in NZXTMouseController to avoid setting it in detector 2025-08-14 19:00:39 -05:00
Adam Honse 3ab1519e25 Store name in NZXTKrakenController to avoid setting it in detector 2025-08-14 11:50:06 -05:00
Adam Honse d8c40cab6d Store name in NZXTHue2Controller to avoid setting it in detector 2025-08-14 11:46:34 -05:00
Adam Honse f0e9650085 Store name in NZXTHue1Controller to avoid setting it in detector 2025-08-14 11:42:53 -05:00
Adam Honse a34d796059 Store name in NVIDIAIlluminationController to avoid setting it in detector 2025-08-14 11:42:43 -05:00
Adam Honse 9470cb69fd Store name in NvidiaESAController to avoid setting it in detector 2025-08-14 11:34:16 -05:00
Adam Honse 520b83a226 Store name in NollieController to avoid setting it in detector 2025-08-14 11:31:42 -05:00
Adam Honse 85af2e1ed7 Store name in N5312AController to avoid setting it in detector 2025-08-14 11:29:00 -05:00
Adam Honse f420e9bbbe Store name in MSIVigorController to avoid setting it in detector 2025-08-14 11:26:20 -05:00
Adam Honse 82cb9fb7d0 Fill in location in GigabyteSuperIORGBController 2025-08-14 10:19:50 -05:00
Adam Honse 719d7b8801 Store name in MSIRGBController to avoid setting it in detector 2025-08-14 10:19:11 -05:00
Adam Honse b13ca818bb Store name in MSIOptixController to avoid setting it in detector 2025-08-14 10:02:46 -05:00
Nikola Jurkovic 2dd013a0a0 AIO H1xx ELITE Series 2025-08-13 17:37:10 -05:00
Adam Honse 49e4f00aff Store name in MSIMysticLightControllers to avoid setting it in detectors 2025-08-13 11:49:45 -05:00
Adam Honse 4c018421a2 Fix warning from unused name parameter in LianLiControllerDetect 2025-08-12 19:33:15 -05:00
Adam Honse a2826ec865 Store name in MSIGPUController to avoid setting it in detector 2025-08-12 19:27:44 -05:00
Adam Honse c256b6246a Store name in MountainKeyboardController to avoid setting it in detector 2025-08-12 18:57:10 -05:00
Adam Honse f9bfb951ca Store name in MintakaKeyboardController to avoid setting it in detector 2025-08-12 18:54:35 -05:00
Adam Honse 8c63eeea47 Store name in LuxaforController to avoid setting it in detector 2025-08-12 18:48:34 -05:00
Adam Honse b136e7739a Store name in LinuxLEDController to avoid setting it in detector 2025-08-12 18:44:35 -05:00
Adam Honse 2967ccb1cb Add a mutex and remove a timeout to reduce flicker on HYTE Q60 logo LEDs 2025-08-12 13:10:36 -05:00
Adam Honse 03d5dd6008 Fix name initialization typo in HYTENexusController 2025-08-12 10:14:00 -05:00
Adam Honse 89d1ee2483 Remove name override for LianLiStrimerLConnect to match other LianLi controllers 2025-08-12 09:55:40 -05:00
Adam Honse c313b19fc5 Store name in LGMonitorController to avoid setting it in detector 2025-08-12 09:53:03 -05:00
Nikola Jurkovic 2a6856a5d2 fix led enumeration when lcd cap is installed 2025-08-12 08:47:23 -05:00
Adam Honse f3c7a213b1 Store name in LexipMouseController to avoid setting it in detector 2025-08-11 20:46:58 -05:00
Adam Honse f6ddf5676a Store name in LenovoMotherboardController to avoid setting it in detector 2025-08-11 20:45:07 -05:00
Adam Honse b331fbcd4d Store name in LenovoControllers to avoid setting it in detectors 2025-08-11 20:37:48 -05:00
Adam Honse 41eec46fa7 Store name in LegoDimensionsToypadBaseController to avoid setting it in detector 2025-08-11 20:31:05 -05:00
Adam Honse 0eb34eec25 Store name in LEDStripController to avoid setting it in detector 2025-08-11 20:23:07 -05:00
Adam Honse a1f144daf2 Store name in KeychronKeyboardController to avoid setting it in detector 2025-08-11 18:29:59 -05:00
Adam Honse ca73941e5d Store name in IonicoController to avoid setting it in detector 2025-08-11 18:07:13 -05:00
Adam Honse 0bdf600409 Store name in InstantMouseController to avoid setting it in detector 2025-08-11 18:04:55 -05:00
Adam Honse d5f8e2cac9 Store name in HYTENexusController to avoid setting it in detector 2025-08-11 18:02:26 -05:00
Adam Honse 20f3e5db0b Store name in HYTEMousematController to avoid setting it in detector 2025-08-11 17:24:00 -05:00
Adam Honse d412ef5e17 Store name in HYTEKeyboardController to avoid setting it in detector 2025-08-11 17:24:00 -05:00
Adam Honse 0269cdd068 Store name in HyperXMousematControllers to avoid setting it in detector 2025-08-11 17:24:00 -05:00
Nikola Jurkovic 12f90a67f9 link system hub fixups 2025-08-11 10:08:54 -05:00
Adam Honse ca554d9ef6 Store name in HyperXMouseControllers to avoid setting it in detectors 2025-08-10 21:26:58 -05:00
Adam Honse 0c0ffe7f5c Store name in HyperXMicrophoneController to avoid setting it in detector 2025-08-10 21:02:42 -05:00
Adam Honse 0eee6044b2 Fix name setting in GalaxGPUv1Controller 2025-08-10 16:55:24 -05:00
Adam Honse da21f992c5 Store name in HyperXKeyboardControllers to avoid setting it in detectors 2025-08-10 16:51:32 -05:00
Adam Honse 6c8a46cc7d Store name in HyperXDRAMController to avoid setting it in detector 2025-08-10 16:22:38 -05:00
Adam Honse aa31e21868 Don't override name in HoltekControllerDetect, names are generic so not saving them in Controller 2025-08-10 16:17:36 -05:00
lightminerva ee66121364 Move corsair k95 rgb platinum xt to the corsair peripheral v2 controller 2025-08-10 14:39:44 -05:00
Adam Honse 327edf2a6b Store name in GigabyteSuperIORGBController to avoid setting it in detector 2025-08-10 00:33:01 -05:00
Adam Honse 2535ac3edf Store name in GigabyteRGBFusionGPUController to avoid setting it in detector 2025-08-10 00:27:45 -05:00
Adam Honse df56b42e62 Store name in GigabyteRGBFusion2GPUController to avoid setting it in detector 2025-08-10 00:22:08 -05:00
Adam Honse bed69130fd Store name in GigabyteRGBFusion2BlackwellGPUController to avoid setting it in detector 2025-08-10 00:18:25 -05:00
Adam Honse f54460fd2e Store name in GigabyteAorusPCCaseController to avoid setting it in detector 2025-08-10 00:08:59 -05:00
Adam Honse 2bde9b287f Store name in GigabyteAorusMouseController to avoid setting it in detector 2025-08-10 00:07:00 -05:00
Adam Honse c8abbc6054 Add Razer Blackwidow V4 Pro 75% (Wired) 2025-08-08 19:20:35 -05:00
Adam Honse cba7c016d3 Store name in GigabyteAorusLaptopController to avoid setting it in detector 2025-08-08 11:43:37 -05:00
Adam Honse 7d0db424ec Store name in GigabyteAorusCPUCoolerController to avoid setting it in detector 2025-08-08 11:37:10 -05:00
Adam Honse 6f9e164874 Store name in GalaxGPUControllers to avoid setting it in detectors 2025-08-08 11:36:59 -05:00
Adam Honse 2927135cdd Store name in GaiZhongGaiControllers to avoid setting it in detector 2025-08-08 11:26:55 -05:00
Adam Honse 0afcdbd0ca Store name in GainwardGPUControllers to avoid setting it in detectors 2025-08-08 11:21:43 -05:00
Adam Honse 8813c9936d Store name in EVGAUSBControllers to avoid setting it in detectors 2025-08-08 00:11:31 -05:00
Adam Honse abe7068197 Store name in EVisionKeyboardControllers to avoid setting it in detectors 2025-08-07 23:22:41 -05:00
Adam Honse d7f0872690 Store name in EVGATuringGPUController to avoid setting it in detector 2025-08-07 23:04:29 -05:00
Adam Honse df75659778 Rework EVGAPascalGPUController to use I2C PCI detector and store name in controller to avoid setting it in detector 2025-08-07 23:03:53 -05:00
Adam Honse c32663bb32 Rework EVGAGP102GPUController to use I2C PCI detector and store name in controller to avoid setting it in detector 2025-08-07 11:55:18 -05:00
Adam Honse c94eed432d Store name in EVGAAmpereGPUController to avoid setting it in detector 2025-08-07 11:53:26 -05:00
Adam Honse a73a879238 Store name in DuckyKeyboardController to avoid setting it in detector 2025-08-07 11:17:54 -05:00
Adam Honse a8500a2a8a Store name in DRGBController to avoid setting it in detector 2025-08-06 17:18:39 -05:00
Adam Honse 718962c188 Store name in DasKeyboardController to avoid setting it in detector 2025-08-06 17:13:55 -05:00
Adam Honse e6190ec275 Store name in DreamCheekyController to avoid setting it in detector 2025-08-06 11:31:48 -05:00
Adam Honse 13e8f70438 Store name in DarkProjectrKeyboardController to avoid setting it in detector 2025-08-06 11:27:37 -05:00
Adam Honse ea206235c5 Store name in CryorigH7QuadLumiController to avoid setting it in detector 2025-08-06 08:33:36 -05:00
Adam Honse dc0103a155 Store name in CreativeSoundBlasterXG6Controller to avoid setting it in detector 2025-08-06 08:25:20 -05:00
Adam Honse 31ec06b576 Store name in CougarControllers to avoid setting it in detectors 2025-08-06 00:48:13 -05:00
Adam Honse 17a58b4c22 Store name in CorsairLightingNodeController to avoid setting it in detector 2025-08-06 00:48:13 -05:00
Chris Pawlukiewicz 56564092bc New device: Gigabyte GV-N5090GAMING-OC-32GD 2025-08-05 20:57:48 -05:00
Adam Honse 2b546fce9f Store name in CorsairHydroPlatinumController to avoid setting it in detector 2025-08-05 20:50:38 -05:00
Sirs0ri 69a065eeed New device: ASUS ROG-STRIX-RTX3070-8G-V2-GAMING 2025-08-05 13:49:20 -05:00
Chris M a7c01e039d Fixed Gigabyte Blackwell GPU controller metadata 2025-08-05 19:37:26 +10:00
Adam Honse 4639833bdb Store name in CorsairHydroController to avoid setting it in detector 2025-08-04 17:35:00 -05:00
Adam Honse bf6fe2b4fb Default name in RGBController_CorsairHydro2 to avoid setting it in detector 2025-08-04 17:24:36 -05:00
Adam Honse 04d2ebacca Store name in CorsairDominatorPlatinumController to avoid setting it in detector 2025-08-04 17:18:26 -05:00
Adam Honse e44fd9ed78 Store name in CorsairCommanderCoreController to avoid setting it in detector, fix detector name 2025-08-04 17:15:58 -05:00
Adam Honse 526d35edfe Store name in ColorfulGPUControllers to avoid setting it in detectors 2025-08-04 17:12:14 -05:00
Adam Honse 2ec68c29de Store name in CherryKeyboardController to avoid setting it in detector 2025-08-04 14:04:27 -05:00
Adam Honse c761661386 Store name in AsusLegacyUSBControllers to avoid setting it in detectors 2025-08-04 13:37:21 -05:00
Adam Honse 142e7fcc02 Close HYTE mousemat connections (libusb/serial) on destructor to fix rescan 2025-08-03 22:35:34 -05:00
Adam Honse e928111c00 Store name in AsusAuraGPUController to avoid setting it in detector 2025-08-03 22:05:37 -05:00
Adam Honse 0665ded648 Remove name comment from AsusAuraCoreControllerDDetect 2025-08-03 22:03:21 -05:00
Adam Honse b9a8a62e38 Store name in AOCMousematController to avoid setting it in detector 2025-08-03 21:42:40 -05:00
Adam Honse 74bbaaf643 Store name in AOCMouseController to avoid setting it in detector 2025-08-03 21:38:07 -05:00
Adam Honse 5799ea8160 Store name in AOCKeyboardController to avoid setting it in detector 2025-08-03 21:33:56 -05:00
Adam Honse 3dc2453deb Remove name comment from AnnePro2ControllerDetect 2025-08-03 21:31:57 -05:00
Adam Honse d2b3965bc2 Remove name comment from AMDWraithPrismControllerDetect 2025-08-03 21:31:39 -05:00
Adam Honse e4da571d6b Store name in AlienwareMonitorController to avoid setting it in detector 2025-08-03 21:28:27 -05:00
Adam Honse 5e45480a0e Store name in AlienwareKeyboardControllers to avoid setting it in detector 2025-08-03 18:43:02 -05:00
Adam Honse 90c1e10cc5 Fix AlienwareMonitorController on Linux 2025-08-02 17:45:44 -05:00
Daniel Schaefer 0255b09e0e Compiling.md: Update MSVC runtime download URL 2025-08-02 14:23:13 -05:00
Adam Honse bd21325d04 Fix warnings 2025-08-02 01:59:44 -05:00
berendi 9bc2a6fa2b Initial support for PNY ARGB EPIC X 5070Ti
Commits squashed, cleaned, and reworked for 5070Ti by Adam Honse <[email protected]>
2025-08-02 01:29:03 -05:00
Aiden Vigue cb3f0fdcbd Support for iCUE Link System Hub & attached devices
Commits amended to adhere to OpenRGB code standards and restructure functional layout by Adam Honse <[email protected]>
2025-08-01 21:46:29 -05:00
Adam Honse b8628bb495 Store name in BloodyB820RController to avoid setting it in detector 2025-08-01 11:37:40 -05:00
Adam Honse 9c26f79ca6 Store name in BloodyMouseController to avoid setting it in detector 2025-08-01 11:35:38 -05:00
Adam Honse 30f9b84d5f Use GetName instead of directly accessing the RGBController::name member outside of Controllers 2025-08-01 11:32:55 -05:00
Leon 1318d23401 "Add support for Asus ROG RTX5090 Astral OC BTF and WHITE" 2025-08-01 00:10:13 -05:00
Adam Honse 9fb71a30ec Use getter functions when accessing string fields in RGBControllers in ProfileManager and cli 2025-07-31 18:55:12 -05:00
Adam Honse abd34f1810 Rework RGBControllers and detectors that set string fields other than name outside of the RGBController 2025-07-31 18:36:06 -05:00
Adam Honse 6a472437bb Remove unnecessary implementations of SetCustomMode 2025-07-31 17:35:20 -05:00
Adam Honse 43b97bca75 Rework Debug controller and add manual settings entry for it, also remove graying out the settings save button as sometimes it prevents saving changes 2025-07-31 00:11:18 -05:00
Chris M a667bd456c Removed non-printable characters from License.rtf
* Changed EOL character from Linux LF to Windows CRLF
2025-07-30 22:17:32 +10:00
Adam Honse c6de7cf784 Mark OpenRGB.exe as KeyPath in Wix installer 2025-07-28 21:13:21 -05:00
Adam Honse 59deaad070 Add file header comment to ResourceManagerInterface.h 2025-07-27 01:49:45 -05:00
Muhamad Visat 7709799bc2 Add support for the GALAX GeForce RTX 3080 SG 2025-07-27 01:30:22 -05:00
Adam Honse d59138363e Handle condition where detection finishes before OpenRGBDialog constructor finishes/has time to register detection end callback. Fixes plugins not loading when running OpenRGB as a background service. 2025-07-26 02:36:38 -05:00
Adam Honse faaf2009b6 Add keepalive thread for Razer Blade 14 2021 and 2022 that sends a get device request to keep lighting active 2025-07-26 01:44:09 -05:00
Adam Honse 66c9691c87 Add exception for HYTE NP50 third channel, which needs to send 750 bytes according to documentation 2025-07-25 00:57:00 -05:00
Adam Honse 73d09e7c1c Fix HYTE Nexus Portal NP50 2025-07-25 00:30:37 -05:00
Arthur de Groot 3a508e71aa Update SDK docs 2025-07-24 10:16:57 -05:00
robynegrul a1d7a76349 Lenovo Legion S7 Gen7 2025-07-23 21:22:28 -05:00
Adam Honse 5ea65eda5a Update Compiling.md Windows section to reference the OpenRGB-Qt-Packages and build-windows.bat method of building OpenRGB from source, which is the official build procedure used by the pipeline builds 2025-07-22 19:54:02 -05:00
NolanPG 29347b9b4d Fix Gigabyte's RX 9070 XTs detection 2025-07-21 22:15:22 -05:00
Rahul Salvi a06d528d3b Add support for PowerColor Red Devil RX6800XT 2025-07-20 13:40:31 -07:00
Adam Honse ac0fd4b3fc Remove commented code in build-windows.bat 2025-07-20 01:39:48 -05:00
Valtekken 47783feecb Updated Italian translation's missing lines. 2025-07-19 09:05:53 +00:00
Whippu fad8955397 Add support for Gigabyte RX 7900 GRE 2025-07-18 18:34:10 -05:00
Adam Honse d0bcf06e5f Update metainfo 2025-07-17 11:57:08 -05:00
Adam Honse fed03f88c8 Clean up code 2025-07-16 08:31:48 -05:00
Adam Honse b6afcc222a Add regex include for MacOS 2025-07-16 08:12:09 -05:00
Dmitry Kychanov 4bcc33569a Fix filesystem errors in SerialPort 2025-07-16 15:09:21 +04:00
Dmitry K 46a79c6bb5 Serial port field is now drop-down list 2025-07-16 01:29:16 -05:00
Adam Honse 25d45fd9db Add server settings to settings page 2025-07-15 18:11:32 -05:00
Adam Honse c5795492e1 Update Fedora spec file to include systemd service 2025-07-15 11:45:42 -05:00
Adam Honse e86d9f9241 Add SystemD service file to Linux installation 2025-07-15 11:20:13 -05:00
Adam Honse 3db4ea30a3 Re-add Linux signal handler that was lost when rebasing Windows service main.cpp rework 2025-07-15 11:06:11 -05:00
Adam Honse a3acd6bda5 Fix XPG S40G infinite loop on Windows 11 2025-07-15 00:07:53 -05:00
Adam Honse 12a3b1f83e Delete controller when deleting HYTE RGBControllers 2025-07-14 16:45:01 -05:00
berendi cf2df815e3 Support starting OpenRGB as a Windows service
Commits squashed, code style cleaned up, and manually rebased by Adam Honse <[email protected]>
2025-07-14 20:32:14 -05:00
Adam Honse f03e4fd049 Implement find_usb_serial_port for MacOS, switch HYTE CNVS implementation to serial-based 2025-07-14 17:27:10 -05:00
Jana Rettig 75bf674537 Add support for PowerColor Red Devil GPUs 2025-07-14 15:08:58 -05:00
Adam Honse c3b1b16d11 Clean up comment formatting in ResourceManager.h 2025-07-12 23:04:59 -05:00
Adam Honse d8b9159125 Rework handling of NetworkClient callbacks to route them through ResourceManager and move connection of saved clients to after autoconnection of local client in InitCoroutine 2025-07-12 22:49:14 -05:00
Adam Honse a30617d971 Code cleanup in OpenRGBDialog 2025-07-12 21:58:31 -05:00
Adam Honse c7d824fbf3 Remove unused functions in OpenRGBClientInfoPage and OpenRGBDialog 2025-07-12 21:26:08 -05:00
Adam Honse 2335259dd6 Clean up comment formatting in DMI info files 2025-07-12 21:10:11 -05:00
Adam Honse 64686c92cd Clean up comment formatting in AutoStart files 2025-07-12 20:58:47 -05:00
silverspy18 3cbc4e5570 Add Gigabyte Radeon RX 9070 XT GAMING OC 2025-07-10 15:42:19 -07:00
silverspy18 d3f49c72e1 Implements i2c_smbus_amdadl::i2c_xfer for AMD ADL I2C. 2025-07-10 14:16:57 -05:00
Milan Cermak f460a6573c Add new Kingston model code 0x15 2025-07-09 18:52:18 +02:00
Milan Čermák 26a0b88937 Initial commit for TeamGroup T-Force Xtreem ARGB DDR4 Memory 2025-07-08 16:39:22 -05:00
Adam Honse a3ca8a721d Clean up comment formatting in ResourceManager.cpp 2025-07-08 15:27:59 -05:00
lulu731 bdaebe1218 Feat/ms 1565 2025-07-07 11:55:29 -05:00
Adam Honse f76dbb08cc Add GitHub Sponsor information 2025-07-07 02:20:15 -05:00
Adam Honse 5ac2ece8b4 Clean up comment formatting in SettingsManager and main cpp files 2025-07-07 01:35:42 -05:00
Adam Honse 37cd743315 Clean up comment formatting in LogManager and StringUtils cpp files 2025-07-06 14:39:37 -05:00
Fran c0c772b11b Add Palit RTX 5070 GamingPro 2025-07-05 12:44:18 -05:00
Marco Martinez ccc78c3516 Add support for Airgoo DRGB Controller 2025-07-05 12:38:55 -05:00
LucasMZ 09b7aab886 translation: update pt_BR 2025-07-05 08:55:04 -03:00
Adam Honse ce3eac9d8a Remove some commented outdated code 2025-07-05 01:51:52 -05:00
Adam Honse a762d00aa8 Fix warnings in Windows build 2025-07-05 01:47:40 -05:00
Adam Honse e5b3c12814 Fix warnings in MacOS build 2025-07-05 01:19:06 -05:00
Adam Honse df73d0263a Add send_in_progress locks around send groups in NetworkServer.cpp 2025-07-04 23:37:23 -05:00
Adam Honse 2affb6d1e7 Add missing send_in_progress locks around send groups in NetworkClient.cpp 2025-07-04 23:32:16 -05:00
Adam Honse 4cc6a28e73 Rework NetworkClient server initialization to allow interruption and restarting of server list request process when server sends a device list updated notification 2025-07-04 04:24:37 -05:00
Adam Honse 89881bfd7e Improve spacing so that text doesn't get cut off in GNOME on Linux 2025-07-04 04:24:37 -05:00
Adam Honse 458e30e2be Update client info page UI to account for added column 2025-07-04 04:24:37 -05:00
Adam Honse 5aaadf4e5a Require protocol version 5 to send rescan devices packet and to show rescan button in clients list 2025-07-04 04:24:37 -05:00
Adam Honse c750158286 Make the rescan action in ResourceManager send a rescan request to the client if the client is the primary target (local connection or only connected client when local detection disabled) 2025-07-04 04:24:37 -05:00
Adam Honse 80dee91ab9 Add client functionality to send rescan request and add rescan button for each client in client list 2025-07-04 04:24:37 -05:00
Adam Honse 0cfe5ae0bb Add SDK command to rescan devices 2025-07-04 04:24:37 -05:00
Arthur de Groot b6d4ded29a Fix Logitech G915 blue channel writes for little packet 2025-07-04 02:34:02 -05:00
Adam Honse 6d981e21ff Rework OpenRGBDialog rescan behavior to update UI when rescan is triggered outside of the UI 2025-07-04 00:22:08 -05:00
Adam Honse 38afb8b8eb Replace pwsh with powershell as it is available by default and pwsh needs to be separately installed 2025-07-04 00:09:15 -05:00
Sirs0ri 6efb172fb2 fix: spelling of Nvidia GPU label in New Device issue template 2025-07-03 19:35:51 -05:00
Andre Toerien 3332835417 Use RegisterNetworkClient() with --client 2025-07-03 23:34:08 +02:00
Adam Honse ec34b23688 Convert Corsair Vengeance RGB (non-Pro) controller to use DRAM SPD detector 2025-07-02 21:59:39 -05:00
Devin Wendt e4c43548eb Add multizone support for LIFX devices 2025-07-02 19:47:07 -05:00
Adam Honse fc6306f44a Fix warnings in ASUS USB controllers 2025-07-02 11:26:20 -05:00
Adam Honse 520b2450e3 Fix warning in RazerHanboController.cpp 2025-07-02 11:24:16 -05:00
Adam Honse c96119a9fd Fix warnings in RGBController_MSIMysticLight761.cpp 2025-07-02 11:07:05 -05:00
Adam Honse 5242b3cb03 Fix warnings and clean up MSIMysticLight761Controller 2025-07-02 10:27:51 -05:00
Adam Honse 21cb086b87 Fix unused argument warning in GoveeController 2025-07-02 08:28:23 -05:00
Adam Honse c4d0d38e69 Fix warnings in GigabyteRGBFusion2BlackwellGPUController.cpp 2025-07-02 08:16:55 -05:00
Adam Honse eecdd4befc Fix warnings in AMBXController.cpp 2025-07-02 00:22:52 -05:00
Adam Honse 804490399f Fix warning in AlienwareAW3423DWFController.cpp 2025-07-02 00:18:24 -05:00
Adam Honse 47bb1c0b37 Fix qsizetype 2025-07-02 00:17:32 -05:00
Adam Honse 064bae7b87 Cleanups and warning fixes in ManualDevices 2025-07-01 23:54:20 -05:00
Adam Honse ebfbb4b56f Update file header comment in CorsairVengeanceController to note that it is for original single-zone DDR4 variant 2025-07-01 23:25:13 -05:00
Brandon Ong 35203da9c3 Add support for NZXT F140 RGB Duo fan in NZXT Hue 2 Controller 2025-07-01 21:25:35 -05:00
MrIceHavoc b4dff4dd0c Initial commit for EVGA RTX 3090 Ti FTW3 Ultra Hybrid Gaming device ID 2025-07-01 21:15:19 -05:00
Thomas Peters-Hall 68fc171a31 Add support for MSI Gaming Trio RX 7900 XTX 2025-07-01 20:43:52 -05:00
Atome “Atom” Art fb1c20ed30 Add Rescan Devices button to systray icon dialog 2025-07-01 20:39:55 -05:00
Wolfieee Wolf a31c4f5254 Add DDP (Distributed Display Protocol) controller support 2025-07-01 09:27:00 -05:00
Dmitry K 570cc16c98 Unified page for Manually Added Devices 2025-06-30 10:46:55 -05:00
Adam Honse d796fcba8f Add detection message for reading SPD information and rework IsAnyDimmDetectorEnabled so that it doesn't overwrite the detection string before the GUI can read it 2025-06-27 01:26:29 -05:00
Adam Honse ad7a6e60f2 Cache the JEDEC ID value in SPDAccessor and improve SPD detector logging. Caching the JEDEC ID speeds up DRAM detection significantly. 2025-06-27 01:10:06 -05:00
Joseph E 7c02075ba6 Prevent infinite loop of closeEvent() in OpenRGBDialog 2025-06-26 22:45:10 -05:00
Adam Honse a83165f112 Fix Qt6 amd64 AppImage 2025-06-26 21:58:30 -05:00
morg 8ad90314fd AutoStart settings: fix server port range 2025-06-26 08:34:35 -05:00
morg e2db20b1f3 DeviceView: prevents setting 0px as font size. 2025-06-26 07:44:40 -05:00
Adam Honse 2e26a7f82d Update Nuvoton SMBus documentation for Linux 2025-06-26 02:56:44 -05:00
Adam Honse 313fda32c0 Add Common Modes documentation from the wiki repo 2025-06-26 01:40:02 -05:00
McNutnut 28c0bd8592 Add ViewSonic Elite Monitor (XG271QG) 2025-06-26 00:29:03 -05:00
Adam Honse e87d20b08d Fix JGINYUE not being detected in Linux 2025-06-26 00:28:05 -05:00
RedBlackAka ce32b88010 Add Asus ROG GTX 1060 Gaming #4870 2025-06-19 13:48:56 -05:00
rom4ster 9f82afa485 MSI X870 Tomahawk WIFI support 2025-06-18 18:14:42 -05:00
Jana Rettig 5589aad730 Add I2C_SMBUS_I2C_BLOCK_DATA mode to i2c_smbus_amdadl 2025-06-18 18:05:58 -05:00
Dmitry Kychanov 5f8b044577 Convert all UI files to match Qt standards 2025-06-18 17:53:14 -05:00
Nico Maas 924f5af2ed Implements support for Gainward RTX3090 Ti Phantom 2025-06-17 11:37:36 +02:00
Paulo a5acd5f322 Add static mode to Gigabyte Blackwell controller 2025-06-15 22:04:01 -05:00
ToastKiste211 dff4cc6cbf Add Corsair K68 Red Shadow 2025-06-13 08:13:29 -05:00
ToastKiste211 4532f98a94 Add corsair k60 rgb pro tkl white (v2) 2025-06-10 18:04:48 -05:00
Dmitry Kychanov c09d41bd40 Added base class for all Manually Added Devices settings Entries 2025-06-10 10:32:30 +04:00
Hepi34 fc26902d1d Implements support for the MSI RTX 5080 SUPRIM SOC 2025-06-09 13:27:14 -05:00
linux fight a427bfe1e1 Fixed Colorful iGame RTX3060 Ti W OC detection 2025-06-09 12:36:33 -05:00
Adam Honse 5b1b9b011a Update translating section in CONTRIBUTING.md 2025-06-06 09:27:11 -05:00
Antonin Del Fabbro 97ea56e777 Add basic explanations about Translation 2025-06-06 09:22:52 -05:00
Dmitry Kychanov 91a40ab079 Improved About page 2025-06-05 12:12:08 -05:00
ToastKiste211 4ea1d9a1f4 Support for Corsair K95 RGB PLATINUM SE 2025-06-05 12:07:10 -05:00
zjjxwhh 33dc2f41a9 Improve Simplified Chinese (zh_CN) translation 2025-06-05 08:30:13 -05:00
Dmitry K 6793d4a3a0 Move Autogenerated UI code into Private sections of the window classes 2025-06-04 18:21:13 -05:00
Kyle Rose 4c6bf55c8a Provide more useful CLI error messages 2025-06-04 18:16:45 -05:00
Wolfieee Wolf a977cadfda Add AMBXController for Philips amBX Gaming lights 2025-06-04 17:50:44 -05:00
Antonin Del Fabbro 381069afc7 Improve French (FR_fr) translation 2025-06-03 12:15:32 +02:00
Matthias 3c14af4a28 add support for 'Gigabyte AORUS Radeon RX 9070 XT Elite' 2025-06-02 15:27:48 -05:00
ToastKiste211 c3476be9e4 ADD more Corsair commander core versions 2025-06-02 10:41:37 -05:00
Baptiste Girod 519cdb642c Added ASUS TUF GeForce RTX 5090 Gaming non OC 2025-06-02 15:11:45 +00:00
WalterWoshid 2c1e23fdbd Add support for Lenovo Legion Pro 7 (16IRX9H) 2025-05-30 21:36:56 +02:00
Zhi Yan 7f865d73f0 Add some DRGB controllers 2025-05-30 08:01:13 -05:00
Daniel Stuart d98db1587b Initial support for Galax v2 GPU controller 2025-05-30 00:05:10 -05:00
Dmitry Kychanov 34ff3aa99a Minor cleanup in detectors 2025-05-30 02:44:34 +04:00
Wolfieee Wolf 7177a534b9 Add MadCatzCyborgController for MadCatz Cyborg Gaming Light 2025-05-28 11:55:53 -05:00
Paulo 3e7ad705bb Update Gigabyte Blackwell controller and adds several GPUs 2025-05-27 15:23:36 -05:00
Dave Cuza ac1503d246 Add support for ZOTAC GAMING GeForce RTX 2080 Ti AMP 2025-05-27 10:08:34 -05:00
ManiacKnight 26732ed42c Add Gigabyte NVIDIA 5070TI EAGLE OC ICE 2025-05-27 02:44:33 +05:30
mi4code 0a3a1e627c Add support for Patriot Viper V550 2025-05-23 23:43:52 -05:00
Kurt Borja a4476055ec Controllers: AlienwareController: Fix number of zones probing 2025-05-20 08:02:16 -05:00
Barry H a3afb8dcd8 Change TT Riing Quad controller leds_max from 54 to 60 2025-05-19 22:22:47 -05:00
Jonathan Guzmán ca900540b4 fix Arch Linux release url. 2025-05-18 00:30:01 -05:00
Fabian Arndt 45631aa850 Added support for "Gigabyte AORUS RX 6750 XT ELITE 12G" 2025-05-17 17:30:37 +02:00
sonicpanther101 d6a4f315fb Added new device Gigabyte GeForce RTX 4070 Eagle OC 2025-05-16 08:27:09 -05:00
Peter Berendi af5f66bc9e piix4: fix SMBHSTSTS test before and after transaction 2025-05-16 02:10:34 -05:00
Fabius Mettner 6e685be02d Add support for NZXT B650E Mainboard in NZXT Hue 2 Controller and allow Resizing NZXT Hue 2 controlled devices 2025-05-16 01:42:11 -05:00
Adam Honse 95b029d49d Initial support for Govee devices 2025-05-16 01:02:44 -05:00
Dmitry K 20f6565f44 Monitor and Laptop device types 2025-05-15 17:34:39 -05:00
Grant Bakker d296f770b6 Add MSI Radeon RX 7900 XT Gaming Trio Classic 2025-05-15 12:42:23 -05:00
Barry H bbe79420b1 Added TUF RTX5070 & RTX5090, ROG Strix RTX2060, RTX2060S & RTX5070Ti 2025-05-15 11:28:45 -05:00
Adam Honse 6aa5d71ba7 Remove dead code 2025-05-15 11:14:11 -05:00
DRC_Michael b83cc7fecd add: Sapphire Radeon RX 9070 XT Pure 2025-05-12 15:41:08 -05:00
Daniel Clark 77728fd425 Implement support for ITE IT5711 RGB Controller 048D:5711. 2025-05-12 15:01:42 -05:00
LucasMZ 478cf4e9da translation: update pt_BR
- fix many strings
- update missing translations
2025-05-09 21:56:38 -03:00
Paulo 425a92521f Add Gigabyte NVIDIA 5090 Gaming OC 2025-05-09 11:47:32 -05:00
Carlos Jordão 92d8240384 HyperX Origin Core variant 2025-05-09 11:36:37 -05:00
pallaswept 138d991cf2 Signal Handling and Fix for Closing 2025-05-09 08:10:55 -05:00
Adam Honse ac13b614d6 Add new controller for Alienware monitors with old protocol, clean up
AW3423DWF controller to match new behavior
2025-05-08 20:52:17 -05:00
Fefedu973 fd4403ec68 Add support for the Alienware AW3423DWF and AW3225QF monitors 2025-05-08 19:36:19 -05:00
Adam Honse ce62d9998e Add IGNORE_TIMER_RESOLUTION back for Windows 11 but keep NtSetTimerResolution in a loop 2025-05-08 19:32:00 -05:00
Adam Honse aa66814c43 Revert "InitializeTimerResolution fix slowdown on Windows 10, drop obsolete workaround for Windows NT"
This reverts commit 4e5fd41be7.
2025-05-08 19:31:53 -05:00
Paulo 14d0388a65 Update Gigabyte Blackwell controller for multizone gpus 2025-05-08 12:10:03 -05:00
Andrei Khartchenko c1d0553866 add ASUS TUF RX 9070 XT GAMING OC 2025-05-03 04:53:23 -07:00
Adam Honse 6a80f24962 Build AppImage with qt6 2025-05-02 02:38:39 -05:00
Bond_009 ef5bab4ff7 Add support for ASUS ROG Strix GTX1070 OC BIOS 2025-05-01 14:40:46 -05:00
Paulo ce5d390a38 Add Gigabyte NVIDIA 5070 Ti Aero OC 2025-04-29 20:44:26 +00:00
mrubcich a2315a45ff Adding support for Redragon M810 Taipan. 2025-04-29 04:14:06 +00:00
Adam Honse a722a59288 Add Mastodon link 2025-04-26 03:43:46 -05:00
Joseph E 90508f7f1b Initial Razer Hanbo Chroma support 2025-04-23 08:07:34 -05:00
Naïm Favier dd034cbfa6 Fix suspend/resume on Linux 2025-04-22 07:45:49 -05:00
Ilya Navitsky 12d4ab4213 Add Belarusian translation 2025-04-22 00:22:24 -05:00
Paulo bb3d322048 Remove NVIDIA Gigabyte 5070 Ti Eagle OC from old protocol 2025-04-21 15:35:58 -05:00
Stephen Horvath 2c4b159901 Fix SPDDetector only scanning bus 0 on Linux 2025-04-21 14:42:22 -05:00
Paulo 9e6a2eb94c Add new controller for RGB Fusion 2 Blackwell GPUs 2025-04-21 14:16:34 -05:00
Peter Berendi 4e5fd41be7 InitializeTimerResolution fix slowdown on Windows 11, drop obsolete workaround for Windows NT 2025-04-21 10:58:47 -05:00
Adam Honse c02da4066c Add build-windows.bat file for managing the Windows builds and update CI to use it 2025-04-21 08:06:09 -05:00
Adam Honse 10797f049c Add Qt version to software information tab 2025-04-19 01:58:48 -05:00
breakNull 489d05a13f Implement MSI GeForce RTX 5090 32G SUPRIM LIQUID SOC RGB 2025-04-18 18:22:34 -05:00
totesNotRosalyn a24a497759 Fix warnings in Qt6 builds 2025-04-18 18:20:15 -05:00
alminljajic 45af044cd8 add: saphire RX 9070 PCIe ID's 2025-04-13 13:42:14 -05:00
Y M 49aafb263f Ukrainian translation added 2025-04-11 18:15:04 -05:00
r muk 6401cf1da2 Added support for the Gigabyte Aorus Master 5090 Ice GPU 2025-04-10 11:41:44 -05:00
RedBlackAka 1f6be26489 Update device types in RGBControllerAPI documentation [authored by Nathan] 2025-04-09 08:07:35 -05:00
xtreme5183 c623194948 Add Gigabyte RTX 5090 D MASTER 2025-04-06 13:48:13 +08:00
4rcheria a2330fea6a Add Wooting 80HE support 2025-04-05 13:31:26 +02:00
Oleksii Taranenko acca2baa57 Fixed Kingston Fury Beast DDR5 do not detect #4725 2025-04-04 08:26:33 +00:00
Shubham Vasaikar e856422674 Add support for ASUS ROG Astral GeForce RTX 5080 #4708 2025-04-03 17:39:21 -05:00
Zhi Yan 8088f81eff Add some DRGBController device IDs 2025-04-01 20:36:41 -05:00
RedBlackAka c5d5209154 Add Asus TUF RTX 5080 OC #4703 2025-03-31 23:03:25 -05:00
Alastair McFarlane ff392ba61d Add Gigabyte RTX 5070 Ti Eagle OC 2025-03-28 08:22:49 -05:00
Erik Olofsson 3ecd1eaaf1 Add Asus ROG Astral LC RTX 5090 OC 2025-03-27 23:24:29 +01:00
totesNotRosalyn fbf1e957a2 Initial commit for ZOTAC_GAMING_GeForce_RTX_2080_AMP 2025-03-26 16:11:02 -05:00
RedBlackAka a7de887036 Add Sapphire RX 6950 XT Nitro+ Pure and reorder #4697 2025-03-26 00:15:31 -05:00
RedBlackAka 9314bd23a2 Add Asus TUF RTX 4080S OC SPID #4688 2025-03-25 10:56:29 -05:00
toxyy 685b6c36ac Adds MSI GeForce RTX 5070 Ti 16G GAMING TRIO OC PLUS Implements #4705 2025-03-24 17:05:54 -05:00
Shauren d8b60fbc7c Add MSI GeForce RTX 5080 16G GAMING TRIO OC 2025-03-24 11:44:31 +01:00
Chris M 74446a3c67 Fixed profile loading on Asus ROG Strix Scope II
* Reverted regression introduced with b4d15b954
* Resolves #4632
2025-03-15 11:04:10 +11:00
RedBlackAka e0f40c52fe Add Asus ROG RTX 4090 White SPID #4676 2025-03-13 08:07:32 -05:00
Michal Malý 28e97cf2d9 Include missing <chrono> header 2025-03-10 22:53:42 +01:00
Michal Malý ef344506b7 Use qintptr instead of long when building against Qt6 2025-03-10 22:52:25 +01:00
berendi ce3ef333b7 call ResourceManager::Cleanup() on exit 2025-03-10 11:31:09 -05:00
Michal Malý 33ea73aac2 Add support for Sapphire Radeon RX 9070 XT Nitro+ 2025-03-10 08:32:08 -05:00
RedBlackAka a6094c26b1 Adds Asus TUF RTX 5070 Ti OC #4637 2025-03-09 23:49:46 -05:00
RedBlackAka 8175a273d0 Adds Nvidia RTX 5080 FE 2025-03-09 15:08:45 -05:00
RedBlackAka 7a3e8f7e52 Add Asus ROG Astral RTX 5090 OC #4666 2025-03-09 15:07:03 -05:00
IoXaM 9786ba8f24 Aorus 5090 Master Support 2025-03-09 03:59:26 +01:00
Adam Honse ed014ec73e Implement matrix for HYTE THICC Q60 LCD zone 2025-03-08 18:06:55 -06:00
RedBlackAka 9fb4314964 Add Asus ROG Astral RTX 5080 OC #4644 2025-03-08 15:14:15 -06:00
Alexander V 2157644ab1 Add simple fix for support hator skyfall/rockfall keyboards to winbond controller 2025-03-07 00:33:24 -06:00
Adam Honse 598066bfe4 Enable fractional scaling for Windows, fixes #2571 2025-03-06 23:10:31 -06:00
Chris M b6c08ef38e Added Asus ROG STRIX RTX3090 24GB Gaming GPU
* Added `0x87C5` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx3090-24g-gaming-model/)
2025-03-07 08:33:48 +11:00
Atome “Atom” Art f4b242328d Add Sony Playstation DualSense Edge PID 2025-03-06 13:31:51 -06:00
Adam Honse 84af91da9e Fix plugin removal issues 2025-03-06 11:36:10 -06:00
Daniil ひっかもりい (Hikkamorii) 3ce3447b65 Add support for Sapphire RX 7700XT Nitro+ 2025-03-05 09:50:46 -06:00
Aiden Vigue e91b5434fa Add MSI 5090 Gaming Trio OC to MSI GPU controller 2025-03-03 16:37:48 +00:00
RedBlackAka 3e32a5b36c Add Gigabyte Aorus RTX 4070 Elite 2025-03-01 18:24:54 +00:00
SytheZN 3226cda0ea Add Palit RTX 5090 Gamerock 2025-03-01 17:27:07 +00:00
Adam Honse 280646e231 Add ROG Ally X to ROG Ally controller 2025-02-28 21:44:52 -06:00
RedBlackAka 52b23717e3 Fixes for German translation 2025-02-26 00:43:59 +00:00
rom4ster c450d0a6ba Fix zone configuration in Mountain keyboard controller 2025-02-26 00:06:41 +00:00
Chris 3405fbb0eb Adjusted G502 detector from IPU to PU
* Adjusted Wired detector to accomodate old and new firmware.
* Resolves #4627
2025-02-25 17:25:43 +11:00
RedBlackAka 55b737c51c Add Norwegian translation 2025-02-25 06:11:48 +00:00
RedBlackAka 860a978676 Use NVIDIA_SUB_DEV instead of NVIDIA_DEV for sub vendor string 2025-02-25 06:10:46 +00:00
RedBlackAka d677f1e5e4 Remove unused help button from Windows titlebar 2025-02-25 06:09:15 +00:00
Adam Honse 6b84edb4fd Change suffix back to git after 1.0rc1 release candidate 2025-02-25 00:02:29 -06:00
Adam Honse 1fbacdea37 OpenRGB Release Candidate 1.0rc1 2025-02-22 11:06:06 -06:00
Adam Honse d3859ff200 Add prepare-artifacts script to download, extract, and rename CI jobs and other files to be published after a release 2025-02-22 03:21:36 -06:00
RedBlackAka 6091a16074 Add Palit RTX 2060 2025-02-21 16:06:03 +00:00
titoudoc b3dd0590cd Add support for Nvidia 5090 FE 2025-02-21 16:03:35 +00:00
RedBlackAka f6e17542f3 Installer: remove .orp association 2025-02-20 11:24:32 +00:00
RedBlackAka bf4f5480be Installer: remove Start Menu shortcut on uninstall 2025-02-18 19:42:02 +00:00
RedBlackAka 22f2c28a27 Add Gainward RTX 3060 8GB Pegasus 2025-02-18 18:41:05 +00:00
RedBlackAka c57d58d49b Miscellaneous cleanups 2025-02-17 15:46:33 +00:00
kmiit 75899a01a0 Add Colorful iGame GeForce RTX 4070 TI SUPER Ultra W 16GB 2025-02-17 17:22:55 +08:00
Adam Honse 015b28c7d1 Clean up build-msi.sh script and make XML generation more readable 2025-02-16 20:50:24 -06:00
Adam Honse b7c8d63505 Print out Wix XML when building MSI package for debugging 2025-02-16 19:40:51 -06:00
Adam Honse 1809c752ae Update mbedtls dependency to 3.2.1 2025-02-16 09:30:29 +00:00
RedBlackAka ce2dc2a042 Correct Spanish translation to fix build 2025-02-16 02:10:52 +00:00
Samuel Torres 8292575663 Edit OpenRGB_es_ES.ts 2025-02-16 01:49:47 +00:00
Adam Honse 0d6ae64b24 Update hueplusplus dependency to 1.2.0 2025-02-14 23:16:53 -06:00
RedBlackAka bb6f8e2ddd Consistent capitalization on Settings page 2025-02-13 13:54:27 +00:00
Topher Sheridan d1cdea47c7 Implement RGB support for Galax RTX 2080 Super 2025-02-12 20:26:16 +00:00
RedBlackAka 093ac9f37d Add Palit RTX 2070S Jetstream #4586 2025-02-12 20:25:46 +00:00
RedBlackAka f8b8da47a3 Add Palit 4080 SUPER GamingPro #4531 2025-02-11 21:39:37 +00:00
Adam Honse 14d3c68145 Fix warnings 2025-02-10 10:21:36 -06:00
Arimil 02af851705 Add ROG Strix RX EVA-02 Edition 2025-02-10 05:14:39 +00:00
Ivan ba0b44f12e Added another version of Gigabyte RTX 2070 Gaming OC 2025-02-10 05:09:43 +00:00
Valtekken 4b0110b33b Italian translation update 2025-02-09 19:30:18 +00:00
RedBlackAka 4b26a579f2 Add NVIDIA TITAN RTX 2025-02-09 07:11:55 +00:00
RedBlackAka 311712bf92 Add Palit RTX 3070 Gamerock #4593 2025-02-08 21:06:12 +00:00
RedBlackAka 9a5bff7a35 Capitalize Apply Changes and Get Hardware IDs on Supported page 2025-02-07 23:49:26 +00:00
Chris 7b72d11c97 Correcting G903 HERO wired Interface
*  Resolves #4212
2025-02-07 23:15:59 +11:00
Adam Honse 85625a37b2 SDK cleanup, update SDK documentation 2025-02-06 20:00:27 -06:00
Adam Honse e88f9a1f75 Fix resource manager interface 2025-02-06 20:00:27 -06:00
morg b3dfd3b4b0 Move ResourceManagerInterface to its own file. Refactor Plugin interface 2025-02-06 20:00:27 -06:00
Adam Honse 5e08608c56 Add controller flags to information tab 2025-02-06 20:00:27 -06:00
Adam Honse 8fbde8073d Do not save virtual or remote devices to sizes.ors 2025-02-06 20:00:27 -06:00
Adam Honse bb79fbfc07 Add controller flags field with flags for controller location and update behavior 2025-02-06 20:00:27 -06:00
Adam Honse 1967ec9526 Save sizes file when server processes segment changes 2025-02-06 20:00:27 -06:00
Adam Honse 012cb5e62d Fix segment creation and modification over the network protocol 2025-02-06 20:00:27 -06:00
Adam Honse e634a77860 Add LED alternate names field to SDK protocol 2025-02-06 20:00:27 -06:00
Adam Honse 1d9779d80e Add alternate LED name field to KLM overlay type for regional key layouts 2025-02-06 20:00:27 -06:00
Adam Honse 65615e2bcf Use string get functions in the Qt UI 2025-02-06 20:00:27 -06:00
Adam Honse 27cac898b0 Initial development for alternate LED names suppport in RGBController API
Alternate LED names allow an LED to have a secondary "alternate" name.  The led_alt_names vector should either be empty if alternate names are not used or be equal in size to the leds vector.  Empty strings in the led_alt_names vector indicate that a particular LED does not have an alternate name.
2025-02-06 20:00:27 -06:00
Adam Honse f627dfc2cd Increment plugin API version 2025-02-06 20:00:27 -06:00
Adam Honse 11d6b19cde Add protocol handling for resizable effects-only modes, increment protocol revision to 5 2025-02-06 20:00:27 -06:00
Adam Honse 032b6c6300 Resizable Effects-Only Zones 2025-02-06 20:00:27 -06:00
RedBlackAka e1a821f3c9 Minor cleanup of pci_ids.h 2025-02-06 21:04:00 +00:00
Shady Nawara aca9d27808 macOS smbus Piix4, SuperIO, and Nct6775 2025-02-06 17:20:30 +00:00
RedBlackAka 3eb14e411d Installer: remove unnecessary .0 from Wix version 2025-02-06 17:15:03 +00:00
morg 9dff3873ca Update FR translation file 2025-02-06 09:35:12 +01:00
RedBlackAka ec4973bd74 Update Japanese translation 2025-02-05 02:46:59 +00:00
RedBlackAka 6b54f62ad7 Add German translations for RM messages 2025-02-04 21:32:00 +00:00
RedBlackAka f65f486c5d Make capitalization of MR 2708 consistent 2025-02-04 20:45:43 +00:00
Kaladasas 8509f377df Add Asus ROG Poseidon Geforce GTX 1080 TI 2025-02-04 20:06:00 +00:00
Dmitry Kychanov 36889aafc1 Added Russian translations for RM messages 2025-02-04 17:12:30 +00:00
RedBlackAka 1f1ae20812 Add MSI RX 6650 XT Gaming X #4590 2025-02-04 14:03:45 +00:00
Chris 6934bbf802 Added translations for LOG messages
* Added C Macro to allow QT lupdate parsing
* Added QTtrranslation wrapper around dialog message
* Updated all translation files
2025-02-04 06:04:28 +00:00
Shady Nawara e39fafc64f Adds support for NZXT Kraken Elite 2024 2025-02-04 04:58:44 +00:00
RedBlackAka 58c609674d Update Japanese translation 2025-02-02 22:42:21 +00:00
RedBlackAka 2471511668 Remove a bunch of vanished entries from Chinese translations 2025-02-02 22:41:44 +00:00
RedBlackAka 9e0eb9f1a4 Installer: Remove InstallPath 2025-02-01 16:52:38 +00:00
RedBlackAka 18ac1aae7e Remove translation authors from titlebar 2025-01-31 00:07:51 +00:00
RedBlackAka a199464b4b Fix Japanese and Greek not being included 2025-01-30 20:02:17 +00:00
slichtzzz 7c46002ce0 Update Russian translation 2025-01-30 17:29:03 +00:00
RedBlackAka 5160ecd9ff Add Asus ROG RX 5700 OC #4578 2025-01-30 14:00:16 +00:00
RedBlackAka 08d00ffedc Installer: add InstallLocation to registry and allow downgrade 2025-01-29 02:42:51 +00:00
Dmitry K efb0dd607b Updated Russian translations 2025-01-28 17:06:53 +00:00
Adam Honse 0d16514899 Fix some copy paste string errors and capitalization in UI form titles caught during translation 2025-01-28 07:29:45 -06:00
RedBlackAka 041c7600b7 Add Asus ROG Radeon RX 480 non-OC #4287 2025-01-27 23:25:54 +00:00
Sebastian 47c6305f77 Added Initial Support for F360 RGB Fans with the NZXT RGB Controller 2025-01-27 20:56:35 +00:00
RedBlackAka f0025e817b Add Asus ROG RTX 4070 SUPER #4573 2025-01-26 08:03:01 +00:00
Chris 45d716d652 Adjusted Vendor name string
* Reverted Manufacturer string to Vendor name
* Added VendorID to log strings
* Other changes for Bash style and formatting
2025-01-25 09:53:31 +11:00
Chris M 220f1e6d1f Initial commit for Razer Huntsman V3 Pro
* Adding PID 0x02A6 for the Huntsman V3 Pro
* Added metadata to RazerDevices.cpp
* Registered detectors
* Added capabilities to RazerController.cpp
* Resolves #4477
2025-01-24 07:48:36 +11:00
enesuzun2002 1eb8ac2e19 Add Colorful iGame GeForce RTX 4070 SUPER Ultra W OC-V 2025-01-23 08:04:24 -06:00
RedBlackAka 13e496ff2f Add Gigabyte RTX 4070 Ti Eagle OC Rev 2 2025-01-23 13:22:28 +00:00
Андрей Белов 0b685dbc86 fix link 2025-01-23 01:12:58 -06:00
Mark Hermeling 7d37ec60b9 Add space for '\0'
ReceiveThreadFunction receives max 1024 bytes and then adds '\0' to it, so the buffer needs to be 1025 chars.
2025-01-23 01:12:30 -06:00
Adam Honse 27a37f65ea Fix AppImage patch 2025-01-23 00:30:30 -06:00
Adam Honse 3d62c5d452 Add StartupWMClass to .desktop, fix #4568 and icon on GNOME dock/taskbar 2025-01-22 23:52:42 -06:00
Adam Honse 8f67c22a4a Cleanup labels on Information page 2025-01-22 23:41:42 -06:00
RedBlackAka fc310dc440 Add Palit RTX 4070 Ti SUPER Gamingpro #4545 2025-01-22 19:35:23 +00:00
ericleco 43ab975ec1 Issue 4376 Adding support for SteelSeries Apex Pro Gen 3 keyboard 2025-01-22 19:01:05 +00:00
RedBlackAka 03190ff0fd Add Aorus RTX 2070 #1064 2025-01-22 13:56:21 +00:00
Dmitry K 894d792e23 Config option to limit the number of log files 2025-01-22 13:55:36 +00:00
Chris fc65a01a60 Added deterministic UUID's to allow MSI upgrade
* Adjusted UUID to ensure they are deterministic per App / Channel
2025-01-21 22:04:03 +00:00
Adam Honse 54802fdd4b Fix device type strings 2025-01-21 14:18:04 -06:00
Adam Honse 23dbabacc6 Set GIT_DEPTH to 0 to ensure tags are available 2025-01-20 18:08:44 -06:00
as3210 bc1e8c25ce A user complained his Cherry KB US-variant was not detected #4141 2025-01-20 20:29:50 +00:00
Milan Cermak 90b21fd977 Disabling of unneccessary DIMM DETECTOR is backwards. 2025-01-20 19:34:05 +01:00
Adam Honse a18ef1ad3a Prevent changing port settings on already opened serial port on Linux using advisory locks, default serial ports to flow control off 2025-01-19 18:35:01 -06:00
Adam Honse 116a031c6d Fix warning in PhilipsHueSettingsHandler.cpp 2025-01-19 01:45:10 -06:00
RedBlackAka 6ac3fae951 Capitalize theme names 2025-01-19 01:10:07 -06:00
RedBlackAka 29e384af98 Add MSI RTX 4070 Gaming X Slim White #4562 2025-01-19 04:13:42 +00:00
Peter Berendi 219b8909ed notice to install PowerShell 2025-01-18 02:43:47 +00:00
Adam Honse a04fe26014 Implement Hue Settings Handler to prevent json type conflicts that resulted in a multiply defined linker warning 2025-01-17 20:34:23 -06:00
berendi 236e67e46b improve retry algorithm in KingstonFuryDRAMControllerDetect.cpp 2025-01-17 18:59:19 +00:00
Adam Honse 8305572613 Fix overflow memset in JGINYUEInternalV2Controller.cpp 2025-01-17 11:24:22 -06:00
RedBlackAka 9ced0a9225 Clean up MSI GPU names 2025-01-17 14:51:26 +00:00
Adam Honse 51031cc1fe Try to fix git-get-branch.sh call on Windows 2025-01-17 08:12:32 -06:00
Chris M e2ddc03dfe Add rules to deploy MSI build
* Turn the deploy MSI build off for forks
2025-01-17 07:00:04 +00:00
Adam Honse 253bf9c077 Fix warnings about omitted parameter names in scsiapi_macos.c 2025-01-17 00:58:33 -06:00
Adam Honse d9d3bc2b6c Fix warning in JGINYUEInternalUSBV2Controller.h 2025-01-17 00:53:10 -06:00
Adam Honse 633662037a Fix warning in OpenRGBDialog.h 2025-01-17 00:48:27 -06:00
Adam Honse ce65818060 Fix warnings and improve robustness of scsiapi_linux.c 2025-01-17 00:27:21 -06:00
Adam Honse 815924b9ac Fix warning in LogitechProtocolCommon.cpp 2025-01-17 00:16:34 -06:00
Adam Honse b64b856dfd Fix warning in EVisionV2KeyboardController.cpp 2025-01-17 00:15:18 -06:00
Adam Honse 1b9ce719f8 Fix warning in OpenRGBDialog.cpp 2025-01-17 00:12:59 -06:00
Adam Honse f8cc8a38c7 Attempt to clean up Fedora build warnings 2025-01-16 23:58:17 -06:00
Adam Honse 8126fbc4a3 Fix warnings in net_port.cpp 2025-01-16 23:44:58 -06:00
Adam Honse 66487422ab Fix warning in RGBController.cpp 2025-01-16 23:44:58 -06:00
Adam Honse 39d7ce6a50 Fix warning in ResourceManager.cpp 2025-01-16 23:44:58 -06:00
Adam Honse 5db2c3af8c Fix warning in LogitechProtocolCommon.cpp 2025-01-16 23:44:58 -06:00
Anthony Moon e0a78f753d added H100i Elite PID and detector 2025-01-16 12:37:36 -08:00
Adam Honse f3c3a9cd44 Fix AUR version 2025-01-16 11:59:38 -06:00
Adam Honse ae248d6d32 Update versioning scheme 2025-01-16 17:51:20 +00:00
RedBlackAka 7f04d34179 Improve Windows installer header and allow upgrading 2025-01-15 03:40:52 +00:00
Adam Honse 77fd471915 Only load segments from profile if segment count differs from base controller, prevents segment duplication on devices with autogenerated segments 2025-01-14 12:34:32 -06:00
RedBlackAka 67a0f031a7 Add Asus Tuf 7800 XT OC SPID 2025-01-14 16:56:39 +00:00
Adam Honse 50f4bb5e5a Indicate that system plugins cannot be removed by changing remove button text 2025-01-14 01:40:29 -06:00
Adam Honse 17ad77f07a Don't unload/remove plugins immediately, instead require a restart to prevent unclean unload/crash 2025-01-14 00:41:32 -06:00
Adam Honse 6f55f0e0c0 Rename Windows 64 MSI CI job 2025-01-14 00:05:05 -06:00
Adam Honse 567ad09506 Check executable directory for system plugins (in plugins folder) on Windows 2025-01-13 23:53:26 -06:00
RedBlackAka b8bfd1dddc Clean up and finish Windows installer 2025-01-14 05:01:50 +00:00
Chris cc26827c57 Adding Windows 64bit MSI package to build
* Added Windows 64bit deploy stage to CI/CD
* Created deb builder to support WINE and Wix toolset
* Created build-msi.sh to create XML manifest
2025-01-14 05:01:50 +00:00
Chris 698ababc6d Added message for users submitting to Github 2025-01-13 02:24:10 +00:00
ffernn 12dd340912 Add support for EVGA 3060 Ti FTW3 Ultra Gaming LHR 2025-01-13 02:14:45 +00:00
Hepi34 44c839c116 Implement RGB support for KFA2 RTX 2070 OC 2025-01-12 01:54:15 +00:00
Adam Honse d424b1f2b4 More protocol documentation updates 2025-01-10 21:53:21 -06:00
Adam Honse ff2188ba45 Update SDK Documentation, fix plugin protocol version type in NetworkServer 2025-01-10 11:59:53 -06:00
llyyr 1c42cdc928 Added ROG RX6600XT O8G Gaming 2025-01-10 14:05:09 +00:00
morg 3e1a0ff5a3 Prevent crashing when removing the last plugin in the list 2025-01-10 10:56:25 +01:00
morg 59e303c882 Add missing tags in logs 2025-01-10 08:53:31 +01:00
thombo f8e04f5f0f Support for MSI board 7D33 added, configuration of 7D89 corrected 2025-01-09 21:42:02 +01:00
Adam Honse 1cc41bb4cd Clean up README.md 2025-01-09 11:48:26 -06:00
Chris 990f89b94f Turn off translation for SDK and API version
* Revert 6ff4919d with better fix
* Resolves #4538
2025-01-09 18:23:59 +11:00
Adam Honse 648c0fce92 Get rid of old early prototype OpenRGBDialog, rename OpenRGBDialog2 to OpenRGBDialog 2025-01-08 23:31:34 -06:00
Barry H 014ae33f0b Chinese Traditional translation updated for v1.0 2025-01-09 03:43:21 +00:00
Adam Honse d8d7c37cf1 Fix SDK/Plugin version not displaying correctly 2025-01-08 21:03:09 -06:00
Adam Honse 471f9d3e2e Add server option to disable the size check called legacy workaround, which can be enabled to allow some old SDK apps that didn't properly implement the size to still be used 2025-01-08 20:44:20 -06:00
Chris M 3117dd0885 Added Bloody W90 Pro Mouse
* Added new PID and usage to A4Tech_Detector
* Added PID to layout switch in RGBController_BloodyMouse
* Resolves #4466
2025-01-09 02:27:33 +00:00
RedBlackAka 034a8858c5 Further improvements and fixes for German translation 2025-01-08 22:22:33 +00:00
morg 309d25e047 Remove useless ResourceManager include 2025-01-08 11:10:38 -06:00
morg accdcf1bea Move some last second code to the about to quit signal. 2025-01-08 16:54:21 +00:00
Barry H 3336817c9a Chinese Simplified translation updated for v1.0 2025-01-08 16:51:24 +00:00
RedBlackAka e570ae2b3f Update German translation for 1.0 2025-01-08 14:21:06 +00:00
Dmitry Kychanov b30992bf28 Russian translation updated for v1.0 2025-01-08 02:10:58 +00:00
Chris M 6ff4919d75 Moved Software Info API values to ensure translation
* Resolves #4538
2025-01-08 02:10:11 +00:00
Dmitry Kychanov 210f7c4993 Last minute fixes for ASUS G18 layout & Direct mode brightness 2025-01-08 03:26:51 +04:00
Dmitry K d1f90e134f [Review needed] Fix Rescan Crash on MacOS 2025-01-07 19:44:21 +00:00
RedBlackAka 20ae2d3662 Clean up Gigabyte GPU detectors 2025-01-06 22:07:38 +00:00
morg d2a9fb7c3c Refresh plugin list after a plugins scan. Fixes #4505 2025-01-06 15:16:57 +01:00
RedBlackAka c91e1dcdd9 Add fullscreen mode toggleable with F11 2025-01-05 22:48:31 +00:00
Alexey Sokolov b2ea4212fd Use a common way to check for Qt6 instead of introducing UB 2025-01-05 22:46:12 +00:00
RedBlackAka 49036313d0 Add Zotac 3080 AMP Holo non-LHR and minor cleanup 2025-01-05 22:44:58 +00:00
Barry H 8142fade24 Added ROG RX6650XT O8G Gaming from #3977 & TUF RX7600XT O16G Gaming 2025-01-05 22:43:21 +00:00
Adam Honse 02db89f7fc Add settings option to enable/disable logging to file, default to enabled 2025-01-05 16:32:32 -06:00
Chris M 7b454ce5f4 Preliminary support for Logitech FP8071
* Updated detection for differences in FP8071
2025-01-03 16:12:49 +11:00
Milan Cermak 366adce39e Patriot Controllers to use DIMM_DETECTOR 2025-01-02 19:18:37 -06:00
RedBlackAka 3546788c44 Add RTX 2060, 2060S & 2070 FE support 2025-01-02 17:20:27 +00:00
RedBlackAka 427e9d0209 Add Asus ROG RTX 2060 6G #4509 2025-01-02 14:26:55 +00:00
Chris M 8d8199a6b3 Initial commit for Razer Huntsman V3 Pro TKL White
* Adding PID 0x02A7 for the Huntsman V3 Pro TKL White
* Added metadata to RazerDevices.cpp
* Registered detectors
* Added capabilities to RazerController.cpp
* Resolves #4418
2025-01-01 10:41:03 +11:00
nicolasyang c3e352d252 Initial commit for Gigabyte Radeon RX 7800 XT GAMING OC 16G 2024-12-29 19:04:20 +00:00
Andrew Velasquez 510528ed7b Add ASUS_ROG_STRIX_RTX_4060_O8G_GAMING to pci_ids.h Tested and works. 2024-12-29 19:03:02 +00:00
Will db19bcd712 Set Skyloong GK104 Pro maximum brightness to OEM maximum 2024-12-27 07:42:28 +00:00
RedBlackAka 914cf1b3ff Clean up names of several devices 2024-12-27 07:41:33 +00:00
RedBlackAka 7085106b45 Attempt to fix dark theme on macOS 2024-12-23 07:36:17 +00:00
Milan Čermák a2867e151d HyperX controller to use DIMM_DETECTOR 2024-12-23 07:26:58 +00:00
Adam Honse 560ff5ab33 Clean up SPDAccessor, split out classes into their own files, add comments, update coding style 2024-12-21 22:21:41 +00:00
Frans Meulenbroeks 38732a8fb4 Add Controller for CoolerMaster MM712 Mouse 2024-12-20 17:41:39 +00:00
Chris M 2652e92461 Initial commit for Razer Firefly V2 Pro
+ Adding PID `0x0C08` for the Firefly V2 Pro
+ Added metadata to RazerDevices.cpp
+ Registered detectors
+ Added capabilities to RazerController.cpp
+ Resolves #4239
2024-12-20 15:00:45 +11:00
thomisus f1965b4650 Added Razer Basilisk V3 35K and V3 Pro 35K 2024-12-19 21:52:01 +00:00
Peter Berendi 2a9b7c8115 fix Kingston Fury DDR5 detection (#4479) 2024-12-19 14:32:40 +00:00
RedBlackAka 1bfd0fbd1f Add additional PCIE ID for ROG 2060S #4469 2024-12-13 21:53:43 +00:00
RedBlackAka ac9f5bed50 Initial commit for Nvidia RTX 2080 Ti FE 2024-12-13 21:52:55 +00:00
Yunus Arkan c2215cbe11 Adding support for EVision keyboard named "Gamepower ogre rgb" 2024-12-12 06:12:34 +00:00
TheMasterofBlubb 241b977904 Added alternative Pid for EVGA Z20 2024-12-12 06:11:45 +00:00
Milan Čermák ae94ce1252 Fix null pointer dereference in SPD 2024-12-10 14:37:42 +00:00
Adam Kaczinski 48f0084a9f adding fix for crash when using effects with kasa devices 2024-12-04 17:46:42 -08:00
Milan Čermák b1d5e83adc Implement common DRAM SPD module with EE1004 and SPD5118 driver support to support detecting DRAM modules using SPD information. 2024-12-04 20:41:52 +00:00
Adam Honse 3d171c222b Fix HYTE THICC Q60 2024-12-02 19:15:16 -06:00
Fabian R fe240190b3 Major fixes and improvements for CoolerMaster ARGB Gen2 A1 V2 2024-11-30 10:08:37 +00:00
Chris M 82b56e3de7 Fix broken README links
* Resolves #4415
2024-11-29 08:05:10 +11:00
morg 9d229e2a0c Prevent non AMD devices to be registered from i2c_smbus_amdadl 2024-11-28 08:11:49 +01:00
Dmitry Kychanov 89e74e6268 Added 4070 Ti per Discord request from Sayanov 2024-11-27 20:33:56 +04:00
Cooper Hall 47f391a3a6 Initial Commit for Lenovo Legion 7 gen 9 2024-11-27 03:30:00 +00:00
Adam Honse 80ac9b3f0d Initial commit for HYTE Nexus controller 2024-11-26 21:12:33 +00:00
Zach Deibert bd3cc94212 Add support for loading profiles on suspend/resume 2024-11-26 20:07:28 +00:00
Adam Honse 7d96b27f28 Fix warning in OpenRGBDialog2.cpp 2024-11-26 02:34:34 -06:00
Adam Honse a8cbf4f52f Fix warnings in OpenRGBDevicePage.cpp 2024-11-26 02:33:30 -06:00
Adam Honse f1948dc3a6 Fix warnings in OpenRGBPluginsPage.cpp 2024-11-26 02:31:39 -06:00
Adam Honse 75bebb0a4b Fix warnings in scsiapi_windows.c 2024-11-26 02:30:23 -06:00
Adam Honse 9afc7285b5 Fix warnings in ResourceManager.cpp 2024-11-26 02:28:29 -06:00
Adam Honse 1586812112 Fix warnings in RGBController.cpp 2024-11-26 02:28:19 -06:00
Adam Honse cbfb8afa0c Fix warning in PluginManager.cpp 2024-11-26 02:06:40 -06:00
Adam Honse 9dafb5cb7f Fix warnings in KeyboardLayoutManager.cpp 2024-11-26 02:06:05 -06:00
Adam Honse 4df90b1b96 Fix warnings in ResourceManager.cpp 2024-11-26 02:00:36 -06:00
Adam Honse f1da4a3b2f Fix warning in RGBController.cpp 2024-11-26 01:57:01 -06:00
Adam Honse 39c968ff2a Fix some warnings in NetworkServer.cpp 2024-11-26 01:55:35 -06:00
Adam Honse b0c3856ab4 Fix warnings in ProfileManager.cpp 2024-11-26 00:38:56 -06:00
Adam Honse 9d3956c168 Fix warnings in NetworkClient.cpp 2024-11-26 00:37:30 -06:00
Adam Honse d0397bc23a Fix warning in cli.cpp 2024-11-26 00:34:56 -06:00
Adam Honse 7eb83f1a60 Fix warnings in Thermaltake Riing controllers 2024-11-26 00:34:16 -06:00
Adam Honse b4ee1f0fb8 Fix warnings in QMK OpenRGB controller 2024-11-26 00:32:10 -06:00
Adam Honse ac802b1aa8 Fix warnings in ASUS Aura Core laptop controller 2024-11-25 23:43:13 -06:00
Adam Honse 51e38ade01 Fix warnings in Mintaka keyboard controller 2024-11-25 23:37:17 -06:00
Adam Honse b213d3f37c Fix warnings in RGBController_Luxafor.cpp 2024-11-25 19:49:28 -06:00
Adam Honse b0ba64f178 Fix warnings in JGINYUE V2 controller 2024-11-25 19:48:01 -06:00
Adam Honse 69512cbf70 Fix warning in RGBController_HYTEKeyboard.cpp 2024-11-25 19:44:39 -06:00
Adam Honse b7a3de0f10 Fix warnings in RGBController_Luxafor.cpp 2024-11-25 18:43:09 -06:00
Adam Honse 540f785e90 Fix warnings and code cleanup in RGBController_JGINYUEInternalUSBV2.cpp 2024-11-25 18:42:08 -06:00
Adam Honse 01d9655781 Fix warnings in RGBController_HYTEKeyboard.cpp 2024-11-25 18:36:52 -06:00
Fotis Papadopoulos 224d75e0e8 PNY RTX 3080Ti Revel Epic-X 2024-11-17 20:39:13 +00:00
Chris b68dacec62 Setting Linux & Windows amd64 builds to compile on MR 2024-11-16 17:46:51 +11:00
morg f45e61d651 Add support for Sapphire 6950XT TOXIC 2024-11-14 23:40:01 +01:00
Adam Honse c734e6f929 Fix merge request pipeline again 2024-11-13 20:02:48 -06:00
Chris 0539e3faeb Switching Linux & Windows amd64 builds back to auto
* Created .default_rules reference
* Renamed "Linux amd64 AppImage" build to "Linux amd64 AppImage Base"
then extended "Linux amd64 AppImage" to automate local runners
* Renamed "Windows 64" to "Windows 64 Base" and extended "Windows 64"
to automate local runners
2024-11-14 11:50:35 +11:00
morg 43021f9a15 Add support for Turtle Beach - Vulcan TKL. Closes #4419 2024-11-13 16:25:57 +00:00
Sam B e81e294479 Add Riing Trio Controller support 2024-11-12 20:33:33 +00:00
Adam Honse 378f0af781 Try to fix merge request CI not having amd64 AppImage or Windows 64 builds 2024-11-11 21:18:43 -06:00
Milan Cermak 8eba52ec30 Controller registered but no device found 2024-11-11 01:45:37 +00:00
Vasily Galkin 777725c083 Reenable forks and their MRs ability to run pipelines on gitlab.com runners 2024-11-10 22:33:24 +00:00
Adam Honse 5b7cdf786b Allow switching format for hex color code entry box between RGB (HTML) and BGR (RGBColor) 2024-11-10 16:23:57 -06:00
Mark Li 330f6d6014 Add support for Cooler Master ARGB Gen2 A1 Mini 2024-11-10 06:42:57 +00:00
Marius Alexandersen 7a69aef99b Add Arrow Lake SMBus Support 2024-11-10 00:40:45 +01:00
Adam Honse 9e5bbc7598 Initial HYTE Keyboard controller 2024-11-08 14:55:37 +00:00
Lobo Tommy 986b21e02b Adding Turtle Beach Vulcan II support 2024-11-07 14:45:14 +00:00
JoshTripleH 2a8fdc486b Fix get location to avoid detection issues after relaunch 2024-11-05 01:04:22 +00:00
Thomas Ricci fa6a516543 Add new G733 hardware ID 2024-11-03 07:57:21 +00:00
rom4ster d627c91a4a Added Reactive Mode For Aerox 9 in General Aerox Controller And Deleted Old Controller 2024-11-02 23:00:49 +00:00
morg 1368f83d77 Adds a setting for automatically showing LED view 2024-11-02 17:34:28 +00:00
morg ab7e281c1c Adds a few checks before trying to init a serial device. Closes #2247 2024-11-02 17:32:17 +00:00
Chris M fc3e95e16a Fix regression in Linux DMIinfo
* Reversed Linux Name and Vendor paths to align with declarations
2024-10-31 19:32:56 +11:00
Chris M a61703da50 Initial commit for the G533ZW Aura Laptop
* Added new device layout to AsusAuraCoreLaptopDevices.cpp
* Resolves #4353
2024-10-31 05:15:12 +00:00
Chris M da13a0b3fe Add missing include for Mountain Keyboard Controller
* Missing <cstring> include required by memset
2024-10-31 11:46:29 +11:00
morg 8b9f128881 Nanoleaf: Check for connection error before accessing status/body. Closes #4390 2024-10-30 23:14:40 +00:00
rom4ster 43bd3774e8 Add Knob color support to mountain keyboard 2024-10-30 23:13:26 +00:00
Tiago Gomes b138405740 Add support for Omen 45L front fans, off mode and Wave and Radial effects 2024-10-30 16:09:49 +00:00
Adam Honse c45e743d87 Fix bad log call in dmiinfo trying to directly print std::string instead of c_str 2024-10-29 20:01:49 -05:00
Joe Petrakovich 5cfa0668b9 Add support for NZXT RGB & Fan Controller (New NZXT H9 Elite Model) 2024-10-30 00:47:44 +00:00
JAO1988 69f03e0e24 Update ThermaltakeRiingControllerDetect.cpp for additional controllers. 2024-10-30 00:46:56 +00:00
thombo 4d4dc7aaee Config of MSI board 7D98 corrected 2024-10-30 00:40:47 +00:00
Chris M 2e199593e9 Adding product name to DMI data class 2024-10-30 07:58:11 +11:00
gregorein 8565a3ddee feat: added new Asus PID (x670e motherboards) 2024-10-28 01:48:47 +00:00
Björn Bidar 24fc6bd749 Optionally support system libe131
Can be enabled by calling qmake with CONFIG+=system_libe131.
Includes comments for general structure to handle in-tree
vs. out-of-tree dependencies.

Handles only systems who use pkgconfig.
2024-10-26 21:17:23 +00:00
morg 90a0e5fac7 Add support for AORUS GeForce RTX™ 4070 Ti MASTER 12G. Closes #4323 2024-10-26 21:16:08 +00:00
Filip Krakowski a3ca22e6a1 spd5118 kernel driver conflicts with Kingston Fury DRAM 2024-10-26 19:13:34 +00:00
mike fc3116e596 DasKeyboard: Update detection of US keyboard, and minor change to keyboard layout. 2024-10-26 19:11:21 +00:00
Chris 19a69f4139 Corrected HIDAPI include for the Mintaka KB Controller
* Compile error on Windows introduced in d7e467a3
2024-10-22 16:58:37 +11:00
Julien "_FrnchFrgg_" Rivaud bdfd2a3290 Add support for Turtle Beach (ex ROCCAT) Vulkan II 2024-10-20 19:57:22 +00:00
Federico Scodelaro d7e467a37f Add VSG Mintaka keyboard 2024-10-20 19:56:31 +00:00
SU wuyi 7dcdef28c8 Initial commit for adding support to JGINYUE Motherboard Controller V2 2024-10-20 19:54:04 +00:00
Dmitry Kychanov 300abac9a8 Removed unused includes 2024-10-15 00:24:32 +00:00
Alexey Sokolov b3b9ebb3b7 Fix OPENRGB_SYSTEM_PLUGIN_DIRECTORY 2024-10-15 00:22:20 +00:00
Milan Čermák d5ef41bb80 Improve Kingston Fury detection 2024-10-09 02:34:08 +00:00
Arthas Lich f802547e7b Add Colorful iGame GeForce RTX 4070 SUPER Ultra W OC 12GB 2024-10-08 15:52:36 +00:00
Dmitry Kychanov a7cdbb3844 Fix --profile 2024-10-06 00:46:51 +04:00
Dmitry Kychanov b171906162 Fixed server 2024-10-05 02:47:02 +04:00
Adam Honse 98eab49e99 Change HyperX Microphone Controller zone type to single 2024-10-01 20:06:07 -05:00
BestPig e53e903b5e Add Gigabyte RTX 4070 SUPER Aero OC 16GB 2024-09-29 20:52:37 +02:00
Adam Honse 8a36717842 Remove LogManager dependency from NetworkClient.cpp
NetworkClient/Server code should have minimal internal dependencies as it is intended to be includable in external applications, pulling in only the absolutely necessary files so that it may be used in third party SDK applications.  LogManager is not a necessary dependency.
2024-09-27 11:25:55 -05:00
Dmitry Kychanov d612b8b8de Network shutdown optimization 2024-09-27 16:15:14 +00:00
Dmitry K 2c952a54d2 Loading optimization (no GUI changes) 2024-09-26 22:20:48 +00:00
Dmitry K 7e96e0efa5 Added Asus TUF Gaming M3 Gen II 2024-09-22 23:54:18 +00:00
Mark c4384f2a47 Add Palit RTX 4060 Dual support 2024-09-22 23:52:08 +00:00
Ojas Sinha 98b2c20d54 Add Gigabyte RTX 4070 SUPER Eagle OC ICE 12GB 2024-09-22 23:50:54 +00:00
Chris M ac8158ba9c Added MSI RTX4070Ti Super 16G Gaming X Slim White GPU
* Added `0xE13E` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-Ti-SUPER-16G-GAMING-X-SLIM-WHITE/Specification)
* Resolves #4329
2024-09-18 07:07:16 +10:00
Chris M d45d2bf7fc Corrected KLM layout for Blackwidow V4 1532:0287
* Resolves #4313
2024-09-15 19:07:50 +00:00
Vasily Galkin 175ebb61de Add alternative IDs to better detect already-supported Aorus GPUs 2024-09-15 19:06:03 +00:00
Mut Ze 8c642ac923 Add support for iGame 4070 Ti SUPER Advaned OC (AD102 version) 2024-09-14 19:09:39 +00:00
thombo 8248509377 Support for MSI boards 7D93 and 7E24 added 2024-09-14 19:05:34 +00:00
Oleh Polisan 77dbb4becf docs: add PiLED to apps, supporting ORGB SDK 2024-09-14 00:34:54 +00:00
Ensar Sarajčić 8c874181c0 Reuse Aerox3Wireless for other Aerox wireless mice 2024-09-13 16:44:25 +00:00
Ensar Sarajčić c84932df46 Add Aerox 3 wireless 2024-09-11 16:42:11 +00:00
LikMaiDong69 1342adefe4 Resolves Issue #4270: Added MSI 4080 SUPER Gaming X Trio 2024-09-11 16:39:50 +00:00
Dmitry K cc21027db2 Asus G17 Direct mode fix (with extra tight matrix map) 2024-09-08 00:14:24 +00:00
Adam Honse bf630245d0 Initial commit for Dream Cheeky Webmail Notifier 2024-09-06 23:42:47 -05:00
Adam Honse 062ecf69f0 Add luxafor-python to projectrs researched 2024-09-06 11:27:42 -05:00
Dimitri Marques bb5d93ddf6 ✨ - Add support for Dell G15 5530 RGB keyboard (RTX 4050) 2024-09-06 10:19:45 -03:00
Dmitry Kychanov e565120d29 Added ASUS ROG Strix G18 (G814JV) + Light Bar behavior fixes 2024-09-06 10:51:15 +04:00
Chris M e0cffcfb3a Migrated Asus Aura Core Laptop controller to the KLM
* Added AsusAuraCoreLaptopDevices to record device metadata.
* Adjusted AsusAuraCoreLaptopDevices to allow KLM layouts per zone
* Modified RGBController_AsusAuraCoreLaptop to use KLM layouts.
* Adjust AsusAuraCoreLaptopController to align with new data model
* Other code changes to accomodate
2024-09-06 04:36:06 +00:00
Adam Honse f115d2cbd9 Add Luxafor pattern modes 2024-09-05 22:59:20 -05:00
Adam Honse ae826f2fd0 Initial commit of Luxafor Flag controller, only supports direct mode for now 2024-09-05 22:18:24 -05:00
Chris M a675825224 Initial commit for Corsair K70 PRO V2 keyboard
* Added metadata to CorsairPeripheralV2Devices
* Added detector in CorsairPeripheralV2ControllerDetect.cpp
* Resolves #3912
2024-09-04 17:56:10 +10:00
Chris M 6d00a7fb23 Added media keys to K70 RGB Pro
* Added limit for packet size in CorsairPeripheralV2Controller
* Resolves #3862
2024-09-04 17:43:14 +10:00
Chris 4a74103e70 Revert hidraw version check
* `packagesExist(hidapi-hidraw>=0.10.1)` is not a valid qmake version test
2024-09-03 18:19:34 +10:00
Chris M 4fcf0d01a2 Fixed small typo in EKController import 2024-09-03 13:14:10 +10:00
Chris 67def7465c Initial commit for Corsair K70 Core keyboard
* Added metadata to CorsairPeripheralV2Devices
* Added detector in CorsairPeripheralV2ControllerDetect.cpp
* Resolves #4103
2024-09-02 21:29:44 +10:00
Maksims K 8fa92a0789 Fix bug in AsusAuraMainboardController.cpp where effect channel wasn't being incremented. Fixes #4114. 2024-09-01 16:30:56 +00:00
shafiahaz2478 406350f5f5 added ant esports GM600 mouse 2024-08-30 19:26:19 +00:00
Adam Honse 11bdaaa2fc Fix AOC GK500 mapping broken by changing KLM base layout from ANSI to Default (English ANSI + English ISO combined map). Rename the 'ansi' field to reflect that this is no longer an ANSI map. 2024-08-29 00:09:03 -05:00
Chris M c23bbbd32a Added Bloody W70 Max Mouse
* Added new PID and usage to A4Tech_Detector
* Added PID to layout switch in RGBController_BloodyMouse
* Resolves #4296
2024-08-29 09:51:29 +10:00
morg a6df80f87e Crash fix for linux nvapi 2024-08-28 13:57:18 +00:00
Tam D f2c99f22a8 fix #4292 sk620 support 2024-08-28 03:44:28 +00:00
Adam Honse 511c266178 Add u16string to string conversion function for CMKeyboardV2Controller.cpp 2024-08-25 20:49:31 -05:00
Chris c6fe58e635 Revert 8bf07f49 "Fix wstring to string conversion warning in CMKeyboardV2Controller.cpp"
* Linux throws a SIGABRT
2024-08-26 01:26:43 +00:00
Adam Honse 641c917605 Add Gigabyte RTX 4070Ti Eagle OC 12GB 2024-08-25 17:20:03 -05:00
verglor ea7f86b32a Fix indentation of device list in NVIDIAIlluminationControllerDetect_Windows_Linux.cpp 2024-08-23 18:40:01 +00:00
verglor 4b2781404a [New Device] Gainward GeForce RTX 4070 Ghost (OC) #3614 2024-08-23 18:40:01 +00:00
Tam Do d86f59cf17 add sk620 2024-08-23 11:15:19 -05:00
Adam Honse 3a1dd871ff Fix serial string containing invalid characters in Razer Kraken controller 2024-08-22 23:18:03 -05:00
liberodark c4ecf3ebcd Add Skillkorp K5 2024-08-20 13:08:12 +02:00
Adam Honse 428355761e Fix unrecognized escape sequence warning in i2c_smbus_piix4.cpp 2024-08-17 01:24:37 -05:00
Adam Honse a18211cc57 Fix unrecognized escape sequence and possible loss of data warnings in i2c_smbus_i801.cpp 2024-08-17 01:23:50 -05:00
Adam Honse 9caa009eb3 Fix unreferenced parameter warning in nvapi.cpp 2024-08-17 01:13:28 -05:00
Adam Honse 38818f7d88 Fix unreferenced local variable warning in OpenRGBNanoleafSettingsEntry.cpp 2024-08-17 01:02:54 -05:00
Adam Honse 20e4d18cb4 Fix unreferenced parameter warning in i2c_smbus_piix4.cpp 2024-08-17 00:54:20 -05:00
Adam Honse 62b6e7175f Fix unreferenced variable and parameter warnings in i2c_smbus_nct6775.cpp 2024-08-17 00:53:01 -05:00
Adam Honse cffac6c255 Fix unreferenced variable and parameter warnings in i2c_smbus_i801.cpp 2024-08-17 00:51:03 -05:00
Adam Honse 66a1496f18 Fix unreferenced parameter warning in i2c_smbus_amdadl.cpp 2024-08-17 00:46:33 -05:00
Adam Honse 7f90c69eb0 Fix warnings in scsiapi_windows.c 2024-08-17 00:29:25 -05:00
Adam Honse 1b26908104 Fix unreferenced local variable warning in i2c_smbus_nvapi.cpp 2024-08-17 00:25:30 -05:00
Adam Honse c1149da754 Fix possible loss of data warnings in NetworkServer.cpp 2024-08-17 00:24:18 -05:00
Adam Honse bb1ae9cf2e Fix possible loss of data warning in i2c_smbus.cpp 2024-08-17 00:22:53 -05:00
Adam Honse 8cbdb0a236 Fix warnings in ResourceManager.cpp 2024-08-17 00:15:17 -05:00
Adam Honse 6c729ff60f Fix possible loss of data warnings in RGBController.cpp 2024-08-16 23:54:14 -05:00
Adam Honse 9281f8ed5c Fix possible loss of data warnings in ProfileManager.cpp 2024-08-16 23:48:37 -05:00
Chris M d6cac9cb27 Added Asus ROG STRIX RTX4070Ti 12GB Gaming GPU
* Added `0x88A6` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4070ti-12g-gaming-model/)
* Resolves #4280
2024-08-17 10:29:13 +10:00
Adam Honse 0743bc49b3 Fix possible loss of data warning in RGBController_ThermaltakeRiingQuad.cpp 2024-08-16 11:31:51 -05:00
Adam Honse 1e3b6cae47 Fix possible loss of data warning in RGBController_ThermaltakeRiing.cpp 2024-08-16 11:30:37 -05:00
Adam Honse 5f1b3ba939 Fix type issue in SteelSeriesSenseiController.cpp 2024-08-16 11:09:57 -05:00
Adam Honse 8bf07f490e Fix wstring to string conversion warning in CMKeyboardV2Controller.cpp 2024-08-16 11:09:17 -05:00
qq b45b24b922 New Evision based keyboard 2024-08-15 20:57:43 +00:00
Adam Honse d554a18e8a Fix issues 2024-08-15 11:46:21 -05:00
Adam Honse 14f65a5728 Fix type conflicts and truncation warnings in SteelSeriesSiberiaController.cpp 2024-08-15 11:37:17 -05:00
Adam Honse 67b5803e63 Fix type conflicts and truncation warnings in SteelSeriesSenseiController.cpp 2024-08-15 11:35:39 -05:00
Adam Honse 2054cb566d Fix type conflicts and truncation warnings in SteelSeriesRivalController.cpp 2024-08-15 11:33:33 -05:00
Chris d3f30f3dc8 Added TU104 variant of Gigabyte RTX2060 8GB Gaming OC GPU
* Registered detector in GigabyteRGBFusionGPUControllerDetect.cpp
2024-08-15 18:34:22 +10:00
Adam Honse 6e66c6ff5e Fix possible loss of data warning in SteelSeriesApexTZoneController.cpp 2024-08-13 19:50:49 -05:00
Adam Honse 52a7412918 Fix possible loss of data warning in RoccatKoneAimoController.cpp 2024-08-13 19:49:53 -05:00
Adam Honse b88107664a Fix possible loss of data warnings in RGBController_RoccatKoneAimo.cpp 2024-08-13 19:49:01 -05:00
Adam Honse 83150696bf Fix possible loss of data warning in RGBController_RedSquareKeyroxTKLClassic.cpp 2024-08-13 19:45:34 -05:00
Adam Honse 15f7ba8b12 Fix possible loss of data warning in RGBController_Razer.cpp 2024-08-13 19:44:38 -05:00
Adam Honse fed58b3dc1 Fix possible loss of data warning in RGBController_MSIMysticLight64.cpp 2024-08-13 19:43:22 -05:00
Adam Honse 448e019702 Fix possible loss of data warning in RGBController_LogitechLightspeed.cpp 2024-08-13 19:42:10 -05:00
Adam Honse c7b6d18832 Fix possible loss of data warnings in RGBController_MSIGPU.cpp 2024-08-13 19:39:00 -05:00
Adam Honse 243ce886e1 Remove OpenRGB kernel patch 2024-08-13 19:34:54 -05:00
Chris M 31b752feed Avoid double free in SinowealthController destructor
* Non USE_HID_USAGE code path needs to avoid closing device twice
2024-08-14 00:07:55 +00:00
Thomas Boos dd91984b70 MSI boards added and some configs corrected 2024-08-14 00:06:58 +00:00
Chris M bd9b41e544 Removed redundant hid_close(dev) from inherited class
* Resolves #4274
2024-08-13 13:23:46 +00:00
crashniels 26e0cc545e Add support for the Wooting UwU RGB 2024-08-11 17:24:20 +02:00
LER0ever 27128373e2 Add Linux support for NVIDIA Founders Edition GPU Illumination Control 2024-08-09 06:07:19 +00:00
Adam Honse d778d470b1 Allow multiple operating systems to be specified in filename, i.e. _Windows_Linux.cpp 2024-08-09 00:16:52 -05:00
Adam Honse c35fd68c99 Fix possible loss of data warnings in SRGBmods controllers 2024-08-08 21:13:21 -05:00
Adam Honse 37a702416f Fix possible loss of data warnings in RoccatVulcanKeyboardController.cpp 2024-08-08 21:10:07 -05:00
Adam Honse 5a12e77b19 Fix possible loss of data warnings in RazerController.cpp 2024-08-08 21:06:31 -05:00
Adam Honse 2f3017fdfc Fix another possible loss of data warning in QMK controllers 2024-08-08 21:05:14 -05:00
Adam Honse e8bf3c35dc Fix type issues in QMK controllers 2024-08-08 20:54:20 -05:00
Adam Honse fb2b0aa8e1 Fix possible loss of data warning in RGBController_LogitechLightspeed.cpp 2024-08-08 20:32:35 -05:00
James Buren ffeaa033bc Fix output truncation warning in RazerController.cpp 2024-08-08 20:43:54 +00:00
James Buren e10b05654b Fix implicit fallthrough warning for RGBController_KingstonFuryDRAM.cpp 2024-08-08 11:29:17 -05:00
Adam Honse c6e315ff2a Fix wstring to string conversion warning in WootingTwoKeyboardController.cpp 2024-08-07 22:04:51 -05:00
Adam Honse 68709e91f9 Fix wstring to string conversion warning in WootingOneKeyboardController.cpp 2024-08-07 22:04:41 -05:00
Adam Honse 47af83e194 Fix wstring to string conversion warning in ThermaltakeRiingQuadController.cpp 2024-08-07 22:04:31 -05:00
Adam Honse 91e8fade99 Fix wstring to string conversion warning in RoccatKoneAimoController.cpp 2024-08-07 22:04:22 -05:00
Adam Honse c38e011924 Fix wstring to string conversion warning in LogitechLightspeedController.cpp 2024-08-07 22:04:11 -05:00
Adam Honse e84a9b5327 Fix wstring to string conversion warning in MSIMysticLight64Controller.cpp 2024-08-07 22:04:04 -05:00
Adam Honse 5ebd95b72a Fix wstring to string conversion warning in MSIMysticLight185Controller.cpp 2024-08-07 22:03:56 -05:00
Adam Honse e7d10a8582 Fix wstring to string conversion warning in MSIMysticLight162Controller.cpp 2024-08-07 22:03:49 -05:00
Adam Honse 8a272c07b7 Fix wstring to string conversion warning in MSIMysticLight112Controller.cpp 2024-08-07 22:03:38 -05:00
Adam Honse 445c8eade1 Fix signed/unsigned mismatch warning in RGBController_LogitechG915.cpp 2024-08-07 22:03:31 -05:00
Adam Honse da0f93e8b5 Fix truncation warning in LogitechG915Controller.cpp 2024-08-07 22:03:24 -05:00
Adam Honse 29c77edd37 Fix signed/unsigned mismatch warning in RGBController_LogitechG815.cpp 2024-08-07 22:03:17 -05:00
Adam Honse dae9cd2c3a Fix type in pair warning in RGBController_LenovoUSB.cpp 2024-08-07 22:03:10 -05:00
Adam Honse d8de91255f Remove unneeded argument for i386 build 2024-08-06 23:22:57 -05:00
Adam Honse ee9e1fbd2a Add -Wno-psabi to CXXFLAGS to silence armhf-specific ABI change warnings 2024-08-06 21:51:37 -05:00
Adam Honse d03701c58d Initial support for system-installed plugins in Linux 2024-08-06 18:22:17 -05:00
Adam Honse 806ababa05 Add Arch include and library paths for mbedtls2 library 2024-08-06 18:00:26 -05:00
liberodark 800c439431 Add MSI 7D98 2024-08-06 21:15:31 +02:00
Pieter Steyn cfd62f2b0f Add PID for Apex PRO TKL 2023. 2024-08-06 16:08:28 +00:00
Adam Honse d834b18a16 Don't include _Linux files in MacOS build, add support for _MacOS files 2024-08-05 23:17:35 -05:00
James Buren 698ae9debc Update display-library dependency to 17.1 2024-08-05 20:16:14 -05:00
James Buren 3da13705af Update hidapi dependency to 0.14.0 2024-08-05 15:07:10 -05:00
James Buren 5bcc105cd9 Update hueplusplus dependency to 1.1.0 2024-08-05 19:57:51 +00:00
James Buren 4aac04280c Update httplib dependency to 0.16.0 2024-08-05 19:56:39 +00:00
James Buren 2e64a82caa Update libe131 dependency to latest development release 2024-08-05 13:48:09 -05:00
James Buren 6157668057 Update mdns dependency to latest development release 2024-08-05 13:40:34 -05:00
James Buren 4bae567c4c Update json dependency to 3.11.3 2024-08-05 12:59:20 -05:00
James Buren 1e9e790c71 Update CRCpp dependency to 1.2.0.0 2024-08-05 12:30:07 -05:00
诺诺 4bc14630e9 Fix a bug in Nollie1 2024-08-05 16:21:04 +00:00
James Buren b398dcdcf9 Update mbedtls dependency to 2.28.8 2024-08-05 01:05:37 -05:00
James Buren bdad1df3d7 Update libusb dependency to 1.0.27 2024-08-04 23:40:28 -05:00
James Buren af3dc18841 Fix remaining FreeBSD build issues 2024-08-04 21:07:01 -05:00
James Buren 66109be668 Properly fix how how hidapi and libusb dependencies are handled 2024-08-05 01:14:17 +00:00
Abdullah Abid Ansari 6140849e28 Adds a better white calculation to philips wiz devices 2024-08-04 23:59:45 +00:00
Adam Honse bd689ee6d7 Switch arm Appimage builds to manually triggered 2024-08-05 08:50:46 +10:00
Adam Honse 5c26a864f0 Add Ubuntu 24.04 amd64 test 2024-08-04 16:43:51 -05:00
Adam Honse 3edaa65d1d Add MacOS to the introduction 2024-08-04 16:22:04 -05:00
Adam Honse 38f8fcc3f3 Update screenshot in README 2024-08-04 16:19:05 -05:00
Adam Honse de2c58739b Add ARM CI targets 2024-08-04 20:58:58 +00:00
James Buren c071da54ca Fix implicit fallthrough warning for RGBController_ValkyrieKeyboard.cpp 2024-08-04 05:51:28 -05:00
James Buren 6eac59cea4 Fix an implicit-fallthrough warning in CoolerMasterControllerDetect.cpp 2024-08-04 06:09:26 +00:00
Chris M 36a9991d59 Update pipeline builds to include Fedora 40
* Removed F35 and F36 builds
* Updated SPEC file to libusbx-devel
2024-08-04 12:22:51 +10:00
Adam Honse a5f1372537 Update documentation before 1.0 release 2024-08-03 02:16:09 -05:00
Adam Honse 894380a5d4 Fix signedness issue in LogitechGProKeyboardController.cpp 2024-08-02 11:51:16 -05:00
Adam Honse f95bd77366 Fix signedness issue in LogitechGLightsyncController.cpp 2024-08-02 11:49:45 -05:00
Adam Honse f1a85915f9 Fix signedness issue in LogitechG915Controller.cpp 2024-08-02 11:47:58 -05:00
Adam Honse 1ef8af75ae Fix signedness issue in LogitechG910Controller.cpp 2024-08-02 11:44:47 -05:00
Adam Honse edab781d44 Fix signedness issue in LogitechG815Controller.cpp 2024-08-02 11:43:15 -05:00
Adam Honse 1e4f8fdd5b Fix signedness issue in LogitechG810Controller.cpp 2024-08-02 11:40:40 -05:00
Adam Honse c8c632cddd Fix signedness issue in LogitechG213Controller.cpp 2024-08-02 11:39:07 -05:00
Adam Honse f167877a00 Fix possible loss of data warning in LianLiUniHubController.cpp 2024-08-02 11:36:41 -05:00
Adam Honse 03a5b11d09 Fix possible loss of data warning in LianLiUniHubSLV2Controller.cpp 2024-08-02 11:35:11 -05:00
Adam Honse 1089a29af0 Fix possible loss of data warning in RGBController_LianLiUniHubSLV2.cpp 2024-08-02 11:34:26 -05:00
Adam Honse e8c9f149a1 Fix possible loss of data warning in RGBController_LianLiUniHubSLInfinity.cpp 2024-08-02 11:32:58 -05:00
Adam Honse a1cffba1bf Fix possible loss of data warning in LianLiUniHubSLInfinityController.cpp 2024-08-02 11:31:42 -05:00
Adam Honse 848e96f64b Fix possible loss of data warning in RGBController_LianLiUniHubAL.cpp 2024-08-02 11:30:06 -05:00
Adam Honse 9be9e34be1 Fix wstring to string conversion warning in Logitech controllers 2024-08-02 00:31:04 -05:00
Adam Honse fc18e404ce Fix wstring to string conversion warning in LianLiUniHubSLV2Controller.cpp 2024-08-02 00:23:46 -05:00
Adam Honse 398afc721e Fix wstring to string conversion warning in LianLiUniHubSLInfinityController.cpp 2024-08-02 00:21:49 -05:00
Adam Honse 3b61a47ec2 Fix wstring to string conversion warning in LianLiStrimerLConnectController.cpp 2024-08-02 00:19:39 -05:00
Adam Honse 6548dea9c4 Update SinowealthGMOW controller files to new standardized header comment 2024-08-01 23:00:09 -05:00
Adam Honse 6f7f6d3fe7 Update Sinowealth controller files to new standardized header comment 2024-08-01 22:37:01 -05:00
Adam Honse 792a14cf3b Update Sinowealth1007 controller files to new standardized header comment 2024-08-01 22:30:18 -05:00
Adam Honse 9d9c6aa5c8 Update GenesisXenon200 controller files to new standardized header comment 2024-08-01 21:39:42 -05:00
Adam Honse d3993bf9df Organize Sinowealth controllers into their own folders 2024-08-01 11:35:51 -05:00
Adam Honse b98081771c Fix wstring to string conversion warning in LenovoUSBController_Gen7_8.cpp 2024-08-01 11:29:28 -05:00
Adam Honse deffa35975 Fix possible loss of data warnings in RGBController_LianLiUniHubAL.cpp 2024-08-01 11:24:58 -05:00
Adam Honse bf7f043e4f Fix warnings in Lian Li Strimer L Connect controller 2024-08-01 11:20:05 -05:00
Adam Honse 24c6bb2f5f Fix wstring to string conversion in some Lian Li controllers 2024-08-01 00:30:07 -05:00
Adam Honse 9b79a2263a Fix possible loss of data warning in RGBController_ZotacV2GPU.cpp 2024-08-01 00:30:07 -05:00
Adam Honse 0b05f93eee Fix possible loss of data warning in YeelightController.cpp 2024-08-01 00:30:07 -05:00
Adam Honse 4cdee33ae4 Fix possible loss of data warning in RGBController_WinbondGamingKeyboard.cpp 2024-08-01 00:30:07 -05:00
Adam Honse 0027936b1d Fix possible loss of data warning in RGBController_BlinkController.cpp 2024-08-01 00:30:07 -05:00
Adam Honse 28f7e09558 Fix possible loss of data warning in RGBController_SinowealthKeyboard90.cpp 2024-08-01 00:30:07 -05:00
Adam Honse dab4a95dc5 Fix possible loss of data warning in PhilipsWizController.cpp 2024-08-01 00:30:07 -05:00
Adam Honse c42a5ef9f5 Fix possible loss of data warning in PhilipsHueEntertainmentController.cpp 2024-08-01 00:30:07 -05:00
Adam Honse ebf5dbedb6 Fix possible loss of data warning in RGBController_NZXTHuePlus.cpp 2024-08-01 00:30:07 -05:00
Adam Honse 5bda1dc79f Fix possible loss of data warning in RGBController_Nollie.cpp 2024-08-01 00:30:07 -05:00
Adam Honse aec411e721 Fix possible loss of data warning in LianLiUniHubALController.cpp 2024-07-31 23:50:53 -05:00
Adam Honse 34957180be Fix type warning in RGBController_LenovoUSB.cpp 2024-07-31 23:41:27 -05:00
Adam Honse aae377a555 Fix wstring to string conversion warning in LenovoUSBController.cpp 2024-07-31 23:39:39 -05:00
Adam Honse 1ba692a0ea Fix possible loss of data warning in RGBController_EVGAKeyboard.cpp 2024-07-31 23:28:18 -05:00
Adam Honse c392e2c6ca Fix no return warning in ENESMBusInterface_SpectrixS40G_Windows.cpp 2024-07-31 23:27:01 -05:00
Adam Honse ebcc0deac1 Fix possible loss of data warning in RGBController_OKSKeyboard.cpp 2024-07-31 23:17:29 -05:00
Adam Honse 643c81e9db Fix possible loss of data warning in RGBController_NZXTKraken.cpp 2024-07-31 23:15:59 -05:00
Adam Honse d3747a2465 Fix possible loss of data warning in NZXTHuePlusController.cpp 2024-07-31 23:14:12 -05:00
Adam Honse 09bdffab54 Fix possible loss of data warning in NZXTHue2Controller.cpp 2024-07-31 23:13:30 -05:00
Adam Honse 656d3a40c8 Fix possible loss of data warning in NZXTKrakenController.cpp 2024-07-31 23:00:23 -05:00
Adam Honse 749c4d0f37 Fix possible loss of data warning in NanoleafController.cpp 2024-07-31 22:59:23 -05:00
Adam Honse b258f9a683 Fix possible loss of data warning in RGBController_NZXTHue2.cpp 2024-07-31 22:58:11 -05:00
Adam Honse 733d7fb0e5 Fix wstring to string conversion warning in Lenovo4ZoneUSBController.cpp 2024-07-31 22:42:52 -05:00
Adam Honse a87bd8197c Fix wstring to string conversion warning in EVGAMouseController.cpp 2024-07-31 22:41:28 -05:00
Adam Honse 3e75452ec8 Fix wstring to string conversion warning in EVGAKeyboardController.cpp 2024-07-31 22:30:15 -05:00
Adam Honse d94a496808 Fix wstring to string conversion warning in ENESMBusInterface_SpectrixS40G_Windows.cpp 2024-07-31 22:26:31 -05:00
Adam Honse 773a59cf2e Fix wstring to string conversion warning in CougarKeyboardController.cpp 2024-07-31 22:07:14 -05:00
Adam Honse 4ef2917cf4 Fix warnings in RGBController_Nanoleaf.cpp 2024-07-31 21:54:26 -05:00
Adam Honse 102dccee72 Fix warning in RGBController_NZXTHue1.cpp 2024-07-31 21:53:20 -05:00
Adam Honse 8c2ff38d8d Fix warnings in NZXTHue1Controller.cpp 2024-07-31 21:52:30 -05:00
Adam Honse 8f7e4963de Fix wstring to string conversion in CoolerMaster controllers 2024-07-31 01:02:34 -05:00
Adam Honse 10e6e8c91f Fix emplace warning in LogitechProtocolCommon.cpp 2024-07-31 00:36:36 -05:00
Adam Honse d2be38c992 Fix possible loss of data warnings in LogitechProtocolCommon.cpp 2024-07-30 21:38:28 -05:00
Adam Honse 3a62cc8379 Fix possible loss of data warning in RGBController_KingstonFuryDRAM.cpp 2024-07-30 21:16:31 -05:00
Adam Honse bbe97538d8 Fix warnings in KingstonFuryDRAMController.cpp 2024-07-30 21:15:53 -05:00
Adam Honse 05637ba93d Fix wstring to string conversion warnings in AsusAuraCoreLaptopController.cpp 2024-07-30 00:26:47 -05:00
Adam Honse f825e476b9 Fix wstring to string conversion warnings in BloodyMouseController.cpp 2024-07-30 00:25:57 -05:00
Adam Honse 32d9211e7d Fix wstring to string conversion warnings in AlienwareAW510KController.cpp 2024-07-30 00:24:45 -05:00
Adam Honse 9f09c7b503 Fix wstring to string conversion warnings in AlienwareAW410KController.cpp 2024-07-30 00:24:17 -05:00
Adam Honse b12c27c21e Fix wstring to string conversion warnings in BloodyB820RController.cpp 2024-07-30 00:23:15 -05:00
Adam Honse 0f0f3885aa Fix possible loss of data warning in ZETBladeOpticalController.cpp 2024-07-30 00:21:24 -05:00
Adam Honse 7c1d096d46 Fix possible loss of data warning in RGBController_ZalmanZSync.cpp 2024-07-30 00:20:10 -05:00
Adam Honse 27342c71ac Fix possible loss of data warning in RGBController_WootingKeyboard.cpp 2024-07-30 00:19:34 -05:00
Adam Honse a410c3b350 Fix wstring to string conversion warnings in SinowealthKeyboard16Controller.cpp 2024-07-30 00:18:31 -05:00
Adam Honse 71b27d37a4 Fix wstring to string conversion warnings in SinowealthKeyboard90Controller.cpp 2024-07-30 00:17:16 -05:00
Adam Honse 67dadcbefb Fix signed/unsigned mismatch warning in NanoleafController.cpp 2024-07-30 00:15:49 -05:00
Adam Honse 43de81819b Fix wstring to string conversion warnings in BlinkController.cpp 2024-07-30 00:02:59 -05:00
Adam Honse d1be4288d3 Fix signed/unsigned mismatch warning in SkyloongGK104ProController.cpp 2024-07-30 00:01:16 -05:00
Adam Honse 9065cac1fd Fix possible loss of data warning in RGBController_SinowealthGMOW.cpp 2024-07-30 00:00:26 -05:00
Adam Honse b834cd108d Fix signedness issue/warning in RedragonMouseController.cpp 2024-07-29 23:59:23 -05:00
Adam Honse 97eace697a Fix possible loss of data warning in PalitGPUControllerDetect.cpp 2024-07-29 23:57:41 -05:00
Adam Honse a9406804db Fix register type in PatriotViper and PatriotViperSteel controllers 2024-07-29 23:56:30 -05:00
Adam Honse 93f1a18b52 Fix possible loss of data warning in NZXTHuePlusController.cpp 2024-07-29 23:54:14 -05:00
Adam Honse b824dbb9db Fix possible loss of data warnings in RGBController_NZXTHuePlus.cpp 2024-07-29 23:53:35 -05:00
Adam Honse 2219c7529d Fix warnings and size typing issue in NanoleafController.cpp 2024-07-29 23:52:22 -05:00
Adam Honse 5ff7bfc168 Fix possible loss of data warnings in RGBController_NZXTHue2.cpp 2024-07-29 23:49:16 -05:00
Adam Honse 31656bda27 Fix possible loss of data warning in NZXTHue1Controller.cpp 2024-07-29 23:40:50 -05:00
Adam Honse ab0dfb0f6a Fix possible loss of data, switch double to float in NvidiaESAController.cpp 2024-07-29 23:39:49 -05:00
Adam Honse 3b9aa16ce6 Fix possible loss of data warning in RGBController_Nollie.cpp 2024-07-29 23:36:19 -05:00
Adam Honse d5b682e8b3 Fix warnings in MSIVigorGK30Controller.cpp 2024-07-29 23:35:19 -05:00
Adam Honse 91adb32c5b Fix warnings in LIFXController.cpp 2024-07-29 23:24:32 -05:00
Adam Honse 384fdb2376 Fix warnings in LogitechProtocolCommon.cpp 2024-07-29 23:18:41 -05:00
Adam Honse a44460b48e Fix warnings in KingstonFuryDRAMController.cpp 2024-07-29 23:14:50 -05:00
Adam Honse c3dccb071e Fix wstring to string conversion warnings in TecknetController.cpp 2024-07-29 23:01:05 -05:00
Adam Honse 840bf4189a Fix wstring to string conversion warnings in SinowealthController1007.cpp 2024-07-29 22:59:03 -05:00
Adam Honse aeca035fa3 Fix wstring to string conversion warnings in SinowealthGMOWController.cpp 2024-07-29 22:58:03 -05:00
Adam Honse 091c4e46f5 Fix wstring to string conversion warnings in SinowealthController.cpp 2024-07-29 22:56:59 -05:00
Adam Honse 61c3fc7975 Fix wstring to string conversion warnings in SinowealthKeyboardController.cpp 2024-07-29 22:55:07 -05:00
Adam Honse fd0ad07a96 Fix wstring to string conversion warnings in LightSaltController.cpp 2024-07-29 22:53:18 -05:00
Adam Honse bb34aba76e Fix wstring to string conversion warnings in GigabyteAorusMouseController.cpp 2024-07-29 22:50:56 -05:00
Adam Honse 2225ca0ec4 Fix wstring to string conversion warnings in GigabyteAorusLaptopControllercpp 2024-07-29 22:49:56 -05:00
Adam Honse 2805476fb8 Fix wstring to string conversion warnings in EVisionV2KeyboardController.cpp 2024-07-29 22:42:59 -05:00
Adam Honse 564d817b1c Fix warnings in RGBController_GaiZhongGai.cpp 2024-07-29 22:37:47 -05:00
Adam Honse 8b9a5b460f Fix wstring to string conversion warnings in EpomakerController.cpp 2024-07-29 21:27:41 -05:00
Adam Honse b0d2954a56 Fix possible loss of data warning in StringUtils.cpp 2024-07-29 21:24:13 -05:00
Adam Honse 2ce0163eca Fix another possible loss of data warning in RGBController_DRGB.cpp 2024-07-28 19:09:06 -05:00
Adam Honse 073203d3b5 Fix wstring to string conversion warnings in EKController.cpp 2024-07-28 18:58:46 -05:00
Adam Honse e2ec7c818e Fix possible loss of data warning in RGBController_DRGB.cpp 2024-07-28 18:54:27 -05:00
Adam Honse b5638eee12 Use wstring_to_string function for device name string on CorsairPeripheralV2Controller.cpp 2024-07-28 18:38:34 -05:00
Adam Honse 61802ed664 Fix signed/unsigned comparison and assignment in AsusTUFLaptopController_Windows.cpp 2024-07-28 18:28:49 -05:00
Adam Honse 69f8f644e6 Fix another possible loss of data warning in AlienwareController.cpp 2024-07-28 18:08:21 -05:00
Adam Honse fdd04a1511 Allow data size of zero for data length checks if protocol version is 4 or lower, this is to fix backwards compatibility with a bug in older versions OpenRGB.NET that has since been fixed. 2024-07-28 18:05:47 -05:00
Adam Honse 068761872e Fix possible loss of data warning in AlienwareController.cpp 2024-07-28 17:58:35 -05:00
Adam Honse b4d15b9545 Move wstring to string conversion to StringUtils.cpp and update most HID get serial number functions to use it 2024-07-28 17:42:01 -05:00
Adam Honse 366fda30f5 Test fixing Windows string conversion warning in AMDWraithPrismController 2024-07-28 02:45:29 -05:00
James Buren 5dc31a81a0 Fix error checking on CreateFile() usage 2024-07-28 05:30:14 +00:00
Adam Honse e2126b9d29 Fix resizing zones over the network 2024-07-27 17:56:12 -05:00
Adam Honse a2fb9a00fe Add vendor string to HYTE mousemat controller 2024-07-27 16:55:28 -05:00
Adam Honse e7240ecca0 Improve logging in NetworkServer.cpp and close listener if any packet with an invalid size is received 2024-07-27 16:38:41 -05:00
Adam Honse 99c1aa0c26 Add a mutex around groups of send() calls in NetworkClient.cpp to fix corrupt packets due to race conditions. If two network RGBControllers try to send a packet with data at the same time, a race condition could cause data from another thread to send in between the header and data for the active thread, corrupting the data stream. 2024-07-27 16:23:54 -05:00
Adam Honse 44268596b3 Add a size check to the client on controller data receiving 2024-07-26 00:39:45 -05:00
Adam Honse 64a0d2c061 Add some size checks on the server to ensure received data matches the size from the packet header 2024-07-26 00:19:19 -05:00
Adam Honse 215ae6118a Fix uninitialized bytes valgrind warning in JGINYUEInternalUSBController.cpp 2024-07-25 23:49:14 -05:00
Adam Honse f4ff81bd45 Fix uninitialized bytes valgrind warning in ProfileManager.cpp 2024-07-25 23:36:11 -05:00
James Buren e42cefdf09 Fix LightSalt build errors on Windows 2024-07-25 03:09:55 -05:00
James Buren 4d8466cd60 Initial commit for LightSalt Peripherals 2024-07-25 01:20:25 +00:00
Pavel Kuzminov c87efc5d67 Added Kingston Fury Beast RGB White DDR5 version 2024-07-25 00:51:34 +00:00
P4uLT a970cd9a23 Initial commit for the Steelseries Arctis 5 (Original) to resolve #2291 2024-07-24 19:53:27 +00:00
Hampus Andersson 94d7703e9e Added support Razer Cobra Pro Device Support 2024-07-24 16:41:47 +00:00
Adam Honse 2ec4183789 Ensure Device View updates when segments are configured 2024-07-23 22:47:03 -05:00
Adam Honse a36162a971 Update SteelSeries common files to new standardized header format 2024-07-23 21:11:56 -05:00
Adam Honse ef48039a1b Update SteelSeriesSiberiaController files to new standardized header format 2024-07-23 20:57:07 -05:00
Milan Čermák c366de98e7 Support for Kingston Fury DDR4/5 DIMMs 2024-07-23 19:37:15 +00:00
Kipi000 6fdcca3ca1 Added support for Gigabyte GTX 1660 Ti Gaming OC 2024-07-22 21:03:14 +00:00
Adam Honse 9c7aad8259 Update SteelSeriesSenseiController files to new standardized header format 2024-07-19 20:43:14 -05:00
Adam Honse a4a457ad5c Update SteelSeriesRivalController files to new standardized header format 2024-07-19 19:31:37 -05:00
Adam Honse 6d0c990834 Update SteelSeriesRival3Controller files to new standardized header format 2024-07-19 18:50:40 -05:00
Essem 5948da2372 Fix buffer overflow when zeroing Logitech G815/G915 little frame buffer data 2024-07-13 20:11:47 -05:00
Adam Honse dec9081be2 Update SteelSeriesQCKMatController files to new standardized header format 2024-07-11 22:36:20 -05:00
Adam Honse ac1c823ca1 Update SteelSeriesOldApexController files to new standardized header format 2024-07-11 22:34:10 -05:00
Adam Honse 05d707b8d4 Update SteelSeriesMouseController files to new standardized header format 2024-07-11 11:41:59 -05:00
Adam Honse b8ca869b19 Update SteelSeriesArctis5Controller files to new standardized header format 2024-07-11 11:40:02 -05:00
Adam Honse 79527ef39a Update SteelSeriesApexTZoneController files to new standardized header format 2024-07-11 11:37:05 -05:00
Adam Honse 3717c752c4 Update SteelSeriesApexMController files to new standardized header format 2024-07-11 11:34:40 -05:00
Adam Honse 7d9279abad Update SteelSeriesApexController files to new standardized header format 2024-07-11 11:34:30 -05:00
Adam Honse 0709b0768f Update SteelSeriesApex8ZoneController files to new standardized header format 2024-07-11 11:23:40 -05:00
Adam Honse dac57f5a13 Update SteelSeriesApex3Controller files to new standardized header format 2024-07-09 23:32:05 -05:00
Adam Honse ea19efd490 Update some SteelSeries files to new standardized header format 2024-07-09 22:50:43 -05:00
Adam Honse ad9b1fb61a Organize SteelSeries controllers into subfolders 2024-07-09 21:53:46 -05:00
Adam Honse 3d93134e86 Fix unused field warning in RazerKrakenController 2024-07-09 21:30:20 -05:00
Adam Honse 545cb4c9e1 Fix unused field warning in RazerController 2024-07-09 21:29:45 -05:00
Adam Honse 1772f5036e Fix unused variable warning in RGBController_LogitechG915.cpp 2024-07-09 21:28:38 -05:00
Adam Honse 0856701f90 Fix unused field warning in LogitechGLightsyncController 2024-07-09 21:27:29 -05:00
Adam Honse 7e501b3a98 Fix override warnings in SteelSeriesAerox controller header files 2024-07-09 21:12:59 -05:00
Givo eca69360e1 Resolve missing includes for Skyloong GK104 Pro 2024-07-09 20:12:02 -05:00
Will 1b4598576d Added Skyloong GK104 Pro support 2024-07-09 23:48:31 +00:00
Zhi Yan 91b7c649c9 Fix some errors and increase the readability of some code 2024-07-09 15:56:16 +00:00
Adam Honse 474b33fef4 Fix string concatenation in NZXTMouseController 2024-07-09 00:07:40 -05:00
Adam Honse 52eda68a4e Fix braces around subobject warning in GigabyteRGBFusion2USBController.cpp 2024-07-09 00:02:44 -05:00
Adam Honse e2a0032657 Fix warnings in LianLiUniHubSLV2Controller 2024-07-08 23:00:55 -05:00
Adam Honse 535e0f177d Fix warnings in LianLiUniHubSLInfinityController 2024-07-08 22:59:01 -05:00
Adam Honse 5295132f37 Fix warnings in LianLiUniHubALController 2024-07-08 22:56:28 -05:00
Adam Honse da6067d708 Fix unused variable warning in HyperXAlloyOrigins60and65 controller 2024-07-08 22:53:27 -05:00
Adam Honse 30869378a4 Fix unused field warning in AsusAuraUSB controller 2024-07-08 21:23:36 -05:00
Adam Honse 026740eb9a Fix unused field warning in SinowealthKeyboard90 controller 2024-07-08 21:21:08 -05:00
Adam Honse 88bd7433e2 Fix unused field warning in PatriotViperSteel controller 2024-07-08 21:19:09 -05:00
Adam Honse 209b62bccc Fix unused field warning in MSIVigorGK30 controller 2024-07-08 21:17:29 -05:00
Adam Honse 4090d556aa Fix unused field warning in MountainKeyboard controller 2024-07-08 21:16:21 -05:00
Adam Honse e99192895b Fix unused field warning in GigabyteRGBFusion2USB controller 2024-07-08 21:15:04 -05:00
Adam Honse a8781ba96b Fix unused field warning in Espurna controller 2024-07-08 21:12:23 -05:00
Adam Honse 8c1a9cd0c7 Fix unused field warning in CorsairK55RGBPROXT controller 2024-07-08 21:10:55 -05:00
Adam Honse 032e3c82d5 Fix unused field warnings in ASRockPolychromeUSBController 2024-07-08 20:45:11 -05:00
PePeReno fa35a490e1 Add Mars Gaming mkmini (EVision) 2024-07-08 16:59:13 +00:00
Adam Honse f127ae9e41 Fix more warnings in scsiapi_linux 2024-07-08 02:23:37 -05:00
Adam Honse afab4a9447 Fix pragma once in C file warning in scsiapi 2024-07-07 22:32:51 -05:00
Chris M 486ecedc12 Added Asus ROG KO RTX3070 8GB Gaming OC GPU
* Added `0x8843` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/motherboards-components/graphics-cards/ko/ko-rtx3070-o8g-v2-gaming/)
* Resolves #4208
2024-07-08 12:02:57 +10:00
Adam Honse cb8ea601cf Fix warning related to sizeof() on const char array, the null terminator is not used here so reworked the array to explicitly be 4 elements 2024-07-07 19:29:54 -05:00
Adam Honse 005212b463 Fix unused variable warning in RoccatVulcanKeyboardController.cpp 2024-07-07 18:32:55 -05:00
Adam Honse d37068b65d Fix signedness comparison warning in RGBController_RoccatVulcanKeyboard.cpp 2024-07-07 18:32:04 -05:00
Adam Honse 9699cd60ac Fix enumerated and non-enumerated type warning in RoccatKoneProAirController.cpp 2024-07-07 18:13:49 -05:00
Adam Honse 44aaf3a131 Fix signedness comparison warning in RGBController_Lenovo_Gen7_8.cpp 2024-07-07 18:10:59 -05:00
Adam Honse 260044df0c Fix potentially uninitialized variable warning in CMKeyboardV2Controller.cpp 2024-07-07 18:08:52 -05:00
Adam Honse 88493da3ab Fix unused parameter warning in ENESMBusInterface_ROGArion.cpp 2024-07-07 18:06:27 -05:00
Adam Honse 0c22a29130 Fix signedness comparison warning in RGBController_AsusROGStrixLC.cpp 2024-07-07 18:04:12 -05:00
Adam Honse 06c4d8a66e Fix signedness comparison warning in RGBController_AsusSagarisKeyboard.cpp 2024-07-07 18:02:29 -05:00
Bobby Quantum e9b3507526 SteelSeries Aerox 5 Wired Support resolves #4134 2024-07-07 22:52:13 +00:00
Aytaç Kayadelen 949991f608 Razer Mutex on Windows 2024-07-07 22:10:03 +00:00
Adam Honse b9402d8e94 Fix signedness comparison warning in RGBController_AsusAuraRyuoAIO.cpp 2024-07-07 16:54:07 -05:00
Adam Honse a5da1adf09 Fix signedness comparison warning in RGBController_AsusROGSpatha.cpp 2024-07-07 16:43:06 -05:00
Adam Honse 1c10a37ec5 Fix signedness comparison warning in RGBController_ASRockPolychromeV2SMBus.cpp 2024-07-07 16:22:45 -05:00
Adam Honse 222a27ed9e Fix signedness comparison warning in RGBController_ASRockASRRGBSMBus.cpp 2024-07-07 16:21:57 -05:00
Adam Honse ccfb6c9f16 Fix warnings in ValkyrieKeyboardController.cpp 2024-07-07 16:15:22 -05:00
Adam Honse 8aeab21ba3 Comment out disabled functions in SinowealthControllerDetect.cpp 2024-07-07 16:07:29 -05:00
Adam Honse 4156b193b2 Fix unused parameters warning in RGBController_GenesisXenon200.cpp 2024-07-07 15:53:13 -05:00
Adam Honse f8fd3138ef Fix unused parameters warning in DRGBController.cpp 2024-07-07 15:30:03 -05:00
Chris M b03edcb869 Adjust LED number for Basilisk Ultimate
* Adjusted both the LED ID and transaction ID in metadata for both Wired and Wireless PIDs
* Resolves #3402
2024-07-08 00:20:16 +10:00
Adam Honse d7c3fd1fb1 Add firmware version retrieval to Thermaltake Riing controller 2024-07-07 01:46:58 -05:00
Zhi Yan f93baffae6 Correcting DRGBcontroller error, ensuring correct compilation and running on Windows 2024-07-06 16:54:19 +00:00
Zhi Yan 6928c50f48 Add new device, DRGB LED controller, including multiple versions 2024-07-06 05:34:28 +00:00
Adam Honse 9284ec7360 Fix unused parameter warning in SeagateController.cpp 2024-07-05 19:38:54 -05:00
Adam Honse 53ff1a628b Fix unused parameter warnings in RGBController_NZXTMouse.cpp 2024-07-05 19:37:20 -05:00
Adam Honse 813fcec591 Fix unused variable warning in NZXTMouseController.cpp 2024-07-05 19:36:23 -05:00
Adam Honse a367c0023f Fix sequence point warning in LGMonitorController.cpp 2024-07-05 19:34:52 -05:00
Adam Honse e33dc2290b Fix potentially uninitialized variable warnings in RGBController_EVisionV2Keyboard.cpp 2024-07-05 19:31:04 -05:00
Adam Honse d9ed4df0bf Fix potentially uninitialized variable warning in EVisionV2KeyboardController.cpp 2024-07-05 19:29:34 -05:00
Adam Honse f6259a3139 Fix sign mismatch comparison warning in RGBController_EVGAACX30SMBus.cpp 2024-07-05 18:55:09 -05:00
Adam Honse fff639ddd5 Remove unsigned less than zero check which always returns false in ElgatoLightStripController.cpp 2024-07-05 18:52:28 -05:00
Zach Leytus 3ed0bb6918 Add Gigabyte RTX 4070 Ti SUPER EAGLE OC 16G 2024-07-05 13:20:49 -04:00
Chris M c88eb992f5 Adding pkgconf and git to the Fedora build instructions
* Resolves #4201
2024-07-05 08:08:54 +10:00
Chris M 78c91eb7bf Adjust LED number for Deathadder V2
* Resolves #1265
2024-07-04 09:26:56 +10:00
Phoebe C e964a874bc Adding MSI RTX 4070Ti Super Gaming X Slim 2024-07-03 16:39:38 +00:00
Adam Honse e300b48f5b Fix signed/unsigned mismatch warning in DasKeyboardController.cpp 2024-06-30 19:38:18 -05:00
Adam Honse ef9170ac9a Fix signed/unsigned mismatch warning in RGBController_ColorfulTuringGPU.cpp 2024-06-30 19:35:00 -05:00
Adam Honse 27c798fb22 Code cleanup in AsusTUFLaptopController_Windows.cpp 2024-06-30 19:33:17 -05:00
Adam Honse e2f08351a0 Fix signed/unsigned mismatch warning in RGBController_AsusAuraGPU.cpp 2024-06-30 19:32:54 -05:00
Adam Honse 68b8024c84 Fix signed/unsigned mismatch warning in DeviceView.cpp 2024-06-30 19:22:18 -05:00
Chris M 7a2ae83cd0 Added Gigabyte RTX 4070 Gaming OC 12GB V2 GPU
* Added `0x412B` to pci_ids.h
* Registered detector in GigabyteRGBFusion2GPUControllerDetect.cpp
* Link to [webpage](https://www.gigabyte.com/Graphics-Card/GV-N4070GAMING-OCV2-12GD#kf)
* Resolves #4197
2024-07-01 00:11:53 +00:00
Adam Honse 7eaae7cf7d Update Zotac V2 GPU controller files to new standardized header comment 2024-06-30 19:09:28 -05:00
Adam Honse 494769177f Update Zotac Turing GPU controller files to new standardized header comment 2024-06-30 19:06:29 -05:00
Adam Honse 0289f0b2d4 Update ZET Blade controller files to new standardized header comment 2024-06-30 19:01:25 -05:00
Adam Honse ce1cdf62aa Update ZET Edge Air Pro controller files to new standardized header comment 2024-06-30 17:50:58 -05:00
Adam Honse b62c7fb432 Update Zalman Z Sync controller files to new standardized header comment 2024-06-30 13:33:02 -05:00
Adam Honse db8932749e Update Yeelight controller files to new standardized header comment 2024-06-30 13:27:36 -05:00
Adam Honse 5bfa134414 Update Wushi L50 controller files to new standardized header comment 2024-06-30 13:23:40 -05:00
Chris M 82a23344f8 Aligned Monitor metadata
* Adjusted Metadata to reflect Accessory
* Changed ENUM to display correct icon for Accessory
2024-06-30 17:24:34 +00:00
Олег Баган 80b5072754 Update file GigabyteAorusLaptopControllerDetect.cpp 2024-06-28 22:48:35 +00:00
Tam D 5df9dcdf9c coolermaster keyboard rescan crash 2024-06-27 13:09:52 +00:00
Adam Honse d1a638e6f0 Update Wooting keyboard controller files to new standardized header comment 2024-06-22 19:29:35 -05:00
Adam Honse d7ffb9e13f Update Winbond Gaming Keyboard controller files to new standardized header comment 2024-06-22 19:21:43 -05:00
Adam Honse d1673b3304 Update ViewSonic controller files to new standardized header comment 2024-06-22 19:18:31 -05:00
Adam Honse e3348ea3e6 Update Valkyrie keyboard controller files to new standardized header comment 2024-06-22 19:13:15 -05:00
Adam Honse 066d48e22f Update Trust common controller files to new standardized header comment 2024-06-22 19:05:34 -05:00
Adam Honse 796fadd3bc Update Trust GXT 180 controller files to new standardized header comment 2024-06-22 19:02:02 -05:00
Adam Honse 0227864ae3 Update Trust GXT 114 controller files to new standardized header comment 2024-06-22 18:58:31 -05:00
Chris M 15c3d8591c Update static shebangs to flexible /usr/bin/env
* Also fixes static /bin/chmod executable call in UDEV rules
* Resolves #4166
2024-06-21 07:07:53 +10:00
Tam D 72507ea108 fix ck530_v2 keymap 2024-06-20 13:36:35 +00:00
Adam Honse 89c11b5eeb Update ThingM controller files to new standardized header comment 2024-06-17 23:26:21 -05:00
Adam Honse ec8921381f Update Thermaltake Riing common controller files to new standardized header comment 2024-06-17 23:17:09 -05:00
Adam Honse 5e9a180c79 Update Thermaltake Riing Quad controller files to new standardized header comment 2024-06-17 23:15:32 -05:00
Adam Honse 49b6ba0303 Update Thermaltake Riing controller files to new standardized header comment 2024-06-17 23:13:17 -05:00
Adam Honse 7e0c9cf3e3 Update Thermaltake Poseidon Z RGB controller files to new standardized header comment 2024-06-17 23:10:10 -05:00
Adam Honse 90d92ddbd5 Update Tecknet controller files to new standardized header comment 2024-06-17 23:05:48 -05:00
Adam Honse ff404bfd99 Update SRGBmods common controller files to new standardized header comment 2024-06-17 22:48:12 -05:00
Adam Honse 0934020873 Update SRGBmods Pico controller files to new standardized header comment 2024-06-17 22:42:12 -05:00
Adam Honse a3ded7574c Update SRGBmods LED Controller V1 controller files to new standardized header comment 2024-06-17 22:33:55 -05:00
Adam Honse 410423fdc1 Update Sony Gamepad common controller files to new standardized header comment 2024-06-17 22:24:59 -05:00
Adam Honse 51f162bd37 Update Sony DualSense controller files to new standardized header comment 2024-06-17 22:21:59 -05:00
Adam Honse 9360466b6f Update Sony DS4 controller files to new standardized header comment 2024-06-17 22:18:51 -05:00
Adam Honse 9e98983c75 Update Seagate common controller files to new standardized header comment 2024-06-17 21:38:41 -05:00
Adam Honse 6aa6f6e456 Update Sapphire Nitro Glow common controller files to new standardized header comment 2024-06-17 21:35:15 -05:00
Adam Honse 3ab8f00af9 Update Sapphire Nitro Glow V3 controller files to new standardized header comment 2024-06-17 21:29:56 -05:00
Adam Honse f1f1ea37a2 Update Sapphire Nitro Glow V1 controller files to new standardized header comment 2024-06-17 21:27:38 -05:00
Adam Honse 90744b58dd Update Roccat Vulcan keyboard controller files to new standardized header comment 2024-06-17 21:22:23 -05:00
Mola19 edb6a8aed0 Add support for Roccat Kone XP 2024-06-18 01:36:00 +00:00
Gabriel de Souza 357b236fae Add Attack Shark k86 keyboard 2024-06-17 16:08:45 +00:00
EasyNetDev 4cd754530e Fix the confusing warning: ERROR! Source file debian/changelog.in missing. 2024-06-17 15:15:20 +02:00
Adam Honse 0139b47d85 Update Roccat Sense Aimo controller files to new standardized header comment 2024-06-14 11:44:37 -05:00
Adam Honse 339c146c67 Update Roccat Kova controller files to new standardized header comment 2024-06-14 11:41:53 -05:00
Adam Honse 940e14c07a Update Roccat Kone Pro controller files to new standardized header comment 2024-06-14 11:36:38 -05:00
Adam Honse b3379e8ef3 Update Roccat Kone Aimo controller files to new standardized header comment 2024-06-14 11:34:22 -05:00
Adam Honse 86010b3e8e Update Roccat Horde Aimo controller files to new standardized header comment 2024-06-14 11:31:53 -05:00
Adam Honse ae7caf002b Update Roccat Elo controller files to new standardized header comment 2024-06-14 11:29:55 -05:00
Adam Honse bba59be497 Update Roccat Burst Pro Air controller files to new standardized header comment 2024-06-14 11:29:55 -05:00
Barry H b84de85891 Added ROG Strix GTX 1650S A4G & TUF 7700XT 2024-06-14 16:28:58 +00:00
Plunti ea9369f799 Add Roccat Kone Pro Air 2024-06-10 02:05:02 +02:00
Yami Life a0adf9f47d Add Gainward GTX 1660 Super Ghost GPU 2024-06-09 12:17:05 +00:00
Chris M 481cc6f1bf Corrected REGEX creating duplicates in supported devices 2024-06-08 10:21:38 +10:00
Adam Honse d637d0f850 Update Roccat Burst controller files to new standardized header comment 2024-06-07 11:45:43 -05:00
Adam Honse 7d1106171c Update Red Square Keyrox TKL Classic controller files to new standardized header comment 2024-06-07 11:42:36 -05:00
Adam Honse 3147da5c73 Update Red Square Keyrox controller files to new standardized header comment 2024-06-07 11:40:25 -05:00
Adam Honse a4a3a7b970 Update Redragon controller files to new standardized header comment 2024-06-07 11:37:00 -05:00
Adam Honse 34ce3b928b Update Razer common controller files to new standardized header comment 2024-06-07 11:33:03 -05:00
Adam Honse 7c1cb2e4e0 Update Razer Kraken controller files to new standardized header comment 2024-06-07 11:29:57 -05:00
Adam Honse d2d342ade7 Update Razer controller files to new standardized header comment 2024-06-07 11:27:32 -05:00
Barry H 16bc33c18a Added some more Zotac GPUs 2024-06-06 06:02:43 +00:00
Chris M cc5aaadf08 Added Asus ROG Strix RTX4060Ti 8GB Gaming OC GPU
* Added `0x88FB` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/us/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4060ti-o8g-gaming/)
* Resolves #4120
2024-06-06 06:01:58 +00:00
Chris M a7d7a35b93 Added MSI RTX2080 8G Gaming X Trio GPU
* Added `0x3727` to pci_ids.h
* Registered detector in MSIGPUControllerDetect.cpp
* Link to [webpage](https://msi.com/Graphics-Card/GeForce-RTX-2080-GAMING-X-TRIO/Specification)
* Resolves #4146
2024-06-05 08:25:40 +10:00
Adam Honse d9b88ae1b9 Update OpenRGB QMK common controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Adam Honse 8bf11c6270 Update OpenRGB QMK Revision E controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Adam Honse dde3e454e7 Update OpenRGB QMK Revision D controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Adam Honse 314319c36a Update OpenRGB QMK Revision B controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Adam Honse c48206dade Update OpenRGB QMK Revision 9 controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Adam Honse 5c9951af47 Update PNY Lovelace GPU controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Adam Honse bd5473663b Update PNY GPU controller files to new standardized header comment 2024-06-04 11:49:44 -05:00
Chris M 3cf1f58f30 Updated UDEV rules script
* Improved device processing
* Updated shebang to improve compatibility
* Converted SteelSeriesControllerDetect to UNIX line endings
* Corrected hex literals in Artic and SteelSeries detection
2024-06-03 18:02:24 +00:00
Adam Honse f9c17c75c5 Update Philips Wiz controller files to new standardized header comment 2024-06-03 11:46:18 -05:00
Adam Honse 2fd4cfb2a8 Update Philips Hue controller files to new standardized header comment 2024-06-03 11:43:51 -05:00
Adam Honse 59d1c07075 Update Patriot Viper Steel controller files to new standardized header comment 2024-06-03 11:39:10 -05:00
Adam Honse a87803ff26 Update Patriot Viper controller files to new standardized header comment 2024-06-03 11:36:47 -05:00
Adam Honse 281d3d8c62 Update Palit GPU controller files to new standardized header comment 2024-06-03 11:33:54 -05:00
Adam Honse aac70462c5 Update OKS keyboard controller files to new standardized header comment 2024-06-03 11:30:50 -05:00
morg 35b6fd8c28 Revert "Fix Razer Chroma Addressable RGB Controller on Linux" 2024-06-03 12:53:18 +00:00
Adam Honse 853f12e9c1 Update NZXT Mouse controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
Adam Honse e4eaef00ca Update NZXT Kraken controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
Adam Honse 1d2a57b8e0 Update NZXT Hue Plus controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
Adam Honse e0fa66a82a Update NZXT Hue 2 controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
Adam Honse a862af2c80 Update NZXT Hue 1 controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
Adam Honse ffe99f0310 Update NVIDIA Illumination controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
Adam Honse 1d766d4a10 Update NVIDIA ESA controller files to new standardized header comment 2024-06-01 20:47:59 -05:00
mfletcher_2 a7e76b5869 Add support for Kasa Smart LED light strips 2024-06-02 00:18:35 +00:00
Adam Honse 1526cbec6c Update Nollie controller files to new standardized header comment 2024-06-01 01:10:49 -05:00
Adam Honse 9df2289bf4 Update Nanoleaf controller files to new standardized header comment 2024-06-01 01:07:22 -05:00
Adam Honse feefc79757 Update N5312A controller files to new standardized header comment 2024-06-01 01:03:08 -05:00
Adam Honse 75f895799c Update MSI Vigor controller files to new standardized header comment 2024-06-01 00:55:54 -05:00
Adam Honse 67f7c40fa5 Update MSI-RGB controller files to new standardized header comment 2024-06-01 00:50:19 -05:00
Adam Honse 803d1681c4 Update MSI Optix controller files to new standardized header comment 2024-06-01 00:45:53 -05:00
Adam Honse 9c19195625 Update MSI Mystic Light common controller files to new standardized header comment 2024-06-01 00:35:14 -05:00
Adam Honse eb5c9d91d3 Update MSI Mystic Light 185-byte controller files to new standardized header comment 2024-06-01 00:30:04 -05:00
Adam Honse 1c32d819eb Update MSI Mystic Light 162-byte controller files to new standardized header comment 2024-06-01 00:24:43 -05:00
Adam Honse f95cfc9aeb Update MSI Mystic Light 112-byte controller files to new standardized header comment 2024-06-01 00:24:34 -05:00
Adam Honse aa4f58694b Update MSI Mystic Light 64-byte controller files to new standardized header comment 2024-06-01 00:24:27 -05:00
Adam Honse e924257ddd Update MSI GPU V2 controller files to new standardized header comment 2024-05-31 11:45:11 -05:00
Adam Honse ec59cc59b0 Update MSI GPU controller files to new standardized header comment 2024-05-31 11:41:23 -05:00
Adam Honse 281b02b049 Update MSI 3-zone keyboard controller files to new standardized header comment 2024-05-31 11:38:22 -05:00
Adam Honse a9ddbf1b95 Update Mountain keyboard controller files to new standardized header comment 2024-05-31 11:34:47 -05:00
Adam Honse d15ce7d7ab Update Logitech common controller files to new standardized header comment 2024-05-31 11:31:32 -05:00
Adam Honse 651adb61d6 Move and update Logitech X56 controller files to new standardized header comment 2024-05-31 11:28:04 -05:00
Chris M bb488b2a55 Added Asus ROG Strix RTX4070Ti Super 16GB Gaming OC GPU
* Added `0x896D` to pci_ids.h
* Changed `0x896B` model to non OC based on [TechPowerUp GPU entry](https://www.techpowerup.com/vgabios/264927/264927)
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4070tis-o16g-gaming/)
2024-05-31 16:23:45 +00:00
Chris M aa4483183c Removed *.md file creation from Supported Devices
* Added Dummy Controller processing
* Other fixes to broken detector replacements
* Removed file exemptions in runner script
2024-05-31 16:22:34 +00:00
Adam Honse b06ce22abb Move and update Logitech Lightspeed controller files to new standardized header comment 2024-05-31 11:08:49 -05:00
Adam Honse 3c08177b58 Move and update Logitech G Pro keyboard controller files to new standardized header comment 2024-05-31 11:08:11 -05:00
Adam Honse 0760e13808 Move and update Logitech G Lightsync controller files to new standardized header comment 2024-05-30 11:51:22 -05:00
Adam Honse 94ccb0a3ba Move and update Logitech G933 controller files to new standardized header comment 2024-05-30 11:45:30 -05:00
Adam Honse 6e9fd99e0e Move and update Logitech G915 controller files to new standardized header comment 2024-05-30 11:42:39 -05:00
Adam Honse a0c975f186 Move and update Logitech G910 controller files to new standardized header comment 2024-05-30 11:39:50 -05:00
Adam Honse 56d26fa3cf Move and update Logitech G815 controller files to new standardized header comment 2024-05-30 11:36:06 -05:00
Adam Honse 7a6f86966f Move and update Logitech G810 controller files to new standardized header comment 2024-05-30 11:31:19 -05:00
Adam Honse d995593e76 Reorganize Hue 2 detectors and update detectors metadata to fix udev rule generation
Fixes #4079
2024-05-30 11:28:13 -05:00
Adam Honse 433ac0b8ce Move and update Logitech G560 controller files to new standardized header comment 2024-05-30 11:23:58 -05:00
Adam Honse 6c30e92b21 Move and update Logitech G213 controller files to new standardized header comment 2024-05-30 11:23:58 -05:00
Adam Honse 52423a325e Update Logitech G203L controller files to new standardized header comment 2024-05-30 11:23:58 -05:00
Adam Honse 523b01054a Update Linux LED controller files to new standardized header comment 2024-05-30 11:23:58 -05:00
Adam Honse baa6c1a2e4 Update LIFX controller files to new standardized header comment 2024-05-30 11:23:58 -05:00
Adam Honse 841b85a589 Increase Corsair Lighting Node read timeout to 15ms to fix issues with some CorsairLightingProtocol setups 2024-05-29 19:24:10 -05:00
Adam Honse 8d14059d2e Update Lian Li Strimer L Connect controller files to new standardized header comment 2024-05-25 18:15:04 -05:00
Adam Honse cdcbf5209c Update Lian Li SLV2 Uni Hub controller files to new standardized header comment 2024-05-25 17:56:54 -05:00
Adam Honse 86784b983c Update Lian Li Uni Hub SL Infinity controller files to new standardized header comment 2024-05-25 13:23:01 -05:00
Adam Honse 3806a8ae04 Update Lian Li Uni Hub controller files to new standardized header comment 2024-05-25 13:18:04 -05:00
Adam Honse edbcc38518 Update Lian Li AL Uni Hub controller files to new standardized header comment 2024-05-25 13:14:06 -05:00
Adam Honse 58f9943151 Update Lian Li AL10 Uni Hub controller files to new standardized header comment 2024-05-25 13:09:01 -05:00
Adam Honse be6e890402 Update Lian Li GAII Trinity controller files to new standardized header comment 2024-05-25 13:05:11 -05:00
Adam Honse de17f6b7cb Update LG monitor controller files to new standardized header comment 2024-05-25 12:57:52 -05:00
Adam Honse cb41353622 Update Lexip mouse controller files to new standardized header comment 2024-05-25 12:53:50 -05:00
Adam Honse e8264ae616 Update Lenovo motherboard controller files to new standardized header comment 2024-05-25 12:49:56 -05:00
Adam Honse 4723c64666 Update Lenovo USB Gen7/Gen8 controller files to new standardized header comment 2024-05-25 12:46:23 -05:00
Adam Honse f6e42f0c6d Update Lenovo USB controller files to new standardized header comment 2024-05-25 12:37:54 -05:00
Adam Honse 47a81009c8 Update Lenovo M300 controller files to new standardized header comment 2024-05-25 12:34:09 -05:00
Adam Honse a460e01718 Update Lenovo 4-zone controller files to new standardized header comment 2024-05-25 12:28:11 -05:00
Adam Honse 5f79126313 Update Lego Dimensions Toypad Base controller files to new standardized header comment 2024-05-25 12:19:46 -05:00
Adam Honse 8b0b5bc526 Update LED strip controller files to new standardized header comment 2024-05-25 12:12:20 -05:00
Adam Honse fae1e8e9eb Update Keychron keyboard controller files to new standardized header comment 2024-05-25 09:34:30 -05:00
Adam Honse 56753a5821 Update Kasa Smart controller files to new standardized header comment 2024-05-25 09:29:04 -05:00
Adam Honse beac78dcb6 Update JGINYUE USB controller files to new standardized header comment 2024-05-25 09:23:09 -05:00
Adam Honse 680821f164 Update Ionico controller files to new standardized header comment 2024-05-25 09:17:29 -05:00
Adam Honse 13ba7b19ea Update Intel Arc A770 LE controller files to new standardized header comment 2024-05-25 09:14:13 -05:00
Adam Honse 84077e9dc2 Update Instant mouse controller files to new standardized header comment 2024-05-25 09:10:47 -05:00
Adam Honse 1f3bcaf52a Update HYTE mousemat controller files to new standardized header comment 2024-05-24 14:04:28 -05:00
Adam Honse 056485fabf Update HyperX mousemat controller files to new standardized header comment 2024-05-24 13:57:38 -05:00
Adam Honse b43f31ebfb Update HyperX mouse controller files to new standardized header comment 2024-05-24 13:57:28 -05:00
balika011 1975c63b71 Fix Razer Chroma Addressable RGB Controller on Linux 2024-05-23 18:32:21 +02:00
morg c4917d30b0 Add F120 RGB Core Case version to NZXT Hue2 Controller 2024-05-23 15:11:58 +00:00
Balázs Triszka 540eaa5366 EVGA ACX30 Motherboard 2024-05-22 20:50:16 +00:00
TheRogueZeta 11bb1dcedb Initial commit for Gigabyte RTX 4070 TI Super Gaming OC 16G Rev 1.0 2024-05-21 15:05:11 -07:00
Julian Fellinger b3ad41a572 Added MSI RTX4060 Ti Super 16G Gaming X Slim White GPU 2024-05-20 19:42:41 +00:00
Adam Honse d9671e50ad Add metadata to HYTE mousemat controller 2024-05-20 12:10:40 -05:00
Adam Honse 40e1d7f0bc Update HyperX microphone controller files to new standardized header comment 2024-05-19 20:03:39 -05:00
Adam Honse 080e40c4d4 Update HyperX keyboard controller files to new standardized header comment 2024-05-19 19:53:45 -05:00
Adam Honse af830e5b21 Update HyperX DRAM controller files to new standardized header comment 2024-05-19 19:33:14 -05:00
Adam Honse acff88590c Update HP Omen 30L controller files to new standardized header comment 2024-05-19 19:28:53 -05:00
Adam Honse 4aa92c6272 Update Holtek controller files to new standardized header comment 2024-05-19 19:24:17 -05:00
Adam Honse de7d0a4c76 Update Gigabyte Aorus Super IO motherboard controller files to new standardized header comment 2024-05-19 18:15:18 -05:00
Adam Honse 75d77ea608 Update Gigabyte Aorus RGB Fusion GPU controller files to new standardized header comment 2024-05-19 18:11:00 -05:00
Adam Honse d19df6d931 Update Gigabyte Aorus RGB Fusion motherboard controller files to new standardized header comment 2024-05-19 18:07:05 -05:00
Adam Honse 6a8b5ecfa9 Update Gigabyte Aorus RGB Fusion 2 USB motherboard controller files to new standardized header comment 2024-05-19 18:03:14 -05:00
Adam Honse e27c7e8d64 Update Gigabyte Aorus RGB Fusion 2 motherboard controller files to new standardized header comment 2024-05-19 17:56:19 -05:00
Adam Honse cee3be9113 Update Gigabyte Aorus RGB Fusion 2 GPU controller files to new standardized header comment 2024-05-19 17:47:34 -05:00
Adam Honse 0b78dd3d86 Update Gigabyte Aorus RGB Fusion 2 RAM controller files to new standardized header comment 2024-05-19 17:40:29 -05:00
Adam Honse e22267fbeb Update Gigabyte Aorus case controller files to new standardized header comment 2024-05-19 17:36:17 -05:00
Adam Honse c8bafd10aa Update Gigabyte Aorus mouse controller files to new standardized header comment 2024-05-19 17:32:41 -05:00
Adam Honse e086085375 Update Gigabyte Aorus laptop controller files to new standardized header comment 2024-05-19 17:26:14 -05:00
Mike Wang efd26d4e49 Fix Gigabyte RTX 4070 Gaming OC fan RGB #3345 2024-05-19 22:19:09 +00:00
Adam Honse 3debbc36dd Update Gigabyte CPU cooler controller files to new standardized header comment 2024-05-19 02:08:03 -05:00
Adam Honse b0bb6e7b1b Update Galax GPU controller files to new standardized header comment 2024-05-19 01:26:47 -05:00
Adam Honse 019b049d06 Update GaiZhongGai keyboard controller files to new standardized header comment 2024-05-19 01:09:29 -05:00
Adam Honse 1b0d915a63 Update Gainward GPU controller files to new standardized header comment 2024-05-19 00:44:51 -05:00
Adam Honse 2c3e102772 Update Faustus controller files to new standardized header comment 2024-05-17 20:27:02 -05:00
Adam Honse 502f23e102 Update FanBus controller files to new standardized header comment 2024-05-17 20:23:15 -05:00
Adam Honse cd5b8e08c7 Update EVision keyboard controller files to new standardized header comment 2024-05-17 11:49:02 -05:00
Adam Honse 8650ec51ae Update EVGA USB controller files to new standardized header comment 2024-05-17 11:33:36 -05:00
Adam Honse b93e6be0b0 Update EVGA V2 GPU controller files to new standardized header comment 2024-05-17 11:33:17 -05:00
Adam Honse 211497193d Update EVGA V1 GPU controller files to new standardized header comment 2024-05-17 11:32:56 -05:00
Adam Honse 794f6a81e9 Update EVGA GP102 GPU controller files to new standardized header comment 2024-05-17 11:32:20 -05:00
TomHashNL df379e680f Add support for ASUS ROG MATRIX PLATINUM RTX 4090 24G 2024-05-17 13:58:40 +02:00
Adam Honse 1bdc8dfa7a Add silent configuration to suppress compiler commands in qmake output, should hopefully make the logs more readable (and not overflow the buffer) 2024-05-17 01:25:45 -05:00
Adam Honse a6c3bdd4f1 Move windows.h out of alphabetical order because it needs to be first to compile 2024-05-17 01:20:54 -05:00
Adam Honse 19e5626d50 Update EVGA V3 GPU controller files to new standardized header comment 2024-05-16 22:33:38 -05:00
Adam Honse 9f98e8767c Update Espurna controller files to new standardized header comment 2024-05-16 22:28:01 -05:00
Adam Honse d5590ed427 Update Epomaker controller files to new standardized header comment 2024-05-16 22:22:23 -05:00
Adam Honse 50ec1095c1 Update ENE SMBus controller files to new standardized header comment 2024-05-16 22:06:29 -05:00
Adam Honse 9b1ea375b8 Fix name redefinition/conflict in plugin manager 2024-05-16 21:39:04 -05:00
Adam Honse d9866e3bd4 Update Elgato Light Strip controller files to new standardized header comment 2024-05-16 11:48:14 -05:00
Adam Honse 8a77fe5525 Update Elgato Key Light controller files to new standardized header comment 2024-05-16 11:43:53 -05:00
Adam Honse a51febd0f7 Update EK controller files to new standardized header comment 2024-05-16 11:39:32 -05:00
Adam Honse acc85f8891 Update E1.31 controller files to new standardized header comment 2024-05-16 11:36:27 -05:00
Adam Honse d8f3baf8e8 Update Dygma Raise controller files to new standardized header comment 2024-05-16 11:33:12 -05:00
Adam Honse 4f870489ad Update Ducky controller files to new standardized header comment 2024-05-16 11:30:05 -05:00
Adam Honse d78b8d5d40 Update DMX controller files to new standardized header comment 2024-05-16 11:30:05 -05:00
Adam Honse 89fd45f1ac Update Debug controller files to new standardized header comment 2024-05-16 11:30:05 -05:00
Qwex 66a53cde3d Mac Update info product name 2024-05-16 13:24:19 +00:00
Adam Honse e4fb4f53ae Update Das Keyboard controller files to new standardized header comment 2024-05-15 11:53:02 -05:00
Adam Honse 1630d50e72 Update Dark Project controller files to new standardized header comment 2024-05-15 11:46:59 -05:00
Adam Honse 0231a27861 Update Cryorig H7 Quad Lumi controller files to new standardized header comment 2024-05-15 11:42:56 -05:00
Adam Honse 1eb2a68a16 Update Crucial controller files to new standardized header comment 2024-05-15 11:38:36 -05:00
Adam Honse e9d7b6b103 Update Creative controller files to new standardized header comment 2024-05-15 11:34:11 -05:00
Adam Honse 1e53aae676 Update Cougar controller files to new standardized header comment 2024-05-15 11:31:40 -05:00
Adam Honse da8469f478 Update all Corsair controller files to use new standardized file header comment 2024-05-14 19:14:09 -05:00
Adam Honse fc97d6130b Update file header comments to standardized new format for Cherry, Colorful, and Cooler Master files 2024-05-12 17:16:31 -05:00
Barry H 889110961a Add 3 new Asus ROG Strix AMD cards RX560, RX590 & 5700XT (Q Bios) 2024-05-12 19:16:59 +00:00
Adam Honse 02d3b27073 Update file header comments to standardized new format for BlinkyTape files 2024-05-11 21:41:01 -05:00
Adam Honse 88929f9e4c Update file header comments to standardized new format for Asus TUF laptop files 2024-05-11 21:28:16 -05:00
Adam Honse 93573a93ca Update file header comments to standardized new format for Asus legacy USB files 2024-05-11 21:05:39 -05:00
Adam Honse 08304c5474 Update file header comments to standardized new format for Asus Aura USB files 2024-05-11 20:38:00 -05:00
Adam Honse c60539cb62 Update header comments for some ASUS controllers 2024-05-09 11:56:22 -05:00
Adam Honse 6aa6e5a972 Update file header comments to new standardized format for ASRock SMBus controller files 2024-05-09 06:48:05 -05:00
Adam Honse 30acbb10f7 Update more controller files' header comments to new standardized format 2024-05-08 20:51:16 -05:00
Chris M b87bf14fd5 Added Asus ROG Strix RTX4070Ti Super 16GB Gaming OC GPU
* Added `0x896B` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4070tis-o16g-gaming/)
* Resolves #4119
2024-05-09 00:54:49 +00:00
Adam Honse 1bbfded78a Update more file header comments to standardized new format, move some locally owned files out of the dependencies folder 2024-05-08 11:53:07 -05:00
Adam Honse ff2957ec80 Update the rest of the user interface file header comments to the standardized new format 2024-05-08 00:40:41 -05:00
SDD701 e11046d076 added Redragon M801 Sniper support 2024-05-07 14:55:28 +07:00
Adam Honse da80b12fda Update some user interface file header comments to standardized new format 2024-05-06 16:35:13 -05:00
Chris M 2b23841ec2 Added MSI RTX4080 16G Gaming X Slim White GPU
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4080-16GB-GAMING-X-SLIM-WHITE)
* Resolves #4110
2024-05-05 01:47:41 +00:00
Adam Honse 4f951c13c6 Even more file header comment updates to standardized new format 2024-05-04 01:27:12 -05:00
Adam Honse a7c400bc65 Update yet more file header comments to standardized new format 2024-05-03 21:56:32 -05:00
Adam Honse a3066db16c Update even more file header comments to standardized new format 2024-05-03 11:52:02 -05:00
Alex Ritter 200b8e3a24 Fix mac info 2024-05-03 15:00:50 +02:00
Adam Honse b12cd438cd Update more file header comments to standardized new format 2024-05-03 00:39:21 -05:00
Adam Honse f38b7485f7 Start updating file header comments to standardized new format 2024-05-03 00:05:12 -05:00
Cooper Hall 1ca946f3eb improved I2C/SMBus warning message 2024-05-03 04:08:11 +00:00
Chris M 6c4d901cb9 Added Asus Strix LC RTX4090 24GB Gaming GPU
* Added `0x88E8` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-lc-rtx4090-o24g-gaming/)
2024-05-03 07:17:55 +10:00
Adam Honse 30ab1bfadd Add some comments to device page code 2024-05-02 11:11:02 -05:00
Qwex ad6e83885e Fix mac os crash on rescan 2024-05-02 12:57:13 +00:00
Chris M 7ae3ee5e72 Swap Razer Naga Chroma Logo & Scroll Wheel zones
* Resolves #4098
2024-05-02 05:26:17 +00:00
Adam Honse 95d9998398 Add Hex color value box 2024-05-02 00:20:30 -05:00
Adam Honse 9c2d30bbbd Formatting and organizational cleanup for controllers through CoolerMasterController 2024-05-01 00:13:41 -05:00
Adam Honse b6d5c64c5b Formatting and organizational cleanup for controllers beginning with A 2024-04-30 23:45:41 -05:00
Adam Honse 89645dff38 Remove LenovoGen7USBController, as it has been superseded by LenovoUSBController_Gen7_8 and is dead code 2024-04-30 18:53:50 -05:00
Adam Honse d52ad02c5c Organize most controller files into subfolders 2024-04-30 17:18:39 -05:00
Adam Honse ba57bad361 Even more warning fixes 2024-04-29 19:57:57 -05:00
Adam Honse d3c81d3306 More warning fixes 2024-04-29 18:08:33 -05:00
rc_05 f39409b7aa Added support for HyperX Pulsefire Core (HP Inc. version) 2024-04-29 21:37:14 +00:00
Codename-Antares f229c93fd4 Add Support for Red Square Keyrox TKL V2 2024-04-29 18:07:18 +00:00
Adam Honse fb963f4ab2 Fix even more warnings 2024-04-28 18:12:17 -05:00
Adam Honse 06ca1448d1 Fix more warnings 2024-04-28 16:15:09 -05:00
Adam Honse aa2c557045 Fix some warnings 2024-04-28 14:33:09 -05:00
Barry H 42542b6b67 Add Corsair M65 RGB Ultra Wired 2024-04-22 03:40:36 +00:00
calamar 31e72737c5 Add support for PNY RT 4070 Ti Super XLR8 Verto 2024-04-17 14:49:50 +00:00
Chris M 2c9e96c854 Added Asus Strix RTX4080 Super O16GB Gaming White GPU
* Added `0x8968` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4080s-o16g-white/)
* Resolves #4081
2024-04-17 13:12:57 +00:00
Adam Honse 2f80548303 Initial commit for NZXT Mouse Controller (NZXT Lift), implements only Direct mode 2024-04-16 18:09:50 -05:00
Oleh Selin fe87c25c16 Fix zone number for Razer Ornata V3 TKL 2024-04-14 19:18:24 +03:00
Chris M bdf6b763ba Added MSI RTX4080 Super 16G Gaming X Slim White GPU
* Added `0x511A` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4080-SUPER-16G-GAMING-X-SLIM-WHITE)
* Resolves #4068
2024-04-13 10:06:16 +10:00
Andrew Babbitt cafca16c81 Support for Corsair Dominator Titanium 2024-04-11 16:29:53 +00:00
Chris M 90a828e7a9 Added Asus Strix RTX4080 Super 16GB Gaming White GPU
* Added `0x8969` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4080s-16g-white/)
* Resolves #4066
2024-04-11 14:56:29 +10:00
Chris M 23d9a26ced Added Asus TUF RTX4070Ti Super 16GB Gaming OC White GPU
* Added `0x895B` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/us/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4070tis-o16g-white-gaming/)
* Resolves #4061
2024-04-09 22:04:21 +10:00
WhoAmI 116cbb1707 Added Gainward GeForce RTX 3050 Ghost support 2024-04-07 03:16:25 +00:00
Jonathan Guzman 7b2534a3a5 Add Logitech G733 2nd variant 2024-04-07 02:14:51 +00:00
Adam Honse 1087ef12eb Fix configuration for MSI PRO B650-P WIFI (7D78) 2024-04-06 15:25:36 -05:00
Wayne Riordan 568da43bb6 Initial commit to add Lenovo Legion M300 RGB Mouse
Added support for Lenovo Legion M300 RGB Mouse.
Added all supported modes Static, Rainbow, Breathing and Off
Also Tested all modes to verify its working
2024-04-06 14:36:09 -05:00
BlackHoleFox 6243a66b0b Added ASUS STRIX RTX4080 SUPER Gaming OC 16GB GPU 2024-04-06 19:20:52 +00:00
Mohammed Julfikar Ali Mahbub 7d3c02c0c5 Added support for A4Tech B820R Keyboard 2024-04-06 19:19:47 +00:00
Danlei Zhou f54d118399 Detect another NZXT RGB & Fan Controller 2024-04-04 18:49:11 +00:00
Chris M 4c33eb057f Added Gigabyte RTX 4060Ti Gaming OC 16GB GPU
* Added `0x4112` to pci_ids.h
* Registered detector in GigabyteRGBFusionGPUControllerDetect.cpp
* Link to [webpage](https://www.gigabyte.com/Graphics-Card/GV-N406TGAMING-OC-16GD#kf)
* Resolves #4047
2024-04-03 17:59:00 +11:00
Chris M 42627120e3 Added MSI RTX4080 16G Gaming X Trio White GPU
* Added `0x5115` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4080-16GB-GAMING-X-TRIO-WHITE)
* Resolves #4042
2024-04-02 08:08:43 +11:00
Karachalios Stagkas Athanasios Nektarios 53f589fa37 Added Greek Translation 2024-04-01 07:21:31 +03:00
Barry H ddcc4a8119 added Asus KO 3060Ti (another variant) & Asus KO 3070 V1 2024-03-31 06:01:01 +00:00
Adam Honse 89983dcdd1 Process received magic using a loop in client and server 2024-03-25 19:56:33 -05:00
Adam Honse cf4fd16b09 Define SDK magic string value as a shared constant in NetworkProtocol.cpp, use InitNetPacketHeader function to set up packets 2024-03-25 19:45:06 -05:00
Adam Honse 9215ae0514 Clean up comment formatting in NetworkServer.cpp 2024-03-25 17:50:37 -05:00
Chris M 94684a0a78 Added Asus ROG Strix RTX4070Ti Super 16GB Gaming OC GPU
* Added `0x8957` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/us/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4070tis-o16g-gaming/)
* Resolves #4030
2024-03-25 04:43:31 +00:00
Adam Honse 1c62c26cac Clean up comment formatting in NetworkClient.cpp 2024-03-24 19:35:59 -05:00
Adam Honse 2316ec4add Add notes discouraging merge requests with protected master branch as the source 2024-03-24 18:59:10 -05:00
Chris M 824231f6f3 Added MSI RTX4070 12G Gaming X Slim GPU
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-GAMING-X-SLIM-12G)
* Resolves #4028
2024-03-24 17:50:35 +00:00
Chris M a1e1dffe81 Initial commit for Razer Huntsman Mini Analog
+ Adding PID `0x0282` for the Huntsman Mini Analog
+ Added metadata to RazerDevices.cpp
+ Registered detectors
+ Added capabilities to RazerController.cpp
+ Resolves #3387
2024-03-23 10:15:13 +11:00
Adam Honse d89eb06cb1 Increase JGINYUE delay to prevent flickering at higher frame rate effects when zones have all 100 LEDs enabled 2024-03-21 00:40:50 -05:00
Adam Honse 6378f65ed1 Fix crash related to JGINYUE controller and clean up zone initializations 2024-03-21 00:26:42 -05:00
Chris M 525fff5d0f Added Asus ROG Strix RTX4070 12GB Gaming OC GPU
* Added `0x88F3` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/us/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4070-o12g-gaming/)
* Resolves #4015
2024-03-21 12:41:45 +11:00
RedBlackAka b68692baa2 Make GPU naming much more consistent 2024-03-20 22:52:39 +00:00
Adam Honse 5532e2e290 Remove duplicate 2024-03-17 17:19:48 -05:00
Adam Słaboń 5586206f46 Add support for Evision V2 based Endorfy Omnis 2024-03-17 22:07:21 +00:00
Adam Słaboń 6e93a25930 Fix "Starlight slow" effect referencing wrong value on Evision V2 keyboards 2024-03-17 22:07:21 +00:00
ArthurGamerHD 1150e04983 Initial commit for HP's HyperX Pulsefire Surge 2024-03-17 22:06:29 +00:00
Adam Honse 04846c8ba1 Fix build 2024-03-15 20:52:35 -05:00
Chris M 3c35965ca9 Added Gigabyte RTX 4070S Aero OC 12GB GPU
* Added `0x4139` to pci_ids.h
* Registered detector in GigabyteRGBFusion2GPUControllerDetect.cpp
* Link to [webpage](https://www.gigabyte.com/Graphics-Card/GV-N407SAERO-OC-12GD#kf)
* Resolves #4010
2024-03-16 01:40:01 +00:00
ronny332 1405ecfd53 Additional support for ROG-STRIX-RTX-4090-O24G-WHITE (90YV0ID2-M0NA00) with different ID. 2024-03-15 23:50:05 +00:00
Adam Honse 87c3de9316 Fix build 2024-03-15 18:15:05 -05:00
Dominik B efdf3d42be Added ElgatoLightStrip Support 2024-03-15 22:58:17 +00:00
Mola19 3bc169e4f6 add support for Asus ROG Strix Scope II to resolve #3971, #3976 2024-03-14 18:18:17 +00:00
Chris dfde4880c9 Initial commit for Razer Blackwidow V4
+ Adding PID `0x0287` for the Blackwidow V4
+ Added metadata to RazerDevices.cpp
+ Registered detectors
+ Added capabilities to RazerController.cpp
+ Resolves #4008
2024-03-14 18:05:06 +00:00
Mola19 80f033d76e add support for ASUS ROG Strix XG32VC to resolve #3859 2024-03-14 18:02:24 +00:00
Chris M 82fae96dcf Added MSI RTX4070 Super 12G Gaming X Slim White GPU
* Added `0xE131` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-GAMING-X-SLIM-WHITE-12G)
* Resolves #4014
2024-03-13 08:07:46 +11:00
Chris e52adedf2d Initial commit for Razer Cobra
+ Adding PID `0x00A3` for the Cobra
+ Added metadata to RazerDevices.cpp
+ Registered detectors
+ Added capabilities to RazerController.cpp
+ Resolves #3697
2024-03-11 08:18:03 +11:00
Milan Cermak 98248e87d2 [New Device] MSI MEG Z590 ACE Gold Edition (MS-7D04) 2024-03-10 19:06:50 +00:00
Chris M fb7193a31f Initial commit for Razer Leviathan V2
+ Adding PID for the Leviathan V2
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #4002
2024-03-10 19:05:50 +00:00
Chris 6dadd3cef6 Fixed config table for Asus ROG Strix 4070 Super
* Corrected name label in detector
* Added config table entry for new found version
* Resolves #4005
2024-03-10 13:05:16 +11:00
Simon Grund 025ecf98b5 Added Palit RTX 4070 SUPER Dual support 2024-03-08 23:17:59 +00:00
Barry H a1d17a1d49 Add support for ROG Strix RTX 4090 24G Gaming & EVA-02 Edition 2024-03-08 02:34:53 +00:00
Chris M 49afa5620f Added Gigabyte RTX 4070Ti Gaming OC 12GB GPU
* Added `0x4100` to pci_ids.h
* Registered detector in GigabyteRGBFusion2GPUControllerDetect.cpp
* Link to [webpage](https://www.gigabyte.com/Graphics-Card/GV-N407TGAMING-OCV2-12GD#kf)
* Resolves #3890
2024-03-08 02:32:03 +00:00
Chris a89bdba58f Added Gigabyte 4060Ti Gaming OC 8GB GPU
* Added `0x40F8` to pci_ids.h
* Registered detector in GigabyteRGBFusionGPUControllerDetect.cpp
* Link to [webpage]( https://www.gigabyte.com/Graphics-Card/GV-N406TGAMING-OC-8GD#kf)
* Resolves #3944
2024-03-08 02:28:48 +00:00
Chris M 5c41810a4a Added Gigabyte Aorus 3080Ti XTreme WF 12GB GPU
* Added `0x4082` to pci_ids.h
* Registered detector in GigabyteRGBFusion2GPUControllerDetect.cpp
* Link to [webpage](https://www.gigabyte.com/Graphics-Card/GV-N308TAORUSX-WB-12GD)
* Resolves #2041
2024-03-06 09:18:35 +11:00
Alex Koskovich 04410b6611 Fixes for desktop-entry-spec & appstream 2024-03-04 15:13:49 +00:00
诺诺 beec2c76c9 Add new Controller Nollie1 2024-03-04 15:10:54 +00:00
thombo e508f3f4fa Support for MSI boards 7D74, 7D90, 7D99, 7E03 and 7E27 added 2024-03-04 05:34:09 +00:00
TheRogueZeta ac0f6f1043 Initial commit for ASUS ROG-STRIX-RTX4090-O24G-WHITE PN 90YV0ID2-M0NA00 2024-03-04 05:33:44 +00:00
Alex Koskovich 61e7664657 Fix building with GCC 14 2024-03-04 05:33:26 +00:00
Codename-Antares 2dd17eba30 HyperX Quadcast S HP version 6 add PID 2024-03-04 05:31:55 +00:00
Chris 2fe78ddd98 Added MSI RTX4080 Super 16G Suprim X GPU
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4080-SUPER-16G-SUPRIM-X/Specification)
* Resolves #3986
2024-03-04 05:31:15 +00:00
Chris 7d63846c49 Fixed Location for QMK keyboards
* Prevented profiles being (re)applied to QMK keyboards consistently
2024-03-04 05:30:45 +00:00
Sebastian Kuźlak 7300f4facd Add Sapphire Radeon RX 6650 XT Nitro+ support. Ref #3982 2024-03-04 05:30:20 +00:00
Mola19 dba3e4d42c Add support for Asus ROG Azoth to resolve #3304 2024-03-03 02:38:37 +00:00
Mola19 c1680e9936 Add support for Asus ROG Keris Wireless AimPoint to resolve #3223 2024-03-02 20:17:38 +00:00
Chris ac73ccb45a Added PNY RTX 3070Ti Gaming Uprising EPIC-X GPU
* Added `0x138D` to pci_ids.h
* Registered detector in NVIDIAIlluminationControllerDetect_Windows.cpp
* Link to [webpage](https://www.pny.com/geforce-rtx-3070-ti-uprising)
* Resolves #3173
2024-02-29 19:10:12 +00:00
Chris 2ad7e505fc Added MSI RTX4070 Super 12G Gaming X Slim GPU
* Added `0x513F` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Removed missing modes Rhythm & Stack
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-SUPER-12G-GAMING-X-SLIM/Specification)
* Resolves #3987
2024-02-29 09:21:42 +11:00
Jack 300dcd14bf Fix invalid color mode 2024-02-28 19:07:20 +00:00
Chris ca13118b25 Added Asus TUF RTX4070 Super 12GB Gaming OC GPU
* Added `0x8972` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4070s-o12g-gaming/spec/)
* Resolves #3975
2024-02-28 20:41:51 +11:00
TheRogueZeta 8b90c249fb Add additional ID for ROG-STRIX-RTD4090-O24G-Gaming PN 90YV0ID0-M0NA00 2024-02-27 04:45:19 +00:00
TheRogueZeta 2319f0c4c2 Initial commit for 4080 Super Founders device ID 2024-02-27 04:44:44 +00:00
Kosma Moczek 09c413f7c8 Added ZOTAC GAMING GeForce RTX 2080 SUPER Twin Fan 2024-02-27 04:43:15 +00:00
Valerio Ciuffreda d4cb016541 Italian translation 2024-02-22 22:56:08 +00:00
Adam Honse f60e2ca75f Fix Mac Build 2024-02-22 18:04:12 +00:00
Chris c6aee96049 Fixed small logic bug from b05f954d in QMKOpenRGBRevBController 2024-02-21 15:51:44 +00:00
Chris b95789a5b5 Added Aerox3 and Aerox9 detectors to Rival3 metadata
* Fixes UDEV rules and Supported Devices
2024-02-21 15:40:24 +00:00
Chris a8e8dd77e3 Fixed Korean label enabling switching in settings 2024-02-21 15:39:32 +00:00
Chris 5c318e5bb7 Added Asus TUF RTX3080 12GB Gaming GPU
* Added `0x886F` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx3080-12g-gaming/)
* Resolves #3968
2024-02-21 15:38:37 +00:00
Chris M d2b4ff1c56 Updated OpenRGB.pro to dynamically resolve source files
* Created FORMS macro list dynamically
* Added GUI_H and CONTROLLERS_H list to HEADERS
* Added GUI_CPP and CONTROLLERS_CPP list to SOURCES
* Added unique list of GUI_INCLUDES and CONTROLLER_INCLUDES to INCLUDES
* Adjusted platform specific builds to align build targets
2024-02-21 22:00:02 +11:00
Luke f4220dffb7 Support NZXT RGB Controller with PID 0x2021. 2024-02-19 17:31:36 +00:00
Chris 548988cbef Added MSI RTX3070 Suprim 8GB LHR GPU
* Registered detector in MSIGPUControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-3070-SUPRIM-8G-LHR/Specification)
2024-02-18 22:55:17 +00:00
Chris M cfd35e797c Added Asus TUF RTX4080 Super O16GB OC Gaming GPU
* Added `0x8962` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/us/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4080s-o16g-gaming/)
* Resolves #3952
2024-02-18 22:54:22 +00:00
Chris M 85da26f809 Added MSI RTX4080 Super 16GB Gaming X Slim GPU
* Added `0x5117` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4080-SUPER-16G-GAMING-X-SLIM/)
* Resolves #3954
2024-02-18 22:52:26 +00:00
Chris M 9304b94865 Added MSI RTX4070Ti 12GB Gaming X Slim White GPU
* Added `0xE132` to pci_ids.h
* Registered detector in MSIGPUv2ControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-Ti-GAMING-X-SLIM-WHITE-12G/Specification)
* Resolves #3953
2024-02-18 22:50:39 +00:00
Chris e472bd0620 Adding PNY RTX4080 16GB Verto Epic-X GPU
* Added 0x13BC to pci_ids.h
* Registered detector in PNYLovelaceGPUControllerDetect.cpp
* Link to [webpage](https://www.pny.com/en-eu/pny-geforce-rtx-4080-16gb-epic-x-argb-triple-fan-oc)
* Resolves #3905
2024-02-18 22:48:35 +00:00
twiz 80ed45b161 EVGA GTX 1080 FTW2 DT 2024-02-18 22:47:27 +00:00
Chris M 4134de5daf Added Asus TUF RTX4080 Super 16GB Gaming GPU
* Added `0x8963` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/uk/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4080s-16g-gaming/)
* Resolves #3945
2024-02-16 16:01:03 +00:00
Chris M f5baa2e13b Added PNY RTX4080 Super 16GB Verto GPU
* Added `0x1418` to pci_ids.h
* Registered detector in PNYLovelaceGPUControllerDetect.cpp
* Link to [webpage](https://www.pny.com/pny-geforce-rtx-4080-super-16-gb-xlr8-gaming-verto-epic-x-rgb-triple-fan-oc)
* Resolves #3941
2024-02-16 18:06:28 +11:00
Chris M 1385a39379 Added ASUS TUF RTX 4070 Super 12G Gaming GPU
* Added `0x8952` to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4070s-12g-gaming/)
* Resolves #3950
2024-02-16 03:31:44 +00:00
Chris M f29c6a66d9 Added MSI 4070 Ti Super 16G Gaming Slim GPU
* Added SubID `0xE130` to pci_ids.h
* Registered detector in MSIGPUControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-
Ti-SUPER-16G-GAMING-SLIM)
* Resolves #3946
2024-02-16 07:20:43 +11:00
Boo Ray 785a19de53 Added support for AOC GK500 Italian Keyboard Layout 2024-02-15 15:48:48 +00:00
Moon Sungjoon 0024062e9a Add Korean language support 2024-02-15 17:41:37 +09:00
Chris e18b3c6b30 Added MSI 4070 Ti Super 16G Gaming X Trio White GPU
* Registered detector in MSIGPUControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-Ti-SUPER-16G-GAMING-X-TRIO-WHITE)
* Resolves #3925
2024-02-14 15:10:38 +00:00
SubjectName ff40af1e0d Add support for Zotac RTX 4080 AMP with alternate Sub-Device ID 2024-02-14 15:04:31 +00:00
Barry H c67920353e Add support for ZOTAC RTX 3070 AMP Holo LHR 2024-02-13 22:28:27 +00:00
Barry H 00e9fcc535 Fix for Supported Device page showing label instead of PID 2024-02-13 15:25:00 +00:00
Barry H e47a4ec98e Add support for Zotac RTX 3080 Trinity OC Non LHR 2024-02-12 14:27:42 +00:00
IPCristian 740fdd7aa0 Added support for the Gigabyte 4080 Super Gaming OC 2024-02-12 13:58:26 +00:00
Barry H 7c0364ffa3 add support for Corsair K68 RED 2024-02-12 07:39:34 +00:00
Денис Назаров f856480077 Add support for Gigabyte AORUS C300 Glass PC Case 2024-02-12 07:36:30 +00:00
Nenderus 6a944b311a Add support for Gigabyte X570 AORUS Pro 2024-02-11 16:32:03 +03:00
Barry H ced8924ab0 Add support for EVGA GeForce RTX 3070 XC3 ULTRA GAMING 2024-02-10 07:53:53 +00:00
Chris M d2706e5f90 Added EVGA RTX2080 XC Hybrid Gaming O8G GPU
* Added 0x2184 to pci_ids.h
* Registered detector in EVGATuringGPUControllerDetect.cpp
* Link to [webpage](https://www.evga.com/products/Specs/GPU.aspx?
pn=b4205add-a8bd-4a05-a685-3502c19cb8e9)
* Resolves #3938
2024-02-09 07:39:09 +11:00
Cyril Bosselut 9506bcb2bb Nanoleaf device configuration 2024-02-08 14:03:20 +00:00
Денис Назаров cc376b71c8 Extended support Gigabyte AORUS ATC800 2024-02-07 14:29:07 +00:00
Денис Назаров 350863e3b8 Add more effects for Gigabyte Aorus ATC800 2024-02-04 21:32:55 +00:00
mirh 78a47be4ae Fix ITE8688 typo 2024-02-03 21:51:02 +01:00
Chris bfb3052255 Remove redundant K100 controller
* Moved Existing K100 optical and K100 MX Red detectors to new V2 controller.
2024-02-03 06:24:59 +00:00
Mola19 2dfde7e8cd add support for Roccat Vulcan Pro to resolve #3856 2024-02-03 03:28:26 +01:00
djdox23 a13a528117 edit pci-id for4070S - support for 4070s gaming oc gigabyte 2024-02-02 21:30:29 +00:00
zopieux 0eda5279b2 Fix Razer Huntsman v2 extra key layout 2024-02-02 03:33:42 +00:00
Chris M e4fa1013f5 Removed duplicate GetKeyboardMappingLayoutType(int) declaration
* Refactored ValkyrieKeyboardController to fix pipeline
2024-02-02 07:54:59 +11:00
Barry H 249aa81423 Add Valkyrie VK99 Normal 2024-02-01 17:38:55 +00:00
Cyril Bosselut c623e0416e Initial commit for Razer Kraken Kitty V2 Black Edition 2024-02-01 17:35:54 +00:00
Cyril Bosselut 5f538260a2 Add speed option to CLI 2024-01-31 17:06:29 +00:00
Mola19 479dbe979d add support for Roccat Pyro to resolve #1813 2024-01-31 05:07:58 +00:00
Chris 3636f1e40b Adding PNY RTX4070Ti 12GB Verto Epic-X GPU
* Added 0x13D4 to pci_ids.h
* Registered detector in PNYLovelaceGPUControllerDetect.cpp
* Link to [webpage](https://www.pny.com/pny-geforce-rtx-4070-ti-12gb-verto-epic-x-oc-triple-fan)
* Resolves #3852
2024-01-30 12:37:14 +11:00
Chris af049e234f Initial commit for Razer Goliathus Chroma 3XL
+ Adding PID `0x0C06` for the Goliathus Chroma 3XL
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #3908
2024-01-29 01:51:45 +00:00
Cyril Bosselut 9d3c96a43c Fix Mac OS Build 2024-01-29 00:50:30 +00:00
Cyril Bosselut c1d3e91c32 Fix Tricolor mode 2024-01-28 02:52:13 +00:00
Chris ce3c30f443 Added Asus RTX4070 Ti Super 16G Gaming GPU
* Added 4070Ti Super model ID 0x2705 and Sub ID 0x8958 to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4070tis-16g-gaming/)
2024-01-28 02:38:25 +11:00
Lukas 567a91323a Add Corsair K100 variant Controller V2 2024-01-26 21:56:14 +00:00
Chris ba9d89ff87 Adding ASUS ROG Strix RTX3050 8G Gaming GPU
* Added 0x8872 to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx3050-8g-gaming-model/)
* Resolves #3904
2024-01-26 11:31:58 +11:00
morg bbb0410ad6 Add support for ASUS TUF RTX 4070 Ti 12G Gaming variant 2024-01-24 16:15:32 +01:00
Garrett Denham 83e304b80e Initial commit for ROCCAT Kone Pro mouse 2024-01-24 00:23:32 +00:00
Qwex 2ec52b68ba Clean up usb Asus motherboard (Aura) controller 2024-01-23 13:57:28 +00:00
OctopusET 9436b55556 Fix language code in qt/i18n 2024-01-22 17:49:55 +00:00
Jon Dunlap adc62c3da8 Add support for ASUS ROG Strix Flare II 2024-01-22 11:19:16 -05:00
morg cee841f3ba Add Anko KM43277483 USB Gaming Mouse support 2024-01-22 14:41:58 +00:00
Chris e1ce61778c Adding ASUS TUF 3070Ti O8G V2 Gaming GPU
* Added 0x88BC to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx3070ti-o8g-v2-gaming/)
* Resolves #3883
2024-01-22 14:28:42 +00:00
Mola19 3839a4857d fix version for Asus Keris Wireless in USB mode 2024-01-22 01:55:17 +01:00
morg a0c529ed59 Add support for instant microelectronics mice. Close #2496 2024-01-21 23:33:20 +00:00
Adam Honse e5c76f1a3a Add Lian Li ALV2 controller to detector, uses same controller as SLV2 2024-01-21 16:22:32 -06:00
Chris bc66bfb442 Adding ASUS TUF 4070Ti O12G White Gaming GPU
* Added 0x8935 to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://www.asus.com/motherboards-components/graphics-cards/tuf-gaming/tuf-rtx4070ti-o12g-white-gaming/)
2024-01-20 18:43:04 +00:00
as3210 ca054abbcf Improve cherry code, e.g. for full size 10.0N RGB 2024-01-20 08:24:57 +00:00
Chris 4b6f62ade8 Corrected Asus Aura Ryuo Metadata
* Changed Metadata detector string for UDEV rules
* Resolves #3885
2024-01-20 11:13:24 +11:00
Barry H 0178b77ce1 Add support for ZOTAC RTX 3080 Trinity LHR ZT-A30800D-10PLHR 2024-01-19 18:21:29 +00:00
Barry H c3ddc32cef Add support for Palit RTX4080 GamingPro 2024-01-19 18:20:57 +00:00
Lucas Mindêllo de Andrade 6c279ea830 Adds iGame GeForce RTX 3080 Ultra W OC 10G LHR-V 2024-01-18 20:26:49 +00:00
Mola19 994016738e add support for Asus Rog Strix Scope II RX to resolve #3838 2024-01-18 15:55:49 +00:00
Mola19 b79cf82d96 add support for Roccat Vulcan 100 AIMO to resolve #2489 2024-01-14 17:58:09 +01:00
诺诺 ccec0828f9 Nollie32 bug fixes, and new controllers 2024-01-13 19:32:32 +00:00
Quang-Duy Tran 16938483a1 Add support for MSI GeForce RTX 4060Ti 16GB Gaming X 2024-01-13 01:24:01 +00:00
Mola19 de2b60b0bd add support for Asus ROG Strix Scope NX Wireless Deluxe to resolve #3777 2024-01-12 01:42:47 +00:00
Zach Deibert a489cd5458 Add support for Gigabyte RTX4060 Gaming OC 8G 2024-01-11 19:42:24 +00:00
Chris 5d101b8207 Added config options to Corsair Dominator Platinum metadata 2024-01-11 17:31:20 +00:00
Chris M 33e9d8e0e1 Initial commit for the Corsair Harpoon Wireless Mouse
+ Adding Harpoon Wired and Slipstream PID to
CorsairPeripheralV2Devices.h
+ Adding device layout
+ Registering detectors
+ Resolves #3834
2024-01-08 22:00:07 +11:00
Tam D f5bbd49e78 Fix coolermaster rescan crash 2024-01-07 21:45:18 +00:00
Lucas Mindêllo de Andrade 477fabd381 Adds new bios for igame rtx4080 ultraw 2024-01-07 02:22:28 +00:00
Grzegorz Sobański aa665a67bc Adding ASUS ROG STRIX 4080 16G White OC GPU 2024-01-05 05:26:44 +00:00
Cooper Hall 5b1fa93460 fixed errors of ValkyrieKeyboard code 2024-01-04 12:45:56 -07:00
诺诺 f6fd4e9d6c Add Valkyrie Keyboard valkyrie-99pro 2024-01-04 17:28:57 +00:00
morg c54a268e19 Fix name and version parsing for SteelSeries Aerox devices 2024-01-03 15:19:02 +00:00
Chris M 46095ce609 Added GA106 variant of iGame RTX 3060 Ultra W OC 12G 2024-01-03 14:00:21 +00:00
Luca bdfcef8dc1 Support for Razer ornata v3 tenkeyless 02A3 2024-01-03 13:59:43 +00:00
Adam Honse 28947ac0dd Revert "Enable removing the plugin dll from the menu" 2024-01-02 19:45:18 +00:00
Chris M c28c15a7fb Initial commit for Razer Naga Pro V2
+ Adding PID for the Naga Pro V2
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #3805
2024-01-02 16:30:40 +00:00
Chris 3ab12a45b8 Adding PNY RTX 4090 XLR8 Verto Epic-X OC
* Added `0x13D9` to pci_ids.h
* Registered detector in PNYLovelaceGPUControllerDetect.cpp
* Link to [webpage](https://www.pny.com/en-eu/pny-geforce-rtx-4090-24gb-xlr8-rgb-triple-fan-oc)
2024-01-02 14:20:46 +11:00
Chris dbbb7126ad Adding ASUS ROG STRIX 4080 16G White GPU
* Added 0x88C9 to pci_ids.h
* Registered detector in ENESMBusControllerDetect.cpp
* Link to [webpage](https://rog.asus.com/graphics-cards/graphics-cards/rog-strix/rog-strix-rtx4080-16g-white-model)
2024-01-02 11:05:04 +11:00
Chris M 93fc20de36 Formatting changes to the Roccat Controller Detector
* Adjusted list orders by alphabetising
* Aligned horizontal spacing
2023-12-30 17:57:42 +00:00
Dmitry K 869e9cb0fc Added mutex to prevent config corruption #3817 2023-12-30 17:57:01 +00:00
morg 252e067271 Add support for Roccat Burst Air Pro mouse. Closes #2527 2023-12-30 06:46:10 +00:00
Adam Honse 730f83a97f Fix JGINYUE internal USB controller detection on Windows 2023-12-29 18:06:16 -06:00
Ligolas Neo Malicdem 965048ad9c added support for 1060, 1070, 1070Ti (Palit Jetstream GTX) 2023-12-29 09:26:56 +00:00
morg 1a68abc8a0 Add support for PNY NVIDIA GeForce RTX 4090 Verto Epic-X RGB 2023-12-27 21:30:18 +01:00
Boom-Hacker acf12dfd5e Added Sapphire Nitro+ RX 7900 GRE support 2023-12-26 17:17:15 -06:00
Mr Hedan c9db576d32 DIRECT_MODE_PER_LED support MAG B365M MORTAR 2023-12-26 17:16:13 -06:00
Adam Honse 67fbdceb92 Enable removing the plugin dll from the menu
Implements change from MR !2148 without refactoring
2023-12-26 16:46:45 -06:00
Adam Honse db50b1f568 Add delay in between packets to stop flickering 2023-12-26 15:52:14 -06:00
Adam Honse 2d990ca037 JGINYUE USB controller cleanup, fix multiple detection 2023-12-26 15:52:08 -06:00
MOON-DREAM-STARS 82203b23d9 Code cleanup
Commits squashed by Adam Honse <[email protected]>
2023-12-26 15:51:47 -06:00
tcr020 9166ceb9b6 Initial JGINYUE USB ARGB controller implementation
Commits squashed by Adam Honse <[email protected]>
2023-12-26 15:50:02 -06:00
ITKinq 2325833c01 Add support for ASUS ROG Strix RTX 3090 Gundam Edition 2023-12-25 19:52:13 +00:00
karliss1 f8a837f106 Do not automatically save after each change on Asus Aura GPUs. 2023-12-25 18:50:50 +00:00
Chris M b05f954d35 Updates for QMK key code mapping
* Added QMKOpenRGBBaseController
* Refactored Rev9, RevB and RevD controllers to remove redundant code
* Updated "qmk_keycode_keyname_map" to add missing keycodes
* Resolves #3781
2023-12-25 07:47:15 +00:00
Mola19 6b4442ce39 add support for Roccat Magma Mini 2023-12-25 05:38:38 +00:00
Chris 9ff2b1f379 Adding MSI 4070 Ti Gaming X Trio White 12G GPU
* Added 0x5139 to pci_ids.h
* Registered detector in MSIGPUControllerDetect.cpp
* Link to [webpage](https://www.msi.com/Graphics-Card/GeForce-RTX-4070-Ti-GAMING-X-TRIO-WHITE-12G)
* Resolves #3802
2023-12-25 09:48:08 +11:00
Mola19 ff95fcfa88 add support for Asus ROG Strix Impact III 2023-12-24 22:25:56 +00:00
Iwan fcccb11990 add support for ASUS TUF RX 7900XT OC 2023-12-24 22:25:03 +00:00
Chris 1deae16211 Adding Logitech G635 to the Logitech common controller
+ Adding LOGITECH_G635_PID
+ Registering detector
* Small adjustment to PID ordering for readability
2023-12-21 10:09:38 +11:00
キー太郎 e59f2841a8 add another variant of the msi rtx3070 - Resolves #3787 2023-12-20 15:05:14 +00:00
Randy Palamar 04f7fd7a7e add missing sstream include for AutoStart-Linux 2023-12-15 16:23:43 +00:00
Daniel Gibson 7650ec67ba Support "Winbond Gaming Keyboard", like Pulsar PCMK or WIANXP/Nautilus/Capturer KT108 2023-12-14 17:30:21 +00:00
ParkerMc 6efc7ff294 Commander Core: Add led count detection 2023-12-14 17:25:59 +00:00
Abdo Osman 1f4e214e5a Add MSI MPG B650 Edge (MS_7E10) Support 2023-12-13 16:49:57 +00:00
Tam D a35616326c Cooler Master Keyboard Controller v2 2023-12-13 02:41:35 +00:00
James Wigley 28bf11d119 Add support for MSI RTX 4090 Gaming X Slim - Resolves #3699 2023-12-12 17:36:40 +00:00
Alexander Savchenko 88b4810c3f Initial commit for Palit 1080 Ti 2023-12-09 19:15:15 +01:00
Leon c6a454ffc6 Initial commit to support Gigabyte aero oc 4090 24gb 2023-12-09 04:24:51 +00:00
morg 2eb43fa445 Remove null terminating chars from profile names before using them in ProfileManager 2023-12-06 10:33:57 +01:00
1337Misom 6d562d8d37 MSI B650 GAMING PLUS WiFi support 2023-12-04 16:15:12 +00:00
Phoenix 9daac7c0df Add support for MSI B660M MORTAR MAX WIFI DDR4 2023-12-04 11:57:54 +11:00
Sniko Loft 9300cd3c25 Update NVIDIAIlluminationControllerDetect.cpp 2023-12-04 00:20:28 +00:00
hua0512 978b6f8d1c Add another variant of the ASUS ROG STRIX RTX 4070 Ti O12GB 2023-12-01 14:51:47 +01:00
Brad S. d178612f27 Added Support for Razer Blade 14 (2023) 2023-11-30 20:53:03 +00:00
Lucas Mindêllo de Andrade 85bfe32c0d [New Device] iGame GeForce RTX 4070 Vulcan OC-V 2023-11-30 20:31:32 +00:00
Florin9doi 413cd55d8d Add SKL-X SMBus DID 2023-11-29 22:25:04 +02:00
Rudolf Tym Souček d214ccba67 Add support for ASUS ROG-STRIX-GTX1660S-6G-GAMING 2023-11-29 17:23:43 +00:00
Adam Honse acaf1c2fed Remove dummy Direct mode handling from MSI Mystic Light 162 controller 2023-11-29 15:01:26 +00:00
Adam Honse 0a2d86b561 Remove custom handling of Direct mode for MSI 162-byte controller 2023-11-29 15:01:26 +00:00
Chris M b9f8243904 Fixed initial brightness for the CLI and fix initial brightness for Lian Li Hub SL V2 controller. 2023-11-29 14:17:16 +00:00
Me1k0r 672150aea2 added support for Lian Li Galahad II Trinity "Performance" variation 2023-11-28 16:51:45 +00:00
Mola19 d1a4ead83e fix error in Roccat Vulcan Keyboard Controller 2023-11-25 04:48:00 +01:00
Mola19 53ed66c8b8 add support for Roccat Magma to resolve #3205 2023-11-25 02:31:14 +01:00
Barry H 53ccbd6211 add nollie28 #3735 2023-11-23 02:31:16 +00:00
Mola19 9ffd853ae4 add direct mode to newer Asus mice 2023-11-23 00:32:13 +01:00
bradly0cjw 4d992b2226 add Zotac 3070 ti (ga102) 2023-11-22 21:22:55 +00:00
Mola19 a5b4938bbb add brightness to direct for Roccat Vulcan TKL 2023-11-22 03:45:29 +01:00
Mola19 94d9204177 Add support for Asus ROG Gladius III Wireless Aimpoint to resolve #3650 2023-11-21 03:51:57 +00:00
Dominik Mikołajczyk 8bf0ab45a1 Alienware AW410K support 2023-11-20 03:30:51 +00:00
Mola19 5cb0e54443 add support for Roccat Vulcan TKL to resolve #1616 + improvements to Roccat Vulcan protocol 2023-11-20 02:53:08 +00:00
Chris M 8716760e7e Added brightness to CreativeSoundBlasterXG6Controller 2023-11-18 21:03:16 +11:00
morg d886f61de9 Fix typo in hardware IDs dialog 2023-11-17 21:12:48 +01:00
Cooper Hall 3c89fa8859 minor refactor for RGBControler_Nollie 2023-11-17 14:47:57 +00:00
morg 38b787dbc1 RazerController: fix an unexpected end of string when layout is 0 2023-11-16 21:20:20 +01:00
诺诺 68a3cc43d9 Add new Controller Nollie16 2023-11-16 17:25:41 +00:00
morg 999bb03a45 Piix4 SMBus: set HANDLE initial value to prevent a crash on rescan 2023-11-14 08:43:06 +01:00
Dane Petersen 65a3fb9589 Add support for MSI GeForce RTX 4060 GAMING X 8G (closes #3526) 2023-11-13 20:50:13 +00:00
Norde 39673d419a PNY RTX 40xx series naming scheme update + support of PNY 4080 models. 2023-11-13 14:02:33 +00:00
Mola19 977f68c65c fix layout detection for Roccat Vulcan keyboards 2023-11-13 00:36:02 +00:00
Chris M a989166cdc Fixed regression bug from fd3434b8
* Renamed LenovoRGBController_Gen7_8 to RGBController_Lenovo_Gen7_8 to
align with naming convention
* Fixed #include statements pointing to wrong header(s)
* Corrected variable names in RGBController_Lenovo_Gen7USB.cpp
* Other style and formatting changes
2023-11-11 21:42:17 +11:00
vassilios fd3434b833 Changing current files to accomodate latest legion generation. 2023-11-10 18:11:16 +00:00
Norde 5e3dc69b26 Initial commit for PNY_RTX_4070TI_XLR8_SUB_DEV and PNY_RTX_4070TI_XLR8_OC_SUB_DEV 2023-11-10 15:14:18 +00:00
Qwex f06e1bbe1a Fix date on mac 2023-11-10 15:13:36 +00:00
Evan Mulawski f672397563 Generic device guard; use Corsair implementation for all Corsair HID cooling-capable controllers 2023-11-10 15:12:26 +00:00
Lucas Mindêllo de Andrade c5c5bf519b feat(igame): add rtx 3080 oc 10g 2023-11-09 17:28:59 +00:00
Chris M a689db4d3d Removed hid_get_device_info() function to correct CI/CD pipelines
* Regression introduced in dbeabe61
* Removed unrequired includes
* Aligned other variables and structures to ensure feature parity
2023-11-09 19:47:25 +11:00
Mola19 44610cf326 fix for saving on Asus ROG Spatha and Asus ROG Strix Evolve 2023-11-09 02:41:06 +01:00
Mola19 65e7edc452 add support for Asus ROG Spatha and restructure Asus Strix Evolve 2023-11-08 23:22:12 +00:00
Michael Losert dbeabe613d Add support for Lian Li GAII Trinity AIO 2023-11-08 17:54:20 +00:00
Chris M 12e7127422 Removed redundant copies of OpenRGBConsolePage.* 2023-11-08 23:35:12 +11:00
Jiewei Qian ba9ff4fcd6 Add pcie_id for Asus Strix 4090 White Edition 2023-11-04 08:09:59 +00:00
Chris M 9c601bde44 Initial commit for the Corsair K70 Pro keyboard
* Adding key layout and metadata to CorsairPeripheralV2Devices.cpp
* Adding new detector
* Resolves #2891
2023-11-02 13:42:59 +00:00
Chris M fda419faca Initial commit for Razer Basilisk V3 X HyperSpeed
+ Adding PID for the Basilisk V3 X HyperSpeed
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Small adjustments to packet timing to ensure serial / firmware is
readable
+ Resolves #3687
2023-11-02 21:55:04 +11:00
morg 7067bb774f Apex3TKL: do not send brightness if current brightness already set 2023-10-31 21:58:44 +00:00
Simon McKenna 26e584860e Add support for Lian Li SL Infinity controller 2023-10-31 01:48:43 +00:00
Florin9doi b1957d6c1d Fix Lenovo4Zone blue color 2023-10-30 14:21:28 +00:00
morg 64c7d858bf Ignore server-host pre-detection argument 2023-10-30 08:08:00 +01:00
Adam Honse d47be6b3b4 Initialize ROG Ally so that it works regardless of whether the hid-asus driver... 2023-10-30 01:46:00 +00:00
Chris M 558cce3002 Initial commit for Razer Ornata V3X Rev2
+ Adding PID for the Ornata V3X Rev2
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #3673
2023-10-29 14:23:39 +11:00
morg 7d637a502d Add help entry for --server-port option missing 2023-10-27 17:59:41 +02:00
Chris M 95c3212a83 Initial commit for the Corsair Katar Pro V2
* Adding LED layout and metadata to CorsairPeripheralV2Devices
* Adding new detector
2023-10-27 17:54:33 +11:00
Chris M f5feb6a31d Initial commit for the Corsair Katar Pro and Pro XT
* Adding LED layout and metadata to CorsairPeripheralV2Devices
* Adding new detector
* Resolves #3018
2023-10-27 06:57:11 +11:00
Chris M 759be39fc7 Initial commit for the Corsair K60 Pro TKL keyboard
* Adding key layout and metadata to CorsairPeripheralV2Devices.cpp
* Adding new detector
* Resolves #3689
2023-10-26 20:53:54 +11:00
djdox23 ce4dd7ff87 Update for gigabyte-4070-ti-gaming inside pci_ids.h and controller. 2023-10-25 22:25:33 +00:00
Martin Nygaard Jensen e8324892df Update AnnePro2ControllerDetect.cpp to contain new VID 0x3311 2023-10-21 13:52:48 +00:00
Adam Honse ad9e50c9d3 Fix metainfo links 2023-10-20 21:41:37 +00:00
morg 42731a992e HyperXMicrophoneController: avoid race condition, fixes a crash on rescan. 2023-10-20 18:14:12 +02:00
Chris M d4b2d3c381 Initial commit for the Corsair K70 Pro TKL keyboard
* Adding key layout and metadata to CorsairPeripheralV2Devices.cpp
* Adding lighting control endpoint check
* Adding new detector
* Small style fixes
* Resolves #3260
2023-10-20 07:16:01 +11:00
Bernhard M. Wiedemann dfff062bc6 Avoid corruption in 60-openrgb.rules
Due to the missing line-break before DUMMY_LIST
it would replace whatever was the first entry in there.

* Resolves #3675

This patch was done while working on reproducible builds for openSUSE.
2023-10-19 16:40:31 +00:00
Bernhard M. Wiedemann cd4004dce2 Reduce use of grep
because find can return us the same 240 wanted files.
2023-10-19 16:36:43 +00:00
Bernhard M. Wiedemann 9ac44192bc Skip empty detectors
Without this patch, output had ugly messages

    Usage: grep [OPTION]... PATTERNS [FILE]...
    Try 'grep --help' for more information.

and with the patch, the rule file is more readable
because it omits

-# Logitech Powerplay Mat -
-#---------------------------------------------------------------#
-#---------------------------------------------------------------#

-# Quantum Mechanical Keyboard (QMK) -
-#---------------------------------------------------------------#
-#---------------------------------------------------------------#
2023-10-19 16:36:43 +00:00
Bernhard M. Wiedemann a7920c01d7 Avoid grep warning
without this patch, output contained

    grep: warning: stray \ before white space
2023-10-19 16:36:43 +00:00
morg 56da121746 GigabyteRGBFusion2GPUController: fix a snprintf call 2023-10-19 16:30:17 +00:00
Bernhard M. Wiedemann 679e69be89 Ensure functions return a value
otherwise, gcc errored out
because non-void functions are supposed to return a value.

Alternatively, we could change the declaration to `void`.
2023-10-19 06:03:05 +02:00
morg c8c5f77595 Add support for Bloody W90 MAX. Closes #3500 2023-10-18 22:43:17 +00:00
Adam Honse 5ce430c062 Fix image links in README to point to the standalone wiki repo 2023-10-18 11:37:59 -05:00
Adolfo R. Brandes a1ee0d39b8 Add another variant of the Asus TUF Gaming RTX 4090 O24G 2023-10-18 06:56:43 -03:00
Bryan Perry 48f78f18d4 Support MSI RTX 4060Ti 8GB Gaming X - Closes #3677 2023-10-17 19:12:57 -05:00
Marek Sapota b91fb9c322 Fix TP-Link Kasa Smart Bulbs on some 64bit systems 2023-10-17 23:53:16 +00:00
Adolfo R. Brandes de08b82ebe debian: update packaging instructions 2023-10-17 22:28:33 +00:00
Adolfo R. Brandes 6308e06586 debian: Don't fail udevadm trigger 2023-10-17 22:27:59 +00:00
morg f34f8e1bb6 RGBFusion2GPUController: eliminate dead code + code guidelines 2023-10-15 17:56:08 +02:00
thombo 00c92d74a7 Support for MSI board 7E12 added 2023-10-15 09:13:43 +00:00
Nathaniel Fung 306b1ddcb3 Add Sapphire NITRO+ AMD Radeon RX 7800 XT 2023-10-15 06:06:54 +00:00
Chris M 33db866d04 Initial commit for Razer Razer Blackwidow V4 Pro
+ Adding PID for the Razer Blackwidow V4 Pro
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #3636
2023-10-15 10:33:48 +11:00
morg 7827a184f7 AlienWare controller: add alternate platform id for G15 5511. #437 2023-10-14 20:14:37 +00:00
morg af73e63d7a Add support for LG 27GN950-B monitor. Closes #1008 2023-10-13 08:43:51 +02:00
Adam Honse d0b76760f4 Remove unnecessary SettingsManager.h includes 2023-10-12 23:37:48 -05:00
Chris M d7c8ac2f8d Initial commit for Razer Deathstalker V2 Pro TKL
+ Adding PID for the Deathstalker V2 Pro TKL
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #3327
2023-10-13 06:49:56 +11:00
Mark Hermeling f3d9877598 Copy paste fixes 2023-10-12 13:31:36 +00:00
Adam Honse 8d19ceff95 Remove OpenRazer/OpenRazer-Win32 support as it is unmaintained and replaced by RazerController 2023-10-11 22:22:48 -05:00
Adam Honse f76e8f65a5 Add Razer Mamba Hyperflux (Wired) 2023-10-11 12:37:16 -05:00
Adam Honse 447ed4cef7 Fix various issues with Razer Firefly Hyperflux 2023-10-11 01:21:28 +00:00
misaka10032w 8955d69a11 Add colorful igame 4090adoc OC mode bios config 2023-10-10 16:38:33 +08:00
Lucas Mindêllo de Andrade f7eb61614e iGame Turing GPU with Direct mode without persistence 2023-10-07 02:24:13 +00:00
Chris M 9e75a68008 Fixed mode declaration in RGBController_MSIVigorGK30.cpp
* Resolves #3651
2023-10-06 19:13:35 +11:00
Adam Honse 0b787ebb3c Add serial implementation of HYTE CNVS mousemat controller for Windows and leave libusb implementation for Linux 2023-10-06 00:36:30 -05:00
Adam Honse 1b7cff78eb Limit HYTE CNVS brightness to 72% of maximum brightness according to V1.1 of protocol documentation. It could be reworked in the future to only limit brightness when the sum exceeds the value, but that would require significantly more math during update 2023-10-05 19:24:40 -05:00
Jonathan Guzmán 6e0358d6ea Add Lenovo legion 5 udev rules detection 2023-10-03 13:09:57 +00:00
Fan Yu 9f653577cd Initial commit for PNY_RTX_4090_XLR8_SUB_DEV 2023-10-03 04:11:01 +00:00
Adam Honse 362a31abbd Update wiki links in the README 2023-10-01 23:55:03 -05:00
Adam Honse d7ed55b264 Use size when parsing received buffers into strings in NetworkServer 2023-10-01 22:43:32 -05:00
Mola19 af53230244 Disable "Apply All Devices" button, if mode is not a custom mode 2023-10-02 02:41:22 +00:00
Jonathan Guzmán 16b5768736 fix "LENOVO_USEAGE" typo 2023-09-30 05:05:26 +00:00
Jonathan Guzmán caf26cc315 add new legion 5 devices 2023-09-29 05:57:45 +00:00
Chris M 2f0d722b83 Adjusting the Keyrox TKL layout
* Accounting for the KLM change in commit f6940640
2023-09-28 21:14:00 +10:00
morg fc14cf102f Add support for MSI GeForce RTX 3060 Ti 8GB Gaming X Trio 2023-09-27 19:44:26 +00:00
Ilkka Jylhä 4c7f92b491 Initial commit for Asus ROG Strix LC RTX 3090Ti OC 2023-09-27 17:55:30 +00:00
morg f8c20128ef Plugin manager: simplifies code, fixes a crash on exit 2023-09-27 15:31:54 +02:00
Adam Honse 41b7dc3102 Show incompatible plugins in the Plugins settings page with a note that it is incompatible, allow it to be removed 2023-09-26 23:41:33 -05:00
Adam Honse c6408eb752 Add SDK Version and Plugin API Version to Information Settings tab 2023-09-26 21:14:27 -05:00
Ilkka Jylhä 12166cbe93 Initial commit for Asus RX 7800 XT White OC 2023-09-26 19:48:34 +00:00
morg 0c6944bb8d CoolerMaster ARGB controller: fix crash on rescan 2023-09-26 15:45:29 +00:00
morg 22b8cdbe01 GigabyteAorusLaptopController: Add brightness support for custom mode 2023-09-26 15:38:26 +02:00
SHISEN 0f41d7443a Initial commit for MSI GeForce RTX 3060 Ti 8GB SUPER 3X OC 2023-09-25 14:37:11 +00:00
morg 46a8c06bfe CMMonitor driver udpates 2023-09-24 22:09:11 +00:00
Martin Nygaard Jensen e83ca276c0 Update AnnePro2ControllerDetect.cpp missing PID 0xA297 2023-09-22 20:37:26 +00:00
morg e2874a64a1 Add support for TUF RTX 4070 O12G GAMING variant 2023-09-22 17:40:58 +02:00
Jefemy 39d4afac20 Add support for alternative ASUS TUF 4070ti OC + non OC device ids 2023-09-22 13:10:28 +00:00
morg 86ba18595f Add support for CoolerMaster GM27. Closes #3627 2023-09-21 16:23:45 +00:00
morg 3c7a24c4c1 Add support for Gainward GeForce RTX3070 Phantom 2023-09-21 17:11:08 +02:00
Mola19 ddc2b7f5e8 Fix duplicate destructor in AsusAuraMainboard 2023-09-21 03:00:27 +02:00
morg 8addcde754 Add support for Gigabyte AORUS laptops. #3403 2023-09-20 01:23:13 +00:00
Adam Honse 85d6225a7c Add NZXT F140 RGB fan (140mm) device with ID 0x18 2023-09-19 22:30:22 +00:00
Codename-Antares 0cebf42857 Initial Commit for MSI RTX 3060 Ti Gaming X 2023-09-19 18:27:47 +00:00
Adam Honse 340083bc33 Initial commit for ASUS ROG Arion external NVMe SSD enclosure 2023-09-19 04:37:51 +00:00
Ilkka Jylhä 30b12c67b2 Initial commit for ASUS ROG Strix NVIDIA GeForce RTX 3090 OC EVA EDITION 2023-09-18 14:39:50 -05:00
Ilkka Jylhä 3199f33efb Initial commit for Asus TUF RTX 3080 V2 10GB 2023-09-18 18:42:03 +00:00
Chris M af673e7ec0 Fix missing include in Arctic controller from 4e14f035
* Missing standard library `algorithm` preventing Windows CI/CD builds
from completing.
2023-09-18 23:14:21 +10:00
Ilkka Jylhä d16ec6f0b1 Initial commit for Asus TUF Gaming Geforce RTX 4060 Ti OC 2023-09-17 19:32:40 +00:00
Ilkka Jylhä 2799e9435d Initial commit for ASUS TUF Gaming Radeon RX 7800 XT 2023-09-17 19:10:59 +00:00
Adam Honse 53d2321698 Fix issue in ArcticController where it was trying to create a variable-length buffer and breaking Windows build 2023-09-16 23:37:54 -05:00
Armin Wolf 4e14f0359d Add support for Arctic RGB Controller
The Arctic RGB controller support 4 RGB channel and can be controlled
over a CH341 USB-to-serial chip. The controller support two commands,
one for identifying the controller on a serial port and one for setting
the RGB values for each RGB channel. Since the controllers disables the
RGB channels after ~1s, a keepalive thread is used.
2023-09-16 23:21:21 -05:00
Armin Wolf fa52f4d7e0 Disable input and output processing on Unix serial ports
Disabling output processing is necessary since otherwise
sending a LF character (ASCII 0x0A) will automatically insert
a CR character (ASCII 0x0D).
Disabling input processing should prevent this when
receiving data.
2023-09-16 23:14:49 -05:00
Armin Wolf 0279aafb97 Allow for setting DTR on a serial port 2023-09-16 23:14:49 -05:00
Chris M 1996d34650 Updated Debug Keyboard to process KLM Opcodes
* Added InsertRow, RemoveRow and RemoveKey opcodes.
* Adjusted iterator for style and formatting.
2023-09-17 10:36:29 +10:00
Le Philousophe ccb20f3930 Add Champion's Bane and Ironclad suport 2023-09-16 16:29:46 +00:00
Chris M 3d8c11ea88 Initial commit for Razer Razer Blackwidow V4 X
+ Adding PID for the Razer Blackwidow V4 X
+ Registered detectors
+ Added metadata to RazerDevices.cpp
+ Added capabilities to RazerController.cpp
+ Resolves #3602
2023-09-16 16:13:16 +00:00
Chris M 197d19a070 Corrected KLM log messages
* Moved SwapOnly opcode message to cover "unused" case
* Adjusted Size switch statement to account for non standard sizes
* Fixed InsertRow opcode insertion index
* Corrected RemoveRow opcode to ensure removal didn't skip keys
* Small formatting and style fixes
2023-09-16 23:45:18 +10:00
Beebles 4d73e0264a Add Support for SteelSeries QCK Prism XL Neo Noir Ed 2023-09-15 23:14:21 -05:00
Michal Stawinski a30323f22f Fix "--client" option not working
This fixes "Error: Invalid option: 172.17.0.1" error
that made it impossible to use openrgb with remote
servers.
2023-09-15 21:49:20 -05:00
rytypete e55da57f46 Add Asus USB Motherboard save and shutdown effect support 2023-09-14 22:01:52 +00:00
rytypete 479b8e8ea4 Treat Gainward GeForce RTX 3060 Ti Ghost as RGB 2023-09-13 14:04:18 +02:00
Martin 1fbbbb00ba Add support for the ASUS TUF RTX 4090 O24G OG OC
Added support for the ASUS TUF RTX 4090 O24G OG OC and tested it with my own card.
2023-09-12 18:39:53 -05:00
Sandipan Das a934c4c034 i2c-smbus: linux: Remove stray whitespaces
Remove stray whitespaces in newlines.

Signed-off-by: Sandipan Das <[email protected]>
2023-09-12 08:43:28 -05:00
Sandipan Das 49a6905ab5 i2c-smbus: linux: Fix interface detection
There are cases where detection of an interface fails due to lack of
permissions when accessing /dev/i2c-*. In some instances, the current
code will perform a double readdir() and skip what should have been
the next interface to be enumerated.

E.g. consider a system with the following configuration

  $ ls -l /sys/bus/i2c/devices

  total 0
  lrwxrwxrwx. 1 root 0 Sep  4 07:19 i2c-0 -> ../../../devices/platform/AMDI0010:03/i2c-0/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-1 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/i2c-1/
  lrwxrwxrwx. 1 root 0 Sep  4 01:50 i2c-10 -> ../../../devices/pci0000:00/0000:00:14.0/i2c-10/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-2 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/i2c-2/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-3 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/i2c-3/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-4 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/i2c-4/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-5 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/drm/card1/card1-eDP-1/i2c-5/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-6 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/drm/card1/card1-DP-1/i2c-6/
  lrwxrwxrwx. 1 root 0 Sep  4 01:49 i2c-7 -> ../../../devices/pci0000:00/0000:00:08.1/0000:03:00.0/drm/card1/card1-DP-2/i2c-7/
  lrwxrwxrwx. 1 root 0 Sep  4 01:50 i2c-8 -> ../../../devices/pci0000:00/0000:00:14.0/i2c-8/
  lrwxrwxrwx. 1 root 0 Sep  4 01:50 i2c-9 -> ../../../devices/pci0000:00/0000:00:14.0/i2c-9/
  lrwxrwxrwx. 1 root 0 Sep  4 07:19 i2c-PNP0C50:0e -> ../../../devices/platform/AMDI0010:03/i2c-0/i2c-PNP0C50:0e/

  $ openrgb --verbose --list-devices

Before:

  ...
  Registering I2C interface: /dev/i2c-3 Device 1002:164C Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-10 Device 1022:790B Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-1 Device 1002:164C Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-8 Device 1022:790B Subsystem: 1462:130C
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-6 Device 0000:0000 Subsystem: 0000:0000
  Registering I2C interface: /dev/i2c-4 Device 1002:164C Subsystem: 1462:130C
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-PNP0C50:0e Device 0000:0000 Subsystem: 0000:0000
  Registering I2C interface: /dev/i2c-0 Device 0000:0000 Subsystem: 0000:0000
  Registering I2C interface: /dev/i2c-9 Device 1022:790B Subsystem: 1462:130C
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-7 Device 0000:0000 Subsystem: 0000:0000
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-5 Device 0000:0000 Subsystem: 0000:0000
  ...

After:

  ...
  Registering I2C interface: /dev/i2c-3 Device 1002:164C Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-10 Device 1022:790B Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-1 Device 1002:164C Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-8 Device 1022:790B Subsystem: 1462:130C
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-6 Device 0000:0000 Subsystem: 0000:0000
  Registering I2C interface: /dev/i2c-4 Device 1002:164C Subsystem: 1462:130C
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-PNP0C50:0e Device 0000:0000 Subsystem: 0000:0000
  Registering I2C interface: /dev/i2c-2 Device 1002:164C Subsystem: 1462:130C
  Registering I2C interface: /dev/i2c-0 Device 0000:0000 Subsystem: 0000:0000
  Registering I2C interface: /dev/i2c-9 Device 1022:790B Subsystem: 1462:130C
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-7 Device 0000:0000 Subsystem: 0000:0000
  [i2c_smbus_linux] Failed to read i2c device PCI device ID
  Registering I2C interface: /dev/i2c-5 Device 0000:0000 Subsystem: 0000:0000
  ...

Signed-off-by: Sandipan Das <[email protected]>
2023-09-12 08:43:28 -05:00
foul11 f5dc4a62c4 allow editing individual keys for ASUS ROG Strix SCAR 17 2023-09-11 21:00:42 +00:00
Pedro Martello 10e53074b2 Support for ASUS TUF RTX 4070 12G Gaming graphics card 2023-09-08 23:03:25 +00:00
Peter Repukat 96dd52a5e9 Fix k95_plat iso key mapping 2023-09-07 02:52:44 +02:00
thombo a42b55f391 Support for MSI board 7D40 added 2023-09-05 21:10:28 +02:00
c10l 7471dad28f Add missing build dependency to README 2023-09-05 01:08:46 +00:00
MmAaXx500 824cd7e3fa Fix Corsair Hydro udev rules 2023-09-04 17:05:07 +00:00
Arcitec b452110b43 Fix serial numbers from buggy ASUS keyboard firmwares
* ASUS firmware bugs sometimes return trailing garbage after the serial number. This new algorithm cleans up the garbage by only allowing legal, lower-ASCII characters, so that OpenRGB can accurately identify keyboards that have buggy firmwares.
2023-09-03 17:15:12 +02:00
Arcitec 21092ef7e0 Rename ASUS keyboard matrix layouts to language-independent identifiers
* Makes it clearer which layouts people should be using when contributing new languages or new ASUS hardware.
2023-09-03 17:15:12 +02:00
Arcitec d6bccc42e4 Add support for ASUS ROG Strix Scope II 96 Wireless
* USB Mode: Keyboard is fully mapped out and accurately represented in the LED matrix. Supports US, UK and Nordic layouts.

* Bluetooth Mode: Hardware does not support RGB control via Bluetooth, nothing can be done about that.

* 2.4GHz Mode: This keyboard uses the new "ASUS Omni Receiver" hardware, which is a new multi-device dongle which can pair with multiple keyboards and mice. Requires separate reverse engineering in the future. Not supported at the moment.
2023-09-03 17:15:12 +02:00
Arcitec a909818406 Accurate character labels in Nordic KBD layout
* The previous layout was not the real Nordic layout. Every character has now been fixed to use the correct, technical terms and accurate key legends. It now correctly represents the Nordic ISO layout standard.
2023-09-03 17:15:12 +02:00
chrabonschcz 1d30f2674a Fixed OpenRGB not building for Debian Buster 2023-09-02 18:00:56 +00:00
rytypete 74e1df4cd1 Indicate effects and save support for Asus ROG Ally 2023-09-02 13:09:14 +02:00
misaka10032w f3e5757295 Add support for Colorful iGame GeForce RTX 4090 Advanced OC 2023-09-02 00:24:14 +00:00
Cooper Hall 4c5f5c408f fixed a compiler error on some compiler instances related to KeyboardLayoutManager 2023-09-02 00:21:35 +00:00
Chris 348d2d8241 Fixed typo regression introduced in 479c2b2d
* Combined definition of ZET_FURY_PRO_PID & GENESIS_XENON_200_PID
* Adjusted formatting and style of detectors
2023-08-31 02:19:08 +00:00
TheRogueZeta 16f471db69 Add alternate ID for ROG-STRIX-RTX4090-O24G 2023-08-30 04:48:43 +00:00
Tam D 879153d478 Coolermaster keyboard device view 2023-08-30 03:57:45 +00:00
YaketyYakumo 962d2e8449 Fixed 1080Ti FTW3 backplate 2023-08-30 01:18:33 +00:00
Chris M de0437e164 Initial commit for the Corsair Dark Core SE mouse
* Adding LED layout and metadata to CorsairPeripheralV2Devices
* Adding new detector
* Resolves #1009
2023-08-29 12:21:04 +10:00
chrabonschcz 479c2b2dae Added Controller for Genesis Xenon 200 Mouse 2023-08-29 00:54:56 +00:00
Ben Miller 6c8da3a04f Implement Global Corsair Mutex 2023-08-28 13:48:17 +00:00
Perroboc 6b9aef10a9 Fix: [Epomaker TH80 Pro] Windows compat fix 2023-08-28 13:20:03 +00:00
Mola19 0969b5d24e support for Roccat Sense Aimo Mousepad (Mid and XXL) to resolve #2770 2023-08-24 18:47:12 +02:00
Chris M 9df7023b73 Adjusted Razer Basilisk V3 Pro metadata to light all LEDs
* Resolves #3537
2023-08-22 13:47:53 +10:00
Dmitry K c98464d9df Sinowealth detector cleaned and broken down to atomic units 2023-08-21 05:16:23 +00:00
Mola19 f3763a1b5c fix crash on rescan with Asus ROG Spatha X 2023-08-20 20:32:07 +00:00
Fn Eh eaff85af92 More ZOTAC stuff. Crash fix, and add a new card. 2023-08-20 20:22:51 +00:00
Mola19 756ceb2471 Add support for Asus ROG Sagaris GK1100 (only for non-modifier keys) 2023-08-20 22:14:25 +02:00
Pornvibool Tippayawat 100e954cef Add Support for ASUS TUF RX 7900XTX O24G GAMING 2023-08-18 10:55:27 +00:00
Peter Vazny 839701fcf8 Adds support for ANSI Lenovo Legion 7 Gen 7 2023-08-16 15:35:58 +00:00
Fn Eh e4c0979951 Zotac Metadata 2023-08-16 04:02:41 +00:00
Mola19 16b4235758 fix brightness of some Asus Aura Mice 2023-08-15 23:56:40 +00:00
morg e6b16ff7c4 Add support for Logitech G203 mouse variant 2023-08-14 15:03:56 +00:00
morg de21aca3ef LegoDimensionsToypad: fix crash when changing hw mode to direct 2023-08-14 08:08:20 +02:00
Chris M 2777c05907 Adding OPCODE "Insert Row" to KLM
* Insert Row OPCODE requires a row taken from the provided key
* Insert Row will insert provided key if the row insert was successful.
* Provide "UNUSED" key for an empty row insert.
2023-08-13 09:42:53 +10:00
TheRogueZeta a276ceedb3 Add additional ASUS TUF 4090 O24G Gaming device ID for PN: 90YV0IE-MVAA00 2023-08-11 05:25:22 +00:00
Fn Eh 2082283646 Adds support for three additional Zotac card... 2023-08-10 16:59:40 +00:00
Chris 593506219c Initial commit for the Corsair M65 Ultra RGB mouse
* Adding key layout and metadata to CorsairPeripheralV2Devices.cpp
* Adding new detector
* Resolves #3261
2023-08-09 17:57:06 +10:00
Chris 4fbcf883fe Initial commit for the Corsair Dark Core Pro SE mouse
* Reworked wireless Corsair Slipstream detection to be generic for all devices
* Adding key layout and metadata to CorsairPeripheralV2Devices.cpp
* Adding new detector
2023-08-09 04:15:09 +00:00
Mola19 64c2cc579f fix Asus ROG Spatha X Dock 2023-08-09 03:43:03 +00:00
morg c3b7d4ac1d Add support for ASUS ROG STRIX RTX 4080 O16G GAMING variant 2023-08-08 17:10:42 +00:00
Adam Honse 7fc3e297f1 Add NZXT F120 fan (0x13) 2023-08-08 11:39:41 -05:00
Quentin Ormancey 72ebc26baa Initial commit for ROG Strix GeForce RTX 4070 Ti 12GB GDDR6X OC Edition 2023-08-03 04:09:46 +00:00
Mola19 cd000218b1 move Asus ROG Strix Scope and Scope RX to AsusAuraTUFKeyboardController to add missing features 2023-08-02 02:27:55 +02:00
morg 4835739198 Make sure Colorful GPUs are detected on both Windows and Linux 2023-08-01 16:26:22 +00:00
Mola19 0057df0efb move Asus ROG Strix Flare to AsusAuraTUFKeyboardController to add missing features (resolves #3415) 2023-08-01 03:40:16 +00:00
morg b7747a37d1 Add support for iGame GeForce RTX 3070 Ultra W OC-V 2023-07-31 04:50:07 +00:00
Adam Honse 888b292d73 Fix Razer matrix map initialization for non-keyboard zones 2023-07-30 13:26:34 -05:00
Peter Vazny 9c01593ba8 Fixes some Y740 15" keys 2023-07-30 07:45:03 +00:00
Adam Honse 9cf453008d Initial commit for scsiapi and Seagate FireCuda Gaming External HDD controller 2023-07-30 06:12:21 +00:00
morg f6e0996250 Fix crash on save for AsusAuraCoreLaptop. Closes #3174 2023-07-25 13:21:50 +02:00
Adam Honse deeb8a84b7 Initial HYTE CNVS controller implementation 2023-07-22 20:10:14 +00:00
TheRogueZeta 92992c0a9b Add additional device ID for Asus TUF RTX4080-16G-GAMING 2023-07-21 15:15:33 -07:00
Sergey004 652d1f606e Add PALIT RTX 3060 LHR (GA104) to detection 2023-07-21 17:26:42 +04:00
Mola19 35c5d99a80 add support for Asus ROG Strix Flare II Animate 2023-07-20 02:26:19 +00:00
morg 653f025635 Add support for iGame GeForce RTX 3060 Ti Advanced OC-V variant 2023-07-18 13:02:49 +00:00
Adam Honse 606355955d Fill in missing modes for Razer Mamba 2012 2023-07-17 17:05:40 -05:00
Martin Hartl a98b0c1b62 Asus mainboard: Fix addressable only mainboard 2023-07-17 19:57:06 +00:00
Adam Honse 5dd9459561 Fix non-NULL matrix map pointer in Intel Arc A770 LE controller 2023-07-16 19:49:39 -05:00
Chris M 4dae7b6b85 Updated includes to fully cover dependencies 2023-07-16 22:56:38 +00:00
Mike Wang 5caf1e1b85 Fix RGB Fusion 2 pulse mode not working #3489 2023-07-16 22:55:32 +00:00
Alexey Sokolov 125b1ab134 Warn if dlopen() failed 2023-07-16 15:44:36 +01:00
Milan Cermak 9d962ded6a ViewSonic Elite XG270QG detected twice #3486 2023-07-15 14:59:53 +02:00
Mike Wang f414029910 Add Gigabyte GeForce RTX­4070 GAMING OC 12G #3477 2023-07-14 13:36:47 +00:00
Adam Honse 3629ba1f09 Remove old keymap entries from RazerDevices structures as they've all been converted to KLM layouts 2023-07-13 22:22:30 -05:00
Mike Wang 3678262404 Fix compilation failure caused by some non-ascii characters #3481 2023-07-13 13:29:52 +00:00
Mola19 16d8c8e962 fix AsusAuraTUFKeyboard quicksand mode direction 2023-07-13 05:39:32 +00:00
Dmitry K 51712f08b5 Removed include directives from ResourceManager.h to speed up build process 2023-07-12 14:51:47 +00:00
Dmitry K 0714920a9a Simplified detector blocks for HID 2023-07-12 14:49:27 +00:00
Anders Nikolai Fuglseth edea9f6bec Add ASUS TUF RTX 4070 O12G Gaming 2023-07-12 00:05:45 +00:00
morg 65fc57cb69 Add support for ASUS TUF RTX4080 16G GAMING GPU 2023-07-11 16:36:06 +00:00
Rollbacke 1480b23838 Added another NZXT Fan & Controller 6 channels 2023-07-11 16:34:01 +00:00
morg 7b38a6a8d6 Add support for ASUS TUF RTX 3090Ti 24G GAMING GPU 2023-07-11 14:41:02 +02:00
Göktuğ Korkmaz 0b776269ea Added another PID for HyperX QuadCast S microphone 2023-07-11 06:27:25 +03:00
Cooper Hall 14c74248dd fixed OpenRazer compiling error on windows 2023-07-10 19:51:27 +00:00
KerJoe 3ee6af0dfd Added "MSI PRO B550M-P GEN3" motherboard ID. 2023-07-10 18:46:38 +00:00
Cooper Hall 9fab4110d7 fixed one definition rule warnings 2023-07-10 18:13:47 +00:00
TheRogueZeta 9c2a648d09 Set custom width for HardwareID colums and auto expand list 2023-07-10 16:23:09 +00:00
Adam Honse c44d87e24d Increment version number post-release 2023-07-10 11:19:52 -05:00
3896 changed files with 276360 additions and 473161 deletions

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
github: CalcProgrammer1
patreon: CalcProgrammer1
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
+21
View File
@@ -0,0 +1,21 @@
name: Issue Opened
on:
issues:
types: [opened,reopened]
jobs:
issue_greeting:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Greeting
run: gh issue comment "$NUMBER" --body "$BODY"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}
BODY: >
This Github repo is a mirror of the main repository on Gitlab.
For any new issue please refer to https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues
+21
View File
@@ -0,0 +1,21 @@
name: PR Opened
on:
pull_request:
types: [opened,reopened]
jobs:
pr_greeting:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Greeting
run: gh pr comment "$NUMBER" --body "$BODY"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.pull_request.number }}
BODY: >
This Github repo is a mirror of the main repository on Gitlab.
Please fork https://gitlab.com/CalcProgrammer1/OpenRGB/ and raise the appropriate merge request on Gitlab.
+4
View File
@@ -8,6 +8,9 @@ OpenRGB-x86_64.AppImage
60-openrgb.rules
debian/changelog
fedora/OpenRGB.spec
OpenRGB_resource.rc
OpenRGB Windows 32-bit/
OpenRGB Windows 64-bit/
# Directories
.build/
@@ -28,6 +31,7 @@ Build/
.qmake.stash
.vscode
.vs
.idea
# Generic Files
.DS_Store
+429 -532
View File
File diff suppressed because it is too large. Load diff
+2 -3
View File
@@ -22,13 +22,12 @@ CODEOWNERS @Calcprogrammer1
/Controllers/BlinkyTapeController/
/Controllers/CoolerMasterController/ @Dr_No
/Controllers/CorsairCommanderCoreController/
/Controllers/CorsairDominatorPlatinumController/
/Controllers/CorsairDRAMController/
/Controllers/CorsairHydroController/
/Controllers/CorsairHydroPlatinumController/
/Controllers/CorsairLightingNodeController/
/Controllers/CorsairPeripheralController/
/Controllers/CorsairVengeanceController/
/Controllers/CorsairVengeanceProController/
/Controllers/CorsairWirelessController/
/Controllers/CreativeController/
/Controllers/CrucialController/
@@ -43,6 +42,7 @@ CODEOWNERS @Calcprogrammer1
/Controllers/EVGAGP102GPUController/
/Controllers/EVGAPascalGPUController/
/Controllers/EVGATuringGPUController/ @TheRogueZeta
/Controllers/EVGASMBusController/ @balika011
/Controllers/EVGAUSBController/ @Dr_No
/Controllers/EVisionKeyboardController/
/Controllers/EspurnaController/
@@ -74,7 +74,6 @@ CODEOWNERS @Calcprogrammer1
/Controllers/NZXTHue2Controller/
/Controllers/NZXTHuePlusController/
/Controllers/NZXTKrakenController/
/Controllers/OpenRazerController/
/Controllers/PNYGPUController/
/Controllers/PatriotViperController/
/Controllers/PhilipsHueController/
+2 -2
View File
@@ -23,9 +23,9 @@ Please add a link to the manufacturer's product page beneath this line
~"DeviceType::IDK" <!-- I Don't know -->
~"DeviceType::USB" <!-- The device connects to an internal header or external usb port -->
~"DeviceType::GPU::AMD" <!-- The device is an AMD GPU -->
~"DeviceType::GPU::NVidia" <!-- The device is a NVidia GPU -->
~"DeviceType::GPU::NVidia" <!-- The device is a Nvidia GPU -->
~"DeviceType::SMBus" <!-- The device is connected to the SMBus eg. RAM -->
~"DeviceType::WMI" <!-- The device is controlled thru Windows Management Instrumentation -->
~"DeviceType::WMI" <!-- The device is controlled through Windows Management Instrumentation -->
<!-- Please delete any lines that are not relevant -->
@@ -10,6 +10,7 @@ Please put "Initial commit for" name of the product, including manufacturer abov
<!-- For admin purposes: Please leave this section as is -->
# Checklist for Accepting a Merge Request for a New Device
- [ ] The source branch of the merge request is not protected (`master` is protected by default when creating a fork, so it is recommended to not use it as your source).
- [ ] The `New Device` issue raised for this device is linked to this MR with a keyword `Closes / Resolves / Implements`
- [ ] There is a device protocol page in the [Developer Wiki](https://gitlab.com/OpenRGBDevelopers/OpenRGB-Wiki) or there is enough information / captures in the `New Device` issue to provide ongoing support.
- [ ] The code to be merged follows the style guide and change requirements as [documented in the contributing guide](https://gitlab.com/CalcProgrammer1/OpenRGB/-/blob/master/CONTRIBUTING.md).
+49 -47
View File
@@ -1,17 +1,20 @@
#include "AutoStart-FreeBSD.h"
#include "LogManager.h"
#include "filesystem.h"
/*---------------------------------------------------------*\
| AutoStart-FreeBSD.cpp |
| |
| Autostart implementation for FreeBSD |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <fstream>
#include <iostream>
#include <limits.h>
#include <unistd.h>
#include <sstream>
/*-----------------------------------------------------*\
| FreeBSD AutoStart Implementation |
| Public Methods |
\*-----------------------------------------------------*/
#include "AutoStart-FreeBSD.h"
#include "LogManager.h"
#include "filesystem.h"
AutoStart::AutoStart(std::string name)
{
@@ -23,21 +26,21 @@ bool AutoStart::DisableAutoStart()
std::error_code autostart_file_remove_errcode;
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
/*---------------------------------------------*\
| If file doesn't exist, disable is successful |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| If file doesn't exist, disable is successful |
\*-------------------------------------------------*/
if(!filesystem::exists(autostart_file))
{
success = true;
}
/*---------------------------------------------*\
| Otherwise, delete the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, delete the file |
\*-------------------------------------------------*/
else
{
success = filesystem::remove(autostart_file, autostart_file_remove_errcode);
@@ -50,7 +53,7 @@ bool AutoStart::DisableAutoStart()
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -60,39 +63,38 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
{
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
std::ofstream autostart_file_stream(autostart_file, std::ios::out | std::ios::trunc);
/*---------------------------------------------*\
| Error out if the file could not be opened |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Error out if the file could not be opened |
\*-------------------------------------------------*/
if(!autostart_file_stream)
{
LOG_ERROR("Could not open %s for writing.", autostart_file.c_str());
LOG_ERROR("[AutoStart] Could not open %s for writing.", autostart_file.c_str());
success = false;
}
/*---------------------------------------------*\
| Otherwise, write the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, write the file |
\*-------------------------------------------------*/
else
{
//autostart_file_stream << desktop_file;
autostart_file_stream.close();
success = !autostart_file_stream.fail();
if (!success)
{
LOG_ERROR("An error occurred writing the auto start file.");
LOG_ERROR("[AutoStart] An error occurred writing the auto start file.");
}
}
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -100,9 +102,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
bool AutoStart::IsAutoStartEnabled()
{
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
return(filesystem::exists(autostart_file));
@@ -115,9 +117,9 @@ bool AutoStart::IsAutoStartEnabled()
std::string AutoStart::GetExePath()
{
/*-------------------------------------------------*\
| Create the OpenRGB executable path |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Create the OpenRGB executable path |
\*-----------------------------------------------------*/
char exepath[ PATH_MAX ];
ssize_t count = readlink("/proc/self/exe", exepath, PATH_MAX);
@@ -131,16 +133,16 @@ void AutoStart::InitAutoStart(std::string name)
autostart_name = name;
/*-------------------------------------------------*\
| Get home and config paths |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Get home and config paths |
\*-----------------------------------------------------*/
const char *xdg_config_home = getenv("XDG_CONFIG_HOME");
const char *home = getenv("HOME");
/*-------------------------------------------------*\
| Determine where the autostart .desktop files are |
| kept |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Determine where the autostart .desktop files are |
| kept |
\*-----------------------------------------------------*/
if(xdg_config_home != NULL)
{
autostart_dir = xdg_config_home;
@@ -152,9 +154,9 @@ void AutoStart::InitAutoStart(std::string name)
autostart_dir = autostart_dir + "/.config/autostart/";
}
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_dir != "")
{
std::error_code ec;
+9
View File
@@ -1,3 +1,12 @@
/*---------------------------------------------------------*\
| AutoStart-FreeBSD.h |
| |
| Autostart implementation for FreeBSD |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+64 -60
View File
@@ -1,16 +1,20 @@
#include "AutoStart-Linux.h"
#include "LogManager.h"
#include "filesystem.h"
/*---------------------------------------------------------*\
| AutoStart-Linux.cpp |
| |
| Autostart implementation for Linux |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <fstream>
#include <iostream>
#include <sstream>
#include <unistd.h>
#include <linux/limits.h>
/*-----------------------------------------------------*\
| Linux AutoStart Implementation |
| Public Methods |
\*-----------------------------------------------------*/
#include "AutoStart-Linux.h"
#include "LogManager.h"
#include "filesystem.h"
AutoStart::AutoStart(std::string name)
{
@@ -22,21 +26,21 @@ bool AutoStart::DisableAutoStart()
std::error_code autostart_file_remove_errcode;
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
/*---------------------------------------------*\
| If file doesn't exist, disable is successful |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| If file doesn't exist, disable is successful |
\*-------------------------------------------------*/
if(!filesystem::exists(autostart_file))
{
success = true;
}
/*---------------------------------------------*\
| Otherwise, delete the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, delete the file |
\*-------------------------------------------------*/
else
{
success = filesystem::remove(autostart_file, autostart_file_remove_errcode);
@@ -49,7 +53,7 @@ bool AutoStart::DisableAutoStart()
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -59,25 +63,25 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
{
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
std::string desktop_file = GenerateDesktopFile(autostart_info);
std::ofstream autostart_file_stream(autostart_file, std::ios::out | std::ios::trunc);
/*---------------------------------------------*\
| Error out if the file could not be opened |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Error out if the file could not be opened |
\*-------------------------------------------------*/
if(!autostart_file_stream)
{
LOG_ERROR("Could not open %s for writing.", autostart_file.c_str());
LOG_ERROR("[AutoStart] Could not open %s for writing.", autostart_file.c_str());
success = false;
}
/*---------------------------------------------*\
| Otherwise, write the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, write the file |
\*-------------------------------------------------*/
else
{
autostart_file_stream << desktop_file;
@@ -86,13 +90,13 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
if (!success)
{
LOG_ERROR("An error occurred writing the auto start file.");
LOG_ERROR("[AutoStart] An error occurred writing the auto start file.");
}
}
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -100,9 +104,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
bool AutoStart::IsAutoStartEnabled()
{
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
return(filesystem::exists(autostart_file));
@@ -115,27 +119,27 @@ bool AutoStart::IsAutoStartEnabled()
std::string AutoStart::GetExePath()
{
/*-------------------------------------------------*\
| Create the OpenRGB executable path |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Create the OpenRGB executable path |
\*-----------------------------------------------------*/
char exepath[ PATH_MAX ];
ssize_t count = readlink("/proc/self/exe", exepath, PATH_MAX);
return(std::string(exepath, (count > 0) ? count : 0));
}
/*-----------------------------------------------------*\
| Linux AutoStart Implementation |
| Private Methods |
\*-----------------------------------------------------*/
/*---------------------------------------------------------*\
| Linux AutoStart Implementation |
| Private Methods |
\*---------------------------------------------------------*/
std::string AutoStart::GenerateDesktopFile(AutoStartInfo autostart_info)
{
/*-------------------------------------------------*\
| Generate a .desktop file from the AutoStart |
| parameters |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Generate a .desktop file from the AutoStart |
| parameters |
\*-----------------------------------------------------*/
std::stringstream fileContents;
fileContents << "[Desktop Entry]" << std::endl;
@@ -147,9 +151,9 @@ std::string AutoStart::GenerateDesktopFile(AutoStartInfo autostart_info)
fileContents << "Terminal=false" << std::endl;
fileContents << "Type=Application" << std::endl;
/*-------------------------------------------------*\
| Add the executable path and arguments |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Add the executable path and arguments |
\*-----------------------------------------------------*/
fileContents << "Exec=" << autostart_info.path;
if (autostart_info.args != "")
@@ -158,7 +162,7 @@ std::string AutoStart::GenerateDesktopFile(AutoStartInfo autostart_info)
}
fileContents << std::endl;
return(fileContents.str());
}
@@ -168,16 +172,16 @@ void AutoStart::InitAutoStart(std::string name)
autostart_name = name;
/*-------------------------------------------------*\
| Get home and config paths |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Get home and config paths |
\*-----------------------------------------------------*/
const char *xdg_config_home = getenv("XDG_CONFIG_HOME");
const char *home = getenv("HOME");
/*-------------------------------------------------*\
| Determine where the autostart .desktop files are |
| kept |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Determine where the autostart .desktop files are |
| kept |
\*-----------------------------------------------------*/
if(xdg_config_home != NULL)
{
autostart_dir = xdg_config_home;
@@ -189,15 +193,15 @@ void AutoStart::InitAutoStart(std::string name)
autostart_dir = autostart_dir + "/.config/autostart/";
}
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_dir != "")
{
std::error_code ec;
bool success = true;
if(!filesystem::exists(autostart_dir))
{
success = filesystem::create_directories(autostart_dir, ec);
+9
View File
@@ -1,3 +1,12 @@
/*---------------------------------------------------------*\
| AutoStart-Linux.h |
| |
| Autostart implementation for Linux |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+58 -56
View File
@@ -1,18 +1,20 @@
#include "AutoStart-MacOS.h"
#include "LogManager.h"
#include "filesystem.h"
/*---------------------------------------------------------*\
| AutoStart-MacOS.cpp |
| |
| Autostart implementation for MacOS |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <fstream>
#include <sstream>
#include <iostream>
#include <unistd.h>
#include <mach-o/dyld.h>
/*-----------------------------------------------------*\
| MacOS AutoStart Implementation |
| Public Methods |
\*-----------------------------------------------------*/
#include "AutoStart-MacOS.h"
#include "LogManager.h"
#include "filesystem.h"
AutoStart::AutoStart(std::string name)
{
@@ -24,21 +26,21 @@ bool AutoStart::DisableAutoStart()
std::error_code autostart_file_remove_errcode;
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
/*---------------------------------------------*\
| If file doesn't exist, disable is successful |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| If file doesn't exist, disable is successful |
\*-------------------------------------------------*/
if(!filesystem::exists(autostart_file))
{
success = true;
}
/*---------------------------------------------*\
| Otherwise, delete the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, delete the file |
\*-------------------------------------------------*/
else
{
success = filesystem::remove(autostart_file, autostart_file_remove_errcode);
@@ -51,7 +53,7 @@ bool AutoStart::DisableAutoStart()
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -61,25 +63,25 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
{
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
std::string desktop_file = GenerateLaunchAgentFile(autostart_info);
std::ofstream autostart_file_stream(autostart_file, std::ios::out | std::ios::trunc);
/*---------------------------------------------*\
| Error out if the file could not be opened |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Error out if the file could not be opened |
\*-------------------------------------------------*/
if(!autostart_file_stream)
{
LOG_ERROR("Could not open %s for writing.", autostart_file.c_str());
LOG_ERROR("[AutoStart] Could not open %s for writing.", autostart_file.c_str());
success = false;
}
/*---------------------------------------------*\
| Otherwise, write the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, write the file |
\*-------------------------------------------------*/
else
{
autostart_file_stream << desktop_file;
@@ -88,13 +90,13 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
if (!success)
{
LOG_ERROR("An error occurred writing the auto start file.");
LOG_ERROR("[AutoStart] An error occurred writing the auto start file.");
}
}
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -102,9 +104,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
bool AutoStart::IsAutoStartEnabled()
{
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
return(filesystem::exists(autostart_file));
@@ -117,9 +119,9 @@ bool AutoStart::IsAutoStartEnabled()
std::string AutoStart::GetExePath()
{
/*-------------------------------------------------*\
| Create the OpenRGB executable path |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Create the OpenRGB executable path |
\*-----------------------------------------------------*/
char exepath[ PATH_MAX ];
uint32_t exesize = PATH_MAX;
@@ -130,17 +132,17 @@ std::string AutoStart::GetExePath()
return("");
}
/*-----------------------------------------------------*\
| MacOS AutoStart Implementation |
| Private Methods |
\*-----------------------------------------------------*/
/*---------------------------------------------------------*\
| MacOS AutoStart Implementation |
| Private Methods |
\*---------------------------------------------------------*/
std::string AutoStart::GenerateLaunchAgentFile(AutoStartInfo autostart_info)
{
/*-------------------------------------------------*\
| Generate a .plist file from the AutoStart |
| parameters |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Generate a .plist file from the AutoStart |
| parameters |
\*-----------------------------------------------------*/
std::stringstream fileContents;
fileContents << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << std::endl;
@@ -152,7 +154,7 @@ std::string AutoStart::GenerateLaunchAgentFile(AutoStartInfo autostart_info)
fileContents << " <key>ProgramArguments</key>" << std::endl;
fileContents << " <array>" << std::endl;
fileContents << " <string>" << autostart_info.path << "</string>" << std::endl;
if(autostart_info.args != "")
{
std::istringstream arg_parser(autostart_info.args);
@@ -163,12 +165,12 @@ std::string AutoStart::GenerateLaunchAgentFile(AutoStartInfo autostart_info)
fileContents << " <string>" << arg << "</string>" << std::endl;
}
}
fileContents << " </array>" << std::endl;
fileContents << " <key>RunAtLoad</key><true/>" << std::endl;
fileContents << "</dict>" << std::endl;
fileContents << "</plist>" << std::endl;
return(fileContents.str());
}
@@ -178,22 +180,22 @@ void AutoStart::InitAutoStart(std::string name)
autostart_name = name;
/*-------------------------------------------------*\
| Determine where the autostart .desktop files are |
| kept |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Determine where the autostart .desktop files are |
| kept |
\*-----------------------------------------------------*/
autostart_dir = getenv("HOME");
autostart_dir = autostart_dir + "/Library/LaunchAgents/";
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_dir != "")
{
std::error_code ec;
bool success = true;
if(!filesystem::exists(autostart_dir))
{
success = filesystem::create_directories(autostart_dir, ec);
+9
View File
@@ -1,3 +1,12 @@
/*---------------------------------------------------------*\
| AutoStart-MacOS.h |
| |
| Autostart implementation for MacOS |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+61 -59
View File
@@ -1,17 +1,19 @@
#include "AutoStart-Windows.h"
#include "LogManager.h"
#include "filesystem.h"
/*---------------------------------------------------------*\
| AutoStart-Windows.cpp |
| |
| Autostart implementation for Windows |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <fstream>
#include <iostream>
#include "windows.h"
#include <shlobj.h>
/*-----------------------------------------------------*\
| Windows AutoStart Implementation |
| Public Methods |
\*-----------------------------------------------------*/
#include "AutoStart-Windows.h"
#include "LogManager.h"
#include "filesystem.h"
#include "windows.h"
AutoStart::AutoStart(std::string name)
{
@@ -23,34 +25,34 @@ bool AutoStart::DisableAutoStart()
std::error_code autostart_file_remove_errcode;
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
/*---------------------------------------------*\
| If file doesn't exist, disable is successful |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| If file doesn't exist, disable is successful |
\*-------------------------------------------------*/
if(!filesystem::exists(autostart_file))
{
success = true;
}
/*---------------------------------------------*\
| Otherwise, delete the file |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Otherwise, delete the file |
\*-------------------------------------------------*/
else
{
success = filesystem::remove(autostart_file, autostart_file_remove_errcode);
if(!success)
{
LOG_ERROR("An error occurred removing the auto start file.");
LOG_ERROR("[AutoStart] An error occurred removing the auto start file.");
}
}
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return(success);
@@ -60,9 +62,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
{
bool success = false;
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
bool weInitialised = false;
@@ -77,9 +79,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
result = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_ALL, IID_IShellLinkW, (void**)&shellLink);
/*---------------------------------------------*\
| If not initialized, initialize |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| If not initialized, initialize |
\*-------------------------------------------------*/
if(result == CO_E_NOTINITIALIZED)
{
weInitialised = true;
@@ -87,21 +89,21 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
result = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_ALL, IID_IShellLinkW, (void**)&shellLink);
}
/*---------------------------------------------*\
| If successfully initialized, save a shortcut |
| from the AutoStart parameters |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| If successfully initialized, save a shortcut |
| from the AutoStart parameters |
\*-------------------------------------------------*/
if(SUCCEEDED(result))
{
shellLink->SetPath(exepathw.c_str());
shellLink->SetArguments(argumentsw.c_str());
shellLink->SetDescription(descriptionw.c_str());
shellLink->SetIconLocation(iconw.c_str(), 0);
IPersistFile* persistFile;
result = shellLink->QueryInterface(IID_IPersistFile, (void**)&persistFile);
if(SUCCEEDED(result))
{
result = persistFile->Save(startupfilepathw.c_str(), TRUE);
@@ -112,9 +114,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
shellLink->Release();
}
/*---------------------------------------------*\
| Uninitialize when done |
\*---------------------------------------------*/
/*-------------------------------------------------*\
| Uninitialize when done |
\*-------------------------------------------------*/
if(weInitialised)
{
CoUninitialize();
@@ -122,7 +124,7 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
}
else
{
LOG_ERROR("Could not establish correct autostart file path.");
LOG_ERROR("[AutoStart] Could not establish correct autostart file path.");
}
return success;
@@ -130,9 +132,9 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
bool AutoStart::IsAutoStartEnabled()
{
/*-------------------------------------------------*\
| Check if the filename is valid |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Check if the filename is valid |
\*-----------------------------------------------------*/
if(autostart_file != "")
{
return(filesystem::exists(autostart_file));
@@ -145,20 +147,20 @@ bool AutoStart::IsAutoStartEnabled()
std::string AutoStart::GetExePath()
{
/*-------------------------------------------------*\
| Create the OpenRGB executable path |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Create the OpenRGB executable path |
\*-----------------------------------------------------*/
char exepath[MAX_PATH] = "";
DWORD count = GetModuleFileNameA(NULL, exepath, MAX_PATH);
return(std::string(exepath, (count > 0) ? count : 0));
}
/*-----------------------------------------------------*\
| Windows AutoStart Implementation |
| Private Methods |
\*-----------------------------------------------------*/
/*---------------------------------------------------------*\
| Windows AutoStart Implementation |
| Private Methods |
\*---------------------------------------------------------*/
void AutoStart::InitAutoStart(std::string name)
{
@@ -166,9 +168,9 @@ void AutoStart::InitAutoStart(std::string name)
autostart_name = name;
/*-------------------------------------------------*\
| Get startup applications path |
\*-------------------------------------------------*/
/*-----------------------------------------------------*\
| Get startup applications path |
\*-----------------------------------------------------*/
HRESULT result = SHGetFolderPathA(NULL, CSIDL_PROGRAMS, NULL, 0, startMenuPath);
if(SUCCEEDED(result))
@@ -183,10 +185,10 @@ void AutoStart::InitAutoStart(std::string name)
}
}
/*-----------------------------------------------------*\
| Convert an UTF8 string to a wide Unicode String |
| (from wmi.cpp) |
\*-----------------------------------------------------*/
/*---------------------------------------------------------*\
| Convert an UTF8 string to a wide Unicode String |
| (from wmi.cpp) |
\*---------------------------------------------------------*/
std::wstring AutoStart::utf8_decode(const std::string& str)
{
if(str.empty())
@@ -197,8 +199,8 @@ std::wstring AutoStart::utf8_decode(const std::string& str)
int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int) str.size(), nullptr, 0);
std::wstring wstrTo(size_needed, 0);
MultiByteToWideChar(CP_UTF8, 0, &str[0], (int) str.size(), &wstrTo[0], size_needed);
return(wstrTo);
}
+9
View File
@@ -1,3 +1,12 @@
/*---------------------------------------------------------*\
| AutoStart-Windows.h |
| |
| Autostart implementation for Windows |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+9 -5
View File
@@ -1,9 +1,13 @@
#include "AutoStart.h"
/*---------------------------------------------------------*\
| AutoStart.cpp |
| |
| Autostart common implementation |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| Common AutoStart Implementation |
| Public Methods |
\*-----------------------------------------------------*/
#include "AutoStart.h"
std::string AutoStartInterface::GetAutoStartFile()
{
+9
View File
@@ -1,3 +1,12 @@
/*---------------------------------------------------------*\
| AutoStart.h |
| |
| Autostart common implementation |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+20 -13
View File
@@ -8,17 +8,14 @@ To create a merge request, log into GitLab and fork the OpenRGB project. Push y
* Please keep the scope of each merge request limited to one functional area. If you wish to add a new device controller, for instance, don't also do code cleanup in another controller as part of the same merge request.
* Explain what your merge request is changing, why you feel the change is necessary, and add any additional information you feel is needed to best understand your change in the merge request description.
* Mark your merge request as a draft (start title with "Draft:") until it has been tested and verified working.
* Mark your merge request as a Draft (start title with "Draft:") until it has been fully developed and ideally tested and verified working. Remove Draft status when you are ready for the code to be reviewed and merged. I typically do not look at or review Draft merge requests.
* Follow the Style Guidelines below when making your code changes.
* Avoid using `git merge` when updating your fork. The OpenRGB project uses a linear git history, meaning all changes are rebased onto the tip of master. By using `git rebase` to update your fork, you will make it easier to accept merge requests.
* Avoid using `git merge` when updating your fork. The OpenRGB project uses a linear git history, meaning all changes are rebased onto the tip of master. By using `git rebase` to update your fork, you will make it easier to accept merge requests. I also recommend squashing your commits, though GitLab will do this as part of the merge process if you don't.
* Do not submit a merge request using your fork's `master` branch as the source. The `master` branch is protected by default when creating a fork and I cannot manually rebase a protected branch before merging. If you submit a merge request with a protected `master` branch as the source, it may not get merged until you unprotect it.
### Pipelines, Shared Runners and Quotas
### Pipelines, Shared Runners, Quotas, and Accepting Merge Requests
Since mid 2022 Gitlab has limited the usage of shared runners to all projects and whilst quite geneorous quotas are allowed
for open source projects it is possible to exhaust them. With that in mind not all jobs within the pipeline build are
triggered to automatically run with every push to your branch with the exception of the Windows 64bit and Linux Appimage 64bit
jobs. If you need to test or share another build you can still start it manually from your pipeline queue.
Once a merge request is created all architectures and platforms will be compiled to ensure that they are ready to merge.
Since mid 2022, GitLab has severely limited the usage of shared runners to all free users. With that in mind, most pipeline jobs are skipped on forked copies of the project. Only the Windows 64bit and Linux AppImage amd64 jobs are run on forks, and only if you have permission and available CI minutes on your account. Unfortunately, with the ever tightening restrictions GitLab has on free CI usage, even to public projects with an open source license, you likely will not be able to utilize the CI builds for your own fork unless you set up your own runners. Because of this, I no longer require a successful CI run in order to accept a merge request as it is an unreasonable ask given the current CI situation. If your merge request requires additional verification, I may choose to merge it into a branch instead of into `master` so that my own runners can run the full set of jobs and then I will pull it into master after any verification or changes. This also means that any build breakages inadvertently caused by merging a merge request may result in the merge being backed out, in which case I will either fix it myself or leave a message on the merge request to rework and resubmit a fixed version.
Please refer to the following link for [further information relating to minutes and quotas](https://docs.gitlab.com/ee/ci/pipelines/cicd_minutes.html).
@@ -57,12 +54,22 @@ OpenRGB is written in C++, uses the Qt framework for UI, and uses the QMake buil
* Capitalize hexadecimal literals (`0xFF` not `0xff`) except in the udev rules file (which must be lowercase to work)
* No space between keyword and open parenthesis (`if(TRUE)` not `if (TRUE)`). There are some instances of this that haven't been cleaned up in the code.
* Generally, `snake_case` is used for variable names and `CamelCase` is used for function and class names
* Add a header comment to new files with the filename, description, original author, and date (this is missing on most Detect files)
* Line up `=` when doing a lot of assignments together
* Add a header comment to new files with the filename, description, original author, date, and SPDX license identifier. You can copy one from an existing file to preserve formatting.
* Line up `=` on a tab stop when doing a lot of assignments together
* Use this comment box style when adding comments:
* Try to start the comment box on the same column as the code directly beneath it and end on column 61 if possible. See the example below:
```
/*--------------------------------*\
| This is a comment |
\*_-------------------------------*/
/*---------------------------------------------------------*\
| This is a comment |
\*---------------------------------------------------------*/
```
## Translating
Translation files are located in [`OpenRGB/qt/i18n/`](https://gitlab.com/CalcProgrammer1/OpenRGB/-/tree/master/qt/i18n), where languages are formatted using ISO 639-1 format: `OpenRGB_xx_XX.ts` — `xx_XX` representing the language code.
In order to translate a file, you need to [fork](https://gitlab.com/CalcProgrammer1/OpenRGB/-/forks/new) the project, create a new file for your language with `lupdate` (or edit an exisiting one), edit the file with `qtlinguist`, commit, push, and create a merge request.
## AI Guidelines
OpenRGB is an open source project developed by humans for humans. As a general rule, AI generated submissions are not permitted. The licensing behind AI generated code is problematic. If you choose to use AI for assistance in your development process, we can't stop you, but do not credit the AI in commits (no AI authorship/co-authorship). Ultimately, you as a human developer are responsible for the code you submit and it is expected that any code you submit you fully understand and have manually vetted before submission. Merge requests that appear to be straight from an AI output, commits with AI tool authorship or co-authorship tags, or otherwise AI generated submissions are subject to closure.
+9
View File
@@ -1,3 +1,12 @@
/*---------------------------------------------------------*\
| Colors.h |
| |
| List of named color constants |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#ifndef COLORS_H
#define COLORS_H
@@ -1,15 +1,26 @@
/*---------------------------------------------------------*\
| A4TechDetector.cpp |
| |
| Detector for A4Tech Devices |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| Mohammed Julfikar Ali Mahbub (o-julfikar) 01 Apr 2024 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| OpenRGB includes |
\*-----------------------------------------------------*/
#include <hidapi/hidapi.h>
#include <hidapi.h>
#include "Detector.h"
#include "LogManager.h"
#include "RGBController.h"
/*-----------------------------------------------------*\
| A4 Tech specific includes |
\*-----------------------------------------------------*/
#include "RGBController_BloodyMouse.h"
#include "RGBController_BloodyB820R.h"
/*-----------------------------------------------------*\
| A4 Tech USB vendor ID |
@@ -22,13 +33,29 @@ void DetectA4TechMouseControllers(hid_device_info* info, const std::string& name
if(dev)
{
BloodyMouseController* controller = new BloodyMouseController(dev, info->path, info->product_id);
BloodyMouseController* controller = new BloodyMouseController(dev, info->path, info->product_id, name);
RGBController_BloodyMouse* rgb_controller = new RGBController_BloodyMouse(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
REGISTER_HID_DETECTOR_IPU("Bloody W60 Pro", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W60_PRO_PID, 2, 0xFF33, 0x0529);
REGISTER_HID_DETECTOR_IPU("Bloody MP 50RS", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_MP_50RS_PID, 2, 0xFFF2, 0x6009);
void DetectBloodyB820R(hid_device_info* info, const std::string& name)
{
hid_device* dev = hid_open_path(info->path);
if(dev)
{
BloodyB820RController* controller = new BloodyB820RController(dev, info->path, name);
RGBController_BloodyB820R* rgb_controller = new RGBController_BloodyB820R(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
REGISTER_HID_DETECTOR_IPU("Bloody W60 Pro", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W60_PRO_PID, 2, 0xFF33, 0x0529);
REGISTER_HID_DETECTOR_IPU("Bloody W70 Max", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W70_MAX_PID, 2, 0xFF33, 0x0518);
REGISTER_HID_DETECTOR_IPU("Bloody W90 Max", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W90_MAX_PID, 2, 0xFF33, 0x053D);
REGISTER_HID_DETECTOR_IPU("Bloody W90 Pro", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W90_PRO_PID, 2, 0xFF33, 0x054D);
REGISTER_HID_DETECTOR_IPU("Bloody MP 50RS", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_MP_50RS_PID, 2, 0xFFF2, 0x6009);
REGISTER_HID_DETECTOR_IPU("Bloody B820R", DetectBloodyB820R, A4_TECH_VID, BLOODY_B820R_PID, 2, 0xFF52, 0x0210);
@@ -0,0 +1,110 @@
/*---------------------------------------------------------*\
| BloodyB820RController.cpp |
| |
| Driver for A4Tech Bloody B820R Keyboard |
| |
| Mohammed Julfikar Ali Mahbub (o-julfikar) 01 Apr 2024 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "BloodyB820RController.h"
#include "StringUtils.h"
/*-------------------------------------------------------------------------------------*\
| The controller for this device should pass a packet of 64 bytes where the subsequent |
| two packets are for RED, GREEN, and BLUE respectively. The first 6 bytes are control |
| or information bytes and colors bytes starts from index 6. Moreover, the first pack- |
| et of each RGB contains color for 58 keys and the rest (104 - 58 == 46) are send on |
| the second packet. |
\*-------------------------------------------------------------------------------------*/
BloodyB820RController::BloodyB820RController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
SendControlPacket(BLOODY_B820R_GAIN_CONTROL);
}
BloodyB820RController::~BloodyB820RController()
{
SendControlPacket(BLOODY_B820R_RELEASE_CONTROL);
hid_close(dev);
}
std::string BloodyB820RController::GetSerial()
{
wchar_t serial_string[HID_MAX_STR];
int ret = hid_get_serial_number_string(dev, serial_string, HID_MAX_STR);
if(ret != 0)
{
return("");
}
return(StringUtils::wstring_to_string(serial_string));
}
std::string BloodyB820RController::GetLocation()
{
return("HID: " + location);
}
std::string BloodyB820RController::GetName()
{
return(name);
}
void BloodyB820RController::SendControlPacket(uint8_t data)
{
uint8_t buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 };
hid_send_feature_report(dev, buffer, BLOODY_B820R_PACKET_SIZE);
buffer[BLOODY_B820R_MODE_BYTE] = 0;
buffer[BLOODY_B820R_DATA_BYTE] = data;
hid_send_feature_report(dev, buffer, BLOODY_B820R_PACKET_SIZE);
}
void BloodyB820RController::SetLEDDirect(std::vector<RGBColor> colors)
{
uint8_t r1_buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x07, 0x00, 0x00 };
uint8_t r2_buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x08, 0x00, 0x00 };
uint8_t g1_buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x09, 0x00, 0x00 };
uint8_t g2_buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x0A, 0x00, 0x00 };
uint8_t b1_buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x0B, 0x00, 0x00 };
uint8_t b2_buffer[BLOODY_B820R_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x0C, 0x00, 0x00 };
/*-----------------------------------------------------------------*\
| Set up Direct packet |
| packet_map is the index of the Key from full_matrix_map and |
| the value is the position in the direct packet buffer |
\*-----------------------------------------------------------------*/
for(size_t i = 0; i < colors.size(); i++)
{
RGBColor color = colors[i];
uint8_t offset = BLOODY_B820R_RGB_OFFSET;
uint8_t buffer_idx = offset + i % BLOODY_B820R_RGB_BUFFER_SIZE;
uint8_t* buffers[2][3] =
{
{r1_buffer, g1_buffer, b1_buffer},
{r2_buffer, g2_buffer, b2_buffer}
};
buffers[i >= BLOODY_B820R_RGB_BUFFER_SIZE][0][buffer_idx] = RGBGetRValue(color);
buffers[i >= BLOODY_B820R_RGB_BUFFER_SIZE][1][buffer_idx] = RGBGetGValue(color);
buffers[i >= BLOODY_B820R_RGB_BUFFER_SIZE][2][buffer_idx] = RGBGetBValue(color);
}
hid_send_feature_report(dev, r1_buffer, BLOODY_B820R_PACKET_SIZE);
hid_send_feature_report(dev, r2_buffer, BLOODY_B820R_PACKET_SIZE);
hid_send_feature_report(dev, g1_buffer, BLOODY_B820R_PACKET_SIZE);
hid_send_feature_report(dev, g2_buffer, BLOODY_B820R_PACKET_SIZE);
hid_send_feature_report(dev, b1_buffer, BLOODY_B820R_PACKET_SIZE);
hid_send_feature_report(dev, b2_buffer, BLOODY_B820R_PACKET_SIZE);
}
@@ -0,0 +1,55 @@
/*---------------------------------------------------------*\
| BloodyB820RController.h |
| |
| Driver for A4Tech Bloody B820R Keyboard |
| |
| Mohammed Julfikar Ali Mahbub (o-julfikar) 01 Apr 2024 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
#define HID_MAX_STR 255
#define BLOODY_B820R_RGB_BUFFER_SIZE 58
#define BLOODY_B820R_RGB_OFFSET 6
#define BLOODY_B820R_PACKET_SIZE 64
#define BLOODY_B820R_KEYCOUNT 104
#define BLOODY_B820R_MODE_BYTE 3
#define BLOODY_B820R_DATA_BYTE 8
#define BLOODY_B820R_GAIN_CONTROL 0x01
#define BLOODY_B820R_RELEASE_CONTROL 0x00
/*---------------------------------------------------------*\
| Bloody B820R product ID |
\*---------------------------------------------------------*/
#define BLOODY_B820R_PID 0xFA10
enum
{
BLOODY_B820R_MODE_DIRECT = 0x01, // Direct LED control - Independently set LEDs in zone
};
class BloodyB820RController
{
public:
BloodyB820RController(hid_device* dev_handle, const char* path, std::string dev_name);
~BloodyB820RController();
std::string GetSerial();
std::string GetLocation();
std::string GetName();
void SetLEDDirect(std::vector<RGBColor> colors);
void SendControlPacket(uint8_t data);
private:
std::string location;
std::string name;
hid_device* dev;
};
@@ -0,0 +1,253 @@
/*---------------------------------------------------------*\
| RGBController_BloodyB820R.cpp |
| |
| RGBController for A4Tech Bloody B820R Keyboard |
| |
| Mohammed Julfikar Ali Mahbub (o-julfikar) 01 Apr 2024 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBControllerKeyNames.h"
#include "RGBController_BloodyB820R.h"
//0xFFFFFFFF indicates an unused entry in matrix
#define NA 0xFFFFFFFF
static unsigned int matrix_map[6][21] =
{
{0, NA, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NA, NA, NA, NA, 13, 14, 15},
{16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36},
{37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57},
{58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NA, NA, NA, NA, 71, 72, 73, NA},
{74, NA, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, NA, NA, 86, NA, 87, 88, 89, 90},
{91, 92, 93, 94, NA, NA, NA, NA, NA, NA, 95, 96, 97, 98, 99, 100, 101, 102, NA, 103, NA},
};
static const char *led_names[] =
{
KEY_EN_ESCAPE, //00
KEY_EN_F1,
KEY_EN_F2,
KEY_EN_F3,
KEY_EN_F4,
KEY_EN_F5,
KEY_EN_F6,
KEY_EN_F7,
KEY_EN_F8,
KEY_EN_F9,
KEY_EN_F10,
KEY_EN_F11,
KEY_EN_F12,
KEY_EN_PRINT_SCREEN,
KEY_EN_SCROLL_LOCK,
KEY_EN_PAUSE_BREAK,
KEY_EN_BACK_TICK, //10
KEY_EN_1,
KEY_EN_2,
KEY_EN_3,
KEY_EN_4,
KEY_EN_5,
KEY_EN_6,
KEY_EN_7,
KEY_EN_8,
KEY_EN_9,
KEY_EN_0,
KEY_EN_MINUS,
KEY_EN_EQUALS,
KEY_EN_BACKSPACE,
KEY_EN_INSERT,
KEY_EN_HOME,
KEY_EN_PAGE_UP,
KEY_EN_NUMPAD_LOCK,
KEY_EN_NUMPAD_DIVIDE,
KEY_EN_NUMPAD_TIMES,
KEY_EN_NUMPAD_MINUS,
KEY_EN_TAB, //20
KEY_EN_Q,
KEY_EN_W,
KEY_EN_E,
KEY_EN_R,
KEY_EN_T,
KEY_EN_Y,
KEY_EN_U,
KEY_EN_I,
KEY_EN_O,
KEY_EN_P,
KEY_EN_LEFT_BRACKET,
KEY_EN_RIGHT_BRACKET,
KEY_EN_ANSI_BACK_SLASH,
KEY_EN_DELETE,
KEY_EN_END,
KEY_EN_PAGE_DOWN,
KEY_EN_NUMPAD_7,
KEY_EN_NUMPAD_8,
KEY_EN_NUMPAD_9,
KEY_EN_NUMPAD_PLUS,
KEY_EN_CAPS_LOCK, //30
KEY_EN_A,
KEY_EN_S,
KEY_EN_D,
KEY_EN_F,
KEY_EN_G,
KEY_EN_H,
KEY_EN_J,
KEY_EN_K,
KEY_EN_L,
KEY_EN_SEMICOLON,
KEY_EN_QUOTE,
KEY_EN_ANSI_ENTER,
KEY_EN_NUMPAD_4,
KEY_EN_NUMPAD_5,
KEY_EN_NUMPAD_6,
KEY_EN_LEFT_SHIFT, //40
KEY_EN_Z,
KEY_EN_X,
KEY_EN_C,
KEY_EN_V,
KEY_EN_B,
KEY_EN_N,
KEY_EN_M,
KEY_EN_COMMA,
KEY_EN_PERIOD,
KEY_EN_FORWARD_SLASH,
KEY_EN_RIGHT_SHIFT,
KEY_EN_UP_ARROW,
KEY_EN_NUMPAD_1,
KEY_EN_NUMPAD_2,
KEY_EN_NUMPAD_3,
KEY_EN_NUMPAD_ENTER,
KEY_EN_LEFT_CONTROL, //50
KEY_EN_LEFT_WINDOWS,
KEY_EN_LEFT_ALT,
KEY_EN_SPACE,
KEY_EN_RIGHT_ALT,
KEY_EN_RIGHT_FUNCTION,
KEY_EN_MENU,
KEY_EN_RIGHT_CONTROL,
KEY_EN_LEFT_ARROW,
KEY_EN_DOWN_ARROW,
KEY_EN_RIGHT_ARROW,
KEY_EN_NUMPAD_0,
KEY_EN_NUMPAD_PERIOD
};
/**------------------------------------------------------------------*\
@name A4Tech Bloody B820R
@category Keyboard
@type USB
@save :x:
@direct :white_check_mark:
@effects :x:
@detectors DetectBloodyB820R
@comment The A4Tech Bloody B820R keyboard controller currently
supports the full size (ANSI layout).
\*-------------------------------------------------------------------*/
RGBController_BloodyB820R::RGBController_BloodyB820R(BloodyB820RController *controller_ptr)
{
controller = controller_ptr;
name = controller->GetName();
vendor = "A4Tech";
type = DEVICE_TYPE_KEYBOARD;
description = "A4Tech Bloody Keyboard";
serial = controller->GetSerial();
location = controller->GetLocation();
mode Direct;
Direct.name = "Direct";
Direct.value = BLOODY_B820R_MODE_DIRECT;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();
}
RGBController_BloodyB820R::~RGBController_BloodyB820R()
{
delete controller;
}
void RGBController_BloodyB820R::SetupZones()
{
/*-------------------------------------------------*\
| Create the Keyboard zone and add the matrix map |
\*-------------------------------------------------*/
zone KB_zone;
KB_zone.name = ZONE_EN_KEYBOARD;
KB_zone.type = ZONE_TYPE_MATRIX;
KB_zone.leds_min = BLOODY_B820R_KEYCOUNT;
KB_zone.leds_max = BLOODY_B820R_KEYCOUNT;
KB_zone.leds_count = BLOODY_B820R_KEYCOUNT;
KB_zone.matrix_map = new matrix_map_type;
KB_zone.matrix_map->height = 6;
KB_zone.matrix_map->width = 21;
KB_zone.matrix_map->map = (unsigned int *)&matrix_map;
zones.push_back(KB_zone);
/*-------------------------------------------------*\
| Clear any existing color/LED configuration |
\*-------------------------------------------------*/
leds.clear();
colors.clear();
/*---------------------------------------------------------*\
| Set up zones |
\*---------------------------------------------------------*/
for(unsigned int led_index = 0; led_index < BLOODY_B820R_KEYCOUNT; led_index++)
{
led new_led;
new_led.name = led_names[led_index];
new_led.value = led_index;
leds.push_back(new_led);
}
SetupColors();
}
void RGBController_BloodyB820R::ResizeZone(int /*zone*/, int /*new_size*/)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
}
void RGBController_BloodyB820R::DeviceUpdateLEDs()
{
controller->SetLEDDirect(colors);
}
void RGBController_BloodyB820R::UpdateZoneLEDs(int zone)
{
std::vector<RGBColor> colour;
for(size_t i = 0; i < zones[zone].leds_count; i++)
{
colour.push_back(zones[zone].colors[i]);
}
controller->SetLEDDirect(colour);
}
void RGBController_BloodyB820R::UpdateSingleLED(int led)
{
std::vector<RGBColor> colour;
colour.push_back(colors[led]);
controller->SetLEDDirect(colour);
}
void RGBController_BloodyB820R::DeviceUpdateMode()
{
/* This device does not support modes yet */
}
@@ -0,0 +1,35 @@
/*---------------------------------------------------------*\
| RGBController_BloodyB820R.h |
| |
| RGBController for A4Tech Bloody B820R Keyboard |
| |
| Mohammed Julfikar Ali Mahbub (o-julfikar) 01 Apr 2024 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <vector>
#include "RGBController.h"
#include "BloodyB820RController.h"
class RGBController_BloodyB820R : public RGBController
{
public:
RGBController_BloodyB820R(BloodyB820RController* controller_ptr);
~RGBController_BloodyB820R();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
BloodyB820RController* controller;
};
@@ -1,81 +0,0 @@
/*---------------------------------------------------------------------*\
| BloodyMouseController.cpp |
| |
| Driver for BloodyMouse USB Controller |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
\*---------------------------------------------------------------------*/
#include "BloodyMouseController.h"
BloodyMouseController::BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id)
{
dev = dev_handle;
location = path;
pid = product_id;
InitDevice();
}
BloodyMouseController::~BloodyMouseController()
{
hid_close(dev);
}
uint16_t BloodyMouseController::GetPid()
{
return pid;
}
std::string BloodyMouseController::GetSerial()
{
const uint8_t sz = HID_MAX_STR;
wchar_t tmp[sz];
int ret = hid_get_serial_number_string(dev, tmp, sz);
if (ret != 0)
{
LOG_DEBUG("[BloodyMouse] Get HID Serial string failed");
return("");
}
std::wstring w_tmp = std::wstring(tmp);
std::string serial = std::string(w_tmp.begin(), w_tmp.end());
return serial;
}
std::string BloodyMouseController::GetLocation()
{
return("HID: " + location);
}
void BloodyMouseController::InitDevice()
{
uint8_t buffer[BLOODYMOUSE_WRITE_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 };
hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE);
buffer[BLOODYMOUSE_MODE_BYTE] = 0;
buffer[BLOODYMOUSE_DATA_BYTE] = 1;
hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE);
}
void BloodyMouseController::SetLedsDirect(std::vector<RGBColor> colors)
{
uint8_t buffer[BLOODYMOUSE_WRITE_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00 };
for(uint8_t i = 0; i < colors.size(); i++)
{
uint8_t offset = 3 * (colors[i] >> 24) + BLOODYMOUSE_DATA_BYTE;
buffer[offset] = RGBGetRValue(colors[i]);
buffer[offset + 1] = RGBGetGValue(colors[i]);
buffer[offset + 2] = RGBGetBValue(colors[i]);
}
hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE);
}
@@ -1,63 +0,0 @@
/*---------------------------------------------------------------------*\
| BloodyMouseController.h |
| |
| Driver for BloodyMouse USB Controller |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
\*---------------------------------------------------------------------*/
#include <string>
#include <hidapi/hidapi.h>
#include "LogManager.h"
#include "RGBController.h"
#pragma once
/*-----------------------------------------------------*\
| Mouse product IDs |
\*-----------------------------------------------------*/
#define BLOODY_W60_PRO_PID 0x37EA
/*-----------------------------------------------------*\
| Mousemat product IDs |
\*-----------------------------------------------------*/
#define BLOODY_MP_50RS_PID 0xFA60
#define HID_MAX_STR 255
#define BLOODYMOUSE_WRITE_PACKET_SIZE 64
#define BLOODYMOUSE_BRIGHTNESS_MIN 0
#define BLOODYMOUSE_BRIGHTNESS_MAX 255
enum
{
BLOODYMOUSE_MODE_DIRECT = 0x01, //Direct Led Control - Independently set LEDs in zone
};
enum
{
BLOODYMOUSE_REPORT_BYTE = 1,
BLOODYMOUSE_COMMAND_BYTE = 2,
BLOODYMOUSE_MODE_BYTE = 3,
BLOODYMOUSE_DATA_BYTE = 8,
};
class BloodyMouseController
{
public:
BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id);
~BloodyMouseController();
uint16_t GetPid();
std::string GetSerial();
std::string GetLocation();
void SetLedsDirect(std::vector<RGBColor> colors);
private:
uint16_t pid;
std::string location;
hid_device* dev;
void InitDevice();
};
@@ -0,0 +1,84 @@
/*---------------------------------------------------------*\
| BloodyMouseController.cpp |
| |
| Driver for A4Tech Bloody Mouse |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "BloodyMouseController.h"
#include "StringUtils.h"
BloodyMouseController::BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id, std::string dev_name)
{
dev = dev_handle;
location = path;
pid = product_id;
name = dev_name;
InitDevice();
}
BloodyMouseController::~BloodyMouseController()
{
hid_close(dev);
}
uint16_t BloodyMouseController::GetPid()
{
return(pid);
}
std::string BloodyMouseController::GetSerial()
{
wchar_t serial_string[HID_MAX_STR];
int ret = hid_get_serial_number_string(dev, serial_string, HID_MAX_STR);
if(ret != 0)
{
return("");
}
return(StringUtils::wstring_to_string(serial_string));
}
std::string BloodyMouseController::GetLocation()
{
return("HID: " + location);
}
std::string BloodyMouseController::GetName()
{
return(name);
}
void BloodyMouseController::InitDevice()
{
uint8_t buffer[BLOODYMOUSE_WRITE_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 };
hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE);
buffer[BLOODYMOUSE_MODE_BYTE] = 0;
buffer[BLOODYMOUSE_DATA_BYTE] = 1;
hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE);
}
void BloodyMouseController::SetLedsDirect(std::vector<RGBColor> colors)
{
uint8_t buffer[BLOODYMOUSE_WRITE_PACKET_SIZE] = { 0x07, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00 };
for(uint8_t i = 0; i < colors.size(); i++)
{
uint8_t offset = 3 * (colors[i] >> 24) + BLOODYMOUSE_DATA_BYTE;
buffer[offset] = RGBGetRValue(colors[i]);
buffer[offset + 1] = RGBGetGValue(colors[i]);
buffer[offset + 2] = RGBGetBValue(colors[i]);
}
hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE);
}
@@ -0,0 +1,70 @@
/*---------------------------------------------------------*\
| BloodyMouseController.h |
| |
| Driver for A4Tech Bloody Mouse |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------------------*\
| Mouse product IDs |
\*-----------------------------------------------------*/
#define BLOODY_W60_PRO_PID 0x37EA
#define BLOODY_W70_MAX_PID 0x79EF
#define BLOODY_W90_MAX_PID 0x3666
#define BLOODY_W90_PRO_PID 0x39B6
/*-----------------------------------------------------*\
| Mousemat product IDs |
\*-----------------------------------------------------*/
#define BLOODY_MP_50RS_PID 0xFA60
#define HID_MAX_STR 255
#define BLOODYMOUSE_WRITE_PACKET_SIZE 64
#define BLOODYMOUSE_BRIGHTNESS_MIN 0
#define BLOODYMOUSE_BRIGHTNESS_MAX 255
enum
{
BLOODYMOUSE_MODE_DIRECT = 0x01, //Direct Led Control - Independently set LEDs in zone
};
enum
{
BLOODYMOUSE_REPORT_BYTE = 1,
BLOODYMOUSE_COMMAND_BYTE = 2,
BLOODYMOUSE_MODE_BYTE = 3,
BLOODYMOUSE_DATA_BYTE = 8,
};
class BloodyMouseController
{
public:
BloodyMouseController(hid_device* dev_handle, const char* path, uint16_t product_id, std::string dev_name);
~BloodyMouseController();
uint16_t GetPid();
std::string GetSerial();
std::string GetLocation();
std::string GetName();
void SetLedsDirect(std::vector<RGBColor> colors);
private:
uint16_t pid;
std::string location;
std::string name;
hid_device* dev;
void InitDevice();
};
@@ -1,11 +1,13 @@
/*---------------------------------------------------------------------*\
| RGBController_BloodyMouse.cpp |
| |
| Driver for BloodyMouse USB Controller |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
\*---------------------------------------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_BloodyMouse.cpp |
| |
| RGBController for A4Tech Bloody Mouse |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_BloodyMouse.h"
@@ -25,6 +27,19 @@ static const mouse_layout w60_pro
}
};
static const mouse_layout w90_max
{
{
"Scroll Wheel", { 14 }
},
{
"Logo", { 7 }
},
{
"Rear", { 13, 12, 11, 10, 9, 8, 6, 5, 4, 3, 2, 1, 0 }
}
};
static const mouse_layout mp_50rs
{
{
@@ -56,7 +71,7 @@ RGBController_BloodyMouse::RGBController_BloodyMouse(BloodyMouseController *cont
type = DEVICE_TYPE_MOUSE;
}
name = "BloodyMouse";
name = controller->GetName();
vendor = "Bloody";
description = "Controller compatible with the Bloody W60 Pro and MP 50RS";
serial = controller->GetSerial();
@@ -89,11 +104,17 @@ void RGBController_BloodyMouse::SetupZones()
| Select layout from PID |
\*-------------------------------------------------*/
mouse_layout layout;
switch(controller->GetPid())
{
case BLOODY_W60_PRO_PID:
layout = w60_pro;
break;
case BLOODY_W70_MAX_PID:
case BLOODY_W90_MAX_PID:
case BLOODY_W90_PRO_PID:
layout = w90_max;
break;
case BLOODY_MP_50RS_PID:
layout = mp_50rs;
break;
@@ -109,7 +130,7 @@ void RGBController_BloodyMouse::SetupZones()
zone new_zone;
new_zone.name = mz.name;
new_zone.leds_min = mz.zone_leds.size();
new_zone.leds_min = (unsigned int)mz.zone_leds.size();
new_zone.leds_max = new_zone.leds_min;
new_zone.leds_count = new_zone.leds_min;
new_zone.type = bool_single ? ZONE_TYPE_SINGLE : ZONE_TYPE_LINEAR;
@@ -0,0 +1,43 @@
/*---------------------------------------------------------*\
| RGBController_BloodyMouse.h |
| |
| RGBController for A4Tech Bloody Mouse |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <vector>
#include "RGBController.h"
#include "BloodyMouseController.h"
struct mouse_zone
{
std::string name;
std::vector<uint8_t> zone_leds;
};
typedef std::vector<mouse_zone> mouse_layout;
class RGBController_BloodyMouse : public RGBController
{
public:
RGBController_BloodyMouse(BloodyMouseController* controller_ptr);
~RGBController_BloodyMouse();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
BloodyMouseController* controller;
};
@@ -1,41 +0,0 @@
/*---------------------------------------------------------------------*\
| RGBController_BloodyMouse.h |
| |
| Driver for BloodyMouse USB Controller |
| |
| Chris M (Dr_No) 30 Jun 2022 |
| |
\*---------------------------------------------------------------------*/
#pragma once
#include <vector>
#include "LogManager.h"
#include "RGBController.h"
#include "BloodyMouseController.h"
struct mouse_zone
{
std::string name;
std::vector<uint8_t> zone_leds;
};
typedef std::vector<mouse_zone> mouse_layout;
class RGBController_BloodyMouse : public RGBController
{
public:
RGBController_BloodyMouse(BloodyMouseController* controller_ptr);
~RGBController_BloodyMouse();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
BloodyMouseController* controller;
};
@@ -0,0 +1,195 @@
/*---------------------------------------------------------*\
| AMBXController.cpp |
| |
| Driver for Philips amBX Gaming lights |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "AMBXController.h"
#include "LogManager.h"
#include "StringUtils.h"
#include <cstring>
#include <thread>
#include <chrono>
AMBXController::AMBXController(const char* path)
{
initialized = false;
usb_context = nullptr;
dev_handle = nullptr;
location = "USB: ";
location += path;
// Initialize libusb in this instance
if(libusb_init(&usb_context) < 0)
{
return;
}
// Get the device list
libusb_device** device_list;
ssize_t device_count = libusb_get_device_list(usb_context, &device_list);
if(device_count < 0)
{
return;
}
for(ssize_t i = 0; i < device_count; i++)
{
libusb_device* device = device_list[i];
struct libusb_device_descriptor desc;
if(libusb_get_device_descriptor(device, &desc) != LIBUSB_SUCCESS)
{
continue;
}
if(desc.idVendor == AMBX_VID && desc.idProduct == AMBX_PID)
{
uint8_t bus = libusb_get_bus_number(device);
uint8_t address = libusb_get_device_address(device);
char current_path[32];
snprintf(current_path, sizeof(current_path), "%d-%d", bus, address);
if(strcmp(path, current_path) == 0)
{
// Try to open this device
if(libusb_open(device, &dev_handle) != LIBUSB_SUCCESS)
{
continue;
}
// Try to detach the kernel driver if attached
if(libusb_kernel_driver_active(dev_handle, 0))
{
libusb_detach_kernel_driver(dev_handle, 0);
}
// Set auto-detach for Windows compatibility
libusb_set_auto_detach_kernel_driver(dev_handle, 1);
// Claim the interface
if(libusb_claim_interface(dev_handle, 0) != LIBUSB_SUCCESS)
{
libusb_close(dev_handle);
dev_handle = nullptr;
continue;
}
// Get string descriptor for serial number if available
if(desc.iSerialNumber != 0)
{
unsigned char serial_str[256];
int serial_result = libusb_get_string_descriptor_ascii(dev_handle, desc.iSerialNumber,
serial_str, sizeof(serial_str));
if(serial_result > 0)
{
serial = std::string(reinterpret_cast<char*>(serial_str), serial_result);
}
}
// Successfully opened and claimed the device
initialized = true;
break;
}
}
}
libusb_free_device_list(device_list, 1);
}
AMBXController::~AMBXController()
{
if(initialized)
{
// Turn off all lights before closing
unsigned int led_ids[5] =
{
AMBX_LIGHT_LEFT,
AMBX_LIGHT_RIGHT,
AMBX_LIGHT_WALL_LEFT,
AMBX_LIGHT_WALL_CENTER,
AMBX_LIGHT_WALL_RIGHT
};
RGBColor colors[5] = { 0, 0, 0, 0, 0 };
SetLEDColors(led_ids, colors, 5);
}
if(dev_handle != nullptr)
{
// Release the interface
libusb_release_interface(dev_handle, 0);
// Close the device
libusb_close(dev_handle);
dev_handle = nullptr;
}
if(usb_context != nullptr)
{
libusb_exit(usb_context);
usb_context = nullptr;
}
}
std::string AMBXController::GetDeviceLocation()
{
return location;
}
std::string AMBXController::GetSerialString()
{
return serial;
}
bool AMBXController::IsInitialized()
{
return initialized;
}
void AMBXController::SendPacket(unsigned char* packet, unsigned int size)
{
if(!initialized || dev_handle == nullptr)
{
return;
}
int actual_length = 0;
libusb_interrupt_transfer(dev_handle, AMBX_ENDPOINT_OUT, packet, size, &actual_length, 100);
}
void AMBXController::SetLEDColor(unsigned int led, RGBColor color)
{
if(!initialized)
{
return;
}
unsigned char color_buf[6] =
{
AMBX_PACKET_HEADER,
static_cast<unsigned char>(led),
AMBX_SET_COLOR,
(unsigned char)RGBGetRValue(color),
(unsigned char)RGBGetGValue(color),
(unsigned char)RGBGetBValue(color)
};
SendPacket(color_buf, 6);
std::this_thread::sleep_for(std::chrono::milliseconds(2));
}
void AMBXController::SetLEDColors(unsigned int* leds, RGBColor* colors, unsigned int count)
{
for(unsigned int i = 0; i < count; i++)
{
SetLEDColor(leds[i], colors[i]);
}
}
@@ -0,0 +1,57 @@
/*---------------------------------------------------------*\
| AMBXController.h |
| |
| Driver for Philips amBX Gaming lights |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include <string>
#ifdef _WIN32
#include "dependencies/libusb-1.0.27/include/libusb.h"
#else
#include <libusb.h>
#endif
#define AMBX_VID 0x0471
#define AMBX_PID 0x083F
#define AMBX_ENDPOINT_OUT 0x02
#define AMBX_PACKET_HEADER 0xA1
#define AMBX_SET_COLOR 0x03
enum
{
AMBX_LIGHT_LEFT = 0x0B,
AMBX_LIGHT_RIGHT = 0x1B,
AMBX_LIGHT_WALL_LEFT = 0x2B,
AMBX_LIGHT_WALL_CENTER = 0x3B,
AMBX_LIGHT_WALL_RIGHT = 0x4B
};
class AMBXController
{
public:
AMBXController(const char* path);
~AMBXController();
std::string GetDeviceLocation();
std::string GetSerialString();
bool IsInitialized();
void SetLEDColor(unsigned int led, RGBColor color);
void SetLEDColors(unsigned int* leds, RGBColor* colors, unsigned int count);
private:
libusb_context* usb_context;
libusb_device_handle* dev_handle;
std::string location;
std::string serial;
bool initialized;
void SendPacket(unsigned char* packet, unsigned int size);
};
@@ -0,0 +1,83 @@
/*---------------------------------------------------------*\
| AMBXControllerDetect.cpp |
| |
| Detector for Philips amBX Gaming lights |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AMBXController.h"
#include "RGBController.h"
#include "RGBController_AMBX.h"
#ifdef _WIN32
#include "dependencies/libusb-1.0.27/include/libusb.h"
#else
#include <libusb.h>
#endif
/******************************************************************************************\
* *
* DetectAMBXControllers *
* *
* Detect Philips amBX Gaming devices *
* *
\******************************************************************************************/
void DetectAMBXControllers()
{
libusb_context* ctx = NULL;
if(libusb_init(&ctx) < 0)
{
return;
}
libusb_device** devs;
ssize_t num_devs = libusb_get_device_list(ctx, &devs);
if(num_devs <= 0)
{
libusb_exit(ctx);
return;
}
for(ssize_t i = 0; i < num_devs; i++)
{
libusb_device* dev = devs[i];
libusb_device_descriptor desc;
if(libusb_get_device_descriptor(dev, &desc) != 0)
{
continue;
}
if(desc.idVendor == AMBX_VID && desc.idProduct == AMBX_PID)
{
uint8_t bus = libusb_get_bus_number(dev);
uint8_t address = libusb_get_device_address(dev);
char device_path[32];
snprintf(device_path, sizeof(device_path), "%d-%d", bus, address);
// Use the AMBXController to handle opening and initializing
AMBXController* controller = new AMBXController(device_path);
if(controller->IsInitialized())
{
RGBController_AMBX* rgb_controller = new RGBController_AMBX(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
else
{
delete controller;
}
}
}
libusb_free_device_list(devs, 1);
libusb_exit(ctx);
}
REGISTER_DETECTOR("Philips amBX", DetectAMBXControllers);
@@ -0,0 +1,179 @@
/*---------------------------------------------------------*\
| RGBController_AMBX.cpp |
| |
| RGB Controller for Philips amBX Gaming lights |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_AMBX.h"
/**------------------------------------------------------------------*\
@name Philips amBX
@category Accessory
@type USB
@save :x:
@direct :white_check_mark:
@effects :x:
@detectors DetectAMBXControllers
@comment The Philips amBX Gaming lights system includes left and right
lights and a wall-washer bar with three zones.
\*-------------------------------------------------------------------*/
RGBController_AMBX::RGBController_AMBX(AMBXController* controller_ptr)
{
controller = controller_ptr;
name = "Philips amBX";
vendor = "Philips";
type = DEVICE_TYPE_ACCESSORY;
description = "Philips amBX Gaming Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = 0;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();
}
RGBController_AMBX::~RGBController_AMBX()
{
delete controller;
}
void RGBController_AMBX::SetupZones()
{
// Set up zones
zone side_lights_zone;
side_lights_zone.name = "Side Lights";
side_lights_zone.type = ZONE_TYPE_LINEAR;
side_lights_zone.leds_min = 2;
side_lights_zone.leds_max = 2;
side_lights_zone.leds_count = 2;
side_lights_zone.matrix_map = NULL;
zones.push_back(side_lights_zone);
zone wallwasher_zone;
wallwasher_zone.name = "Wallwasher";
wallwasher_zone.type = ZONE_TYPE_LINEAR;
wallwasher_zone.leds_min = 3;
wallwasher_zone.leds_max = 3;
wallwasher_zone.leds_count = 3;
wallwasher_zone.matrix_map = NULL;
zones.push_back(wallwasher_zone);
// Set up LEDs
led left_light;
left_light.name = "Left";
left_light.value = AMBX_LIGHT_LEFT;
leds.push_back(left_light);
led right_light;
right_light.name = "Right";
right_light.value = AMBX_LIGHT_RIGHT;
leds.push_back(right_light);
led wall_left;
wall_left.name = "Wall Left";
wall_left.value = AMBX_LIGHT_WALL_LEFT;
leds.push_back(wall_left);
led wall_center;
wall_center.name = "Wall Center";
wall_center.value = AMBX_LIGHT_WALL_CENTER;
leds.push_back(wall_center);
led wall_right;
wall_right.name = "Wall Right";
wall_right.value = AMBX_LIGHT_WALL_RIGHT;
leds.push_back(wall_right);
SetupColors();
}
void RGBController_AMBX::ResizeZone(int /*zone*/, int /*new_size*/)
{
// This device does not support resizing zones
}
void RGBController_AMBX::DeviceUpdateLEDs()
{
if(!controller->IsInitialized())
{
return;
}
unsigned int led_values[5];
RGBColor led_colors[5];
for(unsigned int led_idx = 0; led_idx < leds.size(); led_idx++)
{
led_values[led_idx] = leds[led_idx].value;
led_colors[led_idx] = colors[led_idx];
}
controller->SetLEDColors(led_values, led_colors, static_cast<unsigned int>(leds.size()));
}
void RGBController_AMBX::UpdateZoneLEDs(int zone)
{
if(!controller->IsInitialized())
{
return;
}
unsigned int start_idx = 0;
unsigned int zone_size = 0;
// Calculate start index and size
for(unsigned int z_idx = 0; z_idx < zones.size(); z_idx++)
{
if(z_idx == (unsigned int)zone)
{
zone_size = zones[z_idx].leds_count;
break;
}
start_idx += zones[z_idx].leds_count;
}
unsigned int led_values[5];
RGBColor led_colors[5];
for(unsigned int led_idx = 0; led_idx < zone_size; led_idx++)
{
unsigned int current_idx = start_idx + led_idx;
led_values[led_idx] = leds[current_idx].value;
led_colors[led_idx] = colors[current_idx];
}
controller->SetLEDColors(led_values, led_colors, zone_size);
}
void RGBController_AMBX::UpdateSingleLED(int led)
{
if(!controller->IsInitialized())
{
return;
}
unsigned int led_value = leds[led].value;
RGBColor color = colors[led];
controller->SetLEDColor(led_value, color);
}
void RGBController_AMBX::DeviceUpdateMode()
{
if(!controller->IsInitialized())
{
return;
}
DeviceUpdateLEDs();
}
@@ -0,0 +1,32 @@
/*---------------------------------------------------------*\
| RGBController_AMBX.h |
| |
| RGB Controller for Philips amBX Gaming lights |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AMBXController.h"
class RGBController_AMBX : public RGBController
{
public:
RGBController_AMBX(AMBXController* controller_ptr);
~RGBController_AMBX();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
AMBXController* controller;
};
@@ -1,21 +1,24 @@
/*-----------------------------------------*\
| AMDWraithPrismController.h |
| |
| Driver for AMD Wraith Prism RGB lighting |
| controller |
| |
| Adam Honse (CalcProgrammer1) 12/6/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AMDWraithPrismController.cpp |
| |
| Driver for AMD Wraith Prism |
| |
| Adam Honse (CalcProgrammer1) 06 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "AMDWraithPrismController.h"
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include "AMDWraithPrismController.h"
#include "StringUtils.h"
AMDWraithPrismController::AMDWraithPrismController(hid_device* dev_handle, const char* path)
{
dev = dev_handle;
location = path;
dev = dev_handle;
location = path;
current_fan_mode = AMD_WRAITH_PRISM_FAN_LOGO_MODE_STATIC;
current_fan_speed = 0xFF;
@@ -53,10 +56,7 @@ std::string AMDWraithPrismController::GetSerialString()
return("");
}
std::wstring return_wstring = serial_string;
std::string return_string(return_wstring.begin(), return_wstring.end());
return(return_string);
return(StringUtils::wstring_to_string(serial_string));
}
std::string AMDWraithPrismController::GetFirmwareVersionString()
@@ -1,19 +1,20 @@
/*-----------------------------------------*\
| AMDWraithPrismController.h |
| |
| Definitions and types for AMD Wraith |
| Prism lighting controller |
| |
| Adam Honse (CalcProgrammer1) 12/6/2019 |
\*-----------------------------------------*/
#include <string>
#include <hidapi/hidapi.h>
#include "RGBController.h"
/*---------------------------------------------------------*\
| AMDWraithPrismController.h |
| |
| Driver for AMD Wraith Prism |
| |
| Adam Honse (CalcProgrammer1) 06 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
#define AMD_WRAITH_PRISM_FAN_BRIGHTNESS_DEFAULT_MAX 0xFF
#define AMD_WRAITH_PRISM_FAN_BRIGHTNESS_CYCLE_MAX 0x7F
@@ -1,11 +1,28 @@
/*---------------------------------------------------------*\
| AMDWraithPrismControllerDetect.cpp |
| |
| Detector for AMD Wraith Prism |
| |
| Adam Honse (CalcProgrammer1) 06 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <hidapi.h>
#include "Detector.h"
#include "AMDWraithPrismController.h"
#include "RGBController.h"
#include "RGBController_AMDWraithPrism.h"
#include <hidapi/hidapi.h>
#define AMD_WRAITH_PRISM_VID 0x2516
#define AMD_WRAITH_PRISM_PID 0x0051
/*---------------------------------------------------------*\
| AMD Wraith Prism vendor ID |
\*---------------------------------------------------------*/
#define AMD_WRAITH_PRISM_VID 0x2516
/*---------------------------------------------------------*\
| AMD Wraith Prism product ID |
\*---------------------------------------------------------*/
#define AMD_WRAITH_PRISM_PID 0x0051
/******************************************************************************************\
* *
@@ -18,11 +35,12 @@
void DetectAMDWraithPrismControllers(hid_device_info* info, const std::string&)
{
hid_device* dev = hid_open_path(info->path);
if( dev )
if(dev)
{
AMDWraithPrismController* controller = new AMDWraithPrismController(dev, info->path);
RGBController_AMDWraithPrism* rgb_controller = new RGBController_AMDWraithPrism(controller);
// Constructor sets the name
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
@@ -1,11 +1,13 @@
/*-----------------------------------------*\
| RGBController_AMDWraithPrism.cpp |
| |
| Generic RGB Interface for AMD Wraith |
| Prism |
| |
| Adam Honse (CalcProgrammer1) 12/25/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AMDWraithPrism.cpp |
| |
| RGBController for AMD Wraith Prism |
| |
| Adam Honse (CalcProgrammer1) 25 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_AMDWraithPrism.h"
@@ -25,14 +27,14 @@
RGBController_AMDWraithPrism::RGBController_AMDWraithPrism(AMDWraithPrismController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "AMD Wraith Prism";
vendor = "Cooler Master";
type = DEVICE_TYPE_COOLER;
description = "AMD Wraith Prism Device";
version = controller->GetFirmwareVersionString();
location = controller->GetLocationString();
name = "AMD Wraith Prism";
vendor = "Cooler Master";
type = DEVICE_TYPE_COOLER;
description = "AMD Wraith Prism Device";
version = controller->GetFirmwareVersionString();
location = controller->GetLocationString();
mode Direct;
Direct.name = "Direct";
@@ -135,17 +137,17 @@ RGBController_AMDWraithPrism::~RGBController_AMDWraithPrism()
void RGBController_AMDWraithPrism::SetupZones()
{
/*---------------------------------------------------------*\
| LED maps |
\*---------------------------------------------------------*/
const unsigned int logo_leds[1] = { 0x00 };
const unsigned int fan_leds[1] = { 0x01 };
const unsigned int ring_leds[14] = { 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x10, 0x0F,
0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09 };
/*-----------------------------------------------------*\
| LED maps |
\*-----------------------------------------------------*/
const unsigned int logo_leds[1] = { 0x00 };
const unsigned int fan_leds[1] = { 0x01 };
const unsigned int ring_leds[15] = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x10,
0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09 };
/*---------------------------------------------------------*\
| Set up zones |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| Set up zones |
\*-----------------------------------------------------*/
zone logo_zone;
logo_zone.name = "Logo";
logo_zone.type = ZONE_TYPE_SINGLE;
@@ -167,36 +169,36 @@ void RGBController_AMDWraithPrism::SetupZones()
zone ring_zone;
ring_zone.name = "Ring";
ring_zone.type = ZONE_TYPE_LINEAR;
ring_zone.leds_min = 14;
ring_zone.leds_max = 14;
ring_zone.leds_count = 14;
ring_zone.leds_min = 15;
ring_zone.leds_max = 15;
ring_zone.leds_count = 15;
ring_zone.matrix_map = NULL;
zones.push_back(ring_zone);
/*---------------------------------------------------------*\
| Set up LEDs |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| Set up LEDs |
\*-----------------------------------------------------*/
for(unsigned int led_idx = 0; led_idx < 1; led_idx++)
{
led logo_led;
logo_led.name = "Logo LED";
logo_led.value = logo_leds[led_idx];
logo_led.name = "Logo LED";
logo_led.value = logo_leds[led_idx];
leds.push_back(logo_led);
}
for(unsigned int led_idx = 0; led_idx < 1; led_idx++)
{
led fan_led;
fan_led.name = "Fan LED";
fan_led.value = fan_leds[led_idx];
fan_led.name = "Fan LED";
fan_led.value = fan_leds[led_idx];
leds.push_back(fan_led);
}
for(unsigned int led_idx = 0; led_idx < 14; led_idx++)
for(unsigned int led_idx = 0; led_idx < 15; led_idx++)
{
led ring_led;
ring_led.name = "Ring LED";
ring_led.value = ring_leds[led_idx];
ring_led.name = "Ring LED";
ring_led.value = ring_leds[led_idx];
leds.push_back(ring_led);
}
@@ -205,37 +207,44 @@ void RGBController_AMDWraithPrism::SetupZones()
void RGBController_AMDWraithPrism::ResizeZone(int /*zone*/, int /*new_size*/)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| This device does not support resizing zones |
\*-----------------------------------------------------*/
}
void RGBController_AMDWraithPrism::DeviceUpdateLEDs()
{
if(modes[active_mode].color_mode == MODE_COLORS_PER_LED)
{
unsigned char led_ids[15];
RGBColor color_buf[15];
unsigned int leds_count = 0;
unsigned char led_ids[17];
RGBColor color_buf[17];
unsigned int leds_count;
for(unsigned int led_idx = 0; led_idx < colors.size(); led_idx++)
/*-------------------------------------------------*\
| Send logo and fan LEDs in the first packet |
\*-------------------------------------------------*/
leds_count = 0;
for(std::size_t led_idx = 0; led_idx < 2; led_idx++)
{
led_ids[leds_count] = (unsigned char)leds[led_idx].value;
color_buf[leds_count] = colors[led_idx];
leds_count++;
if(leds_count >= 15)
{
controller->SendDirectPacket(15, led_ids, color_buf);
leds_count = 0;
}
}
controller->SendDirectPacket(leds_count, led_ids, color_buf);
if(leds_count > 0)
/*-------------------------------------------------*\
| Send all ring LEDs in the second packet |
\*-------------------------------------------------*/
leds_count = 0;
for(std::size_t led_idx = 0; led_idx < ( colors.size() - 2 ); led_idx++)
{
controller->SendDirectPacket(leds_count, led_ids, color_buf);
led_ids[leds_count] = (unsigned char)leds[led_idx + 2].value;
color_buf[leds_count] = colors[led_idx + 2];
leds_count++;
}
controller->SendDirectPacket(leds_count, led_ids, color_buf);
}
else if(modes[active_mode].color_mode == MODE_COLORS_MODE_SPECIFIC)
{
@@ -1,13 +1,16 @@
/*-----------------------------------------*\
| RGBController_AMDWraithPrism.h |
| |
| Generic RGB Interface for AMD Wraith |
| Prism |
| |
| Adam Honse (CalcProgrammer1) 12/25/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AMDWraithPrism.h |
| |
| RGBController for AMD Wraith Prism |
| |
| Adam Honse (CalcProgrammer1) 25 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AMDWraithPrismController.h"
@@ -1,24 +1,27 @@
/*-----------------------------------------*\
| AOCKeyboardController.cpp |
| |
| Driver for AOC Keyboard lighting |
| controller |
| |
| Adam Honse (CalcProgrammer1) 5/10/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AOCKeyboardController.cpp |
| |
| Driver for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 10 May 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "AOCKeyboardController.h"
#include <cstring>
#include <chrono>
#include <cstring>
#include <thread>
#include "AOCKeyboardController.h"
#include "StringUtils.h"
using namespace std::chrono_literals;
AOCKeyboardController::AOCKeyboardController(hid_device* dev_handle, const char* path)
AOCKeyboardController::AOCKeyboardController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
AOCKeyboardController::~AOCKeyboardController()
@@ -31,6 +34,11 @@ std::string AOCKeyboardController::GetDeviceLocation()
return("HID " + location);
}
std::string AOCKeyboardController::GetDeviceName()
{
return(name);
}
std::string AOCKeyboardController::GetSerialString()
{
wchar_t serial_string[128];
@@ -41,10 +49,7 @@ std::string AOCKeyboardController::GetSerialString()
return("");
}
std::wstring return_wstring = serial_string;
std::string return_string(return_wstring.begin(), return_wstring.end());
return(return_string);
return(StringUtils::wstring_to_string(serial_string));
}
void AOCKeyboardController::SetLightingConfig
@@ -1,18 +1,20 @@
/*-----------------------------------------*\
| AOCKeyboardController.h |
| |
| Definitions and types for AOC keyboard |
| lighting controller |
| |
| Adam Honse (CalcProgrammer1) 5/10/2023 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <hidapi/hidapi.h>
#include <string>
/*---------------------------------------------------------*\
| AOCKeyboardController.h |
| |
| Driver for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 10 May 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------*\
| AOC Keyboard Modes |
\*-----------------------------------------*/
@@ -62,10 +64,11 @@ enum
class AOCKeyboardController
{
public:
AOCKeyboardController(hid_device* dev_handle, const char* path);
AOCKeyboardController(hid_device* dev_handle, const char* path, std::string dev_name);
~AOCKeyboardController();
std::string GetDeviceLocation();
std::string GetDeviceName();
std::string GetSerialString();
void SetLightingConfig
@@ -86,6 +89,7 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
void SendStartPacket();
void SendEndPacket();
@@ -1,13 +1,24 @@
/*---------------------------------------------------------*\
| AOCKeyboardControllerDetect.cpp |
| |
| Detector for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 10 May 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AOCKeyboardController.h"
#include "RGBController.h"
#include "RGBController_AOCKeyboard.h"
/*-----------------------------------------------------*\
| AOC Mousemat IDs |
| AOC Keyboard IDs |
\*-----------------------------------------------------*/
#define AOC_VID 0x3938
#define AOC_GK500_PID 0x1178
#define AOC_GK500_PID_2 0x1229
/******************************************************************************************\
* *
@@ -23,12 +34,12 @@ void DetectAOCKeyboardControllers(hid_device_info* info, const std::string& name
if(dev)
{
AOCKeyboardController* controller = new AOCKeyboardController(dev, info->path);
AOCKeyboardController* controller = new AOCKeyboardController(dev, info->path, name);
RGBController_AOCKeyboard* rgb_controller = new RGBController_AOCKeyboard(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
REGISTER_HID_DETECTOR_PU("AOC GK500", DetectAOCKeyboardControllers, AOC_VID, AOC_GK500_PID, 0xFF19, 0xFF19);
REGISTER_HID_DETECTOR_PU("AOC GK500", DetectAOCKeyboardControllers, AOC_VID, AOC_GK500_PID_2, 0xFF19, 0xFF19);
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AOCKeyboard.cpp |
| |
| Generic RGB Interface for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 5/10/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AOCKeyboard.cpp |
| |
| RGBController for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 10 May 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_AOCKeyboard.h"
#include "KeyboardLayoutManager.h"
@@ -32,10 +35,10 @@ layout_values aoc_keyboard_offset_values =
75, 76, 91, 62, 48, 64, 50, 65, 66, 67, 97, 68, 84, 70, 59, 74, 89, 58, 73, 88, 103,
/* TAB Q W E R T Y U I O P [ ] \ DEL END PGDN NP7 NP8 NP9 NP+ */
60, 61, 47, 78, 33, 49, 35, 80, 51, 52, 53, 69, 99, 25, 44, 29, 14, 43, 28, 13, 102,
/* CPLK A S D F G H J K L ; " ENTR NP4 NP5 NP6 */
45, 46, 32, 93, 18, 34, 20, 95, 36, 37, 38, 54, 10, 57, 72, 87,
/* LSFT Z X C V B N M , . / RSFT ARWU NP1 NP2 NP3 NPEN */
30, 31, 17, 2, 3, 19, 5, 6, 21, 22, 23, 39, 11, 42, 27, 12, 101,
/* CPLK A S D F G H J K L ; " # ENTR NP4 NP5 NP6 */
45, 46, 32, 93, 18, 34, 20, 95, 36, 37, 38, 54, 0, 10, 57, 72, 87,
/* LSFT \ Z X C V B N M , . / RSFT ARWU NP1 NP2 NP3 NPEN */
30, 0, 31, 17, 2, 3, 19, 5, 6, 21, 22, 23, 39, 11, 42, 27, 12, 101,
/* LCTL LWIN LALT SPC RALT RFNC RMNU RCTL ARWL ARWD ARWR NP0 NP. */
15, 0, 1, 4, 7, 8, 24, 9, 26, 41, 56, 71, 86
},
@@ -47,14 +50,14 @@ layout_values aoc_keyboard_offset_values =
RGBController_AOCKeyboard::RGBController_AOCKeyboard(AOCKeyboardController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "AOC Keyboard Device";
vendor = "AOC";
type = DEVICE_TYPE_KEYBOARD;
description = "AOC Keyboard Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetDeviceName();
vendor = "AOC";
type = DEVICE_TYPE_KEYBOARD;
description = "AOC Keyboard Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Static;
Static.name = "Static";
@@ -288,7 +291,7 @@ void RGBController_AOCKeyboard::SetupZones()
| Create LEDs for the Matrix zone |
| Place keys in the layout to populate the matrix |
\*---------------------------------------------------------*/
for(size_t led_idx = 0; led_idx < new_zone.leds_count; led_idx++)
for(unsigned int led_idx = 0; led_idx < new_zone.leds_count; led_idx++)
{
led new_led;
@@ -299,8 +302,6 @@ void RGBController_AOCKeyboard::SetupZones()
zones.push_back(new_zone);
SetupColors();
}
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AOCKeyboard.h |
| |
| Generic RGB Interface for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 5/10/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AOCKeyboard.h |
| |
| RGBController for AOC keyboard |
| |
| Adam Honse (CalcProgrammer1) 10 May 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
@@ -1,19 +1,23 @@
/*-----------------------------------------*\
| AOCMouseController.cpp |
| |
| Driver for AOC Mouse lighting controller |
| |
| Adam Honse (CalcProgrammer1) 4/20/2023 |
\*-----------------------------------------*/
#include "AOCMouseController.h"
/*---------------------------------------------------------*\
| AOCMouseController.cpp |
| |
| Driver for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 20 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <cstring>
#include "AOCMouseController.h"
#include "StringUtils.h"
AOCMouseController::AOCMouseController(hid_device* dev_handle, const char* path)
AOCMouseController::AOCMouseController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
AOCMouseController::~AOCMouseController()
@@ -26,6 +30,11 @@ std::string AOCMouseController::GetDeviceLocation()
return("HID " + location);
}
std::string AOCMouseController::GetDeviceName()
{
return(name);
}
std::string AOCMouseController::GetSerialString()
{
wchar_t serial_string[128];
@@ -36,10 +45,7 @@ std::string AOCMouseController::GetSerialString()
return("");
}
std::wstring return_wstring = serial_string;
std::string return_string(return_wstring.begin(), return_wstring.end());
return(return_string);
return(StringUtils::wstring_to_string(serial_string));
}
/*-------------------------------------------------------------------------------------------------*\
@@ -1,18 +1,20 @@
/*-----------------------------------------*\
| AOCMouseController.h |
| |
| Definitions and types for AOC mouse |
| lighting controller |
| |
| Adam Honse (CalcProgrammer1) 4/20/2023 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <hidapi/hidapi.h>
#include <string>
/*---------------------------------------------------------*\
| AOCMouseController.h |
| |
| Driver for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 20 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------*\
| AOC Mousemat Modes |
| Note: The 0x80 bit is the random flag |
@@ -54,10 +56,11 @@ enum
class AOCMouseController
{
public:
AOCMouseController(hid_device* dev_handle, const char* path);
AOCMouseController(hid_device* dev_handle, const char* path, std::string dev_name);
~AOCMouseController();
std::string GetDeviceLocation();
std::string GetDeviceName();
std::string GetSerialString();
void SendDirect
@@ -77,4 +80,5 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
};
@@ -1,10 +1,20 @@
/*---------------------------------------------------------*\
| AOCMouseControllerDetect.cpp |
| |
| Detector for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 20 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AOCMouseController.h"
#include "RGBController.h"
#include "RGBController_AOCMouse.h"
/*-----------------------------------------------------*\
| AOC Mousemat IDs |
| AOC Mouse IDs |
\*-----------------------------------------------------*/
#define AOC_VID 0x3938
#define AOC_GM500_PID 0x1179
@@ -23,9 +33,8 @@ void DetectAOCMouseControllers(hid_device_info* info, const std::string& name)
if(dev)
{
AOCMouseController* controller = new AOCMouseController(dev, info->path);
AOCMouseController* controller = new AOCMouseController(dev, info->path, name);
RGBController_AOCMouse* rgb_controller = new RGBController_AOCMouse(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AOCMouse.cpp |
| |
| Generic RGB Interface for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 4/20/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AOCMouse.cpp |
| |
| RGBController for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 20 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_AOCMouse.h"
@@ -21,14 +24,14 @@
RGBController_AOCMouse::RGBController_AOCMouse(AOCMouseController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "AOC Mouse Device";
vendor = "AOC";
type = DEVICE_TYPE_MOUSE;
description = "AOC Mouse Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetDeviceName();
vendor = "AOC";
type = DEVICE_TYPE_MOUSE;
description = "AOC Mouse Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AOCMouse.h |
| |
| Generic RGB Interface for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 4/20/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AOCMouse.h |
| |
| RGBController for AOC mouse |
| |
| Adam Honse (CalcProgrammer1) 20 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
@@ -1,20 +1,23 @@
/*-----------------------------------------*\
| AOCMousematController.cpp |
| |
| Driver for AOC Mousemat lighting |
| controller |
| |
| Adam Honse (CalcProgrammer1) 4/15/2023 |
\*-----------------------------------------*/
#include "AOCMousematController.h"
/*---------------------------------------------------------*\
| AOCMousematController.cpp |
| |
| Driver for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 15 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <cstring>
#include "AOCMousematController.h"
#include "StringUtils.h"
AOCMousematController::AOCMousematController(hid_device* dev_handle, const char* path)
AOCMousematController::AOCMousematController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
}
AOCMousematController::~AOCMousematController()
@@ -27,6 +30,11 @@ std::string AOCMousematController::GetDeviceLocation()
return("HID " + location);
}
std::string AOCMousematController::GetDeviceName()
{
return(name);
}
std::string AOCMousematController::GetSerialString()
{
wchar_t serial_string[128];
@@ -37,10 +45,7 @@ std::string AOCMousematController::GetSerialString()
return("");
}
std::wstring return_wstring = serial_string;
std::string return_string(return_wstring.begin(), return_wstring.end());
return(return_string);
return(StringUtils::wstring_to_string(serial_string));
}
/*-------------------------------------------------------------------------------------------------*\
@@ -1,18 +1,20 @@
/*-----------------------------------------*\
| AOCMousematController.h |
| |
| Definitions and types for AOC mousemat |
| lighting controller |
| |
| Adam Honse (CalcProgrammer1) 4/15/2023 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <hidapi/hidapi.h>
#include <string>
/*---------------------------------------------------------*\
| AOCMousematController.h |
| |
| Driver for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 15 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------*\
| AOC Mousemat Modes |
| Note: The 0x80 bit is the random flag |
@@ -53,10 +55,11 @@ enum
class AOCMousematController
{
public:
AOCMousematController(hid_device* dev_handle, const char* path);
AOCMousematController(hid_device* dev_handle, const char* path, std::string dev_name);
~AOCMousematController();
std::string GetDeviceLocation();
std::string GetDeviceName();
std::string GetSerialString();
void SendDirect
@@ -76,4 +79,5 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
};
@@ -1,6 +1,16 @@
/*---------------------------------------------------------*\
| AOCMousematControllerDetect.cpp |
| |
| Detector for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 15 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AOCMousematController.h"
#include "RGBController.h"
#include "RGBController_AOCMousemat.h"
/*-----------------------------------------------------*\
@@ -23,12 +33,11 @@ void DetectAOCMousematControllers(hid_device_info* info, const std::string& name
if(dev)
{
AOCMousematController* controller = new AOCMousematController(dev, info->path);
AOCMousematController* controller = new AOCMousematController(dev, info->path, name);
RGBController_AOCMousemat* rgb_controller = new RGBController_AOCMousemat(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
REGISTER_HID_DETECTOR_IPU("AOC AGON AMM700", DetectAOCMousematControllers, AOC_VID, AOC_AMM700_PID, 1, 0xFF19, 0xFF19);
REGISTER_HID_DETECTOR_IPU("AOC AGON AMM700", DetectAOCMousematControllers, AOC_VID, AOC_AMM700_PID, 1, 0xFF19, 0xFF19);
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AOCMousemat.cpp |
| |
| Generic RGB Interface for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 4/15/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AOCMousemat.cpp |
| |
| RGBController for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 15 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_AOCMousemat.h"
@@ -21,14 +24,14 @@
RGBController_AOCMousemat::RGBController_AOCMousemat(AOCMousematController* controller_ptr)
{
controller = controller_ptr;
controller = controller_ptr;
name = "AOC Mousemat Device";
vendor = "AOC";
type = DEVICE_TYPE_MOUSEMAT;
description = "AOC Mousemat Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
name = controller->GetDeviceName();
vendor = "AOC";
type = DEVICE_TYPE_MOUSEMAT;
description = "AOC Mousemat Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AOCMousemat.h |
| |
| Generic RGB Interface for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 4/15/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AOCMousemat.h |
| |
| RGBController for AOC mousemat |
| |
| Adam Honse (CalcProgrammer1) 15 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
@@ -1,19 +1,22 @@
/*-----------------------------------------*\
| ASRockPolychromeUSBController.cpp |
| |
| Driver for ASRock Polychrome USB |
| lighting controller |
| |
| Ed Kambulow (dredvard) 12/20/2020 |
| Shady Nawara (ShadyNawara) 01/16/2023 |
\*-----------------------------------------*/
#include <cstring>
#include <stdio.h>
/*---------------------------------------------------------*\
| ASRockPolychromeUSBController.cpp |
| |
| Driver for ASRock Polychrome USB motherboards |
| |
| Ed Kambulow (dredvard) 20 Dec 2020 |
| Shady Nawara (ShadyNawara) 16 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <cstring>
#include "RGBController.h"
#include "ResourceManager.h"
#include "SettingsManager.h"
#include "StringUtils.h"
#include "ASRockPolychromeUSBController.h"
#include "dependencies/dmiinfo.h"
#include "dmiinfo.h"
#define POLYCHROME_USB_READ_ZONE_CONFIG 0x11
#define POLYCHROME_USB_READ_HEADER 0x14
@@ -54,7 +57,7 @@ PolychromeUSBController::~PolychromeUSBController()
unsigned int PolychromeUSBController::GetChannelCount()
{
return(device_info.size());
return((unsigned int)device_info.size());
}
std::string PolychromeUSBController::GetDeviceLocation()
@@ -77,10 +80,7 @@ std::string PolychromeUSBController::GetSerialString()
return("");
}
std::wstring return_wstring = serial_string;
std::string return_string(return_wstring.begin(), return_wstring.end());
return(return_string);
return(StringUtils::wstring_to_string(serial_string));
}
void PolychromeUSBController::SetDeviceInfo()
@@ -324,6 +324,7 @@ void PolychromeUSBController::WriteAllZones
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
hid_read(dev, usb_buf, 64);
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -380,7 +381,7 @@ void PolychromeUSBController::WriteRGSwap
bool chnl8
)
{
unsigned char rgconfig[1] = {static_cast<unsigned char>(((chnl8 << 7) | (pcb << 6) | (io << 5) | (pch << 4) | (ahdr1 << 3) | (ahdr0 << 2) | (hdr1 << 1) | hdr0))};
unsigned char rgconfig[1] = {static_cast<unsigned char>((((unsigned char)chnl8 << 7) | ((unsigned char)pcb << 6) | ((unsigned char)io << 5) | ((unsigned char)pch << 4) | ((unsigned char)ahdr1 << 3) | ((unsigned char)ahdr0 << 2) | ((unsigned char)hdr1 << 1) | (unsigned char)hdr0))};
WriteHeader(POLYCHROME_USB_RGSWAP_CFG, rgconfig, 1);
}
@@ -1,19 +1,21 @@
/*-----------------------------------------*\
| ASRockPolychromeUSBController.h |
| |
| Driver for ASRock Polychrome USB |
| lighting controller |
| |
| Ed Kambulow (dredvard) 12/20/2020 |
| Shady Nawara (ShadyNawara) 01/16/2023 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <hidapi/hidapi.h>
#include <string>
/*---------------------------------------------------------*\
| ASRockPolychromeUSBController.h |
| |
| Driver for ASRock Polychrome USB motherboards |
| |
| Ed Kambulow (dredvard) 20 Dec 2020 |
| Shady Nawara (ShadyNawara) 16 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*----------------------------------------------------------------------------------------------*\
| Definitions for Polychrome USB |
\*----------------------------------------------------------------------------------------------*/
@@ -154,12 +156,11 @@ protected:
);
private:
unsigned int led_count;
std::string device_name;
unsigned char configtable[12];
bool rgswapconfig[8] = { 0 };
void SetDeviceInfo();
void SetDeviceInfo();
void ReadConfigTables();
void Commit();
};
@@ -1,13 +1,19 @@
/*---------------------------------------------------------*\
| ASRockPolychromeUSBControllerDetect.cpp |
| |
| Detector for ASRock Polychrome USB motherboards |
| |
| Ed Kambulow (dredvard) 20 Dec 2020 |
| Shady Nawara (ShadyNawara) 16 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <hidapi.h>
#include "Detector.h"
#include "ASRockPolychromeUSBController.h"
#include "RGBController.h"
#include "RGBController_ASRockPolychromeUSB.h"
#include "i2c_smbus.h"
#include "pci_ids.h"
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <hidapi/hidapi.h>
/*---------------------------------------------------------*\
| ASRock vendor ID |
@@ -32,5 +38,5 @@ void DetectPolychromeUSBControllers(hid_device_info* info, const std::string& /*
}
}
REGISTER_HID_DETECTOR("ASRock Polychrome USB", DetectPolychromeUSBControllers, ASROCK_VID, ASROCK_MOTHERBOARD_1_PID);
REGISTER_HID_DETECTOR("ASRock Deskmini Addressable LED Strip", DetectPolychromeUSBControllers, ASROCK_VID, ASROCK_DESKMINI_ADDRESSABLE_LED_STRIP_PID);
REGISTER_HID_DETECTOR("ASRock Polychrome USB", DetectPolychromeUSBControllers, ASROCK_VID, ASROCK_MOTHERBOARD_1_PID);
REGISTER_HID_DETECTOR("ASRock Deskmini Addressable LED Strip", DetectPolychromeUSBControllers, ASROCK_VID, ASROCK_DESKMINI_ADDRESSABLE_LED_STRIP_PID);
@@ -1,15 +1,17 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeUSB.cpp |
| |
| Generic RGB Interface for OpenRGB |
| ASRock Polychrome USB Driver |
| |
| Ed Kambulow (Dredvard) 12/26/2020 |
| Shady Nawara (ShadyNawara) 01/16/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_ASRockPolychromeUSB.cpp |
| |
| RGBController for ASRock Polychrome USB motherboards |
| |
| Ed Kambulow (dredvard) 20 Dec 2020 |
| Shady Nawara (ShadyNawara) 16 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_ASRockPolychromeUSB.h"
#include <string.h>
#include "RGBController_ASRockPolychromeUSB.h"
#define ASROCK_USB_MAX_ZONES 8
#define ASROCK_ADDRESSABLE_MAX_LEDS 100
@@ -293,7 +295,7 @@ void RGBController_PolychromeUSB::DeviceUpdateLEDs()
set_mode = active_mode;
}
controller->WriteZone(zone_idx, set_mode, zones_info[zone_idx].speed, zones[zone_idx].colors[0], false);
controller->WriteZone((unsigned char)zone_idx, set_mode, zones_info[zone_idx].speed, zones[zone_idx].colors[0], false);
}
}
@@ -1,12 +1,14 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeUSB.h |
| |
| Generic RGB Interface for OpenRGB |
| ASRock Polychrome USB Driver |
| |
| Ed Kambulow (Dredvard) 12/26/2020 |
| Shady Nawara (ShadyNawara) 01/16/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_ASRockPolychromeUSB.h |
| |
| RGBController for ASRock Polychrome USB motherboards |
| |
| Ed Kambulow (dredvard) 20 Dec 2020 |
| Shady Nawara (ShadyNawara) 16 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
@@ -29,7 +31,6 @@ public:
void DeviceUpdateMode();
private:
bool initializedMode;
PolychromeUSBController* controller;
std::vector<PolychromeZoneInfo> zones_info;
@@ -1,15 +1,17 @@
/*-----------------------------------------*\
| ASRockPolychromeSMBusController.cpp |
| |
| Driver for for ASRock ASR LED and |
| Polychrome RGB lighting controller |
| |
| Adam Honse (CalcProgrammer1) 12/14/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| ASRockASRRGBSMBusController.cpp |
| |
| Driver for SMBus ASRock ASR RGB motherboards |
| |
| Adam Honse (CalcProgrammer1) 14 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "ASRockASRRGBSMBusController.h"
#include <cstring>
#include "dependencies/dmiinfo.h"
#include "dmiinfo.h"
#include "LogManager.h"
#define ASROCK_ZONE_LED_COUNT_MESSAGE_EN "[%s] Zone %i LED count: %02d"
@@ -64,7 +66,7 @@ void ASRockASRRGBSMBusController::SetColorsAndSpeed(uint8_t led, uint8_t red, ui
{
uint8_t color_speed_pkt[4] = { red, green, blue, active_speed };
uint8_t select_led_pkt[1] = { led };
/*-----------------------------------------------------*\
| Select LED |
\*-----------------------------------------------------*/
@@ -1,18 +1,19 @@
/*-----------------------------------------*\
| ASRockASRRGBSMBusController.h |
| |
| Definitions and types for ASRock |
| ASR LED and Polychrome RGB lighting |
| controller |
| |
| Adam Honse (CalcProgrammer1) 12/13/2019 |
\*-----------------------------------------*/
#include "i2c_smbus.h"
#include <string>
/*---------------------------------------------------------*\
| ASRockASRRGBSMBusController.h |
| |
| Driver for SMBus ASRock ASR RGB motherboards |
| |
| Adam Honse (CalcProgrammer1) 13 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include "i2c_smbus.h"
typedef uint8_t polychrome_dev_id;
#define ASROCK_ASR_CONTROLLER_NAME "ASRock ASR RGB SMBus Controller"
@@ -63,7 +64,7 @@ public:
uint8_t GetMode();
void SetColorsAndSpeed(uint8_t led, uint8_t red, uint8_t green, uint8_t blue);
void SetMode(uint8_t zone, uint8_t mode, uint8_t speed);
uint16_t fw_version;
private:
@@ -1,11 +1,13 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeSMBus.cpp |
| |
| Generic RGB Interface for OpenRGB |
| ASRock ASR LED and Polychrome RGB Driver |
| |
| Adam Honse (CalcProgrammer1) 12/15/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_ASRRGBSMBus.cpp |
| |
| RGBController for SMBus ASRock ASR LED motherboards |
| |
| Adam Honse (CalcProgrammer1) 15 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_ASRockASRRGBSMBus.h"
@@ -167,7 +169,7 @@ void RGBController_ASRockASRRGBSMBus::ResizeZone(int /*zone*/, int /*new_size*/)
void RGBController_ASRockASRRGBSMBus::DeviceUpdateLEDs()
{
for (std::size_t led = 0; led < colors.size(); led++)
for(unsigned int led = 0; led < colors.size(); led++)
{
UpdateSingleLED(led);
}
@@ -0,0 +1,35 @@
/*---------------------------------------------------------*\
| RGBController_ASRRGBSMBus.h |
| |
| RGBController for SMBus ASRock ASR RGB motherboards |
| |
| Adam Honse (CalcProgrammer1) 15 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "ASRockASRRGBSMBusController.h"
class RGBController_ASRockASRRGBSMBus : public RGBController
{
public:
RGBController_ASRockASRRGBSMBus(ASRockASRRGBSMBusController* controller_ptr);
~RGBController_ASRockASRRGBSMBus();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
ASRockASRRGBSMBusController* controller;
};
@@ -1,15 +1,17 @@
/*-----------------------------------------*\
| ASRockPolychromeV1SMBusController.cpp |
| |
| Driver for for ASRock ASR LED and |
| Polychrome RGB lighting controller |
| |
| Adam Honse (CalcProgrammer1) 12/14/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| ASRockPolychromeV1SMBusController.cpp |
| |
| Driver for SMBus ASRock Polychrome V1 motherboards |
| |
| Adam Honse (CalcProgrammer1) 14 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "ASRockPolychromeV1SMBusController.h"
#include <cstring>
#include "dependencies/dmiinfo.h"
#include "ASRockPolychromeV1SMBusController.h"
#include "dmiinfo.h"
#include "LogManager.h"
#define ASROCK_ZONE_LED_COUNT_MESSAGE_EN "[%s] Zone %i LED count: %02d"
@@ -1,19 +1,20 @@
/*-----------------------------------------*\
| ASRockPolychromeV1SMBusController.h |
| |
| Definitions and types for ASRock |
| ASR LED and Polychrome RGB lighting |
| controller |
| |
| Adam Honse (CalcProgrammer1) 12/13/2019 |
\*-----------------------------------------*/
#include "i2c_smbus.h"
#include "RGBController.h"
#include <string>
/*---------------------------------------------------------*\
| ASRockPolychromeV1SMBusController.h |
| |
| Driver for SMBus ASRock Polychrome V1 motherboards |
| |
| Adam Honse (CalcProgrammer1) 13 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include "i2c_smbus.h"
#include "RGBController.h"
typedef uint8_t polychrome_dev_id;
#define ASROCK_V1_CONTROLLER_NAME "ASRock Polychrome v1 SMBus Controller"
@@ -1,11 +1,14 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeSMBus.cpp |
| |
| Generic RGB Interface for OpenRGB |
| ASRock ASR LED and Polychrome RGB Driver |
| |
| Adam Honse (CalcProgrammer1) 12/15/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_ASRockPolychromeV1SMBus.cpp |
| |
| RGBController for SMBus ASRock Polychrome V1 |
| motherboards |
| |
| Adam Honse (CalcProgrammer1) 15 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "LogManager.h"
#include "RGBController_ASRockPolychromeV1SMBus.h"
@@ -0,0 +1,38 @@
/*---------------------------------------------------------*\
| RGBController_ASRockPolychromeV1SMBus.h |
| |
| RGBController for SMBus ASRock Polychrome V1 |
| motherboards |
| |
| Adam Honse (CalcProgrammer1) 15 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "ASRockPolychromeV1SMBusController.h"
class RGBController_ASRockPolychromeV1SMBus : public RGBController
{
public:
RGBController_ASRockPolychromeV1SMBus(ASRockPolychromeV1SMBusController* controller_ptr);
~RGBController_ASRockPolychromeV1SMBus();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
ASRockPolychromeV1SMBusController* controller;
uint8_t getModeIndex(uint8_t mode_value);
std::vector<uint8_t> zoneIndexMap;
};
@@ -1,15 +1,17 @@
/*-----------------------------------------*\
| ASRockPolychromeV2SMBusController.cpp |
| |
| Driver for for ASRock ASR LED and |
| Polychrome RGB lighting controller |
| |
| Adam Honse (CalcProgrammer1) 12/14/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| ASRockPolychromeV2SMBusController.cpp |
| |
| Driver for SMBus ASRock Polychrome V2 motherboards |
| |
| Adam Honse (CalcProgrammer1) 14 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "ASRockPolychromeV2SMBusController.h"
#include <cstring>
#include "dependencies/dmiinfo.h"
#include "ASRockPolychromeV2SMBusController.h"
#include "dmiinfo.h"
#include "LogManager.h"
#define ASROCK_ZONE_LED_COUNT_MESSAGE_EN "[%s] Zone %i LED count: %02d"
@@ -1,18 +1,19 @@
/*-----------------------------------------*\
| ASRockPolychromeSMBusController.h |
| |
| Definitions and types for ASRock |
| ASR LED and Polychrome RGB lighting |
| controller |
| |
| Adam Honse (CalcProgrammer1) 12/13/2019 |
\*-----------------------------------------*/
#include "i2c_smbus.h"
#include <string>
/*---------------------------------------------------------*\
| ASRockPolychromeV2SMBusController.h |
| |
| Driver for SMBus ASRock Polychrome V2 motherboards |
| |
| Adam Honse (CalcProgrammer1) 13 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include "i2c_smbus.h"
typedef uint8_t polychrome_dev_id;
#define ASROCK_V2_CONTROLLER_NAME "ASRock Polychrome v2 SMBus Controller"
@@ -132,7 +133,7 @@ public:
uint8_t zone_led_count[6];
uint16_t fw_version;
private:
std::string device_name;
uint8_t active_zone;
@@ -1,11 +1,14 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeV2SMBus.cpp|
| |
| Generic RGB Interface for OpenRGB |
| ASRock ASR LED and Polychrome RGB Driver |
| |
| Adam Honse (CalcProgrammer1) 12/15/2019 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_ASRockPolychromeV2SMBus.cpp |
| |
| RGBController for SMBus ASRock Polychrome V2 |
| motherboards |
| |
| Adam Honse (CalcProgrammer1) 15 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_ASRockPolychromeV2SMBus.h"
@@ -287,7 +290,7 @@ void RGBController_ASRockPolychromeV2SMBus::ResizeZone(int /*zone*/, int /*new_s
void RGBController_ASRockPolychromeV2SMBus::DeviceUpdateLEDs()
{
for (std::size_t led = 0; led < colors.size(); led++)
for(unsigned int led = 0; led < colors.size(); led++)
{
UpdateSingleLED(led);
}
@@ -0,0 +1,36 @@
/*---------------------------------------------------------*\
| RGBController_ASRockPolychromeV2SMBus.h |
| |
| RGBController for SMBus ASRock Polychrome V2 |
| motherboards |
| |
| Adam Honse (CalcProgrammer1) 15 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "ASRockPolychromeV2SMBusController.h"
class RGBController_ASRockPolychromeV2SMBus : public RGBController
{
public:
RGBController_ASRockPolychromeV2SMBus(ASRockPolychromeV2SMBusController* controller_ptr);
~RGBController_ASRockPolychromeV2SMBus();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
ASRockPolychromeV2SMBusController* controller;
};
@@ -1,17 +1,26 @@
/*---------------------------------------------------------*\
| ASRockSMBusControllerDetect.cpp |
| |
| Detector for SMBus ASRock ASR RGB and Polychrome |
| motherboards |
| |
| Adam Honse (CalcProgrammer1) 14 Dec 2019 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <vector>
#include "Detector.h"
#include "ASRockASRRGBSMBusController.h"
#include "ASRockPolychromeV1SMBusController.h"
#include "ASRockPolychromeV2SMBusController.h"
#include "LogManager.h"
#include "RGBController.h"
#include "RGBController_ASRockASRRGBSMBus.h"
#include "RGBController_ASRockPolychromeV1SMBus.h"
#include "RGBController_ASRockPolychromeV2SMBus.h"
#include "i2c_smbus.h"
#include "pci_ids.h"
#include <vector>
#include <stdio.h>
#include <stdlib.h>
/*******************************************************************************************\
* *
@@ -1,33 +0,0 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeSMBus.h |
| |
| Generic RGB Interface for OpenRGB |
| ASRock ASR LED and Polychrome RGB Driver |
| |
| Adam Honse (CalcProgrammer1) 12/15/2019 |
\*-----------------------------------------*/
#pragma once
#include "RGBController.h"
#include "ASRockASRRGBSMBusController.h"
class RGBController_ASRockASRRGBSMBus : public RGBController
{
public:
RGBController_ASRockASRRGBSMBus(ASRockASRRGBSMBusController* controller_ptr);
~RGBController_ASRockASRRGBSMBus();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
ASRockASRRGBSMBusController* controller;
};
@@ -1,35 +0,0 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromeV1SMBus.h |
| |
| Generic RGB Interface for OpenRGB |
| ASRock ASR LED and Polychrome RGB Driver |
| |
| Adam Honse (CalcProgrammer1) 12/15/2019 |
\*-----------------------------------------*/
#pragma once
#include "RGBController.h"
#include "ASRockPolychromeV1SMBusController.h"
class RGBController_ASRockPolychromeV1SMBus : public RGBController
{
public:
RGBController_ASRockPolychromeV1SMBus(ASRockPolychromeV1SMBusController* controller_ptr);
~RGBController_ASRockPolychromeV1SMBus();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
ASRockPolychromeV1SMBusController* controller;
uint8_t getModeIndex(uint8_t mode_value);
std::vector<uint8_t> zoneIndexMap;
};
@@ -1,33 +0,0 @@
/*-----------------------------------------*\
| RGBController_ASRockPolychromev2SMBus.h |
| |
| Generic RGB Interface for OpenRGB |
| ASRock ASR LED and Polychrome RGB Driver |
| |
| Adam Honse (CalcProgrammer1) 12/15/2019 |
\*-----------------------------------------*/
#pragma once
#include "RGBController.h"
#include "ASRockPolychromeV2SMBusController.h"
class RGBController_ASRockPolychromeV2SMBus : public RGBController
{
public:
RGBController_ASRockPolychromeV2SMBus(ASRockPolychromeV2SMBusController* controller_ptr);
~RGBController_ASRockPolychromeV2SMBus();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
ASRockPolychromeV2SMBusController* controller;
};
@@ -1,13 +1,14 @@
/*-----------------------------------------*\
| AlienwareController.cpp |
| |
| Driver for Alienware lighting controller |
| |
| Gabriel Marcano (gemarcano) 4/21/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AlienwareController.cpp |
| |
| Driver for Dell Alienware RGB USB controller |
| |
| Gabriel Marcano (gemarcano) 21 Apr 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController.h"
#include "AlienwareController.h"
#include <cstring>
#include <cstdint>
#include <map>
@@ -15,6 +16,10 @@
#include <chrono>
#include <algorithm>
#include <sstream>
#include "RGBController.h"
#include "AlienwareController.h"
#include "LogManager.h"
#include "StringUtils.h"
typedef uint32_t alienware_platform_id;
@@ -24,8 +29,11 @@ typedef uint32_t alienware_platform_id;
\*---------------------------------------------------------*/
static const std::map<alienware_platform_id, uint8_t> zone_quirks_table =
{
{ 0x0C01, 4 }, // Dell G5 SE 5505
{ 0x0A01, 16 } // Dell G7 15 7500
{ 0x0C01, 4 }, // Dell G5 SE 5505
{ 0x0A01, 16 }, // Dell G7 15 7500
{ 0x0E03, 4 }, // Dell G15 5511
{ 0x0E0A, 4 } // Dell G15 5530
};
/*---------------------------------------------------------*\
@@ -39,7 +47,9 @@ static const std::map<alienware_platform_id, std::vector<const char*>> zone_name
"Light Bar 1", "Light Bar 2", "Light Bar 3",
"Light Bar 4", "Light Bar 5", "Light Bar 6",
"Light Bar 7", "Light Bar 8", "Light Bar 9",
"Light Bar 10", "Light Bar 11", "Light Bar 12" } }
"Light Bar 10", "Light Bar 11", "Light Bar 12" } },
{ 0x0E03, { "Left", "Middle", "Right", "Numpad" } },
{ 0x0E0A, { "Left", "Middle", "Right", "Numpad" } }
};
static void SendHIDReport(hid_device *dev, const unsigned char* usb_buf, size_t usb_buf_size)
@@ -80,9 +90,7 @@ AlienwareController::AlienwareController(hid_device* dev_handle, const hid_devic
/*-----------------------------------------------------*\
| Get serial number |
\*-----------------------------------------------------*/
std::wstring tmp_serial_number;
tmp_serial_number = info.serial_number;
serial_number = std::string(tmp_serial_number.begin(), tmp_serial_number.end());
serial_number = StringUtils::wstring_to_string(info.serial_number);
/*-----------------------------------------------------*\
| Get zone information by checking firmware |
@@ -91,6 +99,11 @@ AlienwareController::AlienwareController(hid_device* dev_handle, const hid_devic
report = Report(ALIENWARE_COMMAND_REPORT_CONFIG);
alienware_platform_id platform_id = report.data[4] << 8 | report.data[5];
/*-----------------------------------------------------*\
| Check if the device reports the wrong number of zones |
\*-----------------------------------------------------*/
unsigned number_of_zones = zone_quirks_table.count(platform_id) ? zone_quirks_table.at(platform_id) : report.data[6];
/*-----------------------------------------------------*\
| Get firmware version |
\*-----------------------------------------------------*/
@@ -101,11 +114,6 @@ AlienwareController::AlienwareController(hid_device* dev_handle, const hid_devic
fw_string << static_cast<unsigned>(report.data[4]) << '.' << static_cast<unsigned>(report.data[5]) << '.' << static_cast<unsigned>(report.data[6]);
version = fw_string.str();
/*-----------------------------------------------------*\
| Check if the device reports the wrong number of zones |
\*-----------------------------------------------------*/
unsigned number_of_zones = zone_quirks_table.count(platform_id) ? zone_quirks_table.at(platform_id) : report.data[6];
/*-----------------------------------------------------*\
| Initialize Alienware zones |
\*-----------------------------------------------------*/
@@ -113,10 +121,13 @@ AlienwareController::AlienwareController(hid_device* dev_handle, const hid_devic
if(zone_names_table.count(platform_id))
{
LOG_INFO("[%s] Known platform: %8X, Number of zones: %d", ALIENWARE_CONTROLLER_NAME, platform_id, number_of_zones);
zone_names = zone_names_table.at(platform_id);
}
else
{
LOG_WARNING("[%s] Unknown platform: %8X, Number of zones: %d", ALIENWARE_CONTROLLER_NAME, platform_id, number_of_zones);
/*-------------------------------------------------*\
| If this is an unknown controller, set the name of |
| all regions to "Unknown" |
@@ -160,7 +171,7 @@ AlienwareController::~AlienwareController()
unsigned int AlienwareController::GetZoneCount()
{
return(zones.size());
return((unsigned int)zones.size());
}
std::vector<const char*> AlienwareController::GetZoneNames()
@@ -265,7 +276,7 @@ bool AlienwareController::Dim(std::vector<uint8_t> zones, double percent)
/*-----------------------------------------------------*\
| Set up message packet with leading 00, per hidapi |
\*-----------------------------------------------------*/
uint16_t num_zones = zones.size();
uint16_t num_zones = (uint16_t)zones.size();
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x03;
@@ -369,7 +380,7 @@ bool AlienwareController::SelectZones(const std::vector<uint8_t>& zones)
/*-----------------------------------------------------*\
| Set up message packet with leading 00, per hidapi |
\*-----------------------------------------------------*/
uint16_t num_zones = zones.size();
uint16_t num_zones = (uint16_t)zones.size();
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x03;
@@ -508,7 +519,7 @@ bool AlienwareController::SetColorDirect(RGBColor color, std::vector<uint8_t> zo
/*-----------------------------------------------------*\
| Set up message packet with leading 00, per hidapi |
\*-----------------------------------------------------*/
uint16_t num_zones = zones.size();
uint16_t num_zones = (uint16_t)zones.size();
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x03;
@@ -644,7 +655,7 @@ void AlienwareController::UpdateDim()
for(size_t i = 0; i < zones.size(); i++)
{
dim_zone_map[zones[i].dim].emplace_back(i);
dim_zone_map[zones[i].dim].emplace_back((uint8_t)i);
}
for(std::pair<const uint8_t, std::vector<uint8_t>> &pair : dim_zone_map)
@@ -671,7 +682,7 @@ bool AlienwareController::UpdateDirect()
for(size_t i = 0; i < zones.size(); i++)
{
color_zone_map[zones[i].color[0]].emplace_back(i);
color_zone_map[zones[i].color[0]].emplace_back((uint8_t)i);
}
for(std::pair<const RGBColor, std::vector<uint8_t>> &pair : color_zone_map)
@@ -1,25 +1,27 @@
/*-----------------------------------------*\
| AlienwareController.h |
| |
| Driver for Dell Alienware RGB USB |
| controller |
| |
| Gabriel Marcano (gemarcano) 4/19/2021 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <hidapi/hidapi.h>
#include <string>
/*---------------------------------------------------------*\
| AlienwareController.h |
| |
| Driver for Dell Alienware RGB USB controller |
| |
| Gabriel Marcano (gemarcano) 19 Apr 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*----------------------------------------------------------------------------------------------*\
| Definitions for Alienware Controller |
\*----------------------------------------------------------------------------------------------*/
#define ALIENWARE_REPORT_SIZE 33
#define HIDAPI_ALIENWARE_REPORT_SIZE (ALIENWARE_REPORT_SIZE + 1)
#define ALIENWARE_CONTROLLER_NAME "AlienWare Controller"
enum
{
ALIENWARE_COMMAND_REPORT = 0x20, /* Set report type to get */
@@ -1,6 +1,14 @@
/*---------------------------------------------------------*\
| AlienwareControllerDetect.cpp |
| |
| Detector for Dell Alienware RGB USB controller |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AlienwareController.h"
#include "RGBController.h"
#include "RGBController_Alienware.h"
/*---------------------------------------------------------*\
@@ -11,7 +19,8 @@
/*---------------------------------------------------------*\
| Alienware product ID |
\*---------------------------------------------------------*/
#define ALIENWARE_G_SERIES_PID 0x0550
#define ALIENWARE_G_SERIES_PID1 0x0550
#define ALIENWARE_G_SERIES_PID2 0x0551
void DetectAlienwareControllers(hid_device_info* info, const std::string& name)
{
@@ -26,4 +35,5 @@ void DetectAlienwareControllers(hid_device_info* info, const std::string& name)
}
}
REGISTER_HID_DETECTOR("Dell G Series LED Controller", DetectAlienwareControllers, ALIENWARE_VID, ALIENWARE_G_SERIES_PID);
REGISTER_HID_DETECTOR("Dell G Series LED Controller", DetectAlienwareControllers, ALIENWARE_VID, ALIENWARE_G_SERIES_PID1);
REGISTER_HID_DETECTOR("Dell G Series LED Controller", DetectAlienwareControllers, ALIENWARE_VID, ALIENWARE_G_SERIES_PID2);
@@ -1,16 +1,17 @@
/*-----------------------------------------*\
| RGBController_Alienware.cpp |
| |
| Generic RGB Interface for OpenRGB |
| Alienware USB Driver |
| |
| Gabriel Marcano (gemarcano) 4/19/2021 |
\*-----------------------------------------*/
#include "RGBController_Alienware.h"
/*---------------------------------------------------------*\
| RGBController_Alienware.cpp |
| |
| RGBController for Dell Alienware RGB USB controller |
| |
| Gabriel Marcano (gemarcano) 19 Apr 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <thread>
#include <chrono>
#include "RGBController_Alienware.h"
/**------------------------------------------------------------------*\
@name Alienware
@@ -213,7 +214,7 @@ void RGBController_Alienware::DeviceUpdateMode()
/*-----------------------------------------------------*\
| Setup state per zone |
\*-----------------------------------------------------*/
for(std::size_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
for(uint8_t zone_idx = 0; zone_idx < zones.size(); zone_idx++)
{
zone current_zone = zones[zone_idx];
@@ -1,19 +1,20 @@
/*-----------------------------------------*\
| RGBController_Alienware.h |
| |
| Generic RGB Interface for OpenRGB |
| Alienware RGB USB Driver |
| |
| Gabriel Marcano (gemarcano) 4/19/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_Alienware.h |
| |
| RGBController for Dell Alienware RGB USB controller |
| |
| Gabriel Marcano (gemarcano) 19 Apr 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <chrono>
#include "RGBController.h"
#include "AlienwareController.h"
#include <chrono>
class RGBController_Alienware : public RGBController
{
public:
@@ -0,0 +1,453 @@
/*---------------------------------------------------------*\
| AlienwareAW410KController.cpp |
| |
| Driver for Alienware AW410K keyboard |
| |
| based on AW510K controller by Mohamad Sallal (msallal) |
| Dominik Mikolajczyk (dmiko) 23 Oct 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <cstring>
#include "AlienwareAW410KController.h"
#include "StringUtils.h"
AlienwareAW410KController::AlienwareAW410KController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
SendCommit();
}
AlienwareAW410KController::~AlienwareAW410KController()
{
hid_close(dev);
}
std::string AlienwareAW410KController::GetDeviceLocation()
{
return("HID: " + location);
}
std::string AlienwareAW410KController::GetDeviceName()
{
return(name);
}
std::string AlienwareAW410KController::GetSerialString()
{
wchar_t serial_string[128];
int ret = hid_get_serial_number_string(dev, serial_string, 128);
if(ret != 0)
{
return("");
}
return(StringUtils::wstring_to_string(serial_string));
}
void AlienwareAW410KController::SendCommit()
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Commit packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x05;
usb_buf[0x02] = 0x01;
usb_buf[0x0A] = 0x10;
usb_buf[0x0B] = 0x0A;
usb_buf[0x0C] = 0x01;
usb_buf[0x0D] = 0x02;
usb_buf[0x0E] = 0x01;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 20 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(20));
}
void AlienwareAW410KController::SendfeatureReport
(
unsigned char first_byte,
unsigned char second_byte,
unsigned char third_byte,
unsigned char forth_byte
)
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Feature report packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = first_byte;
usb_buf[0x02] = second_byte;
usb_buf[0x03] = third_byte;
usb_buf[0x04] = forth_byte;
/*-----------------------------------------------------*\
| Send Feature report packet |
\*-----------------------------------------------------*/
hid_send_feature_report(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 10 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
void AlienwareAW410KController::SendEdit()
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Edit packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x01;
usb_buf[0x02] = 0x00;
usb_buf[0x03] = 0x01;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 2 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(2));
}
void AlienwareAW410KController::SendInitialize()
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Commit packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x0E;
usb_buf[0x02] = 0x01;
usb_buf[0x03] = 0x00;
usb_buf[0x04] = 0x01;
usb_buf[0x05] = 0xAD;
usb_buf[0x06] = 0x80;
usb_buf[0x07] = 0x10;
usb_buf[0x08] = 0xA5;
usb_buf[0x0A] = 0x0A;
usb_buf[0x12] = 0x01;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 2 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(2));
}
void AlienwareAW410KController::SetDirect
(
unsigned char /*zone*/,
unsigned char r,
unsigned char g,
unsigned char b
)
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Lighting Control packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x05;
usb_buf[0x02] = 0x01;
usb_buf[0x03] = 0x01;
usb_buf[0x04] = r;
usb_buf[0x05] = g;
usb_buf[0x06] = b;
usb_buf[0x0B] = 0x0A;
usb_buf[0x0D] = 0x01;
usb_buf[0x0E] = 0x01;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 2 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(2));
}
void AlienwareAW410KController::SendDirectOn
(
std::vector<SelectedButtons> &frame_data
)
{
SendfeatureReport(0x0E, (unsigned char)frame_data.size(), 0x00, 0x01);
/*-----------------------------------------------*\
| To Guarantee the data are always %4 =0 append |
| zeros at end of last packet |
\*-----------------------------------------------*/
for(unsigned int i = 0; i < (frame_data.size() % 4); i++)
{
SelectedButtons key;
key.idx = 0x00;
key.red = 0x00;
key.green = 0x00;
key.blue = 0x00;
frame_data.push_back(key);
}
unsigned char usb_buf[65];
unsigned int frame_idx = 0;
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, 65);
for(unsigned int packet_idx = 0; packet_idx < frame_data.size(); packet_idx++)
{
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x0E;
usb_buf[0x02] = 0x01;
usb_buf[0x03] = 0x00;
usb_buf[0x04] = ++frame_idx;
usb_buf[0x05] = frame_data[packet_idx].idx;
usb_buf[0x06] = 0x81;
usb_buf[0x07] = 0x00;
usb_buf[0x08] = 0xA5;
usb_buf[0x0A] = 0x0A;
usb_buf[0x0B] = frame_data[packet_idx].red;
usb_buf[0x0C] = frame_data[packet_idx].green;
usb_buf[0x0D] = frame_data[packet_idx].blue;
usb_buf[0x12] = 0x01;
usb_buf[0x14] = frame_data[++packet_idx].idx;
usb_buf[0x15] = 0x81;
usb_buf[0x16] = 0x00;
usb_buf[0x17] = 0xA5;
usb_buf[0x19] = 0x0A;
usb_buf[0x1A] = frame_data[packet_idx].red;
usb_buf[0x1B] = frame_data[packet_idx].green;
usb_buf[0x1C] = frame_data[packet_idx].blue;
usb_buf[0x21] = 0x01;
usb_buf[0x23] = frame_data[++packet_idx].idx;
usb_buf[0x24] = 0x81;
usb_buf[0x25] = 0x00;
usb_buf[0x26] = 0xA5;
usb_buf[0x28] = 0x0A;
usb_buf[0x29] = frame_data[packet_idx].red;
usb_buf[0x2A] = frame_data[packet_idx].green;
usb_buf[0x2B] = frame_data[packet_idx].blue;
usb_buf[0x30] = 0x01;
usb_buf[0x32] = frame_data[++packet_idx].idx;
usb_buf[0x33] = 0x81;
usb_buf[0x34] = 0x00;
usb_buf[0x35] = 0xA5;
usb_buf[0x37] = 0x0A;
usb_buf[0x38] = frame_data[packet_idx].red;
usb_buf[0x39] = frame_data[packet_idx].green;
usb_buf[0x3A] = frame_data[packet_idx].blue;
usb_buf[0x3F] = 0x01;
hid_write(dev, (unsigned char *)usb_buf, 65);
}
}
void AlienwareAW410KController::SetMode
(
unsigned char mode,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
unsigned char green,
unsigned char blue
)
{
SendMode(ALIENWARE_AW410K_ZONE_MODE_KEYBOARD, mode, speed, direction, colorMode, red, green, blue);
SendCommit();
}
void AlienwareAW410KController::UpdateSingleLED
(
unsigned char led,
unsigned char red,
unsigned char green,
unsigned char blue
)
{
SendfeatureReport(0x0E, 0x01, 0x00, 0x01);
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Single LED packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x0E;
usb_buf[0x02] = 0x01;
usb_buf[0x03] = 0x00;
usb_buf[0x04] = 0x01;
usb_buf[0x05] = led;
usb_buf[0x06] = 0x81;
usb_buf[0x07] = 0x00;
usb_buf[0x08] = 0xA5;
usb_buf[0x09] = 0x00;
usb_buf[0x0A] = 0x0A;
usb_buf[0x0B] = red;
usb_buf[0x0C] = green;
usb_buf[0x0D] = blue;
usb_buf[0x12] = 0x01;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 20 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(20));
}
void AlienwareAW410KController::SendMode
(
unsigned char /*zone*/,
unsigned char mode,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
unsigned char green,
unsigned char blue
)
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Mode Control packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x05;
usb_buf[0x02] = 0x01;
usb_buf[0x03] = mode;
usb_buf[0x04] = red;
usb_buf[0x05] = green;
usb_buf[0x06] = blue;
usb_buf[0x0A] = speed;
usb_buf[0x0B] = 0x0A;
usb_buf[0x0D] = 0x01;
usb_buf[0x0E] = colorMode;
usb_buf[0x0F] = direction;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
}
void AlienwareAW410KController::SetMorphMode
(
unsigned char mode,
unsigned char speed,
unsigned char red1,
unsigned char green1,
unsigned char blue1,
unsigned char red2,
unsigned char green2,
unsigned char blue2
)
{
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
\*-----------------------------------------------------*/
memset(usb_buf, 0x00, sizeof(usb_buf));
/*-----------------------------------------------------*\
| Set up Morph Mode packet |
\*-----------------------------------------------------*/
usb_buf[0x00] = 0x00;
usb_buf[0x01] = 0x05;
usb_buf[0x02] = 0x01;
usb_buf[0x03] = mode;
usb_buf[0x04] = red1;
usb_buf[0x05] = green1;
usb_buf[0x06] = blue1;
usb_buf[0x07] = red2;
usb_buf[0x08] = green2;
usb_buf[0x09] = blue2;
usb_buf[0x0E] = 0x02;
usb_buf[0x0A] = speed;
usb_buf[0x0B] = 0x0A;
usb_buf[0x0D] = 0x01;
usb_buf[0x0E] = ALIENWARE_AW410K_TWO_USER_DEFINED_COLOR_MODE;
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, usb_buf, 65);
}
@@ -0,0 +1,157 @@
/*---------------------------------------------------------*\
| AlienwareAW410KController.h |
| |
| Driver for Alienware AW410K keyboard |
| |
| based on AW510K controller by Mohamad Sallal (msallal) |
| Dominik Mikolajczyk (dmiko) 23 Oct 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
enum
{
ALIENWARE_AW410K_ZONE_MODE_KEYBOARD = 0x01,
};
enum
{
ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD = 0x01,
ALIENWARE_AW410K_ZONE_DIRECT_MEDIA = 0x02,
ALIENWARE_AW410K_ZONE_DIRECT_INDICATORS = 0x40,
};
enum
{
ALIENWARE_AW410K_MODE_OFF = 0x00,
ALIENWARE_AW410K_MODE_DIRECT = 0x01,
ALIENWARE_AW410K_MODE_PULSE = 0x02,
ALIENWARE_AW410K_MODE_MORPH = 0x03,
ALIENWARE_AW410K_MODE_BREATHING = 0x07,
ALIENWARE_AW410K_MODE_SPECTRUM = 0x08,
ALIENWARE_AW410K_MODE_SINGLE_WAVE = 0x0F,
ALIENWARE_AW410K_MODE_RAINBOW_WAVE = 0x10,
ALIENWARE_AW410K_MODE_SCANNER = 0x11,
ALIENWARE_AW410K_MODE_STATIC = 0x13,
};
enum
{
ALIENWARE_AW410K_SPEED_SLOWEST = 0x2D, /* Slowest speed */
ALIENWARE_AW410K_SPEED_NORMAL = 0x19, /* Normal speed */
ALIENWARE_AW410K_SPEED_FASTEST = 0x0A, /* Fastest speed */
};
enum
{
ALIENWARE_AW410K_DIRECTION_LEFT_TO_RIGHT = 0x01,
ALIENWARE_AW410K_DIRECTION_RIGHT_TO_LEFT = 0x02,
ALIENWARE_AW410K_DIRECTION_TOP_TO_BOTTOM = 0x03,
ALIENWARE_AW410K_DIRECTION_BOTTOM_TO_TOP = 0x04,
};
enum
{
ALIENWARE_AW410K_SINGLE_COLOR_MODE = 0x01,
ALIENWARE_AW410K_TWO_USER_DEFINED_COLOR_MODE= 0x02,
ALIENWARE_AW410K_RANBOW_COLOR_MODE = 0x03,
};
struct SelectedButtons
{
unsigned char idx;
unsigned char red;
unsigned char green;
unsigned char blue;
};
class AlienwareAW410KController
{
public:
AlienwareAW410KController(hid_device* dev_handle, const char* path, std::string dev_name);
~AlienwareAW410KController();
std::string GetDeviceLocation();
std::string GetDeviceName();
std::string GetSerialString();
void SendInitialize();
void SendCommit();
void SendfeatureReport
(
unsigned char first_byte,
unsigned char second_byte,
unsigned char third_byte,
unsigned char forth_byte
);
void SendEdit();
void SetDirect
(
unsigned char zone,
unsigned char r,
unsigned char g,
unsigned char b
);
void SendDirectOn
(
std::vector<SelectedButtons> &frame_data
);
void SetMode
(
unsigned char mode,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
unsigned char green,
unsigned char blue
);
void SetMorphMode
(
unsigned char mode,
unsigned char speed,
unsigned char red1,
unsigned char green1,
unsigned char blue1,
unsigned char red2,
unsigned char green2,
unsigned char blue2
);
void UpdateSingleLED
(
unsigned char led,
unsigned char red,
unsigned char green,
unsigned char blue
);
private:
hid_device* dev;
std::string location;
std::string name;
void SendMode
(
unsigned char zone,
unsigned char mode,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
unsigned char green,
unsigned char blue
);
};
@@ -0,0 +1,482 @@
/*---------------------------------------------------------*\
| RGBController_AlienwareAW410K.cpp |
| |
| RGBController for Alienware AW410K keyboard |
| |
| based on AW510K controller by Mohamad Sallal (msallal) |
| Dominik Mikolajczyk (dmiko) 23 Oct 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <iterator>
#include "RGBControllerKeyNames.h"
#include "RGBController_AlienwareAW410K.h"
//0xFFFFFFFF indicates an unused entry in matrix
#define NA 0xFFFFFFFF
int GetAW410K_WaveDirection(int input);
static unsigned int matrix_map[6][24] =
{ { 0, NA, 1, 2, 3, 4, NA, 5, 6, 7, 8, 9, 10, 11, 12, NA, 13, 14, 15, NA, NA, 16, 17, 18 },
{ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, NA, NA, 33, 34, 35, NA, 36, 37, 38, 39 },
{ 40, NA, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, NA, 54, 55, 56, NA, 57, 58, 59, 60 },
{ 61, NA, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, NA, 73, NA, NA, NA, NA, NA, 74, 75, 76, NA },
{ 77, NA, NA, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, NA, NA, NA, 89, NA, NA, 90, 91, 92, 93 },
{ 94, NA, 95, 96, NA, NA, NA, 97, NA, NA, NA, 98, 99, 100, 101, NA, 102, 103, 104, NA, 105, NA, 106, NA }};
static const char* zone_names[] =
{
"AW410K",
};
static zone_type zone_types[] =
{
ZONE_TYPE_MATRIX,
};
static const unsigned int zone_sizes[] =
{
107,
};
typedef struct
{
const char * name;
const unsigned char zone;
const unsigned char idx;
} aw410k_led_type;
static const aw410k_led_type led_names[] =
{
/* Key Label Zone, Index */
{ KEY_EN_ESCAPE, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xB0 },
{ KEY_EN_F1, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x98 },
{ KEY_EN_F2, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x90 },
{ KEY_EN_F3, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x88 },
{ KEY_EN_F4, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x80 },
{ KEY_EN_F5, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x70 },
{ KEY_EN_F6, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x68 },
{ KEY_EN_F7, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x60 },
{ KEY_EN_F8, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x58 },
{ KEY_EN_F9, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x50 },
{ KEY_EN_F10, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x48 },
{ KEY_EN_F11, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x40 },
{ KEY_EN_F12, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x38 },
{ KEY_EN_PRINT_SCREEN, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x30 },
{ KEY_EN_SCROLL_LOCK, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x28 },
{ KEY_EN_PAUSE_BREAK, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x20 },
{ KEY_EN_MEDIA_MUTE, ALIENWARE_AW410K_ZONE_DIRECT_MEDIA, 0x18 },
{ KEY_EN_MEDIA_VOLUME_DOWN, ALIENWARE_AW410K_ZONE_DIRECT_MEDIA, 0x10 },
{ KEY_EN_MEDIA_VOLUME_UP, ALIENWARE_AW410K_ZONE_DIRECT_MEDIA, 0x08 },
{ KEY_EN_BACK_TICK, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xB1 },
{ KEY_EN_1, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xA1 },
{ KEY_EN_2, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x99 },
{ KEY_EN_3, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x91 },
{ KEY_EN_4, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x89 },
{ KEY_EN_5, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x81 },
{ KEY_EN_6, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x79 },
{ KEY_EN_7, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x71 },
{ KEY_EN_8, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x69 },
{ KEY_EN_9, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x61 },
{ KEY_EN_0, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x59 },
{ KEY_EN_MINUS, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x51 },
{ KEY_EN_EQUALS, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x49 },
{ KEY_EN_BACKSPACE, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x39 },
{ KEY_EN_INSERT, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x31 },
{ KEY_EN_HOME, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x29 },
{ KEY_EN_PAGE_UP, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x21 },
{ KEY_EN_NUMPAD_LOCK, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x19 },
{ KEY_EN_NUMPAD_DIVIDE, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x11 },
{ KEY_EN_NUMPAD_TIMES, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x09 },
{ KEY_EN_NUMPAD_MINUS, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x01 },
{ KEY_EN_TAB, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xB2 },
{ KEY_EN_Q, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xA2 },
{ KEY_EN_W, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x9A },
{ KEY_EN_E, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x92 },
{ KEY_EN_R, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x8A },
{ KEY_EN_T, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x82 },
{ KEY_EN_Y, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x7A },
{ KEY_EN_U, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x72 },
{ KEY_EN_I, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x6A },
{ KEY_EN_O, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x62 },
{ KEY_EN_P, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x5A },
{ KEY_EN_LEFT_BRACKET, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x52 },
{ KEY_EN_RIGHT_BRACKET, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x4A },
{ KEY_EN_ANSI_BACK_SLASH, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x42 },
{ KEY_EN_DELETE, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x32 },
{ KEY_EN_END, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x2A },
{ KEY_EN_PAGE_DOWN, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x22 },
{ KEY_EN_NUMPAD_7, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x1A },
{ KEY_EN_NUMPAD_8, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x12 },
{ KEY_EN_NUMPAD_9, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x0A },
{ KEY_EN_NUMPAD_PLUS, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x03 },
{ KEY_EN_CAPS_LOCK, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xB3 },
{ KEY_EN_A, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xA3 },
{ KEY_EN_S, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x9B },
{ KEY_EN_D, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x93 },
{ KEY_EN_F, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x8B },
{ KEY_EN_G, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x83 },
{ KEY_EN_H, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x7B },
{ KEY_EN_J, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x73 },
{ KEY_EN_K, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x6B },
{ KEY_EN_L, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x63 },
{ KEY_EN_SEMICOLON, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x5B },
{ KEY_EN_QUOTE, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x53 },
{ KEY_EN_ANSI_ENTER, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x43 },
{ KEY_EN_NUMPAD_4, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x1B },
{ KEY_EN_NUMPAD_5, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x13 },
{ KEY_EN_NUMPAD_6, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x0B },
{ KEY_EN_LEFT_SHIFT, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xB4 },
{ KEY_EN_Z, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xA4 },
{ KEY_EN_X, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x9C },
{ KEY_EN_C, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x94 },
{ KEY_EN_V, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x8C },
{ KEY_EN_B, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x84 },
{ KEY_EN_N, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x7C },
{ KEY_EN_M, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x74 },
{ KEY_EN_COMMA, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x6C },
{ KEY_EN_PERIOD, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x64 },
{ KEY_EN_FORWARD_SLASH, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x5C },
{ KEY_EN_RIGHT_SHIFT, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x4C },
{ KEY_EN_UP_ARROW, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x2C },
{ KEY_EN_NUMPAD_1, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x1C },
{ KEY_EN_NUMPAD_2, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x14 },
{ KEY_EN_NUMPAD_3, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x0C },
{ KEY_EN_NUMPAD_ENTER, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x05 },
{ KEY_EN_LEFT_CONTROL, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xB5 },
{ KEY_EN_LEFT_WINDOWS, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xAD },
{ KEY_EN_LEFT_ALT, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0xA5 },
{ KEY_EN_SPACE, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x85 },
{ KEY_EN_RIGHT_ALT, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x65 },
{ KEY_EN_RIGHT_FUNCTION, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x5D },
{ KEY_EN_MENU, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x55 },
{ KEY_EN_RIGHT_CONTROL, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x4D },
{ KEY_EN_LEFT_ARROW, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x35 },
{ KEY_EN_DOWN_ARROW, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x2D },
{ KEY_EN_RIGHT_ARROW, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x25 },
{ KEY_EN_NUMPAD_0, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x1D },
{ KEY_EN_NUMPAD_PERIOD, ALIENWARE_AW410K_ZONE_DIRECT_KEYBOARD, 0x0D }
};
/**------------------------------------------------------------------*\
@name Alienware AW410 Keyboard
@category Keyboard
@type USB
@save :x:
@direct :white_check_mark:
@effects :white_check_mark:
@detectors DetectAlienwareAW410KControllers
@comment
\*-------------------------------------------------------------------*/
RGBController_AlienwareAW410K::RGBController_AlienwareAW410K(AlienwareAW410KController* controller_ptr)
{
controller = controller_ptr;
name = controller->GetDeviceName();
vendor = "Alienware";
type = DEVICE_TYPE_KEYBOARD;
description = "Alienware AW410K Keyboard Device";
location = controller->GetDeviceLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.value = ALIENWARE_AW410K_MODE_DIRECT;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
mode Static;
Static.name = "Static";
Static.value = ALIENWARE_AW410K_MODE_STATIC;
Static.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Static.colors_min = 1;
Static.colors_max = 1;
Static.color_mode = MODE_COLORS_MODE_SPECIFIC;
Static.colors.resize(1);
modes.push_back(Static);
mode Pulse;
Pulse.name = "Pulse";
Pulse.value = ALIENWARE_AW410K_MODE_PULSE;
Pulse.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Pulse.color_mode = MODE_COLORS_MODE_SPECIFIC;
Pulse.speed_min = ALIENWARE_AW410K_SPEED_SLOWEST;
Pulse.speed_max = ALIENWARE_AW410K_SPEED_NORMAL;
Pulse.speed = ALIENWARE_AW410K_SPEED_NORMAL;
Pulse.colors_min = 1;
Pulse.colors_max = 1;
Pulse.colors.resize(1);
modes.push_back(Pulse);
mode Morph;
Morph.name = "Morph";
Morph.value = ALIENWARE_AW410K_MODE_MORPH;
Morph.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR;
Morph.color_mode = MODE_COLORS_MODE_SPECIFIC;
Morph.speed_min = ALIENWARE_AW410K_SPEED_SLOWEST;
Morph.speed_max = ALIENWARE_AW410K_SPEED_NORMAL;
Morph.speed = ALIENWARE_AW410K_SPEED_NORMAL;
Morph.colors_min = 2;
Morph.colors_max = 2;
Morph.colors.resize(2);
modes.push_back(Morph);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = ALIENWARE_AW410K_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED;
Breathing.colors_min = 1;
Breathing.colors_max = 1;
Breathing.color_mode = MODE_COLORS_MODE_SPECIFIC;
Breathing.colors.resize(1);
Breathing.speed_min = ALIENWARE_AW410K_SPEED_SLOWEST;
Breathing.speed_max = ALIENWARE_AW410K_SPEED_FASTEST;
Breathing.speed = ALIENWARE_AW410K_SPEED_NORMAL;
modes.push_back(Breathing);
mode SingleWave;
SingleWave.name = "Single Wave";
SingleWave.value = ALIENWARE_AW410K_MODE_SINGLE_WAVE;
SingleWave.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_UD;
SingleWave.speed_min = ALIENWARE_AW410K_SPEED_SLOWEST;
SingleWave.speed_max = ALIENWARE_AW410K_SPEED_FASTEST;
SingleWave.speed = ALIENWARE_AW410K_SPEED_NORMAL;
SingleWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
SingleWave.colors_min = 1;
SingleWave.colors_max = 1;
SingleWave.colors.resize(1);
modes.push_back(SingleWave);
mode RainbowWave;
RainbowWave.name = "Rainbow Wave";
RainbowWave.value = ALIENWARE_AW410K_MODE_RAINBOW_WAVE;
RainbowWave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_DIRECTION_LR | MODE_FLAG_HAS_DIRECTION_UD;
RainbowWave.speed_min = ALIENWARE_AW410K_SPEED_SLOWEST;
RainbowWave.speed_max = ALIENWARE_AW410K_SPEED_FASTEST;
RainbowWave.speed = ALIENWARE_AW410K_SPEED_NORMAL;
RainbowWave.colors_min = 1;
RainbowWave.colors_max = 1;
RainbowWave.color_mode = MODE_COLORS_MODE_SPECIFIC;
RainbowWave.colors.resize(1);
modes.push_back(RainbowWave);
mode Off;
Off.name = "Off";
Off.value = ALIENWARE_AW410K_MODE_OFF;
Off.flags = 0;
Off.color_mode = MODE_COLORS_NONE;
modes.push_back(Off);
SetupZones();
std::copy(colors.begin(), colors.end(),std::back_inserter(current_colors));
}
RGBController_AlienwareAW410K::~RGBController_AlienwareAW410K()
{
/*---------------------------------------------------------*\
| Delete the matrix map |
\*---------------------------------------------------------*/
for(unsigned int zone_index = 0; zone_index < zones.size(); zone_index++)
{
if(zones[zone_index].matrix_map != NULL)
{
delete zones[zone_index].matrix_map;
}
}
delete controller;
}
void RGBController_AlienwareAW410K::SetupZones()
{
/*---------------------------------------------------------*\
| Set up zones |
\*---------------------------------------------------------*/
unsigned int total_led_count = 0;
for(unsigned int zone_idx = 0; zone_idx < 1; zone_idx++)
{
zone new_zone;
new_zone.name = zone_names[zone_idx];
new_zone.type = zone_types[zone_idx];
new_zone.leds_min = zone_sizes[zone_idx];
new_zone.leds_max = zone_sizes[zone_idx];
new_zone.leds_count = zone_sizes[zone_idx];
if(zone_types[zone_idx] == ZONE_TYPE_MATRIX)
{
new_zone.matrix_map = new matrix_map_type;
new_zone.matrix_map->height = 6;
new_zone.matrix_map->width = 24;
new_zone.matrix_map->map = (unsigned int *)&matrix_map;
}
else
{
new_zone.matrix_map = NULL;
}
zones.push_back(new_zone);
total_led_count += zone_sizes[zone_idx];
}
for(unsigned int led_idx = 0; led_idx < total_led_count; led_idx++)
{
led new_led;
new_led.name = led_names[led_idx].name;
new_led.value = led_names[led_idx].idx;
leds.push_back(new_led);
}
SetupColors();
}
void RGBController_AlienwareAW410K::ResizeZone(int /*zone*/, int /*new_size*/)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
}
void RGBController_AlienwareAW410K::DeviceUpdateLEDs()
{
std::vector<SelectedButtons> frame_buf_keys;
std::vector<RGBColor> new_colors;
std::copy(colors.begin(), colors.end(),std::back_inserter(new_colors));
for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++)
{
SelectedButtons key;
key.idx = (unsigned char)leds[led_idx].value;
key.red = RGBGetRValue(colors[led_idx]);
key.green = RGBGetGValue(colors[led_idx]);
key.blue = RGBGetBValue(colors[led_idx]);
frame_buf_keys.push_back(key);
}
controller->SendInitialize();
controller->SendfeatureReport(0x05, 0x01, 0x51, 0x00);
controller->SendCommit();
if(frame_buf_keys.size() > 0)
{
controller->SendDirectOn(frame_buf_keys);
}
std::copy(new_colors.begin(), new_colors.end(),current_colors.begin());
}
void RGBController_AlienwareAW410K::UpdateZoneLEDs(int zone)
{
controller->SetDirect((unsigned char) zone, RGBGetRValue(zones[zone].colors[0]), RGBGetGValue(zones[zone].colors[0]), RGBGetBValue(zones[zone].colors[0]));
}
void RGBController_AlienwareAW410K::UpdateSingleLED(int led)
{
controller->UpdateSingleLED(leds[led].value, RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led]));
}
void RGBController_AlienwareAW410K::DeviceUpdateMode()
{
if(active_mode == 0xFFFF)
{
UpdateLEDs();
return;
}
controller->SendfeatureReport(0x05, 0x01, 0x51, 0x00);
unsigned char red = 0;
unsigned char grn = 0;
unsigned char blu = 0;
if(modes[active_mode].color_mode == MODE_COLORS_MODE_SPECIFIC)
{
red = RGBGetRValue(modes[active_mode].colors[0]);
grn = RGBGetGValue(modes[active_mode].colors[0]);
blu = RGBGetBValue(modes[active_mode].colors[0]);
}
switch(modes[active_mode].value)
{
case ALIENWARE_AW410K_MODE_DIRECT:
/*-------------------------------------------------------------*\
| Load LEDs again in case of profile load etc. |
\*-------------------------------------------------------------*/
DeviceUpdateLEDs();
break;
case ALIENWARE_AW410K_MODE_MORPH:
/*-------------------------------------------------------------*\
| In case of morph it requires two colors (color1 and color2) |
\*-------------------------------------------------------------*/
{
unsigned char red2 = RGBGetRValue(modes[active_mode].colors[1]);
unsigned char grn2 = RGBGetGValue(modes[active_mode].colors[1]);
unsigned char blu2 = RGBGetBValue(modes[active_mode].colors[1]);
controller->SetMorphMode(modes[active_mode].value, modes[active_mode].speed, red, grn, blu, red2, grn2, blu2);
}
break;
case ALIENWARE_AW410K_MODE_SPECTRUM:
/*-------------------------------------------------------------*\
| Spectrum only set mode, speed and colorMode |
\*-------------------------------------------------------------*/
controller->SetMode(modes[active_mode].value, modes[active_mode].speed, 0x00, ALIENWARE_AW410K_RANBOW_COLOR_MODE, 0x00, 0x00, 0x00);
break;
case ALIENWARE_AW410K_MODE_SINGLE_WAVE:
/*-------------------------------------------------------------*\
| Wave only set mode, speed, direction and colorMode |
\*-------------------------------------------------------------*/
{
int waveDirection = GetAW410K_WaveDirection(modes[active_mode].direction);
controller->SetMode(modes[active_mode].value, modes[active_mode].speed, waveDirection, ALIENWARE_AW410K_SINGLE_COLOR_MODE, red, grn, blu);
}
break;
case ALIENWARE_AW410K_MODE_RAINBOW_WAVE:
/*-------------------------------------------------------------*\
| Wave only set mode, speed, direction and colorMode |
\*-------------------------------------------------------------*/
{
int waveDirection = GetAW410K_WaveDirection(modes[active_mode].direction);
controller->SetMode(modes[active_mode].value, modes[active_mode].speed, waveDirection, ALIENWARE_AW410K_RANBOW_COLOR_MODE, 0x00, 0x00, 0x00);
}
break;
default:
controller->SetMode(modes[active_mode].value, modes[active_mode].speed, 0x00, ALIENWARE_AW410K_SINGLE_COLOR_MODE, red, grn, blu);
break;
}
}
int GetAW410K_WaveDirection(int input)
{
switch(input)
{
case MODE_DIRECTION_LEFT:
return(ALIENWARE_AW410K_DIRECTION_RIGHT_TO_LEFT);
case MODE_DIRECTION_RIGHT:
return(ALIENWARE_AW410K_DIRECTION_LEFT_TO_RIGHT);
case MODE_DIRECTION_UP:
return(ALIENWARE_AW410K_DIRECTION_BOTTOM_TO_TOP);
case MODE_DIRECTION_DOWN:
return(ALIENWARE_AW410K_DIRECTION_TOP_TO_BOTTOM);
default:
return(ALIENWARE_AW410K_DIRECTION_RIGHT_TO_LEFT);
}
}
@@ -0,0 +1,37 @@
/*---------------------------------------------------------*\
| RGBController_AlienwareAW410K.h |
| |
| RGBController for Alienware AW410K keyboard |
| |
| based on AW510K controller by Mohamad Sallal (msallal) |
| Dominik Mikolajczyk (dmiko) 23 Oct 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AlienwareAW410KController.h"
class RGBController_AlienwareAW410K : public RGBController
{
public:
RGBController_AlienwareAW410K(AlienwareAW410KController* controller_ptr);
~RGBController_AlienwareAW410K();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
AlienwareAW410KController* controller;
std::vector<RGBColor> current_colors;
};
@@ -1,19 +1,23 @@
/*-----------------------------------------*\
| AlienwareAW510KController.cpp |
| |
| Driver for Alienware AW510K |
| keyboard light controller |
| |
| Mohamad Sallal - msallal 05/22/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AlienwareAW510KController.cpp |
| |
| Driver for Alienware AW510K keyboard |
| |
| Mohamad Sallal (msallal) 22 May 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "AlienwareAW510KController.h"
#include <cstring>
#include "AlienwareAW510KController.h"
#include "StringUtils.h"
AlienwareAW510KController::AlienwareAW510KController(hid_device* dev_handle, const char* path)
AlienwareAW510KController::AlienwareAW510KController(hid_device* dev_handle, const char* path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
SendCommit();
}
@@ -28,20 +32,27 @@ std::string AlienwareAW510KController::GetDeviceLocation()
return("HID: " + location);
}
std::string AlienwareAW510KController::GetDeviceName()
{
return(name);
}
std::string AlienwareAW510KController::GetSerialString()
{
wchar_t serial_string[128];
hid_get_serial_number_string(dev, serial_string, 128);
int ret = hid_get_serial_number_string(dev, serial_string, 128);
std::wstring return_wstring = serial_string;
std::string return_string(return_wstring.begin(), return_wstring.end());
if(ret != 0)
{
return("");
}
return(return_string);
return(StringUtils::wstring_to_string(serial_string));
}
void AlienwareAW510KController::SendCommit()
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -63,7 +74,7 @@ void AlienwareAW510KController::SendCommit()
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 20 milliseconds |
@@ -71,7 +82,6 @@ void AlienwareAW510KController::SendCommit()
std::this_thread::sleep_for(std::chrono::milliseconds(20));
}
void AlienwareAW510KController::SendfeatureReport
(
unsigned char first_byte,
@@ -80,7 +90,7 @@ void AlienwareAW510KController::SendfeatureReport
unsigned char forth_byte
)
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -99,7 +109,7 @@ void AlienwareAW510KController::SendfeatureReport
/*-----------------------------------------------------*\
| Send Feature report packet |
\*-----------------------------------------------------*/
hid_send_feature_report(dev, (unsigned char *)usb_buf, 65);
hid_send_feature_report(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 10 milliseconds |
@@ -109,7 +119,7 @@ void AlienwareAW510KController::SendfeatureReport
void AlienwareAW510KController::SendEdit()
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -127,7 +137,7 @@ void AlienwareAW510KController::SendEdit()
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 2 milliseconds |
@@ -137,7 +147,7 @@ void AlienwareAW510KController::SendEdit()
void AlienwareAW510KController::SendInitialize()
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -162,7 +172,7 @@ void AlienwareAW510KController::SendInitialize()
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 2 milliseconds |
@@ -216,7 +226,7 @@ void AlienwareAW510KController::SendDirectOn
std::vector<SelectedKeys> &frame_data
)
{
SendfeatureReport(0x0E, frame_data.size(), 0x00, 0x01);
SendfeatureReport(0x0E, (unsigned char)frame_data.size(), 0x00, 0x01);
/*-----------------------------------------------*\
| To Guarantee the data are always %4 =0 append |
@@ -296,7 +306,7 @@ void AlienwareAW510KController::SendDirectOn
void AlienwareAW510KController::SetMode
(
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
@@ -318,7 +328,7 @@ void AlienwareAW510KController::UpdateSingleLED
{
SendfeatureReport(0x0E, 0x01, 0x00, 0x01);
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -348,7 +358,7 @@ void AlienwareAW510KController::UpdateSingleLED
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
hid_write(dev, usb_buf, 65);
/*-----------------------------------------------------*\
| Delay 20 milliseconds |
@@ -360,7 +370,7 @@ void AlienwareAW510KController::SendMode
(
unsigned char /*zone*/,
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
@@ -368,7 +378,7 @@ void AlienwareAW510KController::SendMode
unsigned char blue
)
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -394,13 +404,13 @@ void AlienwareAW510KController::SendMode
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
hid_write(dev, usb_buf, 65);
}
void AlienwareAW510KController::SetMorphMode
(
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char red1,
unsigned char green1,
unsigned char blue1,
@@ -409,7 +419,7 @@ void AlienwareAW510KController::SetMorphMode
unsigned char blue2
)
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -438,5 +448,5 @@ void AlienwareAW510KController::SetMorphMode
/*-----------------------------------------------------*\
| Send packet |
\*-----------------------------------------------------*/
hid_write(dev, (unsigned char *)usb_buf, 65);
hid_write(dev, usb_buf, 65);
}
@@ -1,19 +1,20 @@
/*-----------------------------------------*\
| AlienwareAW510KController.h |
| |
| Definitions and types for alienware |
| AW510K Keyboard |
| |
| Mohamad Sallal - msallal 05/22/2021 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <string>
#include <hidapi/hidapi.h>
/*---------------------------------------------------------*\
| AlienwareAW510KController.h |
| |
| Driver for Alienware AW510K keyboard |
| |
| Mohamad Sallal (msallal) 22 May 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
enum
{
ALIENWARE_AW510K_ZONE_MODE_KEYBOARD = 0x01,
@@ -76,10 +77,11 @@ struct SelectedKeys
class AlienwareAW510KController
{
public:
AlienwareAW510KController(hid_device* dev_handle, const char* path);
AlienwareAW510KController(hid_device* dev_handle, const char* path, std::string dev_name);
~AlienwareAW510KController();
std::string GetDeviceLocation();
std::string GetDeviceName();
std::string GetSerialString();
void SendInitialize();
@@ -110,7 +112,7 @@ public:
void SetMode
(
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
@@ -121,7 +123,7 @@ public:
void SetMorphMode
(
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char red1,
unsigned char green1,
unsigned char blue1,
@@ -141,12 +143,13 @@ public:
private:
hid_device* dev;
std::string location;
std::string name;
void SendMode
(
unsigned char zone,
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
@@ -1,15 +1,17 @@
/*-----------------------------------------*\
| RGBController_AlienwareAW510K.cpp |
| |
| Generic RGB Interface for alienware |
| AW510K Keyboard |
| |
| Mohamad Sallal - msallal 05/22/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AlienwareAW510K.cpp |
| |
| RGBController for Alienware AW510K keyboard |
| |
| Mohamad Sallal (msallal) 22 May 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <iterator>
#include "RGBControllerKeyNames.h"
#include "RGBController_AlienwareAW510K.h"
#include <iterator>
//0xFFFFFFFF indicates an unused entry in matrix
#define NA 0xFFFFFFFF
@@ -45,9 +47,9 @@ typedef struct
const char * name;
const unsigned char zone;
const unsigned char idx;
} led_type;
} aw510k_led_type;
static const led_type led_names[] =
static const aw510k_led_type led_names[] =
{
/* Key Label Zone, Index */
{ KEY_EN_ESCAPE, ALIENWARE_AW510K_ZONE_DIRECT_KEYBOARD, 0xB0 },
@@ -173,7 +175,7 @@ RGBController_AlienwareAW510K::RGBController_AlienwareAW510K(AlienwareAW510KCont
{
controller = controller_ptr;
name = "Alienware AW510K Keyboard Device";
name = controller->GetDeviceName();
vendor = "Alienware";
type = DEVICE_TYPE_KEYBOARD;
description = "Alienware AW510K Keyboard Device";
@@ -0,0 +1,36 @@
/*---------------------------------------------------------*\
| RGBController_AlienwareAW510K.h |
| |
| RGBController for Alienware AW510K keyboard |
| |
| Mohamad Sallal (msallal) 22 May 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AlienwareAW510KController.h"
class RGBController_AlienwareAW510K : public RGBController
{
public:
RGBController_AlienwareAW510K(AlienwareAW510KController* controller_ptr);
~RGBController_AlienwareAW510K();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
AlienwareAW510KController* controller;
std::vector<RGBColor> current_colors;
};
@@ -1,18 +1,29 @@
/*---------------------------------------------------------*\
| AlienwareKeyboardControllerDetect.cpp |
| |
| Detector for Alienware Keyboard |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <hidapi.h>
#include "Detector.h"
#include "AlienwareAW510KController.h"
#include "RGBController.h"
#include "AlienwareAW410KController.h"
#include "RGBController_AlienwareAW510K.h"
#include <hidapi/hidapi.h>
#include "RGBController_AlienwareAW410K.h"
/*-----------------------------------------------------*\
| Alienware vendor ID |
\*-----------------------------------------------------*/
#define ALIENWARE_VID 0x04F2
#define ALIENWARE_VID 0x04F2
/*-----------------------------------------------------*\
| Keyboard product IDs |
\*-----------------------------------------------------*/
#define ALIENWARE_AW510K_PID 0x1830
#define ALIENWARE_AW510K_PID 0x1830
#define ALIENWARE_AW410K_PID 0x1968
/******************************************************************************************\
* *
@@ -27,12 +38,25 @@ void DetectAlienwareAW510KControllers(hid_device_info* info, const std::string&
hid_device* dev = hid_open_path(info->path);
if( dev )
{
AlienwareAW510KController* controller = new AlienwareAW510KController(dev, info->path);
AlienwareAW510KController* controller = new AlienwareAW510KController(dev, info->path, name);
RGBController_AlienwareAW510K* rgb_controller = new RGBController_AlienwareAW510K(controller);
rgb_controller->name = name;
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
} /* DetectAlienwareKeyboardControllers() */
}
void DetectAlienwareAW410KControllers(hid_device_info* info, const std::string& name)
{
hid_device* dev = hid_open_path(info->path);
if( dev )
{
AlienwareAW410KController* controller = new AlienwareAW410KController(dev, info->path, name);
RGBController_AlienwareAW410K* rgb_controller = new RGBController_AlienwareAW410K(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}/* DetectAlienwareKeyboardControllers() */
REGISTER_HID_DETECTOR_IPU("Alienware AW510K", DetectAlienwareAW510KControllers, ALIENWARE_VID, ALIENWARE_AW510K_PID, 0x02, 0xFF00, 0x01);
REGISTER_HID_DETECTOR_IPU("Alienware AW410K", DetectAlienwareAW410KControllers, ALIENWARE_VID, ALIENWARE_AW410K_PID, 0x02, 0xFF00, 0x01);
@@ -1,34 +0,0 @@
/*-----------------------------------------*\
| RGBController_AlienwareAW510K.h |
| |
| Generic RGB Interface for Alienware |
| AW510K keyboard |
| |
| Mohamad Sallal - msallal 05/22/2021 |
\*-----------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AlienwareAW510KController.h"
class RGBController_AlienwareAW510K : public RGBController
{
public:
RGBController_AlienwareAW510K(AlienwareAW510KController* controller_ptr);
~RGBController_AlienwareAW510K();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
AlienwareAW510KController* controller;
std::vector<RGBColor> current_colors;
};
@@ -0,0 +1,183 @@
/*---------------------------------------------------------*\
| AlienwareAW3423DWFController.cpp |
| |
| Driver for the Alienware AW3423DWF monitor |
| |
| Ferréol DUBOIS COLI (Fefe_du_973) 23 Jan 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <bitset>
#include <chrono>
#include <cstring>
#include <thread>
#include "AlienwareAW3423DWFController.h"
#include "StringUtils.h"
AlienwareAW3423DWFController::AlienwareAW3423DWFController(hid_device *dev_handle, const char *path) : dev(dev_handle), location(path){}
void AlienwareAW3423DWFController::SendControlPacket(const unsigned char *data, size_t length)
{
unsigned char buffer[256] = {0x00};
memcpy(buffer + 1, data, length);
hid_write(dev, buffer, length + 1);
}
std::vector<unsigned char> AlienwareAW3423DWFController::GetReportResponse()
{
uint8_t buffer[193];
memset(buffer, 0, 193);
hid_get_input_report(dev, buffer, 193);
return std::vector<unsigned char>(buffer + 1, buffer + 18);
}
void AlienwareAW3423DWFController::PerformLogin()
{
unsigned char init_packet[64] =
{
0x40, 0xE1, 0x01
};
SendControlPacket(init_packet, 4);
std::vector<unsigned char> response = GetReportResponse();
std::vector<unsigned char> key = GenerateKey(response);
unsigned char login_packet[192] = {0x00};
login_packet[0] = 0x40;
login_packet[1] = 0xE1;
login_packet[2] = 0x02;
memcpy(login_packet + 64, key.data(), key.size());
SendControlPacket(login_packet, 192);
}
void AlienwareAW3423DWFController::SendColor(unsigned char led_id, unsigned char r, unsigned char g, unsigned char b)
{
unsigned char led_id_2 = (led_id == 0x01) ? 0xf6 : (led_id == 0x02) ? 0xf5
: (led_id == 0x08) ? 0xff
: 0xfc;
PerformLogin();
unsigned char color_packet[192] = {0x00};
color_packet[0] = 0x40;
color_packet[1] = 0xC6;
color_packet[6] = 0x0A;
color_packet[8] = 0x6E;
color_packet[10] = 0x82;
color_packet[64] = 0x51;
color_packet[65] = 0x87;
color_packet[66] = 0xD0;
color_packet[67] = 0x04;
color_packet[68] = led_id;
color_packet[69] = r;
color_packet[70] = g;
color_packet[71] = b;
color_packet[72] = 0x64;
color_packet[73] = led_id_2;
SendControlPacket(color_packet, 192);
std::this_thread::sleep_for(std::chrono::milliseconds(200));
}
std::vector<unsigned char> AlienwareAW3423DWFController::GenerateKey(
const std::vector<unsigned char> &response)
{
std::vector<unsigned char> syn_key(8, 0);
const std::vector<unsigned char> oem_key = {
0xf5, 0x3f, 0xc1, 0x39, 0x44, 0x3a, 0x31, 0x79, 0x0d, 0xb1, 0x82, 0x76
};
size_t sk_idx = 0, ok_idx = 0;
while(ok_idx < oem_key.size() && sk_idx < 8)
{
unsigned char ok_sub_len = (oem_key[ok_idx] & 1) + ((oem_key[ok_idx] & 0x10) >> 4);
for(unsigned int i = 0; i < ok_sub_len && sk_idx < 8; i++)
{
syn_key[sk_idx] = oem_key[ok_idx + 1] ^ oem_key[ok_idx];
ok_idx++;
sk_idx++;
}
ok_idx++;
}
std::vector<unsigned char> out_buffer;
uint16_t v15 = static_cast<uint16_t>(response[15]) |
(static_cast<uint16_t>(response[0]) << 8);
bool parity_odd = (std::bitset<16>(v15).count() % 2 != 0);
if(parity_odd)
{
size_t end = std::min<size_t>(8, response.size());
out_buffer = std::vector<unsigned char>(response.begin(), response.begin() + end);
if(response.size() > 14)
{
unsigned char idx = response[14] & 0x07;
if((idx + 8) < (unsigned char)response.size())
{
out_buffer[idx] ^= response[idx + 8];
}
}
}
else
{
size_t start = std::min<size_t>(8, response.size());
size_t end = std::min<size_t>(start + 8, response.size());
out_buffer = std::vector<unsigned char>(response.begin() + start, response.begin() + end);
if(response.size() > 6)
{
unsigned char idx = response[6] & 0x07;
if(idx < response.size())
{
out_buffer[idx] ^= response[idx];
}
}
}
for(size_t i = 0; i < 8 && i < out_buffer.size(); i++)
{
syn_key[i] ^= out_buffer[i];
}
return syn_key;
}
AlienwareAW3423DWFController::~AlienwareAW3423DWFController()
{
if(dev)
{
hid_close(dev);
dev = nullptr;
}
}
std::string AlienwareAW3423DWFController::GetLocation()
{
return "HID: " + location;
}
std::string AlienwareAW3423DWFController::GetSerialString()
{
wchar_t serial[256];
if(hid_get_serial_number_string(dev, serial, 256) >= 0)
{
std::wstring ws(serial);
return StringUtils::wstring_to_string(ws);
}
return "";
}
@@ -0,0 +1,38 @@
/*---------------------------------------------------------*\
| AlienwareAW3423DWFController.h |
| |
| Driver for the Alienware AW3423DWF monitor |
| |
| Ferréol DUBOIS COLI (Fefe_du_973) 23 Jan 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <hidapi.h>
#include <vector>
#include <string>
class AlienwareAW3423DWFController
{
public:
AlienwareAW3423DWFController(hid_device* dev_handle, const char* path);
~AlienwareAW3423DWFController();
std::string GetLocation();
std::string GetSerialString();
void SendColor(unsigned char led_id, unsigned char r, unsigned char g, unsigned char b);
private:
hid_device* dev;
std::string location;
static const std::vector<std::vector<unsigned char>> OEM_KEYS;
void PerformLogin();
std::vector<unsigned char> GenerateKey(const std::vector<unsigned char>& response);
void SendControlPacket(const unsigned char* data, size_t length);
std::vector<unsigned char> GetReportResponse();
};
@@ -0,0 +1,146 @@
/*---------------------------------------------------------*\
| AlienwareMonitorController.cpp |
| |
| Detector for Alienware monitors |
| |
| Adam Honse (CalcProgrammer1) 08 May 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <chrono>
#include <cstring>
#include <thread>
#include "AlienwareMonitorController.h"
AlienwareMonitorController::AlienwareMonitorController(hid_device *dev_handle, const char *path, std::string dev_name)
{
dev = dev_handle;
location = path;
name = dev_name;
Initialize();
}
AlienwareMonitorController::~AlienwareMonitorController()
{
hid_close(dev);
}
std::string AlienwareMonitorController::GetLocation()
{
return("HID: " + location);
}
std::string AlienwareMonitorController::GetName()
{
return(name);
}
std::string AlienwareMonitorController::GetSerialString()
{
return("");
}
void fillInChecksum(unsigned char *packet)
{
unsigned char checksum = 110;
for(unsigned int index = 5; index <= 13; index++)
{
checksum ^= packet[index];
}
packet[14] = checksum;
}
void AlienwareMonitorController::SendColor(unsigned char led_id, unsigned char r, unsigned char g, unsigned char b)
{
unsigned char packet[65];
memset(packet, 0xFF, sizeof(packet));
packet[0] = 0x00;
packet[1] = 0x92;
packet[2] = 0x37;
packet[3] = 0x0a;
packet[4] = 0x00;
packet[5] = 0x51;
packet[6] = 0x87;
packet[7] = 0xd0;
packet[8] = 0x04;
packet[9] = led_id;
packet[10] = r;
packet[11] = g;
packet[12] = b;
packet[13] = 0x64;
fillInChecksum(packet);
hid_write(dev, packet, sizeof(packet));
/*-----------------------------------------------------*\
| Delay 50 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
void AlienwareMonitorController::Initialize()
{
unsigned char packet[65];
memset(packet, 0xFF, sizeof(packet));
packet[0] = 0x00;
packet[1] = 0x95;
packet[2] = 0x00;
packet[3] = 0x00;
packet[4] = 0x00;
hid_write(dev, packet, sizeof(packet));
/*-----------------------------------------------------*\
| Delay 50 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(50));
memset(packet, 0xFF, sizeof(packet));
packet[0] = 0x00;
packet[1] = 0x92;
packet[2] = 0x37;
packet[3] = 0x08;
packet[4] = 0x00;
packet[5] = 0x51;
packet[6] = 0x85;
packet[7] = 0x01;
packet[8] = 0xFE;
packet[9] = 0x03;
packet[10] = 0x00;
packet[11] = 0x06;
packet[12] = 0x40;
hid_write(dev, packet, sizeof(packet));
/*-----------------------------------------------------*\
| Delay 50 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(50));
memset(packet, 0x00, sizeof(packet));
packet[0] = 0x00;
packet[1] = 0x93;
packet[2] = 0x37;
packet[3] = 0x12;
hid_write(dev, packet, sizeof(packet));
/*-----------------------------------------------------*\
| Delay 50 milliseconds |
\*-----------------------------------------------------*/
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
@@ -0,0 +1,35 @@
/*---------------------------------------------------------*\
| AlienwareMonitorController.h |
| |
| Detector for Alienware monitors |
| |
| Adam Honse (CalcProgrammer1) 08 May 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <hidapi.h>
#include <vector>
#include <string>
class AlienwareMonitorController
{
public:
AlienwareMonitorController(hid_device* dev_handle, const char* path, std::string dev_name);
~AlienwareMonitorController();
std::string GetLocation();
std::string GetName();
std::string GetSerialString();
void SendColor(unsigned char led_id, unsigned char r, unsigned char g, unsigned char b);
private:
hid_device* dev;
std::string location;
std::string name;
void Initialize();
};
@@ -0,0 +1,66 @@
/*---------------------------------------------------------*\
| AlienwareMonitorControllerDetect.cpp |
| |
| Detector for Alienware monitors |
| |
| Adam Honse (CalcProgrammer1) 08 May 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AlienwareAW3423DWFController.h"
#include "AlienwareMonitorController.h"
#include "RGBController_AlienwareAW3423DWF.h"
#include "RGBController_AlienwareMonitor.h"
#include <hidapi.h>
/*---------------------------------------------------------*\
| Alienware Vendor ID |
\*---------------------------------------------------------*/
#define ALIENWARE_VID 0x187C
/*---------------------------------------------------------*\
| Alienware Vendor ID |
\*---------------------------------------------------------*/
#define ALIENWARE_AW3423DWF_PID 0x100E
#define ALIENWARE_AW3225QF_PID 0x1013
#define ALIENWARE_USAGE_PAGE 0xFFDA
#define ALIENWARE_USAGE 0x00DA
/******************************************************************************************\
* *
* AlienwareAW3423DWFControllerDetect *
* *
* Tests the USB address to see if an Alienware AW3423DWF exists there. *
* *
\******************************************************************************************/
void DetectAlienwareAW3423DWFControllers(hid_device_info* info, const std::string&)
{
hid_device* dev = hid_open_path(info->path);
if(dev)
{
AlienwareAW3423DWFController* controller = new AlienwareAW3423DWFController(dev, info->path);
RGBController_AlienwareAW3423DWF* rgb_controller = new RGBController_AlienwareAW3423DWF(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
void DetectAlienwareMonitorControllers(hid_device_info* info, const std::string& name)
{
hid_device* dev = hid_open_path(info->path);
if(dev)
{
AlienwareMonitorController* controller = new AlienwareMonitorController(dev, info->path, name);
RGBController_AlienwareMonitor* rgb_controller = new RGBController_AlienwareMonitor(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
}
REGISTER_HID_DETECTOR("Alienware AW3423DWF", DetectAlienwareAW3423DWFControllers, ALIENWARE_VID, ALIENWARE_AW3423DWF_PID);
REGISTER_HID_DETECTOR("Alienware AW3225QF", DetectAlienwareMonitorControllers, ALIENWARE_VID, ALIENWARE_AW3225QF_PID);
@@ -0,0 +1,141 @@
/*---------------------------------------------------------*\
| RGBController_AlienwareAW3423DWF.cpp |
| |
| RGBController for the Alienware AW3423DWF monitor |
| |
| Ferréol DUBOIS COLI (Fefe_du_973) 23 Jan 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_AlienwareAW3423DWF.h"
/**------------------------------------------------------------------*\
@name AW3423DWF
@category Accessory
@type USB
@save :x:
@direct :white_check_mark:
@effects :x:
@detectors DetectAlienwareAW3423DWFControllers
@comment
\*-------------------------------------------------------------------*/
RGBController_AlienwareAW3423DWF::RGBController_AlienwareAW3423DWF(AlienwareAW3423DWFController* controller_ptr)
{
controller = controller_ptr;
name = "Alienware AW3423DWF";
vendor = "Alienware";
type = DEVICE_TYPE_MONITOR;
description = "Alienware AW3423DWF Monitor Device";
location = controller->GetLocation();
serial = controller->GetSerialString();
mode Direct;
Direct.name = "Direct";
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
active_mode = 0;
SetupZones();
}
RGBController_AlienwareAW3423DWF::~RGBController_AlienwareAW3423DWF()
{
delete controller;
}
void RGBController_AlienwareAW3423DWF::SetupZones()
{
zone Logo;
Logo.name = "Logo";
Logo.type = ZONE_TYPE_SINGLE;
Logo.leds_min = 1;
Logo.leds_max = 1;
Logo.leds_count = 1;
Logo.matrix_map = NULL;
zones.push_back(Logo);
led Logo_LED;
Logo_LED.name = "Logo";
Logo_LED.value = 0x01;
leds.push_back(Logo_LED);
zone Number;
Number.name = "Number";
Number.type = ZONE_TYPE_SINGLE;
Number.leds_min = 1;
Number.leds_max = 1;
Number.leds_count = 1;
Number.matrix_map = NULL;
zones.push_back(Number);
led Number_LED;
Number_LED.name = "Number";
Number_LED.value = 0x02;
leds.push_back(Number_LED);
zone PowerButton;
PowerButton.name = "Power Button";
PowerButton.type = ZONE_TYPE_SINGLE;
PowerButton.leds_min = 1;
PowerButton.leds_max = 1;
PowerButton.leds_count = 1;
PowerButton.matrix_map = NULL;
zones.push_back(PowerButton);
led PowerButton_LED;
PowerButton_LED.name = "Power Button";
PowerButton_LED.value = 0x08;
leds.push_back(PowerButton_LED);
SetupColors();
}
void RGBController_AlienwareAW3423DWF::ResizeZone(int /*zone*/, int /*new_size*/)
{
}
void RGBController_AlienwareAW3423DWF::DeviceUpdateLEDs()
{
/*-----------------------------------------------------*\
| If all three colors are the same value, speed up the |
| direct mode by using the ALL target (0x0B) instead of |
| setting each LED individually. |
\*-----------------------------------------------------*/
if((colors[0] == colors[1]) && (colors[1] == colors[2]))
{
unsigned char red = RGBGetRValue(colors[0]);
unsigned char grn = RGBGetGValue(colors[0]);
unsigned char blu = RGBGetBValue(colors[0]);
controller->SendColor(0x0B, red, grn, blu);
}
else
{
for(unsigned int led_idx = 0; led_idx < leds.size(); led_idx++)
{
UpdateSingleLED(led_idx);
}
}
}
void RGBController_AlienwareAW3423DWF::UpdateZoneLEDs(int /*zone*/)
{
DeviceUpdateLEDs();
}
void RGBController_AlienwareAW3423DWF::UpdateSingleLED(int led)
{
unsigned char red = RGBGetRValue(colors[led]);
unsigned char grn = RGBGetGValue(colors[led]);
unsigned char blu = RGBGetBValue(colors[led]);
controller->SendColor(leds[led].value, red, grn, blu);
}
void RGBController_AlienwareAW3423DWF::DeviceUpdateMode()
{
}
@@ -0,0 +1,34 @@
/*---------------------------------------------------------*\
| RGBController_AlienwareAW3423DWF.h |
| |
| RGBController for the Alienware AW3423DWF monitor |
| |
| Ferréol DUBOIS COLI (Fefe_du_973) 23 Jan 2025 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "AlienwareAW3423DWFController.h"
#include "RGBController.h"
class RGBController_AlienwareAW3423DWF : public RGBController
{
public:
explicit RGBController_AlienwareAW3423DWF(AlienwareAW3423DWFController* controller_ptr);
~RGBController_AlienwareAW3423DWF();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
AlienwareAW3423DWFController* controller;
};
Loaded 100 of 3896 files, more files were not shown because too many files have changed in this diff. Show more