Refactor config API

This commit is contained in:
LordGrey
2024-08-01 23:07:18 +02:00
parent 4a5b0b6bf2
commit c86af5ce79
42 changed files with 1605 additions and 889 deletions

View File

@@ -47,10 +47,10 @@
#include <boblightserver/BoblightServer.h>
#endif
Hyperion::Hyperion(quint8 instance, bool readonlyMode)
Hyperion::Hyperion(quint8 instance)
: QObject()
, _instIndex(instance)
, _settingsManager(new SettingsManager(instance, this, readonlyMode))
, _settingsManager(new SettingsManager(instance, this))
, _componentRegister(nullptr)
, _ledString(LedString::createLedString(getSetting(settings::LEDS).array(), hyperion::createColorOrder(getSetting(settings::DEVICE).object())))
, _imageProcessor(nullptr)
@@ -73,7 +73,6 @@ Hyperion::Hyperion(quint8 instance, bool readonlyMode)
#if defined(ENABLE_BOBLIGHT_SERVER)
, _boblightServer(nullptr)
#endif
, _readOnlyMode(readonlyMode)
{
qRegisterMetaType<ComponentList>("ComponentList");
@@ -320,16 +319,22 @@ QJsonDocument Hyperion::getSetting(settings::type type) const
return _settingsManager->getSetting(type);
}
// TODO: Remove function, if UI is able to handle full configuration
QJsonObject Hyperion::getQJsonConfig() const
{
const QJsonObject instanceConfig = _settingsManager->getSettings();
const QJsonObject globalConfig = _settingsManager->getSettings({},QStringList());
QVariantMap map = instanceConfig.toVariantMap();
map.insert(globalConfig.toVariantMap());
return QJsonObject::fromVariantMap(map);
}
bool Hyperion::saveSettings(const QJsonObject& config, bool correct)
{
return _settingsManager->saveSettings(config, correct);
}
bool Hyperion::restoreSettings(const QJsonObject& config, bool correct)
{
return _settingsManager->restoreSettings(config, correct);
}
int Hyperion::getLatchTime() const
{
return _ledDeviceWrapper->getLatchTime();
@@ -597,11 +602,6 @@ int Hyperion::setEffect(const QString &effectName, const QJsonObject &args, int
}
#endif
QJsonObject Hyperion::getQJsonConfig() const
{
return _settingsManager->getSettings();
}
void Hyperion::setLedMappingType(int mappingType)
{
if(mappingType != _imageProcessor->getUserLedMappingType())