From 23ad5ca244ea978ea225343ad584ed492c6bbe69 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sun, 8 Mar 2020 20:51:30 -0500 Subject: [PATCH] Fix setting individual LEDs when a specific zone is selected --- RGBController/RGBController.cpp | 2 ++ RGBController/RGBController.h | 1 + qt/OpenRGBDevicePage.cpp | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/RGBController/RGBController.cpp b/RGBController/RGBController.cpp index b3ee62b9..3b3c1d93 100644 --- a/RGBController/RGBController.cpp +++ b/RGBController/RGBController.cpp @@ -687,6 +687,8 @@ void RGBController::SetupColors() for(int zone_idx = 0; zone_idx < zones.size(); zone_idx++) { + zones[zone_idx].start_idx=total_led_count; + if(colors.size() > 0) { zones[zone_idx].colors = &colors[total_led_count]; diff --git a/RGBController/RGBController.h b/RGBController/RGBController.h index 4e8cd5af..0e03665d 100644 --- a/RGBController/RGBController.h +++ b/RGBController/RGBController.h @@ -121,6 +121,7 @@ typedef struct zone_type type; /* Zone type */ led * leds; /* List of LEDs in zone */ RGBColor * colors; /* Colors of LEDs in zone */ + unsigned int start_idx; /* Start index of led/color */ unsigned int leds_count; /* Number of LEDs in zone */ unsigned int leds_min; /* Minimum number of LEDs */ unsigned int leds_max; /* Maximum number of LEDs */ diff --git a/qt/OpenRGBDevicePage.cpp b/qt/OpenRGBDevicePage.cpp index c91fe963..b02f17aa 100644 --- a/qt/OpenRGBDevicePage.cpp +++ b/qt/OpenRGBDevicePage.cpp @@ -760,7 +760,7 @@ void Ui::OpenRGBDevicePage::on_SetLEDButton_clicked() { selected_zone = selected_zone - 1; - device->zones[selected_zone].colors[index] = color; + device->SetLED(device->zones[selected_zone].start_idx + index, color); } } break;