Compare commits

...
Author SHA1 Message Date
Adam Honse fc411345a3 Initial commit for Raspberry Pi GPIO ARGB controller 2024-08-05 23:53:30 -05: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
4020 changed files with 433747 additions and 306818 deletions
+140 -237
View File
@@ -32,7 +32,10 @@ before_script:
#-----------------------------------------------------------------------#
"Supported Devices":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-64
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64
tags:
- linux
- amd64
stage: build
script:
- qmake
@@ -42,11 +45,7 @@ before_script:
artifacts:
name: "${CI_PROJECT_NAME}_Supported_Devices_${CI_COMMIT_SHORT_SHA}"
paths:
- ./*.md
- Supported Devices.csv
exclude:
- README.md
- CONTRIBUTING.md
expire_in: 30 days
rules:
@@ -57,18 +56,21 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (AppImage) 32-bit Build Target #
# Linux (AppImage) i386 Build Target #
#-----------------------------------------------------------------------#
"Linux 32 AppImage":
"Linux i386 AppImage":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-32
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-i386
tags:
- linux
- i386
stage: build
script:
- export $(dpkg-architecture)
- ./scripts/build-appimage.sh
artifacts:
name: "${CI_PROJECT_NAME}_Linux_32_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_i386_${CI_COMMIT_SHORT_SHA}"
paths:
- OpenRGB-i386.AppImage
- 60-openrgb.rules
@@ -83,18 +85,21 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (AppImage) 64-bit Build Target #
# Linux (AppImage) amd64 Build Target #
#-----------------------------------------------------------------------#
"Linux 64 AppImage":
"Linux amd64 AppImage":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-64
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64
tags:
- linux
- amd64
stage: build
script:
- export $(dpkg-architecture)
- ./scripts/build-appimage.sh
artifacts:
name: "${CI_PROJECT_NAME}_Linux_64_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_amd64_${CI_COMMIT_SHORT_SHA}"
paths:
- OpenRGB-x86_64.AppImage
- 60-openrgb.rules
@@ -102,25 +107,25 @@ before_script:
expire_in: 30 days
#-----------------------------------------------------------------------#
# Linux (.deb) Debian Buster (Legacy) 32-bit Build Target #
# Linux (AppImage) armhf Build Target #
#-----------------------------------------------------------------------#
"Linux 32 .deb (Debian Buster)":
"Linux armhf AppImage":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:buster-32
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-armhf
tags:
- linux
- armhf
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage --target-arch i386 -us -B
- rm -v ../openrgb-dbgsym*.*deb
- mv -v ../openrgb*.deb ./
- export $(dpkg-architecture)
- ./scripts/build-appimage.sh
artifacts:
name: "${CI_PROJECT_NAME}_Linux_32_deb_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_armhf_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
- openrgb-dbgsym*.*deb
- OpenRGB-armhf.AppImage
- 60-openrgb.rules
- README.md
expire_in: 30 days
rules:
@@ -131,25 +136,25 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.deb) Debian Buster (Legacy) 64-bit Build Target #
# Linux (AppImage) arm64 Build Target #
#-----------------------------------------------------------------------#
"Linux 64 .deb (Debian Buster)":
"Linux arm64 AppImage":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:buster-64
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-arm64
tags:
- linux
- arm64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.*deb
- mv -v ../openrgb*.deb ./
- export $(dpkg-architecture)
- ./scripts/build-appimage.sh
artifacts:
name: "${CI_PROJECT_NAME}_Linux_64_deb_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_arm64_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
- openrgb-dbgsym*.*deb
- OpenRGB-arm64.AppImage
- 60-openrgb.rules
- README.md
expire_in: 30 days
rules:
@@ -160,69 +165,14 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.deb) Debian Bullseye 32-bit Build Target #
# Linux (.deb) Debian Bookworm i386 Build Target #
#-----------------------------------------------------------------------#
"Linux 32 .deb (Debian Bullseye)":
"Linux i386 .deb (Debian Bookworm)":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-32
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage --target-arch i386 -us -B
- rm -v ../openrgb-dbgsym*.*deb
- mv -v ../openrgb*.deb ./
artifacts:
name: "${CI_PROJECT_NAME}_Linux_32_deb_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
- openrgb-dbgsym*.*deb
expire_in: 30 days
rules:
- if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"'
when: on_success
- if: $CI_PIPELINE_SOURCE == "push"
when: manual
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.deb) Debian Bullseye 64-bit Build Target #
#-----------------------------------------------------------------------#
"Linux 64 .deb (Debian Bullseye)":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bullseye-64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.*deb
- mv -v ../openrgb*.deb ./
artifacts:
name: "${CI_PROJECT_NAME}_Linux_64_deb_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
- openrgb-dbgsym*.*deb
expire_in: 30 days
rules:
- if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"'
when: on_success
- if: $CI_PIPELINE_SOURCE == "push"
when: manual
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.deb) Debian Bookworm 32-bit Build Target #
#-----------------------------------------------------------------------#
"Linux 32 .deb (Debian Bookworm)":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-32
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-i386
tags:
- linux
- i386
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
@@ -232,7 +182,7 @@ before_script:
- mv -v ../openrgb*.deb ./
artifacts:
name: "${CI_PROJECT_NAME}_Linux_32_deb_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_i386_deb_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
@@ -247,11 +197,14 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.deb) Debian Bookworm 64-bit Build Target #
# Linux (.deb) Debian Bookworm amd64 Build Target #
#-----------------------------------------------------------------------#
"Linux 64 .deb (Debian Bookworm)":
"Linux amd64 .deb (Debian Bookworm)":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-64
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-amd64
tags:
- linux
- amd64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
@@ -261,7 +214,7 @@ before_script:
- mv -v ../openrgb*.deb ./
artifacts:
name: "${CI_PROJECT_NAME}_Linux_64_deb_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_amd64_deb_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
@@ -276,31 +229,28 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.rpm, f35) 64-bit Build Target #
# Linux (.deb) Debian Bookworm armhf Build Target #
#-----------------------------------------------------------------------#
"Linux 64 f35 rpm":
image: fedora:35
"Linux armhf .deb (Debian Bookworm)":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-armhf
tags:
- linux
- armhf
stage: build
script:
- dnf install rpmdevtools dnf-plugins-core -y
- rpmdev-setuptree
- ./scripts/build-package-files.sh fedora/OpenRGB.spec
- ls /root/
- cp fedora/OpenRGB.spec /root/rpmbuild/SPECS
- cp ../OpenRGB /root/rpmbuild/SOURCES/ -r
- cd /root/rpmbuild/SOURCES
- tar -cf OpenRGB.tar.gz OpenRGB/
- cd ..
- dnf builddep SPECS/OpenRGB.spec -y
- rpmbuild -ba SPECS/OpenRGB.spec
- cd RPMS/x86_64/
- mv openrgb*.rpm ${CI_PROJECT_DIR}/
- cd ${CI_PROJECT_DIR}
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.deb
- mv -v ../openrgb*.deb ./
artifacts:
name: "${CI_PROJECT_NAME}_Linux_64_rpm_${CI_COMMIT_SHORT_SHA}"
name: "${CI_PROJECT_NAME}_Linux_armhf_deb_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.rpm
- openrgb*.deb
exclude:
- openrgb-dbgsym*.deb
expire_in: 30 days
rules:
@@ -311,10 +261,42 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.rpm, f36) 64-bit Build Target #
# Linux (.deb) Debian Bookworm arm64 Build Target #
#-----------------------------------------------------------------------#
"Linux 64 f36 rpm":
image: fedora:36
"Linux arm64 .deb (Debian Bookworm)":
<<: *ccache_init
image: registry.gitlab.com/openrgbdevelopers/openrgb-linux-ci-deb-builder:bookworm-arm64
tags:
- linux
- arm64
stage: build
script:
- ./scripts/build-package-files.sh debian/changelog
- dpkg-architecture -l
- dpkg-buildpackage -us -B
- rm -v ../openrgb-dbgsym*.deb
- mv -v ../openrgb*.deb ./
artifacts:
name: "${CI_PROJECT_NAME}_Linux_arm64_deb_${CI_COMMIT_SHORT_SHA}"
paths:
- openrgb*.deb
exclude:
- openrgb-dbgsym*.deb
expire_in: 30 days
rules:
- if: '$CI_PROJECT_PATH == "CalcProgrammer1/OpenRGB"'
when: on_success
- if: $CI_PIPELINE_SOURCE == "push"
when: manual
allow_failure: true
#-----------------------------------------------------------------------#
# Linux (.rpm, F40) 64-bit Build Target #
#-----------------------------------------------------------------------#
"Linux 64 F40 rpm":
image: fedora:40
stage: build
script:
- dnf install rpmdevtools dnf-plugins-core libcurl-devel qt5-qtbase-devel -y
@@ -346,73 +328,9 @@ before_script:
allow_failure: true
#-----------------------------------------------------------------------#
# Debian 32 Buster test #
# Debian i386 Bookworm test #
#-----------------------------------------------------------------------#
"Debian 32 Buster":
image: i386/debian:buster
stage: test
script:
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*i386.deb
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 32 .deb (Debian Buster)"
needs:
- "Linux 32 .deb (Debian Buster)"
#-----------------------------------------------------------------------#
# Debian 64 Buster test #
#-----------------------------------------------------------------------#
"Debian 64 Buster":
image: amd64/debian:buster
stage: test
script:
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 64 .deb (Debian Buster)"
needs:
- "Linux 64 .deb (Debian Buster)"
#-----------------------------------------------------------------------#
# Debian 32 Bullseye test #
#-----------------------------------------------------------------------#
"Debian 32 Bullseye":
image: i386/debian:bullseye
stage: test
script:
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*i386.deb
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 32 .deb (Debian Bullseye)"
needs:
- "Linux 32 .deb (Debian Bullseye)"
#-----------------------------------------------------------------------#
# Debian 64 Bullseye test #
#-----------------------------------------------------------------------#
"Debian 64 Bullseye":
image: amd64/debian:bullseye
stage: test
script:
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 64 .deb (Debian Bullseye)"
needs:
- "Linux 64 .deb (Debian Bullseye)"
#-----------------------------------------------------------------------#
# Debian 32 Bookworm test #
#-----------------------------------------------------------------------#
"Debian 32 Bookworm":
"Debian i386 Bookworm":
image: i386/debian:bookworm
stage: test
script:
@@ -421,14 +339,14 @@ before_script:
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 32 .deb (Debian Bookworm)"
- "Linux i386 .deb (Debian Bookworm)"
needs:
- "Linux 32 .deb (Debian Bookworm)"
- "Linux i386 .deb (Debian Bookworm)"
#-----------------------------------------------------------------------#
# Debian 64 Bookworm test #
# Debian amd64 Bookworm test #
#-----------------------------------------------------------------------#
"Debian 64 Bookworm":
"Debian amd64 Bookworm":
image: amd64/debian:bookworm
stage: test
script:
@@ -437,30 +355,14 @@ before_script:
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 64 .deb (Debian Bookworm)"
- "Linux amd64 .deb (Debian Bookworm)"
needs:
- "Linux 64 .deb (Debian Bookworm)"
- "Linux amd64 .deb (Debian Bookworm)"
#-----------------------------------------------------------------------#
# Ubuntu 64 20.04LTS test #
# Ubuntu amd64 22.04 test #
#-----------------------------------------------------------------------#
"Ubuntu 64 20.04LTS":
image: ubuntu:focal
stage: test
script:
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 64 .deb (Debian Buster)"
needs:
- "Linux 64 .deb (Debian Buster)"
#-----------------------------------------------------------------------#
# Ubuntu 64 22.04 test #
#-----------------------------------------------------------------------#
"Ubuntu 64 22.04LTS":
"Ubuntu amd64 22.04LTS":
image: ubuntu:jammy
stage: test
script:
@@ -469,39 +371,40 @@ before_script:
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux 64 .deb (Debian Bookworm)"
- "Linux amd64 .deb (Debian Bookworm)"
needs:
- "Linux 64 .deb (Debian Bookworm)"
- "Linux amd64 .deb (Debian Bookworm)"
#-----------------------------------------------------------------------#
# Fedora 64 v35 test #
# Ubuntu amd64 24.04 test #
#-----------------------------------------------------------------------#
"Fedora 64 v35":
image: fedora:35
"Ubuntu amd64 24.04LTS":
image: ubuntu:noble
stage: test
script:
- apt update
- DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends ./openrgb*amd64.deb
- openrgb --version
- apt remove -y openrgb
dependencies:
- "Linux amd64 .deb (Debian Bookworm)"
needs:
- "Linux amd64 .deb (Debian Bookworm)"
#-----------------------------------------------------------------------#
# Fedora 64 v40 test #
#-----------------------------------------------------------------------#
"Fedora 64 v40":
image: fedora:40
stage: test
script:
- yum -y localinstall ./openrgb*64.rpm
- openrgb --version
- yum -y remove openrgb
dependencies:
- "Linux 64 f35 rpm"
- "Linux 64 F40 rpm"
needs:
- "Linux 64 f35 rpm"
#-----------------------------------------------------------------------#
# Fedora 64 v36 test #
#-----------------------------------------------------------------------#
"Fedora 64 v36":
image: fedora:36
stage: test
script:
- yum -y localinstall ./openrgb*64.rpm
- openrgb --version
- yum -y remove openrgb
dependencies:
- "Linux 64 f36 rpm"
needs:
- "Linux 64 f36 rpm"
- "Linux 64 F40 rpm"
#-----------------------------------------------------------------------#
# Windows (32-bit) Build Target #
+1 -1
View File
@@ -43,6 +43,7 @@ CODEOWNERS @Calcprogrammer1
/Controllers/EVGAGP102GPUController/
/Controllers/EVGAPascalGPUController/
/Controllers/EVGATuringGPUController/ @TheRogueZeta
/Controllers/EVGASMBusController/ @balika011
/Controllers/EVGAUSBController/ @Dr_No
/Controllers/EVisionKeyboardController/
/Controllers/EspurnaController/
@@ -74,7 +75,6 @@ CODEOWNERS @Calcprogrammer1
/Controllers/NZXTHue2Controller/
/Controllers/NZXTHuePlusController/
/Controllers/NZXTKrakenController/
/Controllers/OpenRazerController/
/Controllers/PNYGPUController/
/Controllers/PatriotViperController/
/Controllers/PhilipsHueController/
@@ -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).
+11 -8
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-only |
\*---------------------------------------------------------*/
#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)
{
+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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+15 -11
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-only |
\*---------------------------------------------------------*/
#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)
{
@@ -121,7 +125,7 @@ std::string AutoStart::GetExePath()
char exepath[ PATH_MAX ];
ssize_t count = readlink("/proc/self/exe", exepath, PATH_MAX);
return(std::string(exepath, (count > 0) ? count : 0));
}
@@ -158,7 +162,7 @@ std::string AutoStart::GenerateDesktopFile(AutoStartInfo autostart_info)
}
fileContents << std::endl;
return(fileContents.str());
}
@@ -197,7 +201,7 @@ void AutoStart::InitAutoStart(std::string name)
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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+15 -13
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-only |
\*---------------------------------------------------------*/
#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)
{
@@ -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());
}
@@ -193,7 +195,7 @@ void AutoStart::InitAutoStart(std::string name)
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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+19 -17
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-only |
\*---------------------------------------------------------*/
#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)
{
@@ -41,7 +43,7 @@ bool AutoStart::DisableAutoStart()
else
{
success = filesystem::remove(autostart_file, autostart_file_remove_errcode);
if(!success)
{
LOG_ERROR("An error occurred removing the auto start file.");
@@ -97,11 +99,11 @@ bool AutoStart::EnableAutoStart(AutoStartInfo autostart_info)
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);
@@ -151,7 +153,7 @@ std::string AutoStart::GetExePath()
char exepath[MAX_PATH] = "";
DWORD count = GetModuleFileNameA(NULL, exepath, MAX_PATH);
return(std::string(exepath, (count > 0) ? count : 0));
}
@@ -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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
+1
View File
@@ -11,6 +11,7 @@ To create a merge request, log into GitLab and fork the OpenRGB project. Push y
* Mark your merge request as a draft (start title with "Draft:") until it has been tested and verified working.
* 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.
* 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
+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-only |
\*---------------------------------------------------------*/
#ifndef COLORS_H
#define COLORS_H
@@ -1,15 +1,27 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
/*-----------------------------------------------------*\
| 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 |
@@ -30,5 +42,21 @@ void DetectA4TechMouseControllers(hid_device_info* info, const std::string& name
}
}
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);
RGBController_BloodyB820R* rgb_controller = new RGBController_BloodyB820R(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 W90 Max", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_W90_MAX_PID, 2, 0xFF33, 0x053D);
REGISTER_HID_DETECTOR_IPU("Bloody MP 50RS", DetectA4TechMouseControllers, A4_TECH_VID, BLOODY_MP_50RS_PID, 2, 0xFFF2, 0x6009);
REGISTER_HID_DETECTOR_IPU("A4Tech Bloody B820R", DetectBloodyB820R, A4_TECH_VID, BLOODY_B820R_PID, 2, 0xFF52, 0x0210);
@@ -0,0 +1,104 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#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)
{
dev = dev_handle;
location = path;
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);
}
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,53 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#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);
~BloodyB820RController();
std::string GetSerial();
std::string GetLocation();
void SetLEDDirect(std::vector<RGBColor> colors);
void SendControlPacket(uint8_t data);
private:
std::string location;
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-only |
\*---------------------------------------------------------*/
#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 = "Bloody B820R";
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-only |
\*---------------------------------------------------------*/
#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,78 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include "BloodyMouseController.h"
#include "StringUtils.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()
{
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);
}
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,66 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------------------*\
| Mouse product IDs |
\*-----------------------------------------------------*/
#define BLOODY_W60_PRO_PID 0x37EA
#define BLOODY_W90_MAX_PID 0x3666
/*-----------------------------------------------------*\
| 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();
};
@@ -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-only |
\*---------------------------------------------------------*/
#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,6 @@ RGBController_BloodyMouse::RGBController_BloodyMouse(BloodyMouseController *cont
type = DEVICE_TYPE_MOUSE;
}
name = "BloodyMouse";
vendor = "Bloody";
description = "Controller compatible with the Bloody W60 Pro and MP 50RS";
serial = controller->GetSerial();
@@ -89,11 +103,15 @@ 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_W90_MAX_PID:
layout = w90_max;
break;
case BLOODY_MP_50RS_PID:
layout = mp_50rs;
break;
@@ -109,7 +127,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-only |
\*---------------------------------------------------------*/
#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;
};
@@ -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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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,29 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#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
/******************************************************************************************\
* *
@@ -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-only |
\*---------------------------------------------------------*/
#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";
@@ -138,8 +140,8 @@ void RGBController_AMDWraithPrism::SetupZones()
/*---------------------------------------------------------*\
| LED maps |
\*---------------------------------------------------------*/
const unsigned int logo_leds[1] = { 0x00 };
const unsigned int fan_leds[1] = { 0x01 };
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 };
@@ -179,24 +181,24 @@ void RGBController_AMDWraithPrism::SetupZones()
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++)
{
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);
}
@@ -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-only |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AMDWraithPrismController.h"
@@ -1,17 +1,19 @@
/*-----------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include "AOCKeyboardController.h"
#include <cstring>
#include <chrono>
#include <cstring>
#include <thread>
#include "AOCKeyboardController.h"
#include "StringUtils.h"
using namespace std::chrono_literals;
@@ -41,10 +43,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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------*\
| AOC Keyboard Modes |
\*-----------------------------------------*/
@@ -1,13 +1,25 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#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
/******************************************************************************************\
* *
@@ -32,3 +44,4 @@ void DetectAOCKeyboardControllers(hid_device_info* info, const std::string& name
}
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-only |
\*---------------------------------------------------------*/
#include "RGBController_AOCKeyboard.h"
#include "KeyboardLayoutManager.h"
@@ -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 = "AOC Keyboard Device";
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-only |
\*---------------------------------------------------------*/
#pragma once
@@ -1,14 +1,17 @@
/*-----------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include <cstring>
#include "AOCMouseController.h"
#include "StringUtils.h"
AOCMouseController::AOCMouseController(hid_device* dev_handle, const char* path)
{
@@ -36,10 +39,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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------*\
| AOC Mousemat Modes |
| Note: The 0x80 bit is the random flag |
@@ -1,10 +1,21 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#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
@@ -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-only |
\*---------------------------------------------------------*/
#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 = "AOC Mouse Device";
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-only |
\*---------------------------------------------------------*/
#pragma once
@@ -1,15 +1,17 @@
/*-----------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include <cstring>
#include "AOCMousematController.h"
#include "StringUtils.h"
AOCMousematController::AOCMousematController(hid_device* dev_handle, const char* path)
{
@@ -37,10 +39,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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
/*-----------------------------------------*\
| AOC Mousemat Modes |
| Note: The 0x80 bit is the random flag |
@@ -1,3 +1,14 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AOCMousematController.h"
#include "RGBController.h"
@@ -31,4 +42,4 @@ void DetectAOCMousematControllers(hid_device_info* info, const std::string& name
}
}
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-only |
\*---------------------------------------------------------*/
#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 = "AOC Mousemat Device";
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-only |
\*---------------------------------------------------------*/
#pragma once
@@ -1,19 +1,23 @@
/*-----------------------------------------*\
| ASRockPolychromeUSBController.cpp |
| |
| Driver for ASRock Polychrome USB |
| lighting controller |
| |
| Ed Kambulow (dredvard) 12/20/2020 |
| Shady Nawara (ShadyNawara) 01/16/2023 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include <cstring>
#include <stdio.h>
#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 +58,7 @@ PolychromeUSBController::~PolychromeUSBController()
unsigned int PolychromeUSBController::GetChannelCount()
{
return(device_info.size());
return((unsigned int)device_info.size());
}
std::string PolychromeUSBController::GetDeviceLocation()
@@ -77,10 +81,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()
@@ -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-only |
\*---------------------------------------------------------*/
#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,25 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#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 +44,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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#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,3 +1,18 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "Detector.h"
#include "ASRockASRRGBSMBusController.h"
#include "ASRockPolychromeV1SMBusController.h"
@@ -9,9 +24,6 @@
#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-only |
\*---------------------------------------------------------*/
#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,10 @@ 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
};
/*---------------------------------------------------------*\
@@ -39,7 +46,8 @@ 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" } }
};
static void SendHIDReport(hid_device *dev, const unsigned char* usb_buf, size_t usb_buf_size)
@@ -80,9 +88,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 |
@@ -113,10 +119,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 +169,7 @@ AlienwareController::~AlienwareController()
unsigned int AlienwareController::GetZoneCount()
{
return(zones.size());
return((unsigned int)zones.size());
}
std::vector<const char*> AlienwareController::GetZoneNames()
@@ -265,7 +274,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 +378,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 +517,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 +653,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 +680,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-only |
\*---------------------------------------------------------*/
#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,3 +1,12 @@
/*---------------------------------------------------------*\
| AlienwareControllerDetect.cpp |
| |
| Detector for Dell Alienware RGB USB controller |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AlienwareController.h"
#include "RGBController.h"
@@ -11,7 +20,7 @@
/*---------------------------------------------------------*\
| Alienware product ID |
\*---------------------------------------------------------*/
#define ALIENWARE_G_SERIES_PID 0x0550
#define ALIENWARE_G_SERIES_PID 0x0550
void DetectAlienwareControllers(hid_device_info* info, const std::string& name)
{
@@ -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-only |
\*---------------------------------------------------------*/
#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-only |
\*---------------------------------------------------------*/
#pragma once
#include <chrono>
#include "RGBController.h"
#include "AlienwareController.h"
#include <chrono>
class RGBController_Alienware : public RGBController
{
public:
@@ -0,0 +1,447 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include <cstring>
#include "AlienwareAW410KController.h"
#include "StringUtils.h"
AlienwareAW410KController::AlienwareAW410KController(hid_device* dev_handle, const char* path)
{
dev = dev_handle;
location = path;
SendCommit();
}
AlienwareAW410KController::~AlienwareAW410KController()
{
hid_close(dev);
}
std::string AlienwareAW410KController::GetDeviceLocation()
{
return("HID: " + location);
}
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,155 @@
/*---------------------------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#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);
~AlienwareAW410KController();
std::string GetDeviceLocation();
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;
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-only |
\*---------------------------------------------------------*/
#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 = "Alienware AW410K Keyboard Device";
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-only |
\*---------------------------------------------------------*/
#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,14 +1,17 @@
/*-----------------------------------------*\
| 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-only |
\*---------------------------------------------------------*/
#include "AlienwareAW510KController.h"
#include <cstring>
#include "AlienwareAW510KController.h"
#include "StringUtils.h"
AlienwareAW510KController::AlienwareAW510KController(hid_device* dev_handle, const char* path)
{
@@ -31,17 +34,19 @@ std::string AlienwareAW510KController::GetDeviceLocation()
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 +68,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 +76,6 @@ void AlienwareAW510KController::SendCommit()
std::this_thread::sleep_for(std::chrono::milliseconds(20));
}
void AlienwareAW510KController::SendfeatureReport
(
unsigned char first_byte,
@@ -80,7 +84,7 @@ void AlienwareAW510KController::SendfeatureReport
unsigned char forth_byte
)
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -99,7 +103,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 +113,7 @@ void AlienwareAW510KController::SendfeatureReport
void AlienwareAW510KController::SendEdit()
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -127,7 +131,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 +141,7 @@ void AlienwareAW510KController::SendEdit()
void AlienwareAW510KController::SendInitialize()
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -162,7 +166,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 +220,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 +300,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 +322,7 @@ void AlienwareAW510KController::UpdateSingleLED
{
SendfeatureReport(0x0E, 0x01, 0x00, 0x01);
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -348,7 +352,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 +364,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 +372,7 @@ void AlienwareAW510KController::SendMode
unsigned char blue
)
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -394,13 +398,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 +413,7 @@ void AlienwareAW510KController::SetMorphMode
unsigned char blue2
)
{
char usb_buf[65];
unsigned char usb_buf[65];
/*-----------------------------------------------------*\
| Zero out buffer |
@@ -438,5 +442,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-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
enum
{
ALIENWARE_AW510K_ZONE_MODE_KEYBOARD = 0x01,
@@ -110,7 +111,7 @@ public:
void SetMode
(
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char direction,
unsigned char colorMode,
unsigned char red,
@@ -121,7 +122,7 @@ public:
void SetMorphMode
(
unsigned char mode,
unsigned short speed,
unsigned char speed,
unsigned char red1,
unsigned char green1,
unsigned char blue1,
@@ -146,7 +147,7 @@ private:
(
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-only |
\*---------------------------------------------------------*/
#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 },
@@ -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-only |
\*---------------------------------------------------------*/
#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,30 @@
/*---------------------------------------------------------*\
| AlienwareKeyboardControllerDetect.cpp |
| |
| Detector for Alienware Keyboard |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include <hidapi.h>
#include "Detector.h"
#include "AlienwareAW510KController.h"
#include "AlienwareAW410KController.h"
#include "RGBController.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
/******************************************************************************************\
* *
@@ -32,7 +44,20 @@ void DetectAlienwareAW510KControllers(hid_device_info* info, const std::string&
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);
RGBController_AlienwareAW410K* rgb_controller = new RGBController_AlienwareAW410K(controller);
rgb_controller->name = name;
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;
};
@@ -1,32 +1,36 @@
/*-----------------------------------------*\
| AnnePro2Controller.cpp |
| |
| Driver for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06/06/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AnnePro2Controller.cpp |
| |
| Driver for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06 Jun 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "AnnePro2Controller.h"
#include "StringUtils.h"
using namespace std::chrono_literals;
AnnePro2Controller::AnnePro2Controller(hid_device* dev_handle, const char* path)
AnnePro2Controller::AnnePro2Controller(hid_device* dev_handle, const char* path)
{
dev = dev_handle;
location = path;
}
AnnePro2Controller::~AnnePro2Controller()
AnnePro2Controller::~AnnePro2Controller()
{
hid_close(dev);
}
std::string AnnePro2Controller::GetDeviceLocation()
std::string AnnePro2Controller::GetDeviceLocation()
{
return("HID: " + location);
}
std::string AnnePro2Controller::GetSerialString()
std::string AnnePro2Controller::GetSerialString()
{
wchar_t serial_string[128];
int ret = hid_get_serial_number_string(dev, serial_string, 128);
@@ -36,13 +40,10 @@ std::string AnnePro2Controller::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 AnnePro2Controller::SendDirect(unsigned char frame_count, unsigned char * frame_data)
void AnnePro2Controller::SendDirect(unsigned char frame_count, unsigned char * frame_data)
{
/*-------------------------------------------------------------*\
| Reverse engineered by https://github.com/manualmanul/Annemone |
@@ -74,7 +75,7 @@ void AnnePro2Controller::SendDirect(unsigned char frame_count, unsigned char * f
{
const unsigned char e = (messages_to_send_amount << 4) + p;
const unsigned char a = ((messages_to_send_amount - 1) == p) ? val_2 + real_command_info_length : max_message_length + real_command_info_length;
/*---------------------------------------------------------*\
| Service data |
\*---------------------------------------------------------*/
@@ -1,19 +1,20 @@
/*-----------------------------------------*\
| AnnePro2Controller.h |
| |
| Driver for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06/06/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AnnePro2Controller.h |
| |
| Driver for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06 Jun 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include <string>
#include <vector>
#include <hidapi/hidapi.h>
#pragma once
#include <hidapi.h>
#include "RGBController.h"
class AnnePro2Controller
{
@@ -33,4 +34,4 @@ public:
private:
hid_device* dev;
std::string location;
};
};
@@ -1,14 +1,34 @@
/*---------------------------------------------------------*\
| AnnePro2ControllerDetect.cpp |
| |
| Detector for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06 Jun 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AnnePro2Controller.h"
#include "RGBController.h"
#include "RGBController_AnnePro2.h"
#include <hidapi/hidapi.h>
#include <hidapi.h>
#define ANNE_PRO_2_VID 0x04D9
#define ANNE_PRO_2_PID_1 0x8008
#define ANNE_PRO_2_PID_2 0x8009
#define ANNE_PRO_2_PID_3 0xA292
#define ANNE_PRO_2_PID_4 0xA293
/*---------------------------------------------------------*\
| Anne Pro 2 vendor IDs |
\*---------------------------------------------------------*/
#define ANNE_PRO_2_VID_1 0x04D9
#define ANNE_PRO_2_VID_2 0x3311
/*---------------------------------------------------------*\
| Anne Pro 2 product IDs |
\*---------------------------------------------------------*/
#define ANNE_PRO_2_PID_1 0x8008
#define ANNE_PRO_2_PID_2 0x8009
#define ANNE_PRO_2_PID_3 0xA292
#define ANNE_PRO_2_PID_4 0xA293
#define ANNE_PRO_2_PID_5 0xA297
/******************************************************************************************\
* *
@@ -30,7 +50,8 @@ void DetectAnnePro2Controllers(hid_device_info* info, const std::string&)
}
}
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID, ANNE_PRO_2_PID_1, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID, ANNE_PRO_2_PID_2, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID, ANNE_PRO_2_PID_3, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID, ANNE_PRO_2_PID_4, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID_1, ANNE_PRO_2_PID_1, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID_1, ANNE_PRO_2_PID_2, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID_1, ANNE_PRO_2_PID_3, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID_1, ANNE_PRO_2_PID_4, 1);
REGISTER_HID_DETECTOR_I("Anne Pro 2", DetectAnnePro2Controllers, ANNE_PRO_2_VID_2, ANNE_PRO_2_PID_5, 1);
@@ -1,11 +1,13 @@
/*-----------------------------------------*\
| RGBController_AnnePro2.cpp |
| |
| Generic RGB Interface for Obins Lab |
| AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06/06/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AnnePro2.cpp |
| |
| RGBController for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06 Jun 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "RGBControllerKeyNames.h"
#include "RGBController_AnnePro2.h"
@@ -40,9 +42,9 @@ typedef struct
{
const char * name;
const unsigned char idx;
} led_type;
} annepro2_led_type;
static const led_type led_names[] =
static const annepro2_led_type led_names[] =
{
/* Key Label Index */
{ KEY_EN_ESCAPE, 0 },
@@ -1,13 +1,16 @@
/*-----------------------------------------*\
| RGBController_AnnePro2.h |
| |
| Generic RGB Interface for Obins Lab |
| AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06/06/2021 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AnnePro2.h |
| |
| RGBController for Obins Lab AnnePro2 keyboard |
| |
| Sergey Gavrilov (DrZlo13) 06 Jun 2021 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AnnePro2Controller.h"
@@ -0,0 +1,158 @@
/*---------------------------------------------------------*\
| ArcticController.cpp |
| |
| Driver for Arctic devices |
| |
| Armin Wolf (Wer-Wolf) 09 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include <cstring>
#include "ArcticController.h"
using namespace std::chrono_literals;
#define ARCTIC_COMMAND_SET_RGB 0x00
#define ARCTIC_COMMAND_IDENTIFY 0x5C
#define ARCTIC_RESPONSE_BUFFER_LENGTH 15
#define ARCTIC_RESPONSE_COMMAND_OFFSET 0
#define ARCTIC_RESPONSE_DATA_OFFSET 1
#define ARCTIC_RESPONSE_DATA_LENGTH 12
#define ARCTIC_RESPONSE_XOR_CSUM_OFFSET 13
#define ARCTIC_RESPONSE_ADD_CSUM_OFFSET 14
#define ARCTIC_COMMAND_BUFFER_LENGTH(payload_size) (sizeof(header) + 1 + payload_size)
#define ARCTIC_COMMAND_COMMAND_OFFSET (sizeof(header))
#define ARCTIC_COMMAND_PAYLOAD_OFFSET (sizeof(header) + 1)
const unsigned char header[] =
{
0x01,
0x02,
0x03,
0xFF,
0x05,
0xFF,
0x02,
0x03
};
const unsigned char identify_payload[] =
{
0x01,
0xFE,
0x01,
0xFE
};
ArcticController::ArcticController(const std::string &portname)
: serialport(portname.c_str(), 250000, SERIAL_PORT_PARITY_NONE, SERIAL_PORT_SIZE_8, SERIAL_PORT_STOP_BITS_2, false)
{
port_name = portname;
serialport.serial_set_dtr(true);
}
ArcticController::~ArcticController()
{
serialport.serial_set_dtr(false);
}
static void FormatCommandBuffer(char *buffer, char command)
{
std::memcpy(buffer, header, sizeof(header));
buffer[ARCTIC_COMMAND_COMMAND_OFFSET] = command;
}
void ArcticController::SetChannels(std::vector<RGBColor> colors)
{
char* buffer = new char[ARCTIC_COMMAND_BUFFER_LENGTH(colors.size() * 3)];
FormatCommandBuffer(buffer, ARCTIC_COMMAND_SET_RGB);
for(unsigned int channel = 0; channel < colors.size(); channel++)
{
const unsigned int offset = ARCTIC_COMMAND_PAYLOAD_OFFSET + channel * 3;
buffer[offset + 0x00] = std::min<unsigned int>(254, RGBGetRValue(colors[channel]));
buffer[offset + 0x01] = std::min<unsigned int>(254, RGBGetGValue(colors[channel]));
buffer[offset + 0x02] = std::min<unsigned int>(254, RGBGetBValue(colors[channel]));
}
serialport.serial_write(buffer, sizeof(buffer));
delete[] buffer;
}
static char XORChecksum(char *data, int length)
{
char sum = 0;
for(int i = 0; i < length; i++)
{
sum ^= data[i];
}
return sum;
}
static char AddChecksum(char *data, int length)
{
char sum = 0;
for(int i = 0; i < length; i++)
{
sum = (char)(sum + data[i]);
}
return sum;
}
bool ArcticController::IsPresent()
{
char buffer[ARCTIC_COMMAND_BUFFER_LENGTH(sizeof(identify_payload))];
char response[ARCTIC_RESPONSE_BUFFER_LENGTH];
int ret;
FormatCommandBuffer(buffer, ARCTIC_COMMAND_IDENTIFY);
std::memcpy(buffer + ARCTIC_COMMAND_PAYLOAD_OFFSET, identify_payload, sizeof(identify_payload));
serialport.serial_flush_rx();
ret = serialport.serial_write(buffer, sizeof(buffer));
if(ret != sizeof(buffer))
{
return false;
}
std::this_thread::sleep_for(100ms);
ret = serialport.serial_read(response, sizeof(response));
if(ret != sizeof(response))
{
return false;
}
if(response[ARCTIC_RESPONSE_COMMAND_OFFSET] != ARCTIC_COMMAND_IDENTIFY)
{
return false;
}
if(response[ARCTIC_RESPONSE_XOR_CSUM_OFFSET] != XORChecksum(&response[ARCTIC_RESPONSE_DATA_OFFSET], ARCTIC_RESPONSE_DATA_LENGTH))
{
return false;
}
if(response[ARCTIC_RESPONSE_ADD_CSUM_OFFSET] != AddChecksum(&response[ARCTIC_RESPONSE_DATA_OFFSET], ARCTIC_RESPONSE_DATA_LENGTH))
{
return false;
}
return true;
}
std::string ArcticController::GetLocation()
{
return port_name;
}
@@ -0,0 +1,32 @@
/*---------------------------------------------------------*\
| ArcticController.h |
| |
| Driver for Arctic devices |
| |
| Armin Wolf (Wer-Wolf) 09 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <algorithm>
#include "RGBController.h"
#include "serial_port.h"
class ArcticController
{
public:
ArcticController(const std::string &portname);
~ArcticController();
void SetChannels(std::vector<RGBColor> colors);
bool IsPresent();
std::string GetLocation();
private:
std::string port_name;
serial_port serialport;
};
@@ -0,0 +1,51 @@
/*---------------------------------------------------------*\
| ArcticControllerDetect.cpp |
| |
| Detector for Arctic devices |
| |
| Armin Wolf (Wer-Wolf) 09 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "Detector.h"
#include "ArcticController.h"
#include "RGBController.h"
#include "RGBController_Arctic.h"
#include "find_usb_serial_port.h"
#define CH341_VID 0x1A86
#define CH341_PID 0x7523
void DetectArcticControllers()
{
std::vector<std::string *> ports = find_usb_serial_port(CH341_VID, CH341_PID);
for(unsigned int device = 0; device < ports.size(); device++)
{
ArcticController *controller = new ArcticController(*ports[device]);
if(controller->IsPresent())
{
RGBController_Arctic *rgb_controller = new RGBController_Arctic(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
}
else
{
delete controller;
}
delete ports[device];
}
}
REGISTER_DETECTOR("Arctic RGB controller", DetectArcticControllers);
/*---------------------------------------------------------------------------------------------------------*\
| Entries for dynamic UDEV rules |
| |
| DUMMY_DEVICE_DETECTOR("Arctic RGB controller", DetectArcticControllers, 0x1A86, 0x7523 ) |
\*---------------------------------------------------------------------------------------------------------*/
@@ -0,0 +1,134 @@
/*---------------------------------------------------------*\
| RGBController_Arctic.cpp |
| |
| RGBController for Arctic devices |
| |
| Armin Wolf (Wer-Wolf) 09 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include <math.h>
#include "RGBController_Arctic.h"
using namespace std::chrono_literals;
#define ARCTIC_NUM_CHANNELS 4
#define ARCTIC_SLEEP_THRESHOLD 100ms
#define ARCTIC_KEEPALIVE_PERIOD 500ms /* Device requires at least 1s */
/**------------------------------------------------------------------*\
@name Arctic RGB Controller Devices
@category LEDStrip
@type Serial
@save :x:
@direct :white_check_mark:
@effects :x:
@detectors DetectArcticControllers
@comment
\*-------------------------------------------------------------------*/
RGBController_Arctic::RGBController_Arctic(ArcticController* controller_ptr)
{
controller = controller_ptr;
name = "Arctic RGB Controller";
vendor = "Arctic";
description = "Arctic 4-Channel RGB Controller";
location = controller->GetLocation();
type = DEVICE_TYPE_LEDSTRIP;
mode DirectMode;
DirectMode.name = "Direct";
DirectMode.value = 0;
DirectMode.flags = MODE_FLAG_HAS_PER_LED_COLOR;
DirectMode.color_mode = MODE_COLORS_PER_LED;
modes.push_back(DirectMode);
SetupZones();
keepalive_thread_run = true;
keepalive_thread = std::thread(&RGBController_Arctic::KeepaliveThreadFunction, this);
}
RGBController_Arctic::~RGBController_Arctic()
{
keepalive_thread_run = false;
keepalive_thread.join();
delete controller;
}
void RGBController_Arctic::SetupZones()
{
for(int channel = 0; channel < ARCTIC_NUM_CHANNELS; channel++)
{
zone LedZone;
LedZone.name = "LED Strip " + std::to_string(channel);
LedZone.type = ZONE_TYPE_SINGLE;
LedZone.leds_count = 1;
LedZone.leds_min = 1;
LedZone.leds_max = 1;
LedZone.matrix_map = nullptr;
led Led;
Led.name = LedZone.name + " LED";
Led.value = channel;
zones.push_back(LedZone);
leds.push_back(Led);
}
SetupColors();
}
void RGBController_Arctic::ResizeZone(int /* zone */, int /* new_size */)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
}
void RGBController_Arctic::DeviceUpdateLEDs()
{
last_update_time = std::chrono::steady_clock::now();
controller->SetChannels(colors);
}
void RGBController_Arctic::UpdateZoneLEDs(int /* zone */)
{
DeviceUpdateLEDs();
}
void RGBController_Arctic::UpdateSingleLED(int /* led */)
{
DeviceUpdateLEDs();
}
void RGBController_Arctic::DeviceUpdateMode()
{
/*---------------------------------------------------------*\
| This device does not support mode updates |
\*---------------------------------------------------------*/
}
void RGBController_Arctic::KeepaliveThreadFunction()
{
std::chrono::nanoseconds sleep_time;
while(keepalive_thread_run.load())
{
sleep_time = ARCTIC_KEEPALIVE_PERIOD - (std::chrono::steady_clock::now() - last_update_time);
if(sleep_time <= ARCTIC_SLEEP_THRESHOLD)
{
UpdateLEDs(); // Already protected thru a device update thread
std::this_thread::sleep_for(ARCTIC_KEEPALIVE_PERIOD);
}
else
{
std::this_thread::sleep_for(sleep_time);
}
}
}
@@ -0,0 +1,44 @@
/*---------------------------------------------------------*\
| RGBController_Arctic.h |
| |
| RGBController for Arctic devices |
| |
| Armin Wolf (Wer-Wolf) 09 Jan 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <chrono>
#include <thread>
#include "ArcticController.h"
#include "RGBController.h"
#include "serial_port.h"
class RGBController_Arctic : public RGBController
{
public:
RGBController_Arctic(ArcticController* controller_ptr);
~RGBController_Arctic();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
void KeepaliveThreadFunction();
private:
ArcticController* controller;
std::chrono::time_point<std::chrono::steady_clock> last_update_time;
std::atomic<bool> keepalive_thread_run;
std::thread keepalive_thread;
};
@@ -1,14 +1,17 @@
/*-----------------------------------------*\
| AsusAuraCoreController.cpp |
| |
| Driver for ASUS ROG Aura Core RGB |
| lighting controller |
| |
| Adam Honse (CalcProgrammer1) 4/13/2020 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| AsusAuraCoreController.cpp |
| |
| Driver for ASUS ROG Aura Core |
| |
| Adam Honse (CalcProgrammer1) 13 Apr 2020 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "AsusAuraCoreController.h"
#include <cstring>
#include "AsusAuraCoreController.h"
#include "StringUtils.h"
#define AURA_CORE_MAX_MESSAGE_SIZE 64
@@ -47,10 +50,7 @@ std::string AuraCoreController::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 AuraCoreController::SendBrightness
@@ -1,19 +1,20 @@
/*-----------------------------------------*\
| AsusAuraCoreController.h |
| |
| Definitions and types for ASUS ROG Aura |
| Core RGB lighting controller |
| |
| Adam Honse (CalcProgrammer1) 4/13/2020 |
\*-----------------------------------------*/
#include "RGBController.h"
#include <string>
#include <hidapi/hidapi.h>
/*---------------------------------------------------------*\
| AsusAuraCoreController.h |
| |
| Driver for ASUS ROG Aura Core |
| |
| Adam Honse (CalcProgrammer1) 13 Apr 2020 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <hidapi.h>
#include "RGBController.h"
enum AuraCoreDeviceType
{
AURA_CORE_DEVICE_UNKNOWN = 0,
@@ -119,5 +120,4 @@ private:
void Handshake();
void SendIdString();
void SendQuery();
};
@@ -1,10 +1,13 @@
/*-----------------------------------------*\
| RGBController_AsusAuraCore.cpp |
| |
| Generic RGB Interface for ROG Aura Core |
| |
| Adam Honse (CalcProgrammer1) 4/17/2020 |
\*-----------------------------------------*/
/*---------------------------------------------------------*\
| RGBController_AsusAuraCore.cpp |
| |
| RGBController for ASUS ROG Aura Core |
| |
| Adam Honse (CalcProgrammer1) 13 Apr 2020 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "RGBController_AsusAuraCore.h"
@@ -0,0 +1,37 @@
/*---------------------------------------------------------*\
| RGBController_AsusAuraCore.h |
| |
| RGBController for ASUS ROG Aura Core |
| |
| Adam Honse (CalcProgrammer1) 13 Apr 2020 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "AsusAuraCoreController.h"
class RGBController_AuraCore : public RGBController
{
public:
RGBController_AuraCore(AuraCoreController* controller_ptr);
~RGBController_AuraCore();
void SetupKeyboard();
void SetupGA15DH();
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
AuraCoreController* controller;
};
@@ -1,9 +1,21 @@
/*---------------------------------------------------------*\
| AsusAuraCoreControllerDetect.cpp |
| |
| Detector for ASUS ROG Aura Core |
| |
| Adam Honse (CalcProgrammer1) 13 Apr 2020 |
| Chris M (Dr_No) 28 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "Detector.h"
#include "AsusAuraCoreController.h"
#include "RGBController.h"
#include "RGBController_AsusAuraCore.h"
#include "RGBController_AsusAuraCoreLaptop.h"
#include <hidapi/hidapi.h>
#include <hidapi.h>
#define AURA_CORE_VID 0x0B05
@@ -55,3 +67,4 @@ REGISTER_HID_DETECTOR ("ASUS Aura Core", DetectAsusAuraCoreContro
REGISTER_HID_DETECTOR ("ASUS Aura Core", DetectAsusAuraCoreControllers, AURA_CORE_VID, 0x1866);
REGISTER_HID_DETECTOR ("ASUS Aura Core", DetectAsusAuraCoreControllers, AURA_CORE_VID, 0x1869);
REGISTER_HID_DETECTOR_PU("ASUS ROG Strix SCAR 15", DetectAsusAuraCoreLaptopControllers, AURA_CORE_VID, AURA_STRIX_SCAR_15_PID, 0xFF31, 0x79);
REGISTER_HID_DETECTOR_PU("ASUS ROG Strix SCAR 17", DetectAsusAuraCoreLaptopControllers, AURA_CORE_VID, 0x1866, 0xFF31, 0x79);
@@ -1,13 +1,17 @@
/*---------------------------------------------------------------------*\
| AsusAuraCoreLaptopController.cpp |
| |
| Driver for Asus Aura Core Laptop USB Controller |
| |
| Chris M (Dr_No) 28 Jul 2022 |
| |
\*---------------------------------------------------------------------*/
/*---------------------------------------------------------*\
| AsusAuraCoreLaptopController.cpp |
| |
| Driver for ASUS ROG Aura Core Laptop |
| |
| Chris M (Dr_No) 28 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#include "AsusAuraCoreLaptopController.h"
#include "SettingsManager.h"
#include "StringUtils.h"
static uint8_t packet_map[ASUSAURACORELAPTOP_KEYCOUNT +
ASUSAURACORELAPTOP_LIGHTBARCOUNT +
@@ -63,19 +67,19 @@ static std::string power_states[ASUSAURACORELAPTOP_POWER_STATES] =
AsusAuraCoreLaptopController::AsusAuraCoreLaptopController(hid_device* dev_handle, const char* path)
{
const uint8_t sz = HID_MAX_STR;
wchar_t tmp[sz];
dev = dev_handle;
location = path;
hid_get_manufacturer_string(dev, tmp, sz);
std::wstring wName = std::wstring(tmp);
device_name = std::string(wName.begin(), wName.end());
/*---------------------------------------------------------*\
| Get device name from HID manufacturer and product strings |
\*---------------------------------------------------------*/
wchar_t name_string[HID_MAX_STR];
hid_get_product_string(dev, tmp, sz);
wName = std::wstring(tmp);
device_name.append(" ").append(std::string(wName.begin(), wName.end()));
hid_get_manufacturer_string(dev, name_string, HID_MAX_STR);
device_name = StringUtils::wstring_to_string(name_string);
hid_get_product_string(dev, name_string, HID_MAX_STR);
device_name.append(" ").append(StringUtils::wstring_to_string(name_string));
SetPowerConfigFromJSON();
}
@@ -92,21 +96,15 @@ std::string AsusAuraCoreLaptopController::GetDeviceName()
std::string AsusAuraCoreLaptopController::GetSerial()
{
const uint8_t sz = HID_MAX_STR;
wchar_t tmp[sz];
wchar_t serial_string[128];
int ret = hid_get_serial_number_string(dev, serial_string, 128);
int ret = hid_get_serial_number_string(dev, tmp, sz);
if (ret != 0)
if(ret != 0)
{
LOG_DEBUG("[%s] Get HID Serial string failed", device_name.c_str());
return("");
}
std::wstring w_tmp = std::wstring(tmp);
std::string serial = std::string(w_tmp.begin(), w_tmp.end());
return serial;
return(StringUtils::wstring_to_string(serial_string));
}
std::string AsusAuraCoreLaptopController::GetLocation()
@@ -167,14 +165,14 @@ void AsusAuraCoreLaptopController::SetLedsDirect(std::vector<RGBColor> colors)
for(size_t i = 0; i < key_set; i+=leds_per_packet)
{
uint8_t leds_remaining = key_set - i;
uint8_t leds_remaining = key_set - (uint8_t)i;
if(leds_remaining < leds_per_packet)
{
buffer[07] = leds_remaining;
}
buffer[06] = i;
buffer[06] = (uint8_t)i;
memcpy(&buffer[ASUSAURACORELAPTOP_DATA_BYTE], &key_buf[3 * i], (3 * buffer[07]));
hid_send_feature_report(dev, buffer, ASUSAURACORELAPTOP_WRITE_PACKET_SIZE);
@@ -1,23 +1,24 @@
/*---------------------------------------------------------------------*\
| AsusAuraCoreLaptopController.h |
| |
| Driver for AsusAuraCoreLaptop USB Controller |
| |
| Chris M (Dr_No) 28 Jul 2022 |
| |
\*---------------------------------------------------------------------*/
/*---------------------------------------------------------*\
| AsusAuraCoreLaptopController.h |
| |
| Driver for ASUS ROG Aura Core Laptop |
| |
| Chris M (Dr_No) 28 Jul 2022 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-only |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include <vector>
#include <hidapi/hidapi.h>
#include <hidapi.h>
#include "LogManager.h"
#include "RGBController.h"
#include "ResourceManager.h"
#include "SettingsManager.h"
#include "RGBControllerKeyNames.h"
#pragma once
#define NA 0xFFFFFFFF
#define HID_MAX_STR 255
#define ASUSAURACORELAPTOP_TIMEOUT 250

Some files were not shown because too many files have changed in this diff Show More