// SPDX-License-Identifier: GPL-3.0-or-later
|
|
/*
|
|
* Qt mutizone MQTT thermostat
|
|
*
|
|
* Copyright (C) 2019 Richard Genoud
|
|
*
|
|
*/
|
|
|
|
#include <QTranslator>
|
|
#include <QString>
|
|
|
|
#include "settings.h"
|
|
|
|
Settings *Settings::_singleton = NULL;
|
|
|
|
Settings::Settings()
|
|
{
|
|
QSettings s;
|
|
struct Room room;
|
|
struct Heater heater;
|
|
int nb_rooms;
|
|
|
|
nb_rooms = s.beginReadArray("rooms");
|
|
if (nb_rooms > MAX_NB_ZONES) {
|
|
// TODO;
|
|
nb_rooms = MAX_NB_ZONES;
|
|
}
|
|
|
|
for (int i = 0; i < nb_rooms; ++i) {
|
|
s.setArrayIndex(i);
|
|
room.name = s.value("name", "").toString();
|
|
room.sensor_topic = s.value("sensor_topic", "").toString();
|
|
room.availability_topic = s.value("availability_topic", "").toString();
|
|
int size = s.beginReadArray("heaters");
|
|
for (int j = 0; j < size; ++j) {
|
|
s.setArrayIndex(j);
|
|
heater.ctrl_topic = s.value("control_topic", "").toString();
|
|
room.heaters << heater;
|
|
}
|
|
s.endArray();
|
|
m_rooms << room;
|
|
}
|
|
s.endArray();
|
|
}
|
|
|
|
int Settings::nbZones(void)
|
|
{
|
|
return m_rooms.size();
|
|
}
|
|
|
|
Settings::~Settings()
|
|
{
|
|
}
|
|
|
|
Settings *Settings::getInstance(void)
|
|
{
|
|
if (!_singleton) {
|
|
_singleton = new Settings;
|
|
}
|
|
|
|
return _singleton;
|
|
}
|
|
|
|
/* vim: set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab: */
|
|
|
|
|