OpenLCP/example/sACN Explorer/sacnexplorer.cpp

68 lines
2.0 KiB
C++
Raw Normal View History

2022-12-03 23:31:13 -05:00
#include <QDebug>
2021-09-06 12:54:28 -04:00
#include "sacnexplorer.h"
SacnExplorer::SacnExplorer(int argc, char *argv[])
: QApplication(argc, argv)
, node_(nullptr)
, window_(nullptr)
2021-09-06 12:54:28 -04:00
{
setOrganizationName("Company235");
setOrganizationDomain("company235.com");
setApplicationName(tr("sACN Explorer"));
settings_ = new QSettings(this);
2021-09-06 12:54:28 -04:00
2022-11-19 15:44:34 -05:00
// Persistant configuration
qDebug() << "Loaded application settings from" << settings_->fileName();
settings_->beginGroup("ACN");
auto cid = settings_->value("CID", QUuid::createUuid()).toUuid();
auto uacn = settings_->value("UACN", "").toString();
auto ipv4 = settings_->value("IPv4", true).toBool();
auto ipv6 = settings_->value("IPv6", true).toBool();
2022-11-19 15:44:34 -05:00
settings_->endGroup();
settings_->beginGroup("sACN");
settings_->beginGroup("receiver");
auto discovery = settings_->value("discovery", true).toBool();
settings_->endGroup();
settings_->endGroup();
2021-09-06 12:54:28 -04:00
2022-11-19 15:44:34 -05:00
// sACN Node
node_ = new QSacnNode(this, cid, applicationName(), ipv4, ipv6);
2022-11-19 15:44:34 -05:00
node_->assignUserName(uacn.toStdString());
qDebug() << "sACN node" << QString(node_->name().c_str()) << "started with CID" << cid.toString();
2022-11-19 15:44:34 -05:00
if (discovery)
node_->discoveryStart();
2021-09-06 12:54:28 -04:00
2022-11-19 15:44:34 -05:00
// Multiverse Explorer
2022-12-03 23:31:13 -05:00
window_ = new MultiverseWindow(nullptr, node_);
window_->setWindowTitle(QApplication::applicationName());
2022-11-19 15:44:34 -05:00
window_->show();
2021-09-06 12:54:28 -04:00
}
SacnExplorer::~SacnExplorer()
{
saveSettings();
2022-11-19 15:44:34 -05:00
delete window_;
2021-09-06 12:54:28 -04:00
}
/**
2022-12-03 23:31:13 -05:00
* @brief SacnExplorer::saveSettings
2021-09-06 12:54:28 -04:00
*/
void SacnExplorer::saveSettings()
{
2022-11-19 15:44:34 -05:00
qDebug() << "Saving application settings to" << settings_->fileName();
settings_->beginGroup("ACN");
settings_->setValue("CID", node_->cid().string().c_str());
settings_->setValue("UACN", node_->userName().c_str());
settings_->setValue("IPv4", node_->isEnabledIPv4());
settings_->setValue("IPv6", node_->isEnabledIPv6());
2022-11-19 15:44:34 -05:00
settings_->endGroup();
settings_->beginGroup("sACN");
settings_->beginGroup("receiver");
settings_->setValue("discovery", node_->discoveryEnabled());
2022-11-19 15:44:34 -05:00
settings_->endGroup();
settings_->endGroup();
2021-09-06 12:54:28 -04:00
}