summaryrefslogtreecommitdiff
path: root/qt/RGBController/controllerwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt/RGBController/controllerwindow.cpp')
-rwxr-xr-xqt/RGBController/controllerwindow.cpp343
1 files changed, 177 insertions, 166 deletions
diff --git a/qt/RGBController/controllerwindow.cpp b/qt/RGBController/controllerwindow.cpp
index 302e3d2..c5a8e4d 100755
--- a/qt/RGBController/controllerwindow.cpp
+++ b/qt/RGBController/controllerwindow.cpp
@@ -4,106 +4,115 @@ controllerWindow::controllerWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::controllerWindow)
{
- /* this is our setup function, we set things up here */
+ /* this is our setup function, we set things up here */
ui->setupUi(this);
- info_log("RGB Controller started");
- /* disable buttons and widgets that should not be enabled yet, set slider values to 0 */
- ui->disconnect_button->setEnabled(false);
- ui->connect_button->setEnabled(false);
- ui->red_button->setEnabled(false);
- ui->green_button->setEnabled(false);
- ui->blue_button->setEnabled(false);
- ui->off_button->setEnabled(false);
- ui->reload_preset_button->setEnabled(false);
- ui->set_preset_button->setEnabled(false);
- ui->presets_dropdown->setEnabled(false);
- ui->r_slider->setEnabled(false);
- ui->g_slider->setEnabled(false);
- ui->b_slider->setEnabled(false);
- ui->r_slider->setValue(0);
- ui->g_slider->setValue(0);
- ui->b_slider->setValue(0);
- /* set some crucial ints */
- preset_index = 0, r = 0, g = 0, b = 0;
- /* populate our serial port dropdown box */
- populate_serial_list();
- /* load our presets file */
- load_presets();
+ info_log("RGB Controller started");
+ /* disable buttons and widgets that should not be enabled yet, set slider values to 0 */
+ ui->disconnect_button->setEnabled(false);
+ ui->connect_button->setEnabled(false);
+ ui->red_button->setEnabled(false);
+ ui->green_button->setEnabled(false);
+ ui->blue_button->setEnabled(false);
+ ui->off_button->setEnabled(false);
+ ui->reload_preset_button->setEnabled(false);
+ ui->set_preset_button->setEnabled(false);
+ ui->presets_dropdown->setEnabled(false);
+ ui->r_slider->setEnabled(false);
+ ui->g_slider->setEnabled(false);
+ ui->b_slider->setEnabled(false);
+ ui->r_slider->setValue(0);
+ ui->g_slider->setValue(0);
+ ui->b_slider->setValue(0);
+ /* set some crucial ints */
+ preset_index = 0, r = 0, g = 0, b = 0;
+ /* populate our serial port dropdown box */
+ populate_serial_list();
+ /* load our presets file */
+ load_presets();
}
controllerWindow::~controllerWindow()
{
- /* this function will end our program and clean up */
+ /* this function will end our program and clean up */
delete ui;
}
void controllerWindow::info_log(QString text)
{
- /* this function is used to append logging information to our text area */
- ui->info_log_textarea->append(text);
+ /* this function is used to append logging information to our text area */
+ ui->info_log_textarea->append(text);
}
void controllerWindow::populate_serial_list()
{
- /*
- * things to be done here:
- * - clear anything inside our serial dropdown box
- * - re-populate the serial dropdown box
- */
-
- /* remove anything in the list */
- ui->arduino_port_dropdown->clear();
- /* populate the list */
- for (int x = 0; x < QSerialPortInfo::availablePorts().size(); x++)
- {
- if (!QSerialPortInfo::availablePorts().at(x).description().isEmpty())
- ui->arduino_port_dropdown->addItem(QSerialPortInfo::availablePorts().at(x).portName());
- }
- if (!ui->arduino_port_dropdown->itemText(0).isEmpty())
- {
- ui->connect_button->setEnabled(true);
- info_log("Serial port list populated");
- } else
- {
- info_log("No serial port found!");
- ui->arduino_port_dropdown->addItem("None");
- }
+ /*
+ * things to be done here:
+ * - clear anything inside our serial dropdown box
+ * - re-populate the serial dropdown box
+ */
+
+ /* remove anything in the list */
+ ui->arduino_port_dropdown->clear();
+ /* populate the list */
+ for (int x = 0; x < QSerialPortInfo::availablePorts().size(); x++)
+ {
+ if (!QSerialPortInfo::availablePorts().at(x).description().isEmpty())
+ ui->arduino_port_dropdown->addItem(QSerialPortInfo::availablePorts().at(x).portName());
+ }
+ if (!ui->arduino_port_dropdown->itemText(0).isEmpty())
+ {
+ ui->connect_button->setEnabled(true);
+ info_log("Serial port list populated");
+ } else
+ {
+ info_log("No serial port found!");
+ ui->arduino_port_dropdown->addItem("None");
+ }
}
void controllerWindow::load_presets()
{
- /*
- * this function will load presets from file and put them into a drop down box
- * How i plan for it to work:
- * -> load file
- * -> parse line by line
- * -> split line at delimeter
- * -> add [0] to dropdown (name), add [1] to an array that stores all the values
- */
- QFile inputFile("presets.txt");
- if (inputFile.open(QIODevice::ReadOnly))
- {
- QTextStream in(&inputFile);
- while (!in.atEnd())
- {
- QString line = in.readLine();
- if (line.contains("="))
- {
- ui->presets_dropdown->addItem(line.split("=")[0]);
- presets.append(line.split("=")[1]);
- }
- }
- inputFile.close();
- info_log("Presets loaded");
- } else
- info_log("Presets file not found.");
+ /*
+ * this function will load presets from file and put them into a drop down box
+ * How i plan for it to work:
+ * -> load file
+ * -> parse line by line
+ * -> split line at delimeter
+ * -> add [0] to dropdown (name), add [1] to an array that stores all the values
+ */
+ QFile inputFile("presets.txt");
+ if (inputFile.open(QIODevice::ReadOnly))
+ {
+ QTextStream in(&inputFile);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ if (line.contains("="))
+ {
+ ui->presets_dropdown->addItem(line.split("=")[0]);
+ presets.append(line.split("=")[1]);
+ }
+ }
+ inputFile.close();
+ info_log("Presets loaded");
+ } else
+ {
+ show_msgbox("Unable to find the presets fle.\nThis file needs to be named 'presets.txt' and be located in the same directory as the binary.");
+ info_log("Presets file not found.");
+ }
}
void controllerWindow::serial_rgb_change(int r, int g, int b)
{
- portf.rgb_change(r, g, b);
+ portf.rgb_change(r, g, b);
}
+void controllerWindow::show_msgbox(QString message)
+{
+ QMessageBox msgbox;
+ msgbox.setText(message);
+ msgbox.exec();
+}
/*
*
@@ -113,143 +122,145 @@ void controllerWindow::serial_rgb_change(int r, int g, int b)
void controllerWindow::on_connect_button_clicked()
{
- /*
- * here we need to call our serial port connect function
- * if our connection is sucessful we need to enable and disable a few buttons and widgets
- * we must also change our rgb sliders etc
- */
- port = ui->arduino_port_dropdown->currentText();
- if (portf.serial_connect(port))
- { // if true we are connected
- info_log("Connection established");
- ui->arduino_status_label->setText("<font color=green>Connected</font>");
- /* now we need to disabled and enable some buttons and objects */
- ui->disconnect_button->setEnabled(true);
- ui->connect_button->setEnabled(false);
- ui->red_button->setEnabled(true);
- ui->green_button->setEnabled(true);
- ui->blue_button->setEnabled(true);
- ui->off_button->setEnabled(true);
- ui->reload_preset_button->setEnabled(true);
- ui->set_preset_button->setEnabled(true);
- ui->presets_dropdown->setEnabled(true);
- ui->r_slider->setEnabled(true);
- ui->g_slider->setEnabled(true);
- ui->b_slider->setEnabled(true);
- ui->refresh_port_button->setEnabled(false);
- ui->arduino_port_dropdown->setEnabled(false);
- } else
- {
- info_log("Unable to connect (port in use?)");
- }
+ /*
+ * here we need to call our serial port connect function
+ * if our connection is sucessful we need to enable and disable a few buttons and widgets
+ * we must also change our rgb sliders etc
+ */
+ port = ui->arduino_port_dropdown->currentText();
+ if (portf.serial_connect(port))
+ { // if true we are connected
+ info_log("Connection established");
+ ui->arduino_status_label->setText("<font color=green>Connected</font>");
+ /* now we need to disabled and enable some buttons and objects */
+ ui->disconnect_button->setEnabled(true);
+ ui->connect_button->setEnabled(false);
+ ui->red_button->setEnabled(true);
+ ui->green_button->setEnabled(true);
+ ui->blue_button->setEnabled(true);
+ ui->off_button->setEnabled(true);
+ ui->reload_preset_button->setEnabled(true);
+ ui->set_preset_button->setEnabled(true);
+ ui->presets_dropdown->setEnabled(true);
+ ui->r_slider->setEnabled(true);
+ ui->g_slider->setEnabled(true);
+ ui->b_slider->setEnabled(true);
+ ui->refresh_port_button->setEnabled(false);
+ ui->arduino_port_dropdown->setEnabled(false);
+ } else
+ {
+ info_log("Unable to connect (port in use?)");
+ }
}
void controllerWindow::on_disconnect_button_clicked()
{
- /*
- * here we will attempt to disconnect from our serial port
- * we will also enable/disable some buttons and widgets and set slider values to 0
- */
- if (portf.serial_disconnect())
- {
- info_log("Disconnected from serial port");
- ui->arduino_status_label->setText("<font color=red>Disconnected</font>");
- ui->disconnect_button->setEnabled(false);
- ui->connect_button->setEnabled(true);
- ui->red_button->setEnabled(false);
- ui->green_button->setEnabled(false);
- ui->blue_button->setEnabled(false);
- ui->off_button->setEnabled(false);
- ui->reload_preset_button->setEnabled(false);
- ui->set_preset_button->setEnabled(false);
- ui->presets_dropdown->setEnabled(false);
- ui->refresh_port_button->setEnabled(true);
- ui->arduino_port_dropdown->setEnabled(true);
- ui->r_slider->setEnabled(false);
- ui->g_slider->setEnabled(false);
- ui->b_slider->setEnabled(false);
- ui->r_slider->setValue(0);
- ui->g_slider->setValue(0);
- ui->b_slider->setValue(0);
-
- } else
- {
- /* I have no clue how we'd get here */
- info_log("Cannot disconnect");
- }
+ /*
+ * here we will attempt to disconnect from our serial port
+ * we will also enable/disable some buttons and widgets and set slider values to 0
+ */
+ if (portf.serial_disconnect())
+ {
+ info_log("Disconnected from serial port");
+ ui->arduino_status_label->setText("<font color=red>Disconnected</font>");
+ ui->disconnect_button->setEnabled(false);
+ ui->connect_button->setEnabled(true);
+ ui->red_button->setEnabled(false);
+ ui->green_button->setEnabled(false);
+ ui->blue_button->setEnabled(false);
+ ui->off_button->setEnabled(false);
+ ui->reload_preset_button->setEnabled(false);
+ ui->set_preset_button->setEnabled(false);
+ ui->presets_dropdown->setEnabled(false);
+ ui->refresh_port_button->setEnabled(true);
+ ui->arduino_port_dropdown->setEnabled(true);
+ ui->r_slider->setEnabled(false);
+ ui->g_slider->setEnabled(false);
+ ui->b_slider->setEnabled(false);
+ ui->r_slider->setValue(0);
+ ui->g_slider->setValue(0);
+ ui->b_slider->setValue(0);
+ } else
+ {
+ /* I have no clue how we'd get here */
+ info_log("Cannot disconnect");
+ }
}
void controllerWindow::on_refresh_port_button_clicked()
{
- populate_serial_list();
+ populate_serial_list();
}
void controllerWindow::on_reload_preset_button_clicked()
{
- ui->presets_dropdown->clear();
- presets.clear();
- preset_index = 0;
- load_presets();
+ ui->presets_dropdown->clear();
+ presets.clear();
+ preset_index = 0;
+ load_presets();
}
void controllerWindow::on_r_slider_valueChanged(int value)
{
- r = value;
- serial_rgb_change(r, g, b);
+ r = value;
+ serial_rgb_change(r, g, b);
}
void controllerWindow::on_g_slider_valueChanged(int value)
{
- g = value;
- serial_rgb_change(r, g, b);
+ g = value;
+ serial_rgb_change(r, g, b);
}
void controllerWindow::on_b_slider_valueChanged(int value)
{
- b = value;
- serial_rgb_change(r, g, b);
+ b = value;
+ serial_rgb_change(r, g, b);
}
void controllerWindow::on_red_button_clicked()
{
- ui->r_slider->setValue(255);
- ui->g_slider->setValue(0);
- ui->b_slider->setValue(0);
+ ui->r_slider->setValue(255);
+ ui->g_slider->setValue(0);
+ ui->b_slider->setValue(0);
}
void controllerWindow::on_green_button_clicked()
{
- ui->r_slider->setValue(0);
- ui->g_slider->setValue(255);
- ui->b_slider->setValue(0);
+ ui->r_slider->setValue(0);
+ ui->g_slider->setValue(255);
+ ui->b_slider->setValue(0);
}
void controllerWindow::on_blue_button_clicked()
{
- ui->r_slider->setValue(0);
- ui->g_slider->setValue(0);
- ui->b_slider->setValue(255);
+ ui->r_slider->setValue(0);
+ ui->g_slider->setValue(0);
+ ui->b_slider->setValue(255);
}
void controllerWindow::on_off_button_clicked()
{
- ui->r_slider->setValue(0);
- ui->g_slider->setValue(0);
- ui->b_slider->setValue(0);
+ ui->r_slider->setValue(0);
+ ui->g_slider->setValue(0);
+ ui->b_slider->setValue(0);
}
void controllerWindow::on_set_preset_button_clicked()
{
- QString tempstore = presets.at(preset_index);
- QStringList temparray = tempstore.split(",");
- info_log("Preset selected: " + temparray[0] + " " + temparray[1] + " " + temparray[2]);
- ui->r_slider->setValue(temparray[0].toInt());
- ui->g_slider->setValue(temparray[1].toInt());
- ui->b_slider->setValue(temparray[2].toInt());
+ if (!presets.empty())
+ {
+ QString tempstore = presets.at(preset_index);
+ QStringList temparray = tempstore.split(",");
+ info_log("Preset selected: " + temparray[0] + " " + temparray[1] + " " + temparray[2]);
+ ui->r_slider->setValue(temparray[0].toInt());
+ ui->g_slider->setValue(temparray[1].toInt());
+ ui->b_slider->setValue(temparray[2].toInt());
+ }
}
void controllerWindow::on_presets_dropdown_currentIndexChanged(int index)
{
- preset_index = index;
+ preset_index = index;
}