|
|
- // 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: */
-
-
|