+void
+MonitorProcessor::update_monitor_state ()
+{
+ bool en = false;
+
+ if (_cut_all || _dim_all || _mono) {
+ en = true;
+ }
+
+ const uint32_t nchans = _channels.size();
+ for (uint32_t i = 0; i < nchans && !en; ++i) {
+ if (cut (i) || dimmed (i) || soloed (i) || inverted (i)) {
+ en = true;
+ break;
+ }
+ }
+
+ if (_monitor_active != en) {
+ _monitor_active = en;
+ _session.MonitorChanged();
+ }
+}
+