From 520c8a8938313ffe3ef4db90b6a81c80cd1be05b Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Sun, 27 Nov 2022 05:00:14 -0600 Subject: [PATCH] Add Basic I2C to serial settings --- .../LEDStripController/LEDStripController.cpp | 10 ++-------- .../OpenRGBSerialSettingsEntry.cpp | 14 ++++++++++++++ .../OpenRGBSerialSettingsEntry.h | 2 ++ .../OpenRGBSerialSettingsPage.cpp | 7 +++++++ 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/Controllers/LEDStripController/LEDStripController.cpp b/Controllers/LEDStripController/LEDStripController.cpp index 7db01a01d..2a2205727 100644 --- a/Controllers/LEDStripController/LEDStripController.cpp +++ b/Controllers/LEDStripController/LEDStripController.cpp @@ -6,7 +6,6 @@ #include "LEDStripController.h" #include "ResourceManager.h" -#include "LogManager.h" #include #include @@ -47,13 +46,6 @@ void LEDStripController::Initialize(char* ledstring, led_protocol proto) serial = FALSE; } - //I2C includes extra entry - I2C device address - if (protocol == LED_PROTOCOL_BASIC_I2C) - { - udpport_baud = strtok_s(next, ",", &next); - i2c_addr = atoi(udpport_baud); - } - //Check for either the UDP port or the serial baud rate if (strlen(next)) { @@ -70,6 +62,8 @@ void LEDStripController::Initialize(char* ledstring, led_protocol proto) { if (protocol == LED_PROTOCOL_BASIC_I2C) { + //I2C uses the baud field for address + i2c_addr = atoi(udpport_baud); InitializeI2C(source); } else if (udpport_baud == NULL) diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp index dac20b0d8..cbd36e109 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp @@ -12,6 +12,7 @@ OpenRGBSerialSettingsEntry::OpenRGBSerialSettingsEntry(QWidget *parent) : ui->ProtocolComboBox->addItem("Keyboard Visualizer"); ui->ProtocolComboBox->addItem("Adalight"); ui->ProtocolComboBox->addItem("TPM2"); + ui->ProtocolComboBox->addItem("Basic I2C"); } OpenRGBSerialSettingsEntry::~OpenRGBSerialSettingsEntry() @@ -26,3 +27,16 @@ void OpenRGBSerialSettingsEntry::changeEvent(QEvent *event) ui->retranslateUi(this); } } + +void Ui::OpenRGBSerialSettingsEntry::on_ProtocolComboBox_currentIndexChanged(int index) +{ + if(index == 3) + { + ui->BaudLabel->setText("Address:"); + } + else + { + ui->BaudLabel->setText("Baud:"); + } +} + diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h index c9733fecf..69e8c6295 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h @@ -15,6 +15,8 @@ class Ui::OpenRGBSerialSettingsEntry : public QWidget private slots: void changeEvent(QEvent *event); + void on_ProtocolComboBox_currentIndexChanged(int index); + public: explicit OpenRGBSerialSettingsEntry(QWidget *parent = nullptr); ~OpenRGBSerialSettingsEntry(); diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp index 6ca9c05c4..f4ef229a4 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp @@ -62,6 +62,10 @@ OpenRGBSerialSettingsPage::OpenRGBSerialSettingsPage(QWidget *parent) : { entry->ui->ProtocolComboBox->setCurrentIndex(2); } + else if(protocol_string == "basic_i2c") + { + entry->ui->ProtocolComboBox->setCurrentIndex(3); + } } entries.push_back(entry); @@ -154,6 +158,9 @@ void Ui::OpenRGBSerialSettingsPage::on_SaveSerialConfigurationButton_clicked() case 2: ledstrip_settings["devices"][device_idx]["protocol"] = "tpm2"; break; + case 3: + ledstrip_settings["devices"][device_idx]["protocol"] = "basic_i2c"; + break; } }