From 8c3acbe889c2090dcffa0160dded434b98db4f80 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Thu, 13 Jun 2019 23:02:27 -0500 Subject: [PATCH] Mode selection and Set All Colors working using generic RGB interface for Aura and Corsair Vengeance RGB --- OpenAuraSDK/AuraController.cpp | 95 ++++-- OpenAuraSDK/AuraController.h | 16 +- OpenAuraSDK/CorsairController.cpp | 63 ++++ OpenAuraSDK/CorsairController.h | 20 +- OpenAuraSDK/OpenAuraSDK.cpp | 120 ++++++- OpenAuraSDK/OpenAuraSDK.vcxproj | 2 + OpenAuraSDK/OpenAuraSDK.vcxproj.filters | 6 + OpenAuraSDK/OpenAuraSDKDialog.cpp | 405 ++---------------------- OpenAuraSDK/OpenAuraSDKDialog.h | 17 +- OpenAuraSDK/RGBController.h | 4 + OpenAuraSDK/Resource.rc | Bin 12170 -> 9760 bytes OpenAuraSDK/resource.h | 2 + 12 files changed, 327 insertions(+), 423 deletions(-) diff --git a/OpenAuraSDK/AuraController.cpp b/OpenAuraSDK/AuraController.cpp index b76c8926..77563f8e 100644 --- a/OpenAuraSDK/AuraController.cpp +++ b/OpenAuraSDK/AuraController.cpp @@ -59,8 +59,7 @@ AuraController::AuraController(i2c_smbus_interface* bus, aura_dev_id dev) effect_reg = AURA_REG_COLORS_EFFECT; led_count = 5; } - - UpdateRGBController(); + } AuraController::~AuraController() @@ -178,39 +177,79 @@ void AuraController::AuraRegisterWriteBlock(aura_register reg, unsigned char * d } -void AuraController::UpdateRGBController() +int RGBController_Aura::GetMode() { - rgb.name = device_name; - - mode aura_modes[AURA_NUMBER_MODES]; - - aura_modes[0].name = "Off"; - aura_modes[1].name = "Static"; - aura_modes[2].name = "Breathing"; - aura_modes[3].name = "Flashing"; - aura_modes[4].name = "Spectrum Cycle"; - aura_modes[5].name = "Rainbow"; - aura_modes[6].name = "Spectrum Cycle Breathing"; - aura_modes[7].name = "Chase Fade"; - aura_modes[8].name = "Spectrum Cycle Chase Fade"; - aura_modes[9].name = "Chase"; - aura_modes[10].name = "Spectrum Cycle Chase"; - aura_modes[11].name = "Spectrum Cycle Wave"; - aura_modes[12].name = "Chase Rainbow Pulse"; - aura_modes[13].name = "Random Flicker"; - - for (int i = 0; i < AURA_NUMBER_MODES; i++) + if (aura->AuraRegisterRead(AURA_REG_DIRECT)) { - rgb.modes.push_back(aura_modes[i]); + return(0); + } + else + { + return(aura->AuraRegisterRead(AURA_REG_MODE) + 1); + } +} + +void RGBController_Aura::SetMode(int mode) +{ + if (mode == 0) + { + aura->SetDirect(true); + } + else + { + aura->SetDirect(false); + aura->SetMode(mode - 1); + } +} + +void RGBController_Aura::SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue) +{ + if (GetMode() == 0) + { + aura->SetAllColorsDirect(red, green, blue); + } + else + { + aura->SetAllColorsEffect(red, green, blue); + } +} + +RGBController_Aura::RGBController_Aura(AuraController* aura_ptr) +{ + aura = aura_ptr; + + name = aura->GetDeviceName(); + + mode aura_modes[AURA_NUMBER_MODES + 1]; + + aura_modes[0].name = "Direct"; + aura_modes[1].name = "Off"; + aura_modes[2].name = "Static"; + aura_modes[3].name = "Breathing"; + aura_modes[4].name = "Flashing"; + aura_modes[5].name = "Spectrum Cycle"; + aura_modes[6].name = "Rainbow"; + aura_modes[7].name = "Spectrum Cycle Breathing"; + aura_modes[8].name = "Chase Fade"; + aura_modes[9].name = "Spectrum Cycle Chase Fade"; + aura_modes[10].name = "Chase"; + aura_modes[11].name = "Spectrum Cycle Chase"; + aura_modes[12].name = "Spectrum Cycle Wave"; + aura_modes[13].name = "Chase Rainbow Pulse"; + aura_modes[14].name = "Random Flicker"; + + for (int i = 0; i < (AURA_NUMBER_MODES + 1); i++) + { + modes.push_back(aura_modes[i]); } - for (int i = 0; i < led_count; i++) + for (int i = 0; i < aura->GetLEDCount(); i++) { led* new_led = new led(); new_led->name = "Aura LED"; - rgb.leds.push_back(*new_led); + leds.push_back(*new_led); } zone new_zone; @@ -220,10 +259,12 @@ void AuraController::UpdateRGBController() std::vector zone_row; - for (int i = 0; i < led_count; i++) + for (int i = 0; i < aura->GetLEDCount(); i++) { zone_row.push_back(i); } new_zone.map.push_back(zone_row); + + zones.push_back(new_zone); } \ No newline at end of file diff --git a/OpenAuraSDK/AuraController.h b/OpenAuraSDK/AuraController.h index a4311705..752f30ad 100644 --- a/OpenAuraSDK/AuraController.h +++ b/OpenAuraSDK/AuraController.h @@ -78,7 +78,17 @@ private: aura_register effect_reg; i2c_smbus_interface * bus; aura_dev_id dev; - - RGBController rgb; - void UpdateRGBController(); + +}; + +class RGBController_Aura : public RGBController +{ +public: + RGBController_Aura(AuraController* aura_ptr); + int GetMode(); + void SetMode(int mode); + void SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue); + +private: + AuraController* aura; }; \ No newline at end of file diff --git a/OpenAuraSDK/CorsairController.cpp b/OpenAuraSDK/CorsairController.cpp index 708b8710..efdf95f0 100644 --- a/OpenAuraSDK/CorsairController.cpp +++ b/OpenAuraSDK/CorsairController.cpp @@ -41,4 +41,67 @@ void CorsairController::SetAllColorsDirect(unsigned char red, unsigned char gree bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_GREEN_VAL, green); bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_BLUE_VAL, blue); bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_MODE, CORSAIR_VENGEANCE_RGB_MODE_SINGLE); +} + +void CorsairController::SetMode(unsigned char mode) +{ + bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_MODE, CORSAIR_VENGEANCE_RGB_MODE_SINGLE); +} + +int RGBController_Corsair::GetMode() +{ + return(CORSAIR_VENGEANCE_RGB_MODE_SINGLE); +} + +void RGBController_Corsair::SetMode(int mode) +{ + corsair->SetMode(mode); +} + +void RGBController_Corsair::SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue) +{ + corsair->SetAllColorsDirect(red, green, blue); +} + +RGBController_Corsair::RGBController_Corsair(CorsairController* corsair_ptr) +{ + corsair = corsair_ptr; + + name = corsair->GetDeviceName(); + + mode corsair_modes[CORSAIR_NUMBER_MODES]; + + corsair_modes[0].name = "Static"; + corsair_modes[1].name = "Fade"; + corsair_modes[2].name = "Pulse"; + + for (int i = 0; i < CORSAIR_NUMBER_MODES; i++) + { + modes.push_back(corsair_modes[i]); + } + + for (int i = 0; i < corsair->GetLEDCount(); i++) + { + led* new_led = new led(); + + new_led->name = "Corsair LED"; + + leds.push_back(*new_led); + } + + zone new_zone; + + new_zone.name = "Corsair Zone"; + new_zone.type = ZONE_TYPE_SINGLE; + + std::vector zone_row; + + for (int i = 0; i < corsair->GetLEDCount(); i++) + { + zone_row.push_back(i); + } + + new_zone.map.push_back(zone_row); + + zones.push_back(new_zone); } \ No newline at end of file diff --git a/OpenAuraSDK/CorsairController.h b/OpenAuraSDK/CorsairController.h index 91ab5508..2dab1d56 100644 --- a/OpenAuraSDK/CorsairController.h +++ b/OpenAuraSDK/CorsairController.h @@ -8,6 +8,7 @@ \*-----------------------------------------*/ #include "i2c_smbus.h" +#include "RGBController.h" #pragma once @@ -29,6 +30,7 @@ enum CORSAIR_VENGEANCE_RGB_MODE_SINGLE = 0x00, /* Single Color Effect Mode */ CORSAIR_VENGEANCE_RGB_MODE_FADE = 0x01, /* Fade Through Colors */ CORSAIR_VENGEANCE_RGB_MODE_PULSE = 0x02, /* Pulse Through Colors */ + CORSAIR_NUMBER_MODES /* Number of Corsair modes */ }; class CorsairController @@ -37,15 +39,27 @@ public: CorsairController(i2c_smbus_interface* bus, corsair_dev_id dev); ~CorsairController(); - char* GetDeviceName(); - unsigned int GetLEDCount(); + char* GetDeviceName(); + unsigned int GetLEDCount(); + void SetMode(unsigned char mode); - void SetAllColorsDirect(unsigned char red, unsigned char green, unsigned char blue); + void SetAllColorsDirect(unsigned char red, unsigned char green, unsigned char blue); private: char device_name[32]; unsigned int led_count; i2c_smbus_interface * bus; corsair_dev_id dev; +}; +class RGBController_Corsair : public RGBController +{ +public: + RGBController_Corsair(CorsairController* corsair_ptr); + int GetMode(); + void SetMode(int mode); + void SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue); + +private: + CorsairController* corsair; }; \ No newline at end of file diff --git a/OpenAuraSDK/OpenAuraSDK.cpp b/OpenAuraSDK/OpenAuraSDK.cpp index d635ab41..b1ded798 100644 --- a/OpenAuraSDK/OpenAuraSDK.cpp +++ b/OpenAuraSDK/OpenAuraSDK.cpp @@ -7,6 +7,8 @@ \******************************************************************************************/ #include "AuraController.h" +#include "CorsairController.h" +#include "RGBController.h" #include "i2c_smbus.h" #include #include @@ -35,8 +37,10 @@ #endif /* WIN32 */ -std::vector controllers; +std::vector aura_controllers; +std::vector corsair_controllers; std::vector busses; +std::vector rgb_controllers; #ifdef WIN32 /******************************************************************************************\ @@ -356,6 +360,30 @@ bool TestForAuraController(i2c_smbus_interface* bus, unsigned char address) } /* TestForAuraController() */ +/******************************************************************************************\ +* * +* TestForCorsairController * +* * +* Tests the given address to see if a Corsair controller exists there. * +* * +\******************************************************************************************/ + +bool TestForCorsairController(i2c_smbus_interface* bus, unsigned char address) +{ + bool pass = false; + + int res = bus->i2c_smbus_write_quick(address, I2C_SMBUS_WRITE); + + if (res >= 0) + { + pass = true; + } + + return(pass); + +} /* TestForCorsairController() */ + + /******************************************************************************************\ * * * DetectAuraControllers * @@ -398,7 +426,7 @@ void DetectAuraControllers() if (TestForAuraController(busses[bus], 0x70 + slot)) { new_controller = new AuraController(busses[bus], 0x70 + slot); - controllers.push_back(new_controller); + aura_controllers.push_back(new_controller); } } @@ -406,34 +434,97 @@ void DetectAuraControllers() if (TestForAuraController(busses[bus], 0x40)) { new_controller = new AuraController(busses[bus], 0x40); - controllers.push_back(new_controller); + aura_controllers.push_back(new_controller); } // Check for Aura controller at 0x4E if (TestForAuraController(busses[bus], 0x4E)) { new_controller = new AuraController(busses[bus], 0x4E); - controllers.push_back(new_controller); + aura_controllers.push_back(new_controller); } // Check for Aura controller at 0x4F if (TestForAuraController(busses[bus], 0x4F)) { new_controller = new AuraController(busses[bus], 0x4F); - controllers.push_back(new_controller); + aura_controllers.push_back(new_controller); } // Check for Aura controller at 0x66 if (TestForAuraController(busses[bus], 0x66)) { new_controller = new AuraController(busses[bus], 0x66); - controllers.push_back(new_controller); + aura_controllers.push_back(new_controller); } } } /* DetectAuraControllers() */ +/******************************************************************************************\ +* * +* DetectCorsairControllers * +* * +* Detect Corsair controllers on the enumerated I2C busses. * +* * +* bus - pointer to i2c_smbus_interface where Aura device is connected * +* dev - I2C address of Aura device * +* * +\******************************************************************************************/ + +void DetectCorsairControllers() +{ + CorsairController* new_controller; + + for (unsigned int bus = 0; bus < busses.size(); bus++) + { + // Check for Corsair controller at 0x58 + if (TestForCorsairController(busses[bus], 0x58)) + { + new_controller = new CorsairController(busses[bus], 0x58); + corsair_controllers.push_back(new_controller); + } + + // Check for Corsair controller at 0x59 + if (TestForCorsairController(busses[bus], 0x59)) + { + new_controller = new CorsairController(busses[bus], 0x59); + corsair_controllers.push_back(new_controller); + } + + // Check for Corsair controller at 0x5A + if (TestForCorsairController(busses[bus], 0x5A)) + { + new_controller = new CorsairController(busses[bus], 0x5A); + corsair_controllers.push_back(new_controller); + } + + // Check for Corsair controller at 0x5B + if (TestForCorsairController(busses[bus], 0x5B)) + { + new_controller = new CorsairController(busses[bus], 0x5B); + corsair_controllers.push_back(new_controller); + } + + // Check for Corsair controller at 0x5C + if (TestForCorsairController(busses[bus], 0x5C)) + { + new_controller = new CorsairController(busses[bus], 0x5C); + corsair_controllers.push_back(new_controller); + } + + // Check for Corsair controller at 0x5D + if (TestForCorsairController(busses[bus], 0x5D)) + { + new_controller = new CorsairController(busses[bus], 0x5D); + corsair_controllers.push_back(new_controller); + } + } + +} /* DetectCorsairControllers() */ + + /******************************************************************************************\ * * * DetectI2C * @@ -561,9 +652,24 @@ int main(int argc, char *argv[]) DetectI2CBusses(); DetectAuraControllers(); + DetectCorsairControllers(); + + for (int i = 0; i < aura_controllers.size(); i++) + { + RGBController_Aura* aura_rgb = new RGBController_Aura(aura_controllers[i]); + + rgb_controllers.push_back(aura_rgb); + } + + for (int i = 0; i < corsair_controllers.size(); i++) + { + RGBController_Corsair* corsair_rgb = new RGBController_Corsair(corsair_controllers[i]); + + rgb_controllers.push_back(corsair_rgb); + } #if WIN32 - OpenAuraSDKDialog dlg(busses, controllers); + OpenAuraSDKDialog dlg(busses, rgb_controllers); dlg.DoModal(); return 0; diff --git a/OpenAuraSDK/OpenAuraSDK.vcxproj b/OpenAuraSDK/OpenAuraSDK.vcxproj index b6c90f3a..6d1628ff 100644 --- a/OpenAuraSDK/OpenAuraSDK.vcxproj +++ b/OpenAuraSDK/OpenAuraSDK.vcxproj @@ -178,6 +178,7 @@ + @@ -191,6 +192,7 @@ + diff --git a/OpenAuraSDK/OpenAuraSDK.vcxproj.filters b/OpenAuraSDK/OpenAuraSDK.vcxproj.filters index 59b828df..b5147fde 100644 --- a/OpenAuraSDK/OpenAuraSDK.vcxproj.filters +++ b/OpenAuraSDK/OpenAuraSDK.vcxproj.filters @@ -48,6 +48,9 @@ Header Files + + Header Files + @@ -80,6 +83,9 @@ Source Files + + Source Files + diff --git a/OpenAuraSDK/OpenAuraSDKDialog.cpp b/OpenAuraSDK/OpenAuraSDKDialog.cpp index 522ec578..80b0a4f4 100644 --- a/OpenAuraSDK/OpenAuraSDKDialog.cpp +++ b/OpenAuraSDK/OpenAuraSDKDialog.cpp @@ -4,7 +4,7 @@ IMPLEMENT_DYNAMIC(OpenAuraSDKDialog, CDialogEx) -OpenAuraSDKDialog::OpenAuraSDKDialog(std::vector& bus, std::vector& control, CWnd* pParent) +OpenAuraSDKDialog::OpenAuraSDKDialog(std::vector& bus, std::vector& control, CWnd* pParent) : CDialogEx(IDD_DIALOG_OPENAURASDK, pParent), busses(bus), controllers (control) { @@ -22,37 +22,31 @@ void OpenAuraSDKDialog::DoDataExchange(CDataExchange* pDX) BEGIN_MESSAGE_MAP(OpenAuraSDKDialog, CDialogEx) ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_I2CDETECT, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkI2cdetect) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_DIRECT_MODE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkDirectMode) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_MODE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectMode) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_OFF, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectOff) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_STATIC, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectStatic) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_BREATHING, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectBreathing) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_FLASHING, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectFlashing) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectSpectrumCycle) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectRainbow) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkBreathingSpectrum) - ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectChaseFade) ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_SET_COLORS, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColors) ON_CBN_CLOSEUP(IDC_COMBO_OPENAURASDK_DEVICE, &OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice) ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_SET_COLORS_ALL, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsAll) ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_DUMP, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkDump) + ON_CBN_CLOSEUP(IDC_COMBO_OPENAURASDK_MODE, &OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkMode) END_MESSAGE_MAP() BOOL OpenAuraSDKDialog::OnInitDialog() { - CComboBox* aura_device_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE); - - aura_device_box->AddString("All Devices"); + CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE); + CComboBox* mode_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_MODE); for (int i = 0; i < controllers.size(); i++) { - aura_device_box->AddString(controllers[i]->GetDeviceName()); + controller_box->AddString(controllers[i]->name.c_str()); } - aura_device_box->SetCurSel(0); + controller_box->SetCurSel(0); - CFont* myFont = new CFont(); - myFont->CreateFontA(16, 0, 0, 0, FW_DONTCARE, false, false, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, _T("Consolas")); + for (int i = 0; i < controllers[0]->modes.size(); i++) + { + mode_box->AddString(controllers[0]->modes[i].name.c_str()); + } + + mode_box->SetCurSel(0); return TRUE; } @@ -64,378 +58,49 @@ void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkI2cdetect() dlg.DoModal(); } - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkDirectMode() -{ - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - if ( aura_device == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetDirect(true); - } - } - else - { - controllers[aura_device - 1]->SetDirect(true); - } -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectMode() -{ - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - if (aura_device == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetDirect(false); - } - } - else - { - controllers[aura_device - 1]->SetDirect(false); - } -} - - -void OpenAuraSDKDialog::setMode(unsigned char mode_val) -{ - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - 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 OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectOff() -{ - setMode(AURA_MODE_OFF); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectStatic() -{ - setMode(AURA_MODE_STATIC); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectBreathing() -{ - setMode(AURA_MODE_BREATHING); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectFlashing() -{ - setMode(AURA_MODE_FLASHING); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectSpectrumCycle() -{ - setMode(AURA_MODE_SPECTRUM_CYCLE); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectRainbow() -{ - setMode(AURA_MODE_RAINBOW); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkBreathingSpectrum() -{ - setMode(AURA_MODE_SPECTRUM_CYCLE_BREATHING); -} - - -void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectChaseFade() -{ - setMode(AURA_MODE_CHASE_FADE); -} - - void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColors() { - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - - if (aura_device == 0) - { - unsigned char direct = ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->GetCheck(); - - if (direct == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetLEDColorEffect( 0, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[i]->SetLEDColorEffect( 1, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) ); - controllers[i]->SetLEDColorEffect( 2, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) ); - controllers[i]->SetLEDColorEffect( 3, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) ); - controllers[i]->SetLEDColorEffect( 4, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) ); - - controllers[i]->SetDirect(false); - } - } - else - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetLEDColorDirect( 0, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[i]->SetLEDColorDirect( 1, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) ); - controllers[i]->SetLEDColorDirect( 2, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) ); - controllers[i]->SetLEDColorDirect( 3, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) ); - controllers[i]->SetLEDColorDirect( 4, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) ); - - controllers[i]->SetDirect(true); - } - } - } - else - { - unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT); - - if (direct == 0) - { - controllers[aura_device - 1]->SetLEDColorEffect( 0, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[aura_device - 1]->SetLEDColorEffect( 1, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) ); - controllers[aura_device - 1]->SetLEDColorEffect( 2, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) ); - controllers[aura_device - 1]->SetLEDColorEffect( 3, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) ); - controllers[aura_device - 1]->SetLEDColorEffect( 4, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) ); - } - else - { - controllers[aura_device - 1]->SetLEDColorDirect( 0, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[aura_device - 1]->SetLEDColorDirect( 1, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) ); - controllers[aura_device - 1]->SetLEDColorDirect( 2, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) ); - controllers[aura_device - 1]->SetLEDColorDirect( 3, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) ); - controllers[aura_device - 1]->SetLEDColorDirect( 4, - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) ); - } - } } void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsAll() { - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - - if (aura_device == 0) - { - unsigned char direct = ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->GetCheck(); - - if (direct == 0) - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetAllColorsEffect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B)); - - controllers[i]->SetDirect(false); - } - } - else - { - for (int i = 0; i < controllers.size(); i++) - { - controllers[i]->SetAllColorsDirect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B)); - - controllers[i]->SetDirect(true); - } - } - } - else - { - unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT); - - if (direct == 0) - { - controllers[aura_device - 1]->SetAllColorsEffect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B)); - } - else - { - controllers[aura_device - 1]->SetAllColorsDirect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), - GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B)); - } - } + CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE); + controllers[controller_box->GetCurSel()]->SetAllLEDs( + GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R), + GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G), + GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) + ); } void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice() { - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - if (aura_device == 0) + CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE); + CComboBox* mode_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_MODE); + + mode_box->ResetContent(); + + for (int i = 0; i < controllers[controller_box->GetCurSel()]->modes.size(); i++) { - /*((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_MODE))->SetCheck(false); - - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_OFF))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_STATIC))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_BREATHING))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_FLASHING))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM))->SetCheck(false); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE))->SetCheck(false); - - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_0_R, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_0_G, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_0_B, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_1_R, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_1_G, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_1_B, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_2_R, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_2_G, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_2_B, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_3_R, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_3_G, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_3_B, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_4_R, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_4_G, ""); - SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_4_B, "");*/ - - } - else - { - unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT); - - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->SetCheck(direct != 0); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_MODE))->SetCheck(direct == 0); - - unsigned char mode = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_MODE); - - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_OFF))->SetCheck(mode == AURA_MODE_OFF); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_STATIC))->SetCheck(mode == AURA_MODE_STATIC); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_BREATHING))->SetCheck(mode == AURA_MODE_BREATHING); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_FLASHING))->SetCheck(mode == AURA_MODE_FLASHING); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE))->SetCheck(mode == AURA_MODE_SPECTRUM_CYCLE); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW))->SetCheck(mode == AURA_MODE_RAINBOW); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM))->SetCheck(mode == AURA_MODE_SPECTRUM_CYCLE_BREATHING); - ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE))->SetCheck(mode == AURA_MODE_CHASE_FADE); - - if (direct == 0) - { - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 0)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 2)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 1)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 3)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 5)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 4)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 6)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 8)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 7)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 9)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 11)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 10)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 12)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 14)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 13)); - } - else - { - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 0)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 2)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 1)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 3)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 5)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 4)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 6)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 8)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 7)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 9)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 11)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 10)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 12)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 14)); - SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 13)); - } + mode_box->AddString(controllers[controller_box->GetCurSel()]->modes[i].name.c_str()); } + mode_box->SetCurSel(controllers[controller_box->GetCurSel()]->GetMode()); } void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkDump() { - unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel(); - if (aura_device > 0) - { - ((CButton*)GetDlgItem(IDC_BUTTON_OPENAURASDK_DUMP))->EnableWindow(false); - DumpAuraRegisters(controllers[aura_device - 1]); - ((CButton*)GetDlgItem(IDC_BUTTON_OPENAURASDK_DUMP))->EnableWindow(true); - } +} + + +void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkMode() +{ + CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE); + CComboBox* mode_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_MODE); + + controllers[controller_box->GetCurSel()]->SetMode(mode_box->GetCurSel()); } diff --git a/OpenAuraSDK/OpenAuraSDKDialog.h b/OpenAuraSDK/OpenAuraSDKDialog.h index a870dec2..7a343eed 100644 --- a/OpenAuraSDK/OpenAuraSDKDialog.h +++ b/OpenAuraSDK/OpenAuraSDKDialog.h @@ -4,7 +4,7 @@ #include #include #include "i2c_smbus.h" -#include "AuraController.h" +#include "RGBController.h" #include "resource.h" class OpenAuraSDKDialog : public CDialogEx @@ -12,7 +12,7 @@ class OpenAuraSDKDialog : public CDialogEx DECLARE_DYNAMIC(OpenAuraSDKDialog) public: - OpenAuraSDKDialog(std::vector& bus, std::vector& control, CWnd* pParent = NULL); + OpenAuraSDKDialog(std::vector& bus, std::vector& control, CWnd* pParent = NULL); virtual ~OpenAuraSDKDialog(); virtual BOOL OnInitDialog(); @@ -21,26 +21,17 @@ private: protected: std::vector& busses; - std::vector& controllers; + std::vector& controllers; virtual void DoDataExchange(CDataExchange* pDX); DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedButtonOpenaurasdkI2cdetect(); - afx_msg void OnBnClickedRadioOpenaurasdkDirectMode(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectMode(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectOff(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectStatic(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectBreathing(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectFlashing(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectSpectrumCycle(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectRainbow(); - afx_msg void OnBnClickedRadioOpenaurasdkBreathingSpectrum(); - afx_msg void OnBnClickedRadioOpenaurasdkEffectChaseFade(); afx_msg void OnBnClickedButtonOpenaurasdkSetColors(); afx_msg void OnCbnCloseupComboOpenaurasdkDevice(); afx_msg void OnBnClickedButtonOpenaurasdkSetColorsAll(); afx_msg void OnBnClickedButtonOpenaurasdkDump(); + afx_msg void OnCbnCloseupComboOpenaurasdkMode(); }; #endif diff --git a/OpenAuraSDK/RGBController.h b/OpenAuraSDK/RGBController.h index e046529a..3d54af3a 100644 --- a/OpenAuraSDK/RGBController.h +++ b/OpenAuraSDK/RGBController.h @@ -46,4 +46,8 @@ public: std::vector leds; /* LEDs */ std::vector zones; /* Zones */ std::vector modes; /* Modes */ + + virtual int GetMode() = 0; + virtual void SetMode(int mode) = 0; + virtual void SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue) = 0; }; \ No newline at end of file diff --git a/OpenAuraSDK/Resource.rc b/OpenAuraSDK/Resource.rc index 4b9f39fbdc0e84ce623ba1044adce76622db48ad..fb1a2b88a87e5db46f1db222b814c0f28eaa68f8 100644 GIT binary patch delta 149 zcmeB*U*NNWNnr9jp|H(DLS>AT=W!`*o+P8iC>_M$&fvtLz~Ib~&ydGZ!cfGJ&yd5A z!;s2QH2I>ete_!-0fP>MC4&xw8JJ};*-$=tbCMhn$K*b~5K&(Se+Cx@R|XvhLk4pO lBL*D?V+MoCKl!pjHcZ|ltt4v505QUt!4P4{=1et3P5_LkAcFt^ delta 2149 zcmZ4B(-psgNr2ax!Jom8A%r1_!Jolr@!C77#!x{M1h$m*uZHCl&-~9L1`M~;0%ULhCGIJ z+>Ta6b+i)$D4m0x?ZM#5;K$(3pfg!eL3FZ!Fb5QKrIVB95gxGsd&C4el13`b(qx!>*!H2<-A(#Q~3o`R6!rhiocN-y646?hqPzx5rV1@!{o-AT0Wyoa! zrK(DXWQH7uRNRrFjp~VDh5%@e4Pppo@MVZ+aAt^PaAxoU6+Y( z7dx0K44%M5b%PiZ!AUELA)lcfT%08`l;QK6EUMo?1uQ6mIWhP%gkvT$ihW}UjxIf^q9lQL=^ka2<$&|221S85j8bxIx}Q|vr#I8 z0)rbvB0~zkm{LZKDQ5-`a8`0Vs5zrdZ22cqKXcBd7S}V=^kb zMhu4FbZX3Cz@Wom0cL~5kYgD|7q1cnQaw5Oyo|IYNIfX6n}S0UVg@Ls7;Zi&7|AH? v$WY2q#E{6Kz~I7=%1{O>`X`^2k>`e32?}