From f71f325a9786691c3edc2f56a44d1d3663116c54 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sat, 15 Jun 2019 17:59:35 -0500 Subject: [PATCH] Update Linux UI for generic RGB interface branch --- OpenAuraSDK.pro | 11 +- OpenAuraSDK/OpenAuraSDK.cpp | 2 +- OpenAuraSDK/OpenAuraSDKQtDialog.cpp | 371 +++++----------------------- OpenAuraSDK/OpenAuraSDKQtDialog.h | 32 +-- OpenAuraSDK/openaurasdk.ui | 347 ++++++-------------------- 5 files changed, 142 insertions(+), 621 deletions(-) diff --git a/OpenAuraSDK.pro b/OpenAuraSDK.pro index 3dd5559c..79ef8d90 100644 --- a/OpenAuraSDK.pro +++ b/OpenAuraSDK.pro @@ -10,13 +10,20 @@ SOURCES += \ OpenAuraSDK/AuraController.cpp \ OpenAuraSDK/OpenAuraSDK.cpp \ OpenAuraSDK/i2c_smbus_linux.cpp \ - OpenAuraSDK/OpenAuraSDKQtDialog.cpp + OpenAuraSDK/OpenAuraSDKQtDialog.cpp \ + OpenAuraSDK/CorsairController.cpp \ + OpenAuraSDK/RGBController_Aura.cpp \ + OpenAuraSDK/RGBController_Corsair.cpp HEADERS += \ OpenAuraSDK/i2c_smbus.h \ OpenAuraSDK/i2c_smbus_linux.h \ OpenAuraSDK/AuraController.h \ - OpenAuraSDK/OpenAuraSDKQtDialog.h + OpenAuraSDK/OpenAuraSDKQtDialog.h \ + OpenAuraSDK/CorsairController.h \ + OpenAuraSDK/RGBController.h \ + OpenAuraSDK/RGBController_Aura.h \ + OpenAuraSDK/RGBController_Corsair.h FORMS += \ OpenAuraSDK/openaurasdk.ui diff --git a/OpenAuraSDK/OpenAuraSDK.cpp b/OpenAuraSDK/OpenAuraSDK.cpp index 6c00715b..05bf52e1 100644 --- a/OpenAuraSDK/OpenAuraSDK.cpp +++ b/OpenAuraSDK/OpenAuraSDK.cpp @@ -679,7 +679,7 @@ int main(int argc, char *argv[]) #else QApplication a(argc, argv); - Ui::OpenAuraSDKQtDialog dlg(busses, controllers); + Ui::OpenAuraSDKQtDialog dlg(busses, rgb_controllers); dlg.show(); return a.exec(); diff --git a/OpenAuraSDK/OpenAuraSDKQtDialog.cpp b/OpenAuraSDK/OpenAuraSDKQtDialog.cpp index ad487e19..97869daf 100644 --- a/OpenAuraSDK/OpenAuraSDKQtDialog.cpp +++ b/OpenAuraSDK/OpenAuraSDKQtDialog.cpp @@ -3,18 +3,17 @@ using namespace Ui; -OpenAuraSDKQtDialog::OpenAuraSDKQtDialog(std::vector& bus, std::vector& control, QWidget *parent) : QMainWindow(parent), busses(bus), controllers (control), ui(new OpenAuraSDKQtDialogUi) +OpenAuraSDKQtDialog::OpenAuraSDKQtDialog(std::vector& bus, std::vector& control, QWidget *parent) : QMainWindow(parent), busses(bus), controllers (control), ui(new OpenAuraSDKQtDialogUi) { ui->setupUi(this); - ui->ComboAuraDevices->addItem("All Devices"); - for (int i = 0; i < controllers.size(); i++) { - ui->ComboAuraDevices->addItem(controllers[i]->GetDeviceName()); + ui->ComboDevices->addItem(controllers[i]->name.c_str()); } - ui->ComboAuraDevices->setCurrentIndex(0); + //Triggers on_ComboDevices_currentIndexChanged so we don't need to update the other fields here + ui->ComboDevices->setCurrentIndex(0); } OpenAuraSDKQtDialog::~OpenAuraSDKQtDialog() @@ -29,328 +28,68 @@ void OpenAuraSDKQtDialog::show() void Ui::OpenAuraSDKQtDialog::on_ButtonSetAll_clicked() { - unsigned int aura_device = ui->ComboAuraDevices->currentIndex(); + RGBColor color = ToRGBColor( + ui->EditLED0R->text().toInt(), + ui->EditLED0G->text().toInt(), + ui->EditLED0B->text().toInt() + ); - if (aura_device == 0) + controllers[ui->ComboDevices->currentIndex()]->SetAllLEDs(color); +} + +void Ui::OpenAuraSDKQtDialog::on_ButtonSetZone_clicked() +{ + RGBColor color = ToRGBColor( + ui->EditLED0R->text().toInt(), + ui->EditLED0G->text().toInt(), + ui->EditLED0B->text().toInt() + ); + + controllers[ui->ComboDevices->currentIndex()]->SetAllZoneLEDs(ui->ComboZones->currentIndex(), color); +} + +void Ui::OpenAuraSDKQtDialog::on_ButtonSetLED_clicked() +{ + RGBColor color = ToRGBColor( + ui->EditLED0R->text().toInt(), + ui->EditLED0G->text().toInt(), + ui->EditLED0B->text().toInt() + ); + + controllers[ui->ComboDevices->currentIndex()]->SetLED(ui->ComboLEDs->currentIndex(), color); +} + +void Ui::OpenAuraSDKQtDialog::on_ComboDevices_currentIndexChanged(int index) +{ + ui->ComboModes->clear(); + + for (int i = 0; i < controllers[ui->ComboDevices->currentIndex()]->modes.size(); i++) { - unsigned char direct = ui->RadioDirect->isChecked(); - - if (direct == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetAllColorsEffect(ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt()); - - controllers[i]->SetDirect(false); - } - } - else - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetAllColorsDirect(ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt()); - - controllers[i]->SetDirect(true); - } - } + ui->ComboModes->addItem(controllers[ui->ComboDevices->currentIndex()]->modes[i].name.c_str()); } - else + + ui->ComboModes->setCurrentIndex(controllers[ui->ComboDevices->currentIndex()]->GetMode()); + + ui->ComboZones->clear(); + + for (int i = 0; i < controllers[ui->ComboDevices->currentIndex()]->zones.size(); i++) { - unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT); - - if (direct == 0) - { - controllers[aura_device - 1]->SetAllColorsEffect(ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt()); - } - else - { - controllers[aura_device - 1]->SetAllColorsDirect(ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt()); - } + ui->ComboZones->addItem(controllers[ui->ComboDevices->currentIndex()]->zones[i].name.c_str()); } -} -void Ui::OpenAuraSDKQtDialog::on_ButtonSetColors_clicked() -{ - unsigned int aura_device = ui->ComboAuraDevices->currentIndex(); + ui->ComboZones->setCurrentIndex(0); - if (aura_device == 0) + ui->ComboLEDs->clear(); + + for (int i = 0; i < controllers[ui->ComboDevices->currentIndex()]->leds.size(); i++) { - unsigned char direct = ui->RadioDirect->isChecked(); - - if (direct == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetLEDColorEffect( 0, - ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt() ); - controllers[i]->SetLEDColorEffect( 1, - ui->EditLED1R->text().toInt(), - ui->EditLED1G->text().toInt(), - ui->EditLED1B->text().toInt() ); - controllers[i]->SetLEDColorEffect( 2, - ui->EditLED2R->text().toInt(), - ui->EditLED2G->text().toInt(), - ui->EditLED2B->text().toInt() ); - controllers[i]->SetLEDColorEffect( 3, - ui->EditLED3R->text().toInt(), - ui->EditLED3G->text().toInt(), - ui->EditLED3B->text().toInt() ); - controllers[i]->SetLEDColorEffect( 4, - ui->EditLED4R->text().toInt(), - ui->EditLED4G->text().toInt(), - ui->EditLED4B->text().toInt() ); - - controllers[i]->SetDirect(false); - } - } - else - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetLEDColorDirect( 0, - ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt() ); - controllers[i]->SetLEDColorDirect( 1, - ui->EditLED1R->text().toInt(), - ui->EditLED1G->text().toInt(), - ui->EditLED1B->text().toInt() ); - controllers[i]->SetLEDColorDirect( 2, - ui->EditLED2R->text().toInt(), - ui->EditLED2G->text().toInt(), - ui->EditLED2B->text().toInt() ); - controllers[i]->SetLEDColorDirect( 3, - ui->EditLED3R->text().toInt(), - ui->EditLED3G->text().toInt(), - ui->EditLED3B->text().toInt() ); - controllers[i]->SetLEDColorDirect( 4, - ui->EditLED4R->text().toInt(), - ui->EditLED4G->text().toInt(), - ui->EditLED4B->text().toInt() ); - - controllers[i]->SetDirect(true); - } - } + ui->ComboLEDs->addItem(controllers[ui->ComboDevices->currentIndex()]->leds[i].name.c_str()); } - else - { - unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT); - if (direct == 0) - { - controllers[aura_device - 1]->SetLEDColorEffect( 0, - ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorEffect( 1, - ui->EditLED1R->text().toInt(), - ui->EditLED1G->text().toInt(), - ui->EditLED1B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorEffect( 2, - ui->EditLED2R->text().toInt(), - ui->EditLED2G->text().toInt(), - ui->EditLED2B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorEffect( 3, - ui->EditLED3R->text().toInt(), - ui->EditLED3G->text().toInt(), - ui->EditLED3B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorEffect( 4, - ui->EditLED4R->text().toInt(), - ui->EditLED4G->text().toInt(), - ui->EditLED4B->text().toInt() ); - } - else - { - controllers[aura_device - 1]->SetLEDColorDirect( 0, - ui->EditLED0R->text().toInt(), - ui->EditLED0G->text().toInt(), - ui->EditLED0B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorDirect( 1, - ui->EditLED1R->text().toInt(), - ui->EditLED1G->text().toInt(), - ui->EditLED1B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorDirect( 2, - ui->EditLED2R->text().toInt(), - ui->EditLED2G->text().toInt(), - ui->EditLED2B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorDirect( 3, - ui->EditLED3R->text().toInt(), - ui->EditLED3G->text().toInt(), - ui->EditLED3B->text().toInt() ); - controllers[aura_device - 1]->SetLEDColorDirect( 4, - ui->EditLED4R->text().toInt(), - ui->EditLED4G->text().toInt(), - ui->EditLED4B->text().toInt() ); - } - } + ui->ComboLEDs->setCurrentIndex(0); } -void Ui::OpenAuraSDKQtDialog::on_RadioDirect_clicked() +void Ui::OpenAuraSDKQtDialog::on_ComboModes_currentIndexChanged(int index) { - unsigned int aura_device = ui->ComboAuraDevices->currentIndex(); - if ( aura_device == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetDirect(true); - } - } - else - { - controllers[aura_device - 1]->SetDirect(true); - } -} - -void Ui::OpenAuraSDKQtDialog::on_RadioEffect_clicked() -{ - unsigned int aura_device = ui->ComboAuraDevices->currentIndex(); - if (aura_device == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetDirect(false); - } - } - else - { - controllers[aura_device - 1]->SetDirect(false); - } -} - -void Ui::OpenAuraSDKQtDialog::on_ComboAuraDevices_currentIndexChanged(int aura_device) -{ - if (aura_device != 0) - { - unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT); - - ui->RadioDirect->setChecked(direct != 0); - ui->RadioEffect->setChecked(direct == 0); - - unsigned char mode = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_MODE); - - ui->RadioOff->setChecked(mode == AURA_MODE_OFF); - ui->RadioStatic->setChecked(mode == AURA_MODE_STATIC); - ui->RadioBreathing->setChecked(mode == AURA_MODE_BREATHING); - ui->RadioFlashing->setChecked(mode == AURA_MODE_FLASHING); - ui->RadioSpectrumCycle->setChecked(mode == AURA_MODE_SPECTRUM_CYCLE); - ui->RadioRainbow->setChecked(mode == AURA_MODE_RAINBOW); - ui->RadioBreathingSpectrum->setChecked(mode == AURA_MODE_SPECTRUM_CYCLE_BREATHING); - ui->RadioChaseFade->setChecked(mode == AURA_MODE_CHASE_FADE); - - if (direct == 0) - { - ui->EditLED0R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 0))); - ui->EditLED0B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 1))); - ui->EditLED0G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 2))); - ui->EditLED1R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 3))); - ui->EditLED1B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 4))); - ui->EditLED1G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 5))); - ui->EditLED2R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 6))); - ui->EditLED2B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 7))); - ui->EditLED2G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 8))); - ui->EditLED3R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 9))); - ui->EditLED3B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 10))); - ui->EditLED3G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 11))); - ui->EditLED4R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 12))); - ui->EditLED4B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 13))); - ui->EditLED4G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 14))); - } - else - { - ui->EditLED0R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 0))); - ui->EditLED0B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 1))); - ui->EditLED0G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 2))); - ui->EditLED1R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 3))); - ui->EditLED1B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 4))); - ui->EditLED1G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 5))); - ui->EditLED2R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 6))); - ui->EditLED2B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 7))); - ui->EditLED2G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 8))); - ui->EditLED3R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 9))); - ui->EditLED3B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 10))); - ui->EditLED3G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 11))); - ui->EditLED4R->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 12))); - ui->EditLED4B->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 13))); - ui->EditLED4G->setText(QString::number(controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 14))); - } - } -} - -void OpenAuraSDKQtDialog::setMode(unsigned char mode_val) -{ - unsigned int aura_device = ui->ComboAuraDevices->currentIndex(); - - if (aura_device == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetMode(mode_val); - } - } - else - { - controllers[aura_device - 1]->SetMode(mode_val); - } -} - -void Ui::OpenAuraSDKQtDialog::on_RadioOff_clicked() -{ - setMode(AURA_MODE_OFF); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioStatic_clicked() -{ - setMode(AURA_MODE_STATIC); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioBreathing_clicked() -{ - setMode(AURA_MODE_BREATHING); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioFlashing_clicked() -{ - setMode(AURA_MODE_FLASHING); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioSpectrumCycle_clicked() -{ - setMode(AURA_MODE_SPECTRUM_CYCLE); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioRainbow_clicked() -{ - setMode(AURA_MODE_RAINBOW); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioBreathingSpectrum_clicked() -{ - setMode(AURA_MODE_SPECTRUM_CYCLE_BREATHING); -} - -void Ui::OpenAuraSDKQtDialog::on_RadioChaseFade_clicked() -{ - setMode(AURA_MODE_CHASE_FADE); -} - -void Ui::OpenAuraSDKQtDialog::on_ButtonDumpAura_clicked() -{ - unsigned int aura_device = ui->ComboAuraDevices->currentIndex(); - - if (aura_device > 0) - { - ui->ButtonDumpAura->setEnabled(false); - DumpAuraRegisters(controllers[aura_device - 1]); - ui->ButtonDumpAura->setEnabled(true); - } + controllers[ui->ComboDevices->currentIndex()]->SetMode(ui->ComboModes->currentIndex()); } diff --git a/OpenAuraSDK/OpenAuraSDKQtDialog.h b/OpenAuraSDK/OpenAuraSDKQtDialog.h index cb2459f9..834af5c3 100644 --- a/OpenAuraSDK/OpenAuraSDKQtDialog.h +++ b/OpenAuraSDK/OpenAuraSDKQtDialog.h @@ -5,7 +5,7 @@ #include #include "i2c_smbus.h" -#include "AuraController.h" +#include "RGBController.h" #include #include @@ -22,7 +22,7 @@ class Ui::OpenAuraSDKQtDialog : public QMainWindow Q_OBJECT public: - explicit OpenAuraSDKQtDialog(std::vector& bus, std::vector& control, QWidget *parent = 0); + explicit OpenAuraSDKQtDialog(std::vector& bus, std::vector& control, QWidget *parent = 0); ~OpenAuraSDKQtDialog(); void show(); @@ -30,36 +30,18 @@ public: protected: std::vector& busses; - std::vector& controllers; + std::vector& controllers; private slots: void on_ButtonSetAll_clicked(); - void on_ButtonSetColors_clicked(); + void on_ButtonSetZone_clicked(); - void on_RadioDirect_clicked(); + void on_ButtonSetLED_clicked(); - void on_RadioEffect_clicked(); + void on_ComboDevices_currentIndexChanged(int index); - void on_ComboAuraDevices_currentIndexChanged(int index); - - void on_RadioOff_clicked(); - - void on_RadioStatic_clicked(); - - void on_RadioBreathing_clicked(); - - void on_RadioFlashing_clicked(); - - void on_RadioSpectrumCycle_clicked(); - - void on_RadioRainbow_clicked(); - - void on_RadioBreathingSpectrum_clicked(); - - void on_RadioChaseFade_clicked(); - - void on_ButtonDumpAura_clicked(); + void on_ComboModes_currentIndexChanged(int index); private: Ui::OpenAuraSDKQtDialogUi *ui; diff --git a/OpenAuraSDK/openaurasdk.ui b/OpenAuraSDK/openaurasdk.ui index 26d60156..03d00e63 100644 --- a/OpenAuraSDK/openaurasdk.ui +++ b/OpenAuraSDK/openaurasdk.ui @@ -7,7 +7,7 @@ 0 0 500 - 300 + 160 @@ -18,7 +18,7 @@ 10 - 10 + 60 80 20 @@ -27,24 +27,24 @@ Set All - + 100 - 10 + 60 80 20 - Set Colors + Set Zone 10 - 60 + 30 50 20 @@ -54,7 +54,7 @@ 70 - 60 + 30 50 20 @@ -64,127 +64,7 @@ 130 - 60 - 50 - 20 - - - - - - - 10 - 90 - 50 - 20 - - - - - - - 70 - 90 - 50 - 20 - - - - - - - 130 - 90 - 50 - 20 - - - - - - - 10 - 120 - 50 - 20 - - - - - - - 70 - 120 - 50 - 20 - - - - - - - 130 - 120 - 50 - 20 - - - - - - - 10 - 150 - 50 - 20 - - - - - - - 70 - 150 - 50 - 20 - - - - - - - 130 - 150 - 50 - 20 - - - - - - - 10 - 180 - 50 - 20 - - - - - - - 70 - 180 - 50 - 20 - - - - - - - 130 - 180 + 30 50 20 @@ -194,7 +74,7 @@ 10 - 40 + 10 50 20 @@ -207,7 +87,7 @@ 70 - 40 + 10 50 20 @@ -220,7 +100,7 @@ 130 - 40 + 10 50 20 @@ -229,7 +109,7 @@ Blue - + 290 @@ -249,176 +129,89 @@ - Aura Device + Device - + 290 40 200 - 60 + 20 - + + + + + 200 + 40 + 90 + 20 + + + Mode - - - - 10 - 30 - 70 - 20 - - - - Direct - - - - - - 110 - 30 - 70 - 20 - - - - Effect - - - + + + + 290 + 70 + 200 + 20 + + + + + + + 200 + 70 + 90 + 20 + + + + Zone + + + 290 100 200 - 180 + 20 - - Effect - - - - - 10 - 20 - 150 - 20 - - - - Off - - - - - - 10 - 40 - 150 - 20 - - - - Static - - - - - - 10 - 60 - 150 - 20 - - - - Breathing - - - - - - 10 - 80 - 150 - 20 - - - - Flashing - - - - - - 10 - 100 - 150 - 20 - - - - Spectrum Cycle - - - - - - 10 - 120 - 150 - 20 - - - - Rainbow Wave - - - - - - 10 - 140 - 180 - 20 - - - - Breathing Spectrum - - - - - - 10 - 160 - 180 - 20 - - - - Chase Fade - - - + - 190 - 260 - 89 - 25 + 200 + 100 + 90 + 20 - Dump Aura + LED + + + + + + 10 + 90 + 80 + 20 + + + + Set LED