From c83ab4bbf682c99d6714bce11b9f0bfb2b05babf Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 15 Apr 2021 23:42:30 -0500 Subject: [PATCH] Add wave mode function parameter for direction --- .../RazerController/RGBController_Razer.cpp | 2 +- .../RGBController_RazerAddressable.cpp | 40 ++++++++++--------- .../RazerController/RazerController.cpp | 10 ++--- Controllers/RazerController/RazerController.h | 4 +- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/Controllers/RazerController/RGBController_Razer.cpp b/Controllers/RazerController/RGBController_Razer.cpp index 2a1717f0..0f3d841b 100644 --- a/Controllers/RazerController/RGBController_Razer.cpp +++ b/Controllers/RazerController/RGBController_Razer.cpp @@ -249,7 +249,7 @@ void RGBController_Razer::DeviceUpdateMode() break; case RAZER_MODE_WAVE: - controller->SetModeWave(); + controller->SetModeWave('0'); break; } } diff --git a/Controllers/RazerController/RGBController_RazerAddressable.cpp b/Controllers/RazerController/RGBController_RazerAddressable.cpp index 551a3f92..73f1eaaa 100644 --- a/Controllers/RazerController/RGBController_RazerAddressable.cpp +++ b/Controllers/RazerController/RGBController_RazerAddressable.cpp @@ -56,24 +56,28 @@ RGBController_RazerAddressable::RGBController_RazerAddressable(RazerController* SpectrumCycle.color_mode = MODE_COLORS_NONE; modes.push_back(SpectrumCycle); - // Wave disabled until proper detection - //mode Wave; - //Wave.name = "Wave"; - //Wave.value = RAZER_ADDRESSABLE_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_ADDRESSABLE_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_ADDRESSABLE_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_ADDRESSABLE_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(); } @@ -287,7 +291,7 @@ void RGBController_RazerAddressable::DeviceUpdateMode() break; case RAZER_ADDRESSABLE_MODE_WAVE: - controller->SetModeWave(); + controller->SetModeWave('0'); break; } } diff --git a/Controllers/RazerController/RazerController.cpp b/Controllers/RazerController/RazerController.cpp index 3b1091ff..e603f142 100644 --- a/Controllers/RazerController/RazerController.cpp +++ b/Controllers/RazerController/RazerController.cpp @@ -367,9 +367,9 @@ void RazerController::SetModeStatic(unsigned char red, unsigned char grn, unsign razer_set_mode_static(red, grn, blu); } -void RazerController::SetModeWave() +void RazerController::SetModeWave(unsigned char direction) { - razer_set_mode_wave(); + razer_set_mode_wave(direction); } bool RazerController::SupportsReactive() @@ -1385,13 +1385,11 @@ void RazerController::razer_set_mode_static(unsigned char red, unsigned char grn } } -void RazerController::razer_set_mode_wave() +void RazerController::razer_set_mode_wave(unsigned char direction) { - unsigned char direction = 0x01; - razer_report report; - switch(dev_pid) + switch(matrix_type) { case RAZER_MATRIX_TYPE_STANDARD: case RAZER_MATRIX_TYPE_LINEAR: diff --git a/Controllers/RazerController/RazerController.h b/Controllers/RazerController/RazerController.h index 092e6611..8a659199 100644 --- a/Controllers/RazerController/RazerController.h +++ b/Controllers/RazerController/RazerController.h @@ -178,7 +178,7 @@ public: void SetModeOff(); void SetModeSpectrumCycle(); void SetModeStatic(unsigned char red, unsigned char grn, unsigned char blu); - void SetModeWave(); + void SetModeWave(unsigned char direction); bool SupportsReactive(); bool SupportsWave(); @@ -268,7 +268,7 @@ private: void razer_set_mode_none(); void razer_set_mode_spectrum_cycle(); void razer_set_mode_static(unsigned char red, unsigned char grn, unsigned char blu); - void razer_set_mode_wave(); + void razer_set_mode_wave(unsigned char direction); int razer_usb_receive(razer_report* report); int razer_usb_send(razer_report* report);