/*---------------------------------------------------------*\ | DDPSettingsEntry.cpp | | | | User interface for OpenRGB DDP settings entry | | | | This file is part of the OpenRGB project | | SPDX-License-Identifier: GPL-2.0-or-later | \*---------------------------------------------------------*/ #include "DDPSettingsEntry.h" #include "ui_DDPSettingsEntry.h" #include "ManualDevicesTypeManager.h" #include "nlohmann/json.hpp" using json = nlohmann::json; DDPSettingsEntry::DDPSettingsEntry(QWidget *parent) : BaseManualDeviceEntry(parent), ui(new Ui::DDPSettingsEntry) { ui->setupUi(this); } DDPSettingsEntry::~DDPSettingsEntry() { delete ui; } void DDPSettingsEntry::changeEvent(QEvent *event) { if(event->type() == QEvent::LanguageChange) { ui->retranslateUi(this); } } void DDPSettingsEntry::loadFromSettings(const json& data) { if(data.contains("name")) { ui->NameEdit->setText(QString::fromStdString(data["name"])); } if(data.contains("ip")) { ui->IPEdit->setText(QString::fromStdString(data["ip"])); } if(data.contains("port")) { ui->PortSpinBox->setValue(data["port"]); } else { ui->PortSpinBox->setValue(4048); } if(data.contains("num_leds")) { ui->NumLedsSpinBox->setValue(data["num_leds"]); } if(data.contains("keepalive_time")) { ui->KeepaliveTimeSpinBox->setValue(data["keepalive_time"]); } } json DDPSettingsEntry::saveSettings() { json result; result["name"] = ui->NameEdit->text().toStdString(); result["ip"] = ui->IPEdit->text().toStdString(); result["port"] = ui->PortSpinBox->value(); result["num_leds"] = ui->NumLedsSpinBox->value(); if(ui->KeepaliveTimeSpinBox->value() > 0) { result["keepalive_time"] = ui->KeepaliveTimeSpinBox->value(); } return result; } bool DDPSettingsEntry::isDataValid() { return !ui->IPEdit->text().isEmpty() && ui->NumLedsSpinBox->value() > 0; } static BaseManualDeviceEntry* SpawnDDPEntry(const json& data) { DDPSettingsEntry* entry = new DDPSettingsEntry; entry->loadFromSettings(data); return entry; } static const char* DDPDeviceName = QT_TRANSLATE_NOOP("ManualDevice", "DDP (Distributed Display Protocol)"); REGISTER_MANUAL_DEVICE_TYPE(DDPDeviceName, "DDPDevices", SpawnDDPEntry);