From 6faf8943ddb3888485a50269fe43a6d5b6f68afc Mon Sep 17 00:00:00 2001 From: Matthew Barth Date: Tue, 22 Jan 2019 09:26:09 -0600 Subject: Override setting Current mode property When the Current mode property changes, the persisted value is updated. Change-Id: I319fbe2afb8112f7425dc0a1d765fe8f1c408bae Signed-off-by: Matthew Barth --- control/zone.cpp | 12 ++++++++++++ control/zone.hpp | 9 +++++++++ 2 files changed, 21 insertions(+) (limited to 'control') diff --git a/control/zone.cpp b/control/zone.cpp index 8408e8d..bc40b7e 100644 --- a/control/zone.cpp +++ b/control/zone.cpp @@ -604,6 +604,18 @@ const std::string& Zone::addServices(const std::string& path, return empty; } +std::string Zone::current(std::string value) +{ + auto current = value; + if (current != ThermalObject::current()) + { + current = ThermalObject::current(value); + saveCurrentMode(); + // TODO Trigger event(s) for mode property change + } + return current; +} + void Zone::saveCurrentMode() { fs::path path{CONTROL_PERSIST_ROOT_PATH}; diff --git a/control/zone.hpp b/control/zone.hpp index 3774d76..73761d0 100644 --- a/control/zone.hpp +++ b/control/zone.hpp @@ -468,6 +468,15 @@ class Zone : public ThermalObject const std::string& intf, int32_t depth); + /** + * @brief Overridden thermal object's set 'Current' property function + * + * @param[in] value - Value to set 'Current' to + * + * @return - The updated value of the 'Current' property + */ + virtual std::string current(std::string value); + private: /** -- cgit v1.2.1