From 06f21865c6556fdfbbf1013a8e3e9528c68a8b01 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Wed, 19 Jun 2019 12:31:58 -0500 Subject: [PATCH] Move main function to its own file, add checks to prevent UI updates if no devices were detected --- OpenAuraSDK/OpenAuraSDK.cpp | 34 ++----- OpenAuraSDK/OpenAuraSDK.h | 3 +- OpenAuraSDK/OpenAuraSDK.vcxproj | 1 + OpenAuraSDK/OpenAuraSDK.vcxproj.filters | 3 + OpenAuraSDK/OpenAuraSDKDialog.cpp | 113 ++++++++++++++---------- OpenAuraSDK/main.cpp | 55 ++++++++++++ 6 files changed, 134 insertions(+), 75 deletions(-) create mode 100644 OpenAuraSDK/main.cpp diff --git a/OpenAuraSDK/OpenAuraSDK.cpp b/OpenAuraSDK/OpenAuraSDK.cpp index e3b1ec8a..9f8ebeb6 100644 --- a/OpenAuraSDK/OpenAuraSDK.cpp +++ b/OpenAuraSDK/OpenAuraSDK.cpp @@ -22,7 +22,6 @@ #include #include -#include "OpenAuraSDKDialog.h" #include "I2CDetectDialog.h" #include "i2c_smbus_piix4.h" #include "i2c_smbus_i801.h" @@ -33,7 +32,6 @@ #pragma comment(lib, "inpout32.lib") #else /* WIN32 */ -#include "OpenAuraSDKQtDialog.h" #include "i2c_smbus_linux.h" #include #include @@ -41,9 +39,9 @@ #endif /* WIN32 */ -std::vector aura_controllers; +std::vector aura_controllers; std::vector corsair_controllers; -std::vector busses; +std::vector busses; std::vector rgb_controllers; #ifdef WIN32 @@ -555,8 +553,6 @@ std::string DetectI2C(i2c_smbus_interface * bus, int mode) char line[128]; std::string text; - freopen("i2cdetect.txt", "a", stdout); - sprintf(line, " 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n"); text.append(line); @@ -645,13 +641,13 @@ void DumpAuraRegisters(AuraController * controller) /******************************************************************************************\ * * -* main * +* DetectRGBConrollers * * * -* Main function. Detects busses and Aura controllers, then opens the main window * +* Detect and populate RGB Controllers vector * * * \******************************************************************************************/ -int main(int argc, char *argv[]) +void DetectRGBControllers(void) { DetectI2CBusses(); @@ -674,7 +670,7 @@ int main(int argc, char *argv[]) //This is only for testing, hard-coding the OpenRazer path for my mouse #if 0 - RGBController_OpenRazer* razer_rgb = new RGBController_OpenRazer("/sys/bus/hid/drivers/razermouse/0003:1532:0046.0004"); + RGBController_OpenRazer * razer_rgb = new RGBController_OpenRazer("/sys/bus/hid/drivers/razermouse/0003:1532:0046.0004"); rgb_controllers.push_back(razer_rgb); @@ -689,23 +685,9 @@ int main(int argc, char *argv[]) //This is for testing Aorus GPU #if 0 - RGBController_AorusGPU* aorus_rgb = new RGBController_AorusGPU(); + RGBController_AorusGPU * aorus_rgb = new RGBController_AorusGPU(); rgb_controllers.push_back(aorus_rgb); #endif -#if WIN32 - OpenAuraSDKDialog dlg(busses, rgb_controllers); - dlg.DoModal(); - - return 0; - -#else - QApplication a(argc, argv); - - Ui::OpenAuraSDKQtDialog dlg(busses, rgb_controllers); - dlg.show(); - - return a.exec(); -#endif -} +} \ No newline at end of file diff --git a/OpenAuraSDK/OpenAuraSDK.h b/OpenAuraSDK/OpenAuraSDK.h index ae16e9bb..59ff0781 100644 --- a/OpenAuraSDK/OpenAuraSDK.h +++ b/OpenAuraSDK/OpenAuraSDK.h @@ -8,4 +8,5 @@ #define MODE_FUNC 3 std::string DetectI2C(i2c_smbus_interface * bus, int mode); -void DumpAuraRegisters(AuraController * controller); \ No newline at end of file +void DumpAuraRegisters(AuraController * controller); +void DetectRGBControllers(); \ No newline at end of file diff --git a/OpenAuraSDK/OpenAuraSDK.vcxproj b/OpenAuraSDK/OpenAuraSDK.vcxproj index 77c2d318..6082f647 100644 --- a/OpenAuraSDK/OpenAuraSDK.vcxproj +++ b/OpenAuraSDK/OpenAuraSDK.vcxproj @@ -202,6 +202,7 @@ + diff --git a/OpenAuraSDK/OpenAuraSDK.vcxproj.filters b/OpenAuraSDK/OpenAuraSDK.vcxproj.filters index 0ec446ef..a5d1bafc 100644 --- a/OpenAuraSDK/OpenAuraSDK.vcxproj.filters +++ b/OpenAuraSDK/OpenAuraSDK.vcxproj.filters @@ -104,6 +104,9 @@ Source Files + + Source Files + diff --git a/OpenAuraSDK/OpenAuraSDKDialog.cpp b/OpenAuraSDK/OpenAuraSDKDialog.cpp index bba6d1ee..d8378235 100644 --- a/OpenAuraSDK/OpenAuraSDKDialog.cpp +++ b/OpenAuraSDK/OpenAuraSDKDialog.cpp @@ -44,27 +44,29 @@ BOOL OpenAuraSDKDialog::OnInitDialog() controller_box->SetCurSel(0); - for (int i = 0; i < controllers[0]->modes.size(); i++) + if (controllers.size() > 0) { - mode_box->AddString(controllers[0]->modes[i].name.c_str()); + for (int i = 0; i < controllers[0]->modes.size(); i++) + { + mode_box->AddString(controllers[0]->modes[i].name.c_str()); + } + + mode_box->SetCurSel(controllers[0]->GetMode()); + + for (int i = 0; i < controllers[0]->zones.size(); i++) + { + zone_box->AddString(controllers[0]->zones[i].name.c_str()); + } + + zone_box->SetCurSel(0); + + for (int i = 0; i < controllers[0]->leds.size(); i++) + { + led_box->AddString(controllers[0]->leds[i].name.c_str()); + } + + led_box->SetCurSel(0); } - - mode_box->SetCurSel(controllers[0]->GetMode()); - - for (int i = 0; i < controllers[0]->zones.size(); i++) - { - zone_box->AddString(controllers[0]->zones[i].name.c_str()); - } - - zone_box->SetCurSel(0); - - for (int i = 0; i < controllers[0]->leds.size(); i++) - { - led_box->AddString(controllers[0]->leds[i].name.c_str()); - } - - led_box->SetCurSel(0); - return TRUE; } @@ -99,32 +101,35 @@ void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice() CComboBox* zone_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_ZONE); CComboBox* led_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_LED); - mode_box->ResetContent(); - - for (int i = 0; i < controllers[controller_box->GetCurSel()]->modes.size(); i++) + if (controllers.size() > 0) { - mode_box->AddString(controllers[controller_box->GetCurSel()]->modes[i].name.c_str()); + mode_box->ResetContent(); + + for (int i = 0; i < controllers[controller_box->GetCurSel()]->modes.size(); i++) + { + mode_box->AddString(controllers[controller_box->GetCurSel()]->modes[i].name.c_str()); + } + + mode_box->SetCurSel(controllers[controller_box->GetCurSel()]->GetMode()); + + zone_box->ResetContent(); + + for (int i = 0; i < controllers[controller_box->GetCurSel()]->zones.size(); i++) + { + zone_box->AddString(controllers[controller_box->GetCurSel()]->zones[i].name.c_str()); + } + + zone_box->SetCurSel(0); + + led_box->ResetContent(); + + for (int i = 0; i < controllers[controller_box->GetCurSel()]->leds.size(); i++) + { + led_box->AddString(controllers[controller_box->GetCurSel()]->leds[i].name.c_str()); + } + + led_box->SetCurSel(0); } - - mode_box->SetCurSel(controllers[controller_box->GetCurSel()]->GetMode()); - - zone_box->ResetContent(); - - for (int i = 0; i < controllers[controller_box->GetCurSel()]->zones.size(); i++) - { - zone_box->AddString(controllers[controller_box->GetCurSel()]->zones[i].name.c_str()); - } - - zone_box->SetCurSel(0); - - led_box->ResetContent(); - - for (int i = 0; i < controllers[controller_box->GetCurSel()]->leds.size(); i++) - { - led_box->AddString(controllers[controller_box->GetCurSel()]->leds[i].name.c_str()); - } - - led_box->SetCurSel(0); } void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkMode() @@ -132,7 +137,10 @@ 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()); + if (controllers.size() > 0) + { + controllers[controller_box->GetCurSel()]->SetMode(mode_box->GetCurSel()); + } } @@ -147,7 +155,10 @@ void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetZone() GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[controller_box->GetCurSel()]->SetAllZoneLEDs(zone_box->GetCurSel(), color); + if (controllers.size() > 0) + { + controllers[controller_box->GetCurSel()]->SetAllZoneLEDs(zone_box->GetCurSel(), color); + } } @@ -162,7 +173,10 @@ void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsLed() GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[controller_box->GetCurSel()]->SetLED(led_box->GetCurSel(), color); + if (controllers.size() > 0) + { + controllers[controller_box->GetCurSel()]->SetLED(led_box->GetCurSel(), color); + } } @@ -176,5 +190,8 @@ void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsDevice() GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) ); - controllers[controller_box->GetCurSel()]->SetAllLEDs(color); -} + if (controllers.size() > 0) + { + controllers[controller_box->GetCurSel()]->SetAllLEDs(color); + } +} \ No newline at end of file diff --git a/OpenAuraSDK/main.cpp b/OpenAuraSDK/main.cpp new file mode 100644 index 00000000..a94f15a2 --- /dev/null +++ b/OpenAuraSDK/main.cpp @@ -0,0 +1,55 @@ +/******************************************************************************************\ +* * +* main.cpp * +* * +* Main function for OpenAuraSDK GUI project * +* * +\******************************************************************************************/ + +#include "OpenAuraSDK.h" +#include "RGBController.h" +#include "i2c_smbus.h" +#include +#include +#include + +#ifdef WIN32 + +#include "OpenAuraSDKDialog.h" + +#else /* WIN32 */ + +#include "OpenAuraSDKQtDialog.h" + +#endif /* WIN32 */ + +extern std::vector busses; +extern std::vector rgb_controllers; + +/******************************************************************************************\ +* * +* main * +* * +* Main function. Detects busses and Aura controllers, then opens the main window * +* * +\******************************************************************************************/ + +int main(int argc, char* argv[]) +{ + DetectRGBControllers(); + +#if WIN32 + OpenAuraSDKDialog dlg(busses, rgb_controllers); + dlg.DoModal(); + + return 0; + +#else + QApplication a(argc, argv); + + Ui::OpenAuraSDKQtDialog dlg(busses, rgb_controllers); + dlg.show(); + + return a.exec(); +#endif +} \ No newline at end of file