From 23d51f65d00f9422d592c4fd406a022d0dbb1901 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 12 May 2020 15:02:02 -0500 Subject: [PATCH] Only update mode for zones with nonzero size --- .../AuraAddressableController.cpp | 28 +++++++------- .../AuraAddressableController.h | 9 +++-- .../AuraMainboardController.cpp | 38 +++++++++---------- .../AuraMainboardController.h | 9 +++-- .../AuraUSBController/AuraUSBController.h | 10 +++-- RGBController/RGBController_AuraUSB.cpp | 8 +++- 6 files changed, 54 insertions(+), 48 deletions(-) diff --git a/Controllers/AuraUSBController/AuraAddressableController.cpp b/Controllers/AuraUSBController/AuraAddressableController.cpp index bc2b1ea6..497f7aca 100644 --- a/Controllers/AuraUSBController/AuraAddressableController.cpp +++ b/Controllers/AuraUSBController/AuraAddressableController.cpp @@ -56,23 +56,21 @@ void AuraAddressableController::SetChannelLEDs(unsigned char channel, RGBColor * void AuraAddressableController::SetMode ( - unsigned char mode, - unsigned char red, - unsigned char grn, - unsigned char blu + unsigned char channel, + unsigned char mode, + unsigned char red, + unsigned char grn, + unsigned char blu ) { - for(int channel_idx = 0; channel_idx < GetChannelCount(); channel_idx++) - { - SendEffect - ( - channel_idx, - mode, - red, - grn, - blu - ); - } + SendEffect + ( + channel, + mode, + red, + grn, + blu + ); } void AuraAddressableController::SendEffect diff --git a/Controllers/AuraUSBController/AuraAddressableController.h b/Controllers/AuraUSBController/AuraAddressableController.h index 1acede8d..53cbb55b 100644 --- a/Controllers/AuraUSBController/AuraAddressableController.h +++ b/Controllers/AuraUSBController/AuraAddressableController.h @@ -36,10 +36,11 @@ public: void SetMode ( - unsigned char mode, - unsigned char red, - unsigned char grn, - unsigned char blu + unsigned char channel, + unsigned char mode, + unsigned char red, + unsigned char grn, + unsigned char blu ); private: diff --git a/Controllers/AuraUSBController/AuraMainboardController.cpp b/Controllers/AuraUSBController/AuraMainboardController.cpp index 3814f0a0..d52145c1 100644 --- a/Controllers/AuraUSBController/AuraMainboardController.cpp +++ b/Controllers/AuraUSBController/AuraMainboardController.cpp @@ -57,10 +57,11 @@ void AuraMainboardController::SetChannelLEDs(unsigned char channel, RGBColor * c void AuraMainboardController::SetMode ( - unsigned char mode, - unsigned char red, - unsigned char grn, - unsigned char blu + unsigned char channel, + unsigned char mode, + unsigned char red, + unsigned char grn, + unsigned char blu ) { this->mode = mode; @@ -69,22 +70,19 @@ void AuraMainboardController::SetMode led_data[1] = grn; led_data[2] = blu; - for(int channel_idx = 0; channel_idx < GetChannelCount(); channel_idx++) - { - SendEffect - ( - channel_idx, - mode - ); - SendDirect - ( - channel_idx, - 0, - 1, - led_data - ); - SendCommit(); - } + SendEffect + ( + channel, + mode + ); + SendDirect + ( + channel, + 0, + 1, + led_data + ); + SendCommit(); } void AuraMainboardController::SendEffect diff --git a/Controllers/AuraUSBController/AuraMainboardController.h b/Controllers/AuraUSBController/AuraMainboardController.h index 55475192..06ab108a 100644 --- a/Controllers/AuraUSBController/AuraMainboardController.h +++ b/Controllers/AuraUSBController/AuraMainboardController.h @@ -37,10 +37,11 @@ public: void SetMode ( - unsigned char mode, - unsigned char red, - unsigned char grn, - unsigned char blu + unsigned char channel, + unsigned char mode, + unsigned char red, + unsigned char grn, + unsigned char blu ); private: diff --git a/Controllers/AuraUSBController/AuraUSBController.h b/Controllers/AuraUSBController/AuraUSBController.h index b2e0fc81..44af3dd6 100644 --- a/Controllers/AuraUSBController/AuraUSBController.h +++ b/Controllers/AuraUSBController/AuraUSBController.h @@ -59,11 +59,13 @@ public: virtual void SetMode ( - unsigned char mode, - unsigned char red, - unsigned char grn, - unsigned char blu + unsigned char channel, + unsigned char mode, + unsigned char red, + unsigned char grn, + unsigned char blu ) = 0; + protected: hid_device* dev; private: diff --git a/RGBController/RGBController_AuraUSB.cpp b/RGBController/RGBController_AuraUSB.cpp index 1506c647..14f6c30a 100644 --- a/RGBController/RGBController_AuraUSB.cpp +++ b/RGBController/RGBController_AuraUSB.cpp @@ -212,5 +212,11 @@ void RGBController_AuraUSB::UpdateMode() blu = RGBGetBValue(modes[active_mode].colors[0]); } - aura->SetMode(modes[active_mode].value, red, grn, blu); + for(unsigned int zone_idx; zone_idx < zones.size(); zone_idx++) + { + if(zones[zone_idx].leds_count > 0) + { + aura->SetMode(zone_idx, modes[active_mode].value, red, grn, blu); + } + } }