From b2736d65755e5d03f4a3f77c706fdb63149533cd Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 13 Apr 2021 22:30:24 -0500 Subject: [PATCH] Add functions to RazerController for enabling Wave and Reactive modes --- .../RazerController/RGBController_Razer.cpp | 38 ++++++++++--------- .../RazerController/RazerController.cpp | 10 +++++ Controllers/RazerController/RazerController.h | 3 ++ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/Controllers/RazerController/RGBController_Razer.cpp b/Controllers/RazerController/RGBController_Razer.cpp index 10f96be3d..2a1717f0f 100644 --- a/Controllers/RazerController/RGBController_Razer.cpp +++ b/Controllers/RazerController/RGBController_Razer.cpp @@ -54,24 +54,28 @@ RGBController_Razer::RGBController_Razer(RazerController* controller_ptr) SpectrumCycle.color_mode = MODE_COLORS_NONE; modes.push_back(SpectrumCycle); - // Wave disabled until proper detection - //mode Wave; - //Wave.name = "Wave"; - //Wave.value = RAZER_MODE_WAVE; - //Wave.flags = 0; - //Wave.color_mode = MODE_COLORS_NONE; - //modes.push_back(Wave); + if(controller->SupportsWave()) + { + mode Wave; + Wave.name = "Wave"; + Wave.value = RAZER_MODE_WAVE; + Wave.flags = 0; + Wave.color_mode = MODE_COLORS_NONE; + modes.push_back(Wave); + } - // Reactive disabled, not yet implemented - //mode Reactive; - //Reactive.name = "Reactive"; - //Reactive.value = RAZER_MODE_REACTIVE; - //Reactive.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; - //Reactive.color_mode = MODE_COLORS_MODE_SPECIFIC; - //Reactive.colors_min = 1; - //Reactive.colors_max = 1; - //Reactive.colors.resize(1); - //modes.push_back(Reactive); + if(controller->SupportsReactive()) + { + mode Reactive; + Reactive.name = "Reactive"; + Reactive.value = RAZER_MODE_REACTIVE; + Reactive.flags = MODE_FLAG_HAS_MODE_SPECIFIC_COLOR; + Reactive.color_mode = MODE_COLORS_MODE_SPECIFIC; + Reactive.colors_min = 1; + Reactive.colors_max = 1; + Reactive.colors.resize(1); + modes.push_back(Reactive); + } SetupZones(); } diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 3a59fcbaf..c68270d33 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -372,6 +372,16 @@ void RazerController::SetModeWave() razer_set_mode_wave(); } +bool RazerController::SupportsReactive() +{ + return(false); +} + +bool RazerController::SupportsWave() +{ + return(false); +} + /*-------------------------------------------------------------------------------------------------*\ | Private packet sending functions. | \*-------------------------------------------------------------------------------------------------*/ diff --git a/Controllers/RazerController/RazerController.h b/Controllers/RazerController/RazerController.h index 6fb8d1444..092e66116 100644 --- a/Controllers/RazerController/RazerController.h +++ b/Controllers/RazerController/RazerController.h @@ -180,6 +180,9 @@ public: void SetModeStatic(unsigned char red, unsigned char grn, unsigned char blu); void SetModeWave(); + bool SupportsReactive(); + bool SupportsWave(); + private: hid_device* dev; hid_device* dev_argb;