- if ((_monitoring & MonitorInput) || // explicitly requested input monitoring
- (!(_monitoring & MonitorDisk) && // disk monitoring not requested
- (_diskstream->record_enabled() && // record-enabled BUT
- !_session.actively_recording() && // session NOT rec-armed
- !_session.config.get_auto_input()))) { // and auto-input is off
+ /* This is an implementation of the truth table in doc/monitor_modes.pdf;
+ I don't think it's ever going to be too pretty too look at.
+ */
+
+ bool const roll = _session.transport_rolling ();
+ bool const track_rec = _diskstream->record_enabled ();
+ bool const auto_input = _session.config.get_auto_input ();
+ bool const software_monitor = Config->get_monitoring_model() == SoftwareMonitoring;
+ bool const tape_machine_mode = Config->get_tape_machine_mode ();
+ bool session_rec;
+
+ /* I suspect that just use actively_recording() is good enough all the
+ * time, but just to keep the semantics the same as they were before
+ * sept 26th 2012, we differentiate between the cases where punch is
+ * enabled and those where it is not.
+ */
+
+ if (_session.config.get_punch_in() || _session.config.get_punch_out()) {
+ session_rec = _session.actively_recording ();
+ } else {
+ session_rec = _session.get_record_enabled();
+ }