diff --git a/Controllers/A4TechController/BloodyB820RController/RGBController_BloodyB820R.cpp b/Controllers/A4TechController/BloodyB820RController/RGBController_BloodyB820R.cpp index 7542041ba..1de1b70a5 100644 --- a/Controllers/A4TechController/BloodyB820RController/RGBController_BloodyB820R.cpp +++ b/Controllers/A4TechController/BloodyB820RController/RGBController_BloodyB820R.cpp @@ -205,7 +205,6 @@ void RGBController_BloodyB820R::SetupZones() { led new_led; new_led.name = led_names[led_index]; - new_led.value = led_index; leds.push_back(new_led); } diff --git a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp index a7215b81a..3ff79bfaa 100644 --- a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp +++ b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.cpp @@ -67,13 +67,13 @@ void BloodyMouseController::InitDevice() hid_send_feature_report(dev, buffer, BLOODYMOUSE_WRITE_PACKET_SIZE); } -void BloodyMouseController::SetLedsDirect(std::vector colors) +void BloodyMouseController::SetLedsDirect(std::vector colors, std::vector offsets) { 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; + uint8_t offset = 3 * (offsets[i]) + BLOODYMOUSE_DATA_BYTE; buffer[offset] = RGBGetRValue(colors[i]); buffer[offset + 1] = RGBGetGValue(colors[i]); diff --git a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h index 14ebda533..eef73cb73 100644 --- a/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h +++ b/Controllers/A4TechController/BloodyMouseController/BloodyMouseController.h @@ -58,7 +58,7 @@ public: std::string GetLocation(); std::string GetName(); - void SetLedsDirect(std::vector colors); + void SetLedsDirect(std::vector colors, std::vector offsets); private: uint16_t pid; diff --git a/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp b/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp index 0ca8d3dfa..2750cbe1f 100644 --- a/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp +++ b/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.cpp @@ -142,7 +142,7 @@ void RGBController_BloodyMouse::SetupZones() { led new_led; - new_led.value = mz.zone_leds[lp_idx]; + offsets.push_back(mz.zone_leds[lp_idx]); if(bool_single) { @@ -163,14 +163,7 @@ void RGBController_BloodyMouse::SetupZones() void RGBController_BloodyMouse::DeviceUpdateLEDs() { - std::vector colour; - for(size_t i = 0; i < colors.size(); i++) - { - RGBColor c = colors[i] | (leds[i].value << 24); - colour.push_back(c); - } - - controller->SetLedsDirect(colour); + controller->SetLedsDirect(colors, offsets); } void RGBController_BloodyMouse::DeviceUpdateZoneLEDs(int /*zone*/) diff --git a/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.h b/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.h index 829ee3f84..106617aaf 100644 --- a/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.h +++ b/Controllers/A4TechController/BloodyMouseController/RGBController_BloodyMouse.h @@ -39,4 +39,5 @@ public: private: BloodyMouseController* controller; + std::vector offsets; }; diff --git a/Controllers/AMBXController/AMBXController.cpp b/Controllers/AMBXController/AMBXController.cpp index 4eb4ae8ea..c2539c36e 100644 --- a/Controllers/AMBXController/AMBXController.cpp +++ b/Controllers/AMBXController/AMBXController.cpp @@ -186,7 +186,7 @@ void AMBXController::SetLEDColor(unsigned int led, RGBColor color) std::this_thread::sleep_for(std::chrono::milliseconds(2)); } -void AMBXController::SetLEDColors(unsigned int* leds, RGBColor* colors, unsigned int count) +void AMBXController::SetLEDColors(const unsigned int* leds, RGBColor* colors, unsigned int count) { for(unsigned int i = 0; i < count; i++) { diff --git a/Controllers/AMBXController/AMBXController.h b/Controllers/AMBXController/AMBXController.h index bb918c290..4cc96f1d8 100644 --- a/Controllers/AMBXController/AMBXController.h +++ b/Controllers/AMBXController/AMBXController.h @@ -44,7 +44,7 @@ public: bool IsInitialized(); void SetLEDColor(unsigned int led, RGBColor color); - void SetLEDColors(unsigned int* leds, RGBColor* colors, unsigned int count); + void SetLEDColors(const unsigned int* leds, RGBColor* colors, unsigned int count); private: libusb_context* usb_context; diff --git a/Controllers/AMBXController/RGBController_AMBX.cpp b/Controllers/AMBXController/RGBController_AMBX.cpp index a543c791d..ad7ee2081 100644 --- a/Controllers/AMBXController/RGBController_AMBX.cpp +++ b/Controllers/AMBXController/RGBController_AMBX.cpp @@ -9,6 +9,15 @@ #include "RGBController_AMBX.h" +static const unsigned int led_values[] = +{ + AMBX_LIGHT_LEFT, + AMBX_LIGHT_RIGHT, + AMBX_LIGHT_WALL_LEFT, + AMBX_LIGHT_WALL_CENTER, + AMBX_LIGHT_WALL_RIGHT +}; + /**------------------------------------------------------------------*\ @name Philips amBX @category Accessory @@ -71,27 +80,22 @@ void RGBController_AMBX::SetupZones() // Set up LEDs led left_light; left_light.name = "Left"; - left_light.value = AMBX_LIGHT_LEFT; leds.push_back(left_light); led right_light; right_light.name = "Right"; - right_light.value = AMBX_LIGHT_RIGHT; leds.push_back(right_light); led wall_left; wall_left.name = "Wall Left"; - wall_left.value = AMBX_LIGHT_WALL_LEFT; leds.push_back(wall_left); led wall_center; wall_center.name = "Wall Center"; - wall_center.value = AMBX_LIGHT_WALL_CENTER; leds.push_back(wall_center); led wall_right; wall_right.name = "Wall Right"; - wall_right.value = AMBX_LIGHT_WALL_RIGHT; leds.push_back(wall_right); SetupColors(); @@ -104,16 +108,7 @@ void RGBController_AMBX::DeviceUpdateLEDs() return; } - unsigned int led_values[5]; - RGBColor led_colors[5]; - - for(unsigned int led_idx = 0; led_idx < leds.size(); led_idx++) - { - led_values[led_idx] = leds[led_idx].value; - led_colors[led_idx] = colors[led_idx]; - } - - controller->SetLEDColors(led_values, led_colors, static_cast(leds.size())); + controller->SetLEDColors(led_values, colors.data(), static_cast(colors.size())); } void RGBController_AMBX::DeviceUpdateZoneLEDs(int zone) @@ -138,17 +133,17 @@ void RGBController_AMBX::DeviceUpdateZoneLEDs(int zone) start_idx += zones[z_idx].leds_count; } - unsigned int led_values[5]; - RGBColor led_colors[5]; + unsigned int tmp_values[5]; + RGBColor tmp_colors[5]; for(unsigned int led_idx = 0; led_idx < zone_size; led_idx++) { unsigned int current_idx = start_idx + led_idx; - led_values[led_idx] = leds[current_idx].value; - led_colors[led_idx] = colors[current_idx]; + tmp_values[led_idx] = led_values[current_idx]; + tmp_colors[led_idx] = colors[current_idx]; } - controller->SetLEDColors(led_values, led_colors, zone_size); + controller->SetLEDColors(tmp_values, tmp_colors, zone_size); } void RGBController_AMBX::DeviceUpdateSingleLED(int led) @@ -158,7 +153,7 @@ void RGBController_AMBX::DeviceUpdateSingleLED(int led) return; } - unsigned int led_value = leds[led].value; + unsigned int led_value = led_values[led]; RGBColor color = colors[led]; controller->SetLEDColor(led_value, color); } diff --git a/Controllers/AMDWraithPrismController/RGBController_AMDWraithPrism.cpp b/Controllers/AMDWraithPrismController/RGBController_AMDWraithPrism.cpp index d619c78fd..870d8863c 100644 --- a/Controllers/AMDWraithPrismController/RGBController_AMDWraithPrism.cpp +++ b/Controllers/AMDWraithPrismController/RGBController_AMDWraithPrism.cpp @@ -11,6 +11,33 @@ #include "RGBController_AMDWraithPrism.h" +/*---------------------------------------------------------*\ +| LED maps | +\*---------------------------------------------------------*/ +const unsigned char led_values[] = +{ + // Logo + 0x00, + // Fan + 0x01, + // Ring + 0x08, + 0x07, + 0x06, + 0x05, + 0x04, + 0x03, + 0x02, + 0x10, + 0x0F, + 0x0E, + 0x0D, + 0x0C, + 0x0B, + 0x0A, + 0x09 +}; + /**------------------------------------------------------------------*\ @name AMD Wraith Prism @category Cooler @@ -139,14 +166,6 @@ RGBController_AMDWraithPrism::~RGBController_AMDWraithPrism() void RGBController_AMDWraithPrism::SetupZones() { - /*-----------------------------------------------------*\ - | LED maps | - \*-----------------------------------------------------*/ - const unsigned int logo_leds[1] = { 0x00 }; - const unsigned int fan_leds[1] = { 0x01 }; - const unsigned int ring_leds[15] = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x10, - 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09 }; - /*-----------------------------------------------------*\ | Set up zones | \*-----------------------------------------------------*/ @@ -181,7 +200,6 @@ void RGBController_AMDWraithPrism::SetupZones() { led logo_led; logo_led.name = "Logo LED"; - logo_led.value = logo_leds[led_idx]; leds.push_back(logo_led); } @@ -189,7 +207,6 @@ void RGBController_AMDWraithPrism::SetupZones() { led fan_led; fan_led.name = "Fan LED"; - fan_led.value = fan_leds[led_idx]; leds.push_back(fan_led); } @@ -197,7 +214,6 @@ void RGBController_AMDWraithPrism::SetupZones() { led ring_led; ring_led.name = "Ring LED"; - ring_led.value = ring_leds[led_idx]; leds.push_back(ring_led); } @@ -218,7 +234,7 @@ void RGBController_AMDWraithPrism::DeviceUpdateLEDs() leds_count = 0; for(std::size_t led_idx = 0; led_idx < 2; led_idx++) { - led_ids[leds_count] = (unsigned char)leds[led_idx].value; + led_ids[leds_count] = led_values[led_idx]; color_buf[leds_count] = colors[led_idx]; leds_count++; @@ -231,7 +247,7 @@ void RGBController_AMDWraithPrism::DeviceUpdateLEDs() leds_count = 0; for(std::size_t led_idx = 0; led_idx < ( colors.size() - 2 ); led_idx++) { - led_ids[leds_count] = (unsigned char)leds[led_idx + 2].value; + led_ids[leds_count] = led_values[led_idx + 2]; color_buf[leds_count] = colors[led_idx + 2]; leds_count++; diff --git a/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.cpp b/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.cpp index 5793a5af1..1160a4b8c 100644 --- a/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.cpp +++ b/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.cpp @@ -286,7 +286,7 @@ void RGBController_AOCKeyboard::SetupZones() led new_led; new_led.name = new_kb.GetKeyNameAt(led_idx); - new_led.value = new_kb.GetKeyValueAt(led_idx); + led_values.push_back(new_kb.GetKeyValueAt(led_idx)); leds.push_back(new_led); } @@ -303,7 +303,7 @@ void RGBController_AOCKeyboard::DeviceUpdateLEDs() for(unsigned int led_idx = 0; led_idx < leds.size(); led_idx++) { - color_buf[leds[led_idx].value] = colors[led_idx]; + color_buf[led_values[led_idx]] = colors[led_idx]; } controller->SetCustom(&color_buf[0]); diff --git a/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.h b/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.h index e4a877f38..ab581b0be 100644 --- a/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.h +++ b/Controllers/AOCKeyboardController/RGBController_AOCKeyboard.h @@ -29,5 +29,6 @@ public: void DeviceUpdateMode(); private: - AOCKeyboardController* controller; + AOCKeyboardController* controller; + std::vector led_values; }; diff --git a/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.cpp b/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.cpp index ffb2a577f..8a6be661c 100755 --- a/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.cpp +++ b/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.cpp @@ -269,9 +269,9 @@ void RGBController_PolychromeUSB::SetupZones() new_led.name = zones[channel_idx].name; new_led.name.append(", LED "); new_led.name.append(std::to_string(led_ch_idx + 1)); - new_led.value = channel_idx; leds.push_back(new_led); + led_values.push_back(channel_idx); } } @@ -296,7 +296,7 @@ void RGBController_PolychromeUSB::SetupZones() \*---------------------------------------------------------*/ for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - unsigned char led = (unsigned char)leds[led_idx].value; + unsigned char led = (unsigned char)led_values[led_idx]; colors[led_idx] = zones_info[led].color; } @@ -359,7 +359,7 @@ void RGBController_PolychromeUSB::DeviceUpdateZoneLEDs(int zone) void RGBController_PolychromeUSB::DeviceUpdateSingleLED(int led) { - unsigned int channel = leds[led].value; + unsigned int channel = led_values[led]; unsigned char set_mode = zones_info[channel].mode; if(set_mode > modes.size()) diff --git a/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.h b/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.h index b37b9ed92..f1463fcd3 100755 --- a/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.h +++ b/Controllers/ASRockPolychromeUSBController/RGBController_ASRockPolychromeUSB.h @@ -33,6 +33,7 @@ public: private: PolychromeUSBController* controller; + std::vector led_values; std::vector zones_info; unsigned char GetDeviceMode(unsigned char zone); diff --git a/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.cpp b/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.cpp index 14487ccda..c6cf0bcd1 100644 --- a/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.cpp +++ b/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.cpp @@ -158,6 +158,11 @@ void RGBController_ASRockASRRGBSMBus::SetupZones() \*---------------------------------------------------------*/ leds.push_back(*new_led); + /*---------------------------------------------------------*\ + | Initialize led_values vector | + \*---------------------------------------------------------*/ + led_values.push_back(0); + SetupColors(); } @@ -184,9 +189,9 @@ void RGBController_ASRockASRRGBSMBus::DeviceUpdateSingleLED(int led) | If the LED value is non-zero, this LED overrides the LED | | index | \*---------------------------------------------------------*/ - if(leds[led].value != 0) + if(led_values[led] != 0) { - led = leds[led].value; + led = led_values[led]; } controller->SetColorsAndSpeed(led, red, grn, blu); diff --git a/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.h b/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.h index 02155a9c5..322c88cb0 100644 --- a/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.h +++ b/Controllers/ASRockSMBusController/ASRockASRRGBSMBusController/RGBController_ASRockASRRGBSMBus.h @@ -30,4 +30,5 @@ public: private: ASRockASRRGBSMBusController* controller; + std::vector led_values; }; diff --git a/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.cpp b/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.cpp index 90a42b482..9d7a41c48 100644 --- a/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.cpp +++ b/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.cpp @@ -285,13 +285,13 @@ void RGBController_ASRockPolychromeV1SMBus::SetupZones() led* new_led = new led(); new_led->name = polychrome_v1_zone_names[zone_idx]; - new_led->value = zone_idx; /*---------------------------------------------------------*\ | Push new LED to LEDs vector | \*---------------------------------------------------------*/ leds.push_back(*new_led); zoneIndexMap.push_back(zone_idx); + led_values.push_back(zone_idx); } } diff --git a/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.h b/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.h index 5f7fa2845..0183f5136 100644 --- a/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.h +++ b/Controllers/ASRockSMBusController/ASRockPolychromeV1SMBusController/RGBController_ASRockPolychromeV1SMBus.h @@ -32,7 +32,9 @@ public: void DeviceUpdateMode(); private: - ASRockPolychromeV1SMBusController* controller; - uint8_t getModeIndex(uint8_t mode_value); - std::vector zoneIndexMap; + ASRockPolychromeV1SMBusController* controller; + std::vector led_values; + std::vector zoneIndexMap; + + uint8_t getModeIndex(uint8_t mode_value); }; diff --git a/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.cpp b/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.cpp index 5edd065b8..9ebabc83e 100644 --- a/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.cpp +++ b/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.cpp @@ -256,11 +256,14 @@ void RGBController_ASRockPolychromeV2SMBus::SetupZones() new_led->name = polychrome_v2_zone_names[zone_idx]; new_led->name.append(" " + std::to_string(led_idx + 1)); - new_led->value = 0; if(zone_idx == POLYCHROME_V2_ZONE_ADDRESSABLE) { - new_led->value = 0x19; + led_values.push_back(0x19); + } + else + { + led_values.push_back(0); } /*---------------------------------------------------------*\ @@ -311,9 +314,9 @@ void RGBController_ASRockPolychromeV2SMBus::DeviceUpdateSingleLED(int led) | If the LED value is non-zero, this LED overrides the LED | | index | \*---------------------------------------------------------*/ - if(leds[led].value != 0) + if(led_values[led] != 0) { - led = leds[led].value; + led = led_values[led]; } controller->SetColorsAndSpeed(led, red, grn, blu); diff --git a/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.h b/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.h index e2332dd51..fa47689df 100644 --- a/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.h +++ b/Controllers/ASRockSMBusController/ASRockPolychromeV2SMBusController/RGBController_ASRockPolychromeV2SMBus.h @@ -32,5 +32,6 @@ public: void DeviceUpdateMode(); private: - ASRockPolychromeV2SMBusController* controller; + ASRockPolychromeV2SMBusController* controller; + std::vector led_values; }; diff --git a/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.cpp b/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.cpp index 8b276783f..ac17c5384 100644 --- a/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.cpp +++ b/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.cpp @@ -313,7 +313,7 @@ void RGBController_AlienwareAW410K::SetupZones() { led new_led; new_led.name = led_names[led_idx].name; - new_led.value = led_names[led_idx].idx; + led_values.push_back(led_names[led_idx].idx); leds.push_back(new_led); } @@ -329,14 +329,14 @@ void RGBController_AlienwareAW410K::DeviceUpdateLEDs() for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - SelectedButtons key; + 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]); + key.idx = led_values[led_idx]; + key.red = RGBGetRValue(colors[led_idx]); + key.green = RGBGetGValue(colors[led_idx]); + key.blue = RGBGetBValue(colors[led_idx]); - frame_buf_keys.push_back(key); + frame_buf_keys.push_back(key); } controller->SendInitialize(); @@ -358,7 +358,7 @@ void RGBController_AlienwareAW410K::DeviceUpdateZoneLEDs(int zone) void RGBController_AlienwareAW410K::DeviceUpdateSingleLED(int led) { - controller->DeviceUpdateSingleLED(leds[led].value, RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led])); + controller->DeviceUpdateSingleLED(led_values[led], RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led])); } void RGBController_AlienwareAW410K::DeviceUpdateMode() diff --git a/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.h b/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.h index 51a9c4b82..f21cb20f6 100644 --- a/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.h +++ b/Controllers/AlienwareKeyboardController/AlienwareAW410KController/RGBController_AlienwareAW410K.h @@ -32,4 +32,5 @@ public: private: AlienwareAW410KController* controller; std::vector current_colors; + std::vector led_values; }; diff --git a/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.cpp b/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.cpp index 98d3f36d1..9b7faa852 100644 --- a/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.cpp +++ b/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.cpp @@ -312,7 +312,7 @@ void RGBController_AlienwareAW510K::SetupZones() { led new_led; new_led.name = led_names[led_idx].name; - new_led.value = led_names[led_idx].idx; + led_values.push_back(led_names[led_idx].idx); leds.push_back(new_led); } @@ -328,7 +328,7 @@ void RGBController_AlienwareAW510K::DeviceUpdateLEDs() for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - if (current_colors[led_idx]==new_colors[led_idx]) + if(current_colors[led_idx] == new_colors[led_idx]) { /*-------------------------------------------------*\ | Don't send if key color is not changed | @@ -336,28 +336,14 @@ void RGBController_AlienwareAW510K::DeviceUpdateLEDs() continue; } - if(RGBGetRValue(colors[led_idx]) != 0x00 || RGBGetBValue(colors[led_idx]) != 0x00 || RGBGetBValue(colors[led_idx]) != 0x00) - { - SelectedKeys key; + SelectedKeys 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]); + key.idx = led_values[led_idx]; + key.red = RGBGetRValue(colors[led_idx]); + key.green = RGBGetGValue(colors[led_idx]); + key.blue = RGBGetBValue(colors[led_idx]); - frame_buf_keys.push_back(key); - } - else - { - SelectedKeys 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); - } + frame_buf_keys.push_back(key); } controller->SendInitialize(); @@ -379,7 +365,7 @@ void RGBController_AlienwareAW510K::DeviceUpdateZoneLEDs(int zone) void RGBController_AlienwareAW510K::DeviceUpdateSingleLED(int led) { - controller->DeviceUpdateSingleLED(leds[led].value, RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led])); + controller->DeviceUpdateSingleLED(led_values[led], RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led])); } void RGBController_AlienwareAW510K::DeviceUpdateMode() diff --git a/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.h b/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.h index 4342505a3..e0fc8ef80 100644 --- a/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.h +++ b/Controllers/AlienwareKeyboardController/AlienwareAW510KController/RGBController_AlienwareAW510K.h @@ -31,4 +31,5 @@ public: private: AlienwareAW510KController* controller; std::vector current_colors; + std::vector led_values; }; diff --git a/Controllers/AlienwareMonitorController/RGBController_AlienwareAW3423DWF.cpp b/Controllers/AlienwareMonitorController/RGBController_AlienwareAW3423DWF.cpp index 4409f82dd..5ea60be84 100644 --- a/Controllers/AlienwareMonitorController/RGBController_AlienwareAW3423DWF.cpp +++ b/Controllers/AlienwareMonitorController/RGBController_AlienwareAW3423DWF.cpp @@ -11,6 +11,13 @@ #include "RGBController_AlienwareAW3423DWF.h" +static const unsigned char led_values[] = +{ + 0x01, + 0x02, + 0x08 +}; + /**------------------------------------------------------------------*\ @name AW3423DWF @category Accessory @@ -63,7 +70,6 @@ void RGBController_AlienwareAW3423DWF::SetupZones() led Logo_LED; Logo_LED.name = "Logo"; - Logo_LED.value = 0x01; leds.push_back(Logo_LED); zone Number; @@ -76,7 +82,6 @@ void RGBController_AlienwareAW3423DWF::SetupZones() led Number_LED; Number_LED.name = "Number"; - Number_LED.value = 0x02; leds.push_back(Number_LED); zone PowerButton; @@ -89,7 +94,6 @@ void RGBController_AlienwareAW3423DWF::SetupZones() led PowerButton_LED; PowerButton_LED.name = "Power Button"; - PowerButton_LED.value = 0x08; leds.push_back(PowerButton_LED); SetupColors(); @@ -128,7 +132,7 @@ void RGBController_AlienwareAW3423DWF::DeviceUpdateSingleLED(int led) unsigned char red = RGBGetRValue(colors[led]); unsigned char grn = RGBGetGValue(colors[led]); unsigned char blu = RGBGetBValue(colors[led]); - controller->SendColor(leds[led].value, red, grn, blu); + controller->SendColor(led_values[led], red, grn, blu); } void RGBController_AlienwareAW3423DWF::DeviceUpdateMode() diff --git a/Controllers/AlienwareMonitorController/RGBController_AlienwareMonitor.cpp b/Controllers/AlienwareMonitorController/RGBController_AlienwareMonitor.cpp index a64cc56c5..c9090e625 100644 --- a/Controllers/AlienwareMonitorController/RGBController_AlienwareMonitor.cpp +++ b/Controllers/AlienwareMonitorController/RGBController_AlienwareMonitor.cpp @@ -11,6 +11,13 @@ #include "RGBController_AlienwareMonitor.h" +static const unsigned char led_values[] = +{ + 0x01, + 0x02, + 0x08 +}; + /**------------------------------------------------------------------*\ @name Alienware Monitor @category Accessory @@ -63,7 +70,6 @@ void RGBController_AlienwareMonitor::SetupZones() led Logo_LED; Logo_LED.name = "Logo"; - Logo_LED.value = 0x01; leds.push_back(Logo_LED); zone Number; @@ -76,7 +82,6 @@ void RGBController_AlienwareMonitor::SetupZones() led Number_LED; Number_LED.name = "Number"; - Number_LED.value = 0x02; leds.push_back(Number_LED); zone PowerButton; @@ -89,7 +94,6 @@ void RGBController_AlienwareMonitor::SetupZones() led PowerButton_LED; PowerButton_LED.name = "Power Button"; - PowerButton_LED.value = 0x08; leds.push_back(PowerButton_LED); SetupColors(); @@ -128,7 +132,7 @@ void RGBController_AlienwareMonitor::DeviceUpdateSingleLED(int led) unsigned char red = RGBGetRValue(colors[led]); unsigned char grn = RGBGetGValue(colors[led]); unsigned char blu = RGBGetBValue(colors[led]); - controller->SendColor(leds[led].value, red, grn, blu); + controller->SendColor(led_values[led], red, grn, blu); } void RGBController_AlienwareMonitor::DeviceUpdateMode() diff --git a/Controllers/AnnePro2Controller/RGBController_AnnePro2.cpp b/Controllers/AnnePro2Controller/RGBController_AnnePro2.cpp index f90a689ba..117798393 100644 --- a/Controllers/AnnePro2Controller/RGBController_AnnePro2.cpp +++ b/Controllers/AnnePro2Controller/RGBController_AnnePro2.cpp @@ -38,76 +38,69 @@ static const unsigned int zone_sizes[] = LED_COUNT, }; -typedef struct +static const char* led_names[] = { - const char * name; - const unsigned char idx; -} annepro2_led_type; - -static const annepro2_led_type led_names[] = -{ - /* Key Label Index */ - { KEY_EN_ESCAPE, 0 }, - { KEY_EN_1, 1 }, - { KEY_EN_2, 2 }, - { KEY_EN_3, 3 }, - { KEY_EN_4, 4 }, - { KEY_EN_5, 5 }, - { KEY_EN_6, 6 }, - { KEY_EN_7, 7 }, - { KEY_EN_8, 8 }, - { KEY_EN_9, 9 }, - { KEY_EN_0, 10 }, - { KEY_EN_MINUS, 11 }, - { KEY_EN_EQUALS, 12 }, - { KEY_EN_BACKSPACE, 13 }, - { KEY_EN_TAB, 14 }, - { KEY_EN_Q, 15 }, - { KEY_EN_W, 16 }, - { KEY_EN_E, 17 }, - { KEY_EN_R, 18 }, - { KEY_EN_T, 19 }, - { KEY_EN_Y, 20 }, - { KEY_EN_U, 21 }, - { KEY_EN_I, 22 }, - { KEY_EN_O, 23 }, - { KEY_EN_P, 24 }, - { KEY_EN_LEFT_BRACKET, 25 }, - { KEY_EN_RIGHT_BRACKET, 26 }, - { KEY_EN_ANSI_BACK_SLASH, 27 }, - { KEY_EN_CAPS_LOCK, 28 }, - { KEY_EN_A, 29 }, - { KEY_EN_S, 30 }, - { KEY_EN_D, 31 }, - { KEY_EN_F, 32 }, - { KEY_EN_G, 33 }, - { KEY_EN_H, 34 }, - { KEY_EN_J, 35 }, - { KEY_EN_K, 36 }, - { KEY_EN_L, 37 }, - { KEY_EN_SEMICOLON, 38 }, - { KEY_EN_QUOTE, 39 }, - { KEY_EN_ANSI_ENTER, 40 }, - { KEY_EN_LEFT_SHIFT, 41 }, - { KEY_EN_Z, 42 }, - { KEY_EN_X, 43 }, - { KEY_EN_C, 44 }, - { KEY_EN_V, 45 }, - { KEY_EN_B, 46 }, - { KEY_EN_N, 47 }, - { KEY_EN_M, 48 }, - { KEY_EN_COMMA, 49 }, - { KEY_EN_PERIOD, 50 }, - { KEY_EN_FORWARD_SLASH, 51 }, - { KEY_EN_RIGHT_SHIFT, 52 }, - { KEY_EN_LEFT_CONTROL, 53 }, - { KEY_EN_LEFT_WINDOWS, 54 }, - { KEY_EN_LEFT_ALT, 55 }, - { KEY_EN_SPACE, 56 }, - { KEY_EN_RIGHT_ALT, 57 }, - { KEY_EN_RIGHT_FUNCTION, 58 }, - { KEY_EN_MENU, 59 }, - { KEY_EN_RIGHT_CONTROL, 60 }, + KEY_EN_ESCAPE, + 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_TAB, + 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_CAPS_LOCK, + 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_LEFT_SHIFT, + 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_LEFT_CONTROL, + 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, }; /**------------------------------------------------------------------*\ @@ -177,8 +170,7 @@ void RGBController_AnnePro2::SetupZones() 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; + new_led.name = led_names[led_idx]; leds.push_back(new_led); } @@ -194,7 +186,7 @@ void RGBController_AnnePro2::DeviceUpdateLEDs() | TODO: Send packets with multiple LED frames | \*---------------------------------------------------------*/ std::size_t led_real_idx = 0; - for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) + for(std::size_t led_idx = 0; led_idx < colors.size(); led_idx++) { frame_buf[(led_real_idx * 3) + 0] = RGBGetRValue(colors[led_idx]); frame_buf[(led_real_idx * 3) + 1] = RGBGetGValue(colors[led_idx]); diff --git a/Controllers/ArcticController/RGBController_Arctic.cpp b/Controllers/ArcticController/RGBController_Arctic.cpp index 5e46322fe..a38aeefb4 100644 --- a/Controllers/ArcticController/RGBController_Arctic.cpp +++ b/Controllers/ArcticController/RGBController_Arctic.cpp @@ -75,7 +75,6 @@ void RGBController_Arctic::SetupZones() led Led; Led.name = LedZone.name + " LED"; - Led.value = channel; zones.push_back(LedZone); leds.push_back(Led); diff --git a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.cpp b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.cpp index 7103fa60b..13b89d4f0 100644 --- a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.cpp +++ b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.cpp @@ -351,11 +351,14 @@ void RGBController_AsusAuraCoreLaptop::SetupZones() new_zone.leds_count = new_kb.GetKeyCount(); for(unsigned int led_idx = 0; led_idx < new_zone.leds_count; led_idx++) { - led new_led; + led new_led; + unsigned int new_led_value; new_led.name = new_kb.GetKeyNameAt(led_idx); - new_led.value = new_kb.GetKeyValueAt(led_idx); - max_led_value = std::max(max_led_value, new_led.value); + new_led_value = new_kb.GetKeyValueAt(led_idx); + max_led_value = std::max(max_led_value, new_led_value); + + led_values.push_back(new_led_value); leds.push_back(new_led); } } @@ -385,24 +388,12 @@ void RGBController_AsusAuraCoreLaptop::SetupZones() for(size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - buffer_map[leds[led_idx].value] = &colors[led_idx]; + buffer_map[led_values[led_idx]] = &colors[led_idx]; } } void RGBController_AsusAuraCoreLaptop::DeviceUpdateLEDs() { - for(size_t i = 85; i < leds.size(); i++) - { - LOG_DEBUG("[%s] Setting %s @ LED index %d and buffer index %d to R: %02X G: %02X B: %02X", - name.c_str(), - leds[i].name.c_str(), - i, - leds[i].value, - RGBGetRValue(colors[i]), - RGBGetGValue(colors[i]), - RGBGetBValue(colors[i])); - } - controller->SetLedsDirect(buffer_map); } diff --git a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.h b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.h index ae974102c..cd96ed44e 100644 --- a/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.h +++ b/Controllers/AsusAuraCoreController/AsusAuraCoreLaptopController/RGBController_AsusAuraCoreLaptop.h @@ -33,6 +33,7 @@ public: private: RGBColor null_color = 0; std::vector buffer_map; + std::vector led_values; AsusAuraCoreLaptopController* controller; }; diff --git a/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.cpp b/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.cpp index 513d0878a..4b46d7440 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.cpp @@ -471,8 +471,8 @@ void RGBController_AuraKeyboard::SetupZones() { led new_led; new_led.name = led_names[led_idx].name; - new_led.value = led_names[led_idx].idx; + led_values.push_back(led_names[led_idx].idx); leds.push_back(new_led); } @@ -493,7 +493,7 @@ void RGBController_AuraKeyboard::DeviceUpdateLEDs() \*---------------------------------------------------------*/ for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - frame_buf[(led_idx * 4) + 0] = leds[led_idx].value; + frame_buf[(led_idx * 4) + 0] = led_values[led_idx]; frame_buf[(led_idx * 4) + 1] = RGBGetRValue(colors[led_idx]); frame_buf[(led_idx * 4) + 2] = RGBGetGValue(colors[led_idx]); frame_buf[(led_idx * 4) + 3] = RGBGetBValue(colors[led_idx]); diff --git a/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.h b/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.h index 6c0d0c3a9..a1224b787 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.h +++ b/Controllers/AsusAuraUSBController/AsusAuraKeyboardController/RGBController_AsusAuraKeyboard.h @@ -54,4 +54,5 @@ public: private: AuraKeyboardController* controller; AuraKeyboardMappingLayoutType layout; + std::vector led_values; }; diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.cpp b/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.cpp index 1d5bc833e..95c0b8ff4 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.cpp @@ -207,8 +207,8 @@ void RGBController_AuraMouse::SetupZones() led mouse_led; mouse_led.name = mouse_zone.name + " LED"; - mouse_led.value = *zone_it; + led_values.push_back(*zone_it); leds.push_back(mouse_led); } @@ -247,7 +247,7 @@ void RGBController_AuraMouse::DeviceUpdateSingleLED(int led) uint8_t grn = RGBGetGValue(colors[led]); uint8_t blu = RGBGetBValue(colors[led]); - controller->SendUpdate(leds[led].value, modes[active_mode].value, red, grn, blu, 0, false, 0, modes[active_mode].brightness); + controller->SendUpdate(led_values[led], modes[active_mode].value, red, grn, blu, 0, false, 0, modes[active_mode].brightness); } void RGBController_AuraMouse::DeviceUpdateMode() diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.h b/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.h index 769a6ac91..a99d0ba54 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.h +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseController/RGBController_AsusAuraMouse.h @@ -31,5 +31,6 @@ public: private: AuraMouseController* controller; + std::vector led_values; uint16_t pid; }; diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGSpatha.cpp b/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGSpatha.cpp index 785c20931..a378ef13a 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGSpatha.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGSpatha.cpp @@ -141,7 +141,6 @@ void RGBController_AsusROGSpatha::SetupZones() led spatha_led; spatha_led.name = zones_names[i]; - spatha_led.value = 1; leds.push_back(spatha_led); } diff --git a/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGStrixEvolve.cpp b/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGStrixEvolve.cpp index 978754b13..785078784 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGStrixEvolve.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraMouseGen1Controller/RGBController_AsusROGStrixEvolve.cpp @@ -99,7 +99,6 @@ void RGBController_AsusROGStrixEvolve::SetupZones() led mouse_led; mouse_led.name = "Underglow"; - mouse_led.value = 1; leds.push_back(mouse_led); diff --git a/Controllers/AsusAuraUSBController/AsusAuraRyuoAIOController/RGBController_AsusAuraRyuoAIO.cpp b/Controllers/AsusAuraUSBController/AsusAuraRyuoAIOController/RGBController_AsusAuraRyuoAIO.cpp index 3fe0acfb6..6cdfc302a 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraRyuoAIOController/RGBController_AsusAuraRyuoAIO.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraRyuoAIOController/RGBController_AsusAuraRyuoAIO.cpp @@ -163,7 +163,6 @@ void RGBController_AsusAuraRyuoAIO::SetupZones() new_led.name = zones[zone_idx].name; new_led.name.append(" LED " + std::to_string(lp_idx)); - new_led.value = lp_idx; leds.push_back(new_led); } diff --git a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.cpp b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.cpp index a6ecc6006..4671d86d0 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.cpp +++ b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.cpp @@ -520,7 +520,7 @@ void RGBController_AuraTUFKeyboard::SetupZones() { led new_led; new_led.name = keyboard[layout].led_names[led_id].name; - new_led.value = keyboard[layout].led_names[led_id].id; + led_values.push_back(keyboard[layout].led_names[led_id].id); leds.push_back(new_led); } @@ -538,7 +538,7 @@ void RGBController_AuraTUFKeyboard::DeviceUpdateLEDs() for(size_t i = 0; i < colors.size(); i++) { - led_color_list.push_back({ leds[i].value, colors[i] }); + led_color_list.push_back({ led_values[i], colors[i] }); } controller->UpdateLeds(led_color_list); @@ -560,7 +560,7 @@ void RGBController_AuraTUFKeyboard::DeviceUpdateSingleLED(int led) unsigned char green = RGBGetGValue(colors[led]); unsigned char blue = RGBGetBValue(colors[led]); - controller->UpdateSingleLed(leds[led].value, red, green, blue); + controller->UpdateSingleLed(led_values[led], red, green, blue); } static const uint8_t direction_map[2][6] = diff --git a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.h b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.h index 0d10f51a2..955ded875 100644 --- a/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.h +++ b/Controllers/AsusAuraUSBController/AsusAuraTUFKeyboardController/RGBController_AsusAuraTUFKeyboard.h @@ -53,4 +53,5 @@ public: private: AuraTUFKeyboardController* controller; uint16_t pid; + std::vector led_values; }; diff --git a/Controllers/AsusAuraUSBController/AsusROGStrixLCController/RGBController_AsusROGStrixLC.cpp b/Controllers/AsusAuraUSBController/AsusROGStrixLCController/RGBController_AsusROGStrixLC.cpp index ec66e9880..4448b784c 100644 --- a/Controllers/AsusAuraUSBController/AsusROGStrixLCController/RGBController_AsusROGStrixLC.cpp +++ b/Controllers/AsusAuraUSBController/AsusROGStrixLCController/RGBController_AsusROGStrixLC.cpp @@ -164,7 +164,6 @@ void RGBController_AsusROGStrixLC::SetupZones() new_led.name = zones[zone_idx].name; new_led.name.append(" LED " + std::to_string(lp_idx)); - new_led.value = lp_idx; leds.push_back(new_led); } diff --git a/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp b/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp index 0085a430a..7885ec82a 100644 --- a/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp +++ b/Controllers/AsusLegacyUSBController/AsusStrixClawController/RGBController_AsusStrixClaw.cpp @@ -71,7 +71,6 @@ void RGBController_StrixClaw::SetupZones() led scroll_wheel_led; scroll_wheel_led.name = "Scroll Wheel LED"; - scroll_wheel_led.value = 1; leds.push_back(scroll_wheel_led); @@ -88,7 +87,6 @@ void RGBController_StrixClaw::SetupZones() led logo_led; logo_led.name = "Logo LED"; - logo_led.value = 1; leds.push_back(logo_led); diff --git a/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.cpp b/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.cpp index 142dec644..00381c5f5 100644 --- a/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.cpp +++ b/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.cpp @@ -241,9 +241,9 @@ void RGBController_ClevoKeyboard::SetupZones() led new_led; new_led.name = new_kb.GetKeyNameAt(led_idx); - new_led.value = new_kb.GetKeyValueAt(led_idx); leds.push_back(new_led); + led_values.push_back(new_kb.GetKeyValueAt(led_idx)); } SetupColors(); @@ -258,7 +258,7 @@ void RGBController_ClevoKeyboard::SetupZones() for(size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - buffer_map[leds[led_idx].value] = &colors[led_idx]; + buffer_map[led_values[led_idx]] = &colors[led_idx]; } } diff --git a/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.h b/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.h index 795611ba3..3d7658e59 100644 --- a/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.h +++ b/Controllers/ClevoKeyboardController/RGBController_ClevoKeyboard.h @@ -32,5 +32,6 @@ public: private: ClevoKeyboardController* controller; std::vector buffer_map; + std::vector led_values; RGBColor null_color; }; diff --git a/Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp b/Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp index b324b04c8..5e531701c 100644 --- a/Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp +++ b/Controllers/CoolerMasterController/CMGD160Controller/RGBController_CMGD160Controller.cpp @@ -159,7 +159,7 @@ void RGBController_CMGD160Controller::SetupZones() { led l; l.name = "Front LED " + std::to_string(i + 1); - l.value = i; + leds.push_back(l); } @@ -175,7 +175,7 @@ void RGBController_CMGD160Controller::SetupZones() { led l; l.name = "Back LED " + std::to_string(i + 1); - l.value = i; + leds.push_back(l); } diff --git a/Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp b/Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp index e73fbf5ba..0e80da367 100644 --- a/Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp +++ b/Controllers/CoolerMasterController/CMMM711Controller/RGBController_CMMM711Controller.cpp @@ -146,12 +146,10 @@ void RGBController_CMMM711Controller::Init_Controller() led wheel_led; wheel_led.name = "Scroll Wheel LED"; - wheel_led.value = 0; leds.push_back(wheel_led); led logo_led; logo_led.name = "Logo LED"; - logo_led.value = 1; leds.push_back(logo_led); } diff --git a/Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp b/Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp index 14ac338d6..1e5039d07 100644 --- a/Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp +++ b/Controllers/CoolerMasterController/CMMM712Controller/RGBController_CMMM712Controller.cpp @@ -139,7 +139,6 @@ void RGBController_CMMM712Controller::Init_Controller() led logo_led; logo_led.name = "Logo LED"; - logo_led.value = 0; leds.push_back(logo_led); } diff --git a/Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp b/Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp index 84f90b34f..258f95d95 100644 --- a/Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp +++ b/Controllers/CoolerMasterController/CMMMController/RGBController_CMMMController.cpp @@ -183,28 +183,24 @@ void RGBController_CMMMController::Init_Controller() mouse_zone.leds_count = leds_count; zones.push_back(mouse_zone); - int value = 0; uint16_t pid = controller->GetProductID(); led wheel_led; wheel_led.name = "Scroll Wheel"; - wheel_led.value = value; - leds.push_back(wheel_led); - value++; + leds.push_back(wheel_led); if(pid == 0x0065 || pid == 0x0097) { led buttons_led; buttons_led.name = "Buttons"; - buttons_led.value = value; + leds.push_back(buttons_led); - value++; } led logo_led; logo_led.name = "Logo"; - logo_led.value = value; + leds.push_back(logo_led); } diff --git a/Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp b/Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp index 073195aa6..fa6fd23fa 100644 --- a/Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp +++ b/Controllers/CoolerMasterController/CMMonitorController/RGBController_CMMonitorController.cpp @@ -162,7 +162,7 @@ void RGBController_CMMonitorController::SetupZones() { led l; l.name = std::to_string(i + 1); - l.value = i; + leds.push_back(l); } diff --git a/Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp b/Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp index 728b11a04..118b13256 100644 --- a/Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp +++ b/Controllers/CoolerMasterController/CMR6000Controller/RGBController_CMR6000Controller.cpp @@ -169,7 +169,6 @@ void RGBController_CMR6000Controller::SetupZones() led GP_led; GP_led.name = "Logo"; - GP_led.value = 0; leds.push_back(GP_led); SetupColors(); diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp index 4dc34f121..a10c865d1 100644 --- a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp +++ b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.cpp @@ -152,8 +152,8 @@ void RGBController_CorsairV2HW::SetupZones() led new_led; new_led.name = new_kb.GetKeyNameAt(led_idx); - new_led.value = new_kb.GetKeyValueAt(led_idx); - max_led_value = std::max(max_led_value, new_led.value); + led_values.push_back(new_kb.GetKeyValueAt(led_idx)); + max_led_value = std::max(max_led_value, led_values.back()); leds.push_back(new_led); } } @@ -176,7 +176,7 @@ void RGBController_CorsairV2HW::SetupZones() new_led.name = new_zone.name + " "; new_led.name.append(std::to_string( led_idx )); - new_led.value = (unsigned int)leds.size(); + led_values.push_back((unsigned int)leds.size()); leds.push_back(new_led); } @@ -209,7 +209,7 @@ void RGBController_CorsairV2HW::SetupZones() for(size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - buffer_map[leds[led_idx].value] = &colors[led_idx]; + buffer_map[led_values[led_idx]] = &colors[led_idx]; } } diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h index dc8e8170e..80efb3952 100644 --- a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h +++ b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Hardware.h @@ -34,6 +34,7 @@ public: private: CorsairPeripheralV2Controller* controller; + std::vector led_values; RGBColor null_color = 0; std::vector buffer_map; diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp index 93f64bb58..c3508c818 100644 --- a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp +++ b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.cpp @@ -139,8 +139,8 @@ void RGBController_CorsairV2SW::SetupZones() led new_led; new_led.name = new_kb.GetKeyNameAt(led_idx); - new_led.value = new_kb.GetKeyValueAt(led_idx); - max_led_value = std::max(max_led_value, new_led.value); + led_values.push_back(new_kb.GetKeyValueAt(led_idx)); + max_led_value = std::max(max_led_value, led_values.back()); leds.push_back(new_led); } } @@ -163,7 +163,7 @@ void RGBController_CorsairV2SW::SetupZones() new_led.name = new_zone.name + " "; new_led.name.append(std::to_string( led_idx )); - new_led.value = (unsigned int)leds.size(); + led_values.push_back((unsigned int)leds.size()); leds.push_back(new_led); } @@ -196,7 +196,7 @@ void RGBController_CorsairV2SW::SetupZones() for(size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - buffer_map[leds[led_idx].value] = &colors[led_idx]; + buffer_map[led_values[led_idx]] = &colors[led_idx]; } } diff --git a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h index 0f09f99ca..12ab47495 100644 --- a/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h +++ b/Controllers/CorsairPeripheralV2Controller/RGBController_CorsairV2Software.h @@ -36,6 +36,7 @@ public: private: CorsairPeripheralV2Controller* controller; + std::vector led_values; RGBColor null_color = 0; std::vector buffer_map; diff --git a/Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp b/Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp index fb707c78f..2144ff74b 100644 --- a/Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp +++ b/Controllers/CougarController/CougarKeyboardController/RGBController_CougarKeyboard.cpp @@ -409,7 +409,7 @@ void RGBController_CougarKeyboard::SetupZones() { led new_led; new_led.name = led_names[led_index]; - new_led.value = led_index; + leds.push_back(new_led); } } diff --git a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp b/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp index c7f38ad3b..f6736db39 100644 --- a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp +++ b/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.cpp @@ -206,7 +206,7 @@ void RGBController_CryorigH7QuadLumi::SetupZones() new_led.name = zone_names[zone_idx]; new_led.name.append(", LED "); new_led.name.append(std::to_string(led_idx + 1)); - new_led.value = zone_idx; + led_values.push_back(zone_idx); leds.push_back(new_led); } @@ -233,7 +233,7 @@ void RGBController_CryorigH7QuadLumi::DeviceUpdateZoneLEDs(int zone) void RGBController_CryorigH7QuadLumi::DeviceUpdateSingleLED(int led) { - unsigned int zone_idx = leds[led].value; + unsigned int zone_idx = led_values[led]; DeviceUpdateZoneLEDs(zone_idx); } diff --git a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h b/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h index 4753de80d..32e4106dc 100644 --- a/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h +++ b/Controllers/CryorigH7QuadLumiController/RGBController_CryorigH7QuadLumi.h @@ -33,5 +33,6 @@ public: private: CryorigH7QuadLumiController* controller; std::vector leds_channel; + std::vector led_values; std::vector zones_channel; }; diff --git a/Controllers/DDPController/RGBController_DDP.cpp b/Controllers/DDPController/RGBController_DDP.cpp index 356dcab0f..278b1cf51 100644 --- a/Controllers/DDPController/RGBController_DDP.cpp +++ b/Controllers/DDPController/RGBController_DDP.cpp @@ -76,7 +76,6 @@ void RGBController_DDP::SetupZones() { led new_led; new_led.name = zones[zone_idx].name + " LED " + std::to_string(led_idx + 1); - new_led.value = 0; leds.push_back(new_led); } } diff --git a/Controllers/DarkProject/RGBController_DarkProjectKeyboard.cpp b/Controllers/DarkProject/RGBController_DarkProjectKeyboard.cpp index f5be14774..c96e71257 100644 --- a/Controllers/DarkProject/RGBController_DarkProjectKeyboard.cpp +++ b/Controllers/DarkProject/RGBController_DarkProjectKeyboard.cpp @@ -187,7 +187,6 @@ void RGBController_DarkProjectKeyboard::SetupZones() { led new_led; new_led.name = led_names[led_index]; - new_led.value = led_index; leds.push_back(new_led); } } diff --git a/Controllers/ENESMBusController/RGBController_ENESMBus.cpp b/Controllers/ENESMBusController/RGBController_ENESMBus.cpp index 65fe1b56d..a8c2e7aff 100644 --- a/Controllers/ENESMBusController/RGBController_ENESMBus.cpp +++ b/Controllers/ENESMBusController/RGBController_ENESMBus.cpp @@ -265,7 +265,7 @@ int RGBController_ENESMBus::GetDeviceMode() \*---------------------------------------------------------*/ for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) { - unsigned int led = leds[led_idx].value; + unsigned int led = led_values[led_idx]; unsigned char red; unsigned char grn; unsigned char blu; @@ -306,7 +306,7 @@ void RGBController_ENESMBus::DeviceUpdateZoneLEDs(int zone) { for(std::size_t led_idx = 0; led_idx < zones[zone].leds_count; led_idx++) { - int led = zones[zone].leds[led_idx].value; + int led = led_values[zones[zone].start_idx + led_idx]; RGBColor color = colors[led]; unsigned char red = RGBGetRValue(color); unsigned char grn = RGBGetGValue(color); @@ -435,7 +435,7 @@ void RGBController_ENESMBus::SetupZones() new_led->name = zones[zone_idx].name + " LED "; new_led->name.append(std::to_string(zone_led_idx + 1)); - new_led->value = led_idx; + led_values.push_back(led_idx); led_idx++; leds.push_back(*new_led); diff --git a/Controllers/ENESMBusController/RGBController_ENESMBus.h b/Controllers/ENESMBusController/RGBController_ENESMBus.h index 7894f2bfe..a3dcce976 100644 --- a/Controllers/ENESMBusController/RGBController_ENESMBus.h +++ b/Controllers/ENESMBusController/RGBController_ENESMBus.h @@ -30,7 +30,8 @@ public: void DeviceSaveMode(); private: - ENESMBusController* controller; + ENESMBusController* controller; + std::vector led_values; int GetDeviceMode(); }; diff --git a/Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp b/Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp index 35f942ff3..c82852d05 100644 --- a/Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp +++ b/Controllers/EVGAUSBController/EVGAMouseController/RGBController_EVGAMouse.cpp @@ -174,17 +174,14 @@ void RGBController_EVGAMouse::Init_Controller() led front_led; front_led.name = "Front LED"; - front_led.value = 0; leds.push_back(front_led); led wheel_led; wheel_led.name = "Scroll Wheel LED"; - wheel_led.value = 1; leds.push_back(wheel_led); led back_led; back_led.name = "Back LED"; - back_led.value = 2; leds.push_back(back_led); } diff --git a/Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.cpp b/Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.cpp index 97b0d2c53..8cf4566dc 100644 --- a/Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.cpp +++ b/Controllers/EVisionKeyboardController/RGBController_EVisionV2Keyboard.cpp @@ -806,7 +806,6 @@ void RGBController_EVisionV2Keyboard::SetupZones() { led new_led; new_led.name = led_names[led_index]; - new_led.value = led_index; leds.push_back(new_led); } } diff --git a/Controllers/EpomakerController/RGBController_EpomakerController.cpp b/Controllers/EpomakerController/RGBController_EpomakerController.cpp index a4c265f44..5addcd485 100644 --- a/Controllers/EpomakerController/RGBController_EpomakerController.cpp +++ b/Controllers/EpomakerController/RGBController_EpomakerController.cpp @@ -389,7 +389,7 @@ void RGBController_EpomakerController::SetupZones() led keyboard_led; keyboard_led.name = "Keyboard LEDs"; - keyboard_led.value = 0x00; + leds.push_back(keyboard_led); SetupColors(); diff --git a/Controllers/FnaticStreakController/FnaticStreakController.cpp b/Controllers/FnaticStreakController/FnaticStreakController.cpp index 14fad24c6..e47e0c7bc 100644 --- a/Controllers/FnaticStreakController/FnaticStreakController.cpp +++ b/Controllers/FnaticStreakController/FnaticStreakController.cpp @@ -183,7 +183,7 @@ void FnaticStreakController::SendRequest(const unsigned char* prefix, size_t pre } } -void FnaticStreakController::SetLEDsDirect(std::vector leds, std::vector colors, unsigned int brightness) +void FnaticStreakController::SetLEDsDirect(std::vector led_values, std::vector colors, unsigned int brightness) { unsigned int total_leds = GetLEDCount(); @@ -199,11 +199,11 @@ void FnaticStreakController::SetLEDsDirect(std::vector leds, std::vector= 100) diff --git a/Controllers/FnaticStreakController/FnaticStreakController.h b/Controllers/FnaticStreakController/FnaticStreakController.h index db660241e..c8b36f797 100644 --- a/Controllers/FnaticStreakController/FnaticStreakController.h +++ b/Controllers/FnaticStreakController/FnaticStreakController.h @@ -69,7 +69,7 @@ public: unsigned int GetLEDCount(); void SetProfile(unsigned char profile); - void SetLEDsDirect(std::vector leds, std::vector colors, unsigned int brightness); + void SetLEDsDirect(std::vector led_values, std::vector colors, unsigned int brightness); void SendRGBToDevice(); /*-----------------------------------------------------*\ diff --git a/Controllers/FnaticStreakController/RGBController_FnaticStreak.cpp b/Controllers/FnaticStreakController/RGBController_FnaticStreak.cpp index c5a5f5af9..e8f91b16f 100644 --- a/Controllers/FnaticStreakController/RGBController_FnaticStreak.cpp +++ b/Controllers/FnaticStreakController/RGBController_FnaticStreak.cpp @@ -525,7 +525,7 @@ void RGBController_FnaticStreak::SetupZones() { led new_led; new_led.name = led_name_ptr[led_idx]; - new_led.value = led_idx; + led_values.push_back(led_idx); leds.push_back(new_led); } @@ -541,7 +541,7 @@ void RGBController_FnaticStreak::DeviceUpdateLEDs() | Apply brightness scaling to colors | \*-----------------------------------------------------*/ unsigned int brightness = modes[active_mode].brightness; - controller->SetLEDsDirect(leds, colors, brightness); + controller->SetLEDsDirect(led_values, colors, brightness); controller->SendRGBToDevice(); } diff --git a/Controllers/FnaticStreakController/RGBController_FnaticStreak.h b/Controllers/FnaticStreakController/RGBController_FnaticStreak.h index b652f4afa..891de8e56 100644 --- a/Controllers/FnaticStreakController/RGBController_FnaticStreak.h +++ b/Controllers/FnaticStreakController/RGBController_FnaticStreak.h @@ -36,4 +36,5 @@ private: std::thread* keepalive_thread; std::atomic keepalive_thread_run; std::chrono::time_point last_update_time; + std::vector led_values; }; diff --git a/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp b/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp index 58b59759e..f6337c7fb 100644 --- a/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp +++ b/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.cpp @@ -347,6 +347,7 @@ void RGBController_RGBFusion2USB::SetupZones() \*-----------------------------------------------------*/ leds.clear(); colors.clear(); + led_values.clear(); /*-----------------------------------------------------*\ | Count number of zones to resize zones vector | @@ -441,7 +442,7 @@ void RGBController_RGBFusion2USB::SetupZones() led new_led; new_led.name = zone_at_idx->name; - new_led.value = zone_at_idx->idx; + led_values.push_back(zone_at_idx->idx); if(!fixed_zone) { @@ -533,7 +534,7 @@ void RGBController_RGBFusion2USB::DeviceUpdateLEDs() /*---------------------------------------------------------*\ | Apply the mode and color to the zone | \*---------------------------------------------------------*/ - controller->SetLEDEffect(zones[zone_idx].leds[led_idx].value, mode_value, modes[active_mode].speed, modes[active_mode].brightness, random, color); + controller->SetLEDEffect(led_values[zones[zone_idx].start_idx + led_idx], mode_value, modes[active_mode].speed, modes[active_mode].brightness, random, color); } } /*---------------------------------------------------------*\ @@ -543,7 +544,7 @@ void RGBController_RGBFusion2USB::DeviceUpdateLEDs() { if(zones[zone_idx].leds && zones[zone_idx].leds_count) { - unsigned char hdr = zones[zone_idx].leds->value; + unsigned char hdr = led_values[zones[zone_idx].start_idx]; /*---------------------------------------------------------*\ | Direct mode addresses a different register | @@ -629,7 +630,7 @@ void RGBController_RGBFusion2USB::DeviceUpdateZoneLEDs(int zone) /*---------------------------------------------------------*\ | Apply the mode and color to the zone | \*---------------------------------------------------------*/ - controller->SetLEDEffect(zones[zone].leds[led_idx].value, mode_value, modes[active_mode].speed, modes[active_mode].brightness, random, color); + controller->SetLEDEffect(led_values[zones[zone].start_idx + led_idx], mode_value, modes[active_mode].speed, modes[active_mode].brightness, random, color); controller->ApplyEffect(); } } @@ -641,7 +642,7 @@ void RGBController_RGBFusion2USB::DeviceUpdateZoneLEDs(int zone) { if(zones[zone].leds && zones[zone].leds_count) { - unsigned char hdr = zones[zone].leds->value; + unsigned char hdr = led_values[zones[zone].start_idx]; /*---------------------------------------------------------*\ | Direct mode addresses a different register | @@ -722,7 +723,7 @@ void RGBController_RGBFusion2USB::DeviceUpdateSingleLED(int led) color = &modes[active_mode].colors[0]; } - controller->SetLEDEffect(leds[led].value, mode_value, modes[active_mode].speed, modes[active_mode].brightness, random, color); + controller->SetLEDEffect(led_values[led], mode_value, modes[active_mode].speed, modes[active_mode].brightness, random, color); controller->ApplyEffect(); } diff --git a/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h b/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h index b657ac7cb..23d6335e7 100644 --- a/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h +++ b/Controllers/GigabyteRGBFusion2USBController/RGBController_GigabyteRGBFusion2USB.h @@ -64,6 +64,9 @@ private: RGBFusion2USBController* controller; int device_num; RGBColor null_color = 0; + + std::vector led_values; + /*---------------------------------------------------------*\ | The intial value of device_index should point to the | | layout for the generic_device | diff --git a/Controllers/HyperXMicrophoneController/RGBController_HyperXMicrophone.cpp b/Controllers/HyperXMicrophoneController/RGBController_HyperXMicrophone.cpp index 5869a9183..3459f8631 100644 --- a/Controllers/HyperXMicrophoneController/RGBController_HyperXMicrophone.cpp +++ b/Controllers/HyperXMicrophoneController/RGBController_HyperXMicrophone.cpp @@ -91,11 +91,9 @@ void RGBController_HyperXMicrophone::SetupZones() { led Top; Top.name = "Top"; - Top.value = 0; led Bot; Bot.name = "Bottom"; - Bot.value = 1; leds.push_back(Top); leds.push_back(Bot); diff --git a/Controllers/HyperXMicrophoneV2Controller/RGBController_HyperXMicrophoneV2.cpp b/Controllers/HyperXMicrophoneV2Controller/RGBController_HyperXMicrophoneV2.cpp index b17e28e70..a11fba053 100644 --- a/Controllers/HyperXMicrophoneV2Controller/RGBController_HyperXMicrophoneV2.cpp +++ b/Controllers/HyperXMicrophoneV2Controller/RGBController_HyperXMicrophoneV2.cpp @@ -91,7 +91,6 @@ void RGBController_HyperXMicrophoneV2::SetupZones() { led l; l.name = "LED " + std::to_string(i); - l.value = led_mapping[i]; leds.push_back(l); } diff --git a/Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp b/Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp index 7b5d4a14e..1673ac71c 100644 --- a/Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp +++ b/Controllers/LogitechController/LogitechG213Controller/RGBController_LogitechG213.cpp @@ -128,7 +128,6 @@ void RGBController_LogitechG213::SetupZones() { led new_led; new_led.name = led_names[led_idx]; - new_led.value = led_values[led_idx]; leds.push_back(new_led); } @@ -137,9 +136,9 @@ void RGBController_LogitechG213::SetupZones() void RGBController_LogitechG213::DeviceUpdateLEDs() { - for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) + for(std::size_t led_idx = 0; led_idx < colors.size(); led_idx++) { - controller->SetDirect((unsigned char)leds[led_idx].value, RGBGetRValue(colors[led_idx]), RGBGetGValue(colors[led_idx]), RGBGetBValue(colors[led_idx])); + controller->SetDirect(led_values[led_idx], RGBGetRValue(colors[led_idx]), RGBGetGValue(colors[led_idx]), RGBGetBValue(colors[led_idx])); } } @@ -150,7 +149,7 @@ void RGBController_LogitechG213::DeviceUpdateZoneLEDs(int zone) void RGBController_LogitechG213::DeviceUpdateSingleLED(int led) { - controller->SetDirect(leds[led].value, RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led])); + controller->SetDirect(led_values[led], RGBGetRValue(colors[led]), RGBGetGValue(colors[led]), RGBGetBValue(colors[led])); } void RGBController_LogitechG213::DeviceUpdateMode() diff --git a/Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp b/Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp index 9cb0b5808..d68b8a4e1 100644 --- a/Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp +++ b/Controllers/LogitechController/LogitechG560Controller/RGBController_LogitechG560.cpp @@ -68,10 +68,8 @@ void RGBController_LogitechG560::SetupZones() led G560_left_front_led; G560_left_front_led.name = "Left Front"; - G560_left_front_led.value = 0x00; leds.push_back(G560_left_front_led); - zone G560_right_front; G560_right_front.name = "Right Front"; G560_right_front.type = ZONE_TYPE_SINGLE; @@ -82,7 +80,6 @@ void RGBController_LogitechG560::SetupZones() led G560_right_front_led; G560_right_front_led.name = "Right Front"; - G560_right_front_led.value = 0x01; leds.push_back(G560_right_front_led); @@ -96,7 +93,6 @@ void RGBController_LogitechG560::SetupZones() led G560_left_read_led; G560_left_read_led.name = "Left Rear"; - G560_left_read_led.value = 0x02; leds.push_back(G560_left_read_led); @@ -110,7 +106,6 @@ void RGBController_LogitechG560::SetupZones() led G560_right_rear_led; G560_right_rear_led.name = "Right Rear"; - G560_right_rear_led.value = 0x03; leds.push_back(G560_right_rear_led); SetupColors(); @@ -124,7 +119,7 @@ void RGBController_LogitechG560::DeviceUpdateLEDs() unsigned char grn = RGBGetGValue(colors[led_idx]); unsigned char blu = RGBGetBValue(colors[led_idx]); - controller->SendSpeakerMode((unsigned char)leds[led_idx].value, modes[active_mode].value, red, grn, blu); + controller->SendSpeakerMode((unsigned char)led_idx, modes[active_mode].value, red, grn, blu); } }