diff options
Diffstat (limited to 'control/zone.cpp')
-rw-r--r-- | control/zone.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/control/zone.cpp b/control/zone.cpp index 18fd627..35c7d2b 100644 --- a/control/zone.cpp +++ b/control/zone.cpp @@ -73,6 +73,23 @@ void Zone::setSpeed(uint64_t speed) } } +void Zone::setActiveAllow(const Group* group, bool isActiveAllow) +{ + _active[group] = isActiveAllow; + if (!isActiveAllow) + { + _isActive = false; + } + else + { + // Check all entries are set to allow control active + auto actPred = [](auto const& entry) {return entry.second;}; + _isActive = std::all_of(_active.begin(), + _active.end(), + actPred); + } +} + int Zone::signalHandler(sd_bus_message* msg, void* data, sd_bus_error* err) |