// SPDX-License-Identifier: GPL-3.0-or-later /* * Qt mutizone MQTT thermostat * * Copyright (C) 2019 Richard Genoud * */ #include #include #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: */