add MIDITrack specific ::monitoring_state() method
[ardour.git] / libs / ardour / midi_track.cc
index 1b327ae70d69c3812222fa591e5d664f8ebfc6ba..1b40cb5f566604df3b2fcf3ebba8f9e990a5f1f1 100644 (file)
@@ -748,3 +748,29 @@ MidiTrack::set_monitoring (MonitorChoice mc)
                md->reset_tracker ();
        }
 }
+
+MonitorState
+MidiTrack::monitoring_state () const
+{
+       /* Explicit requests */
+       
+       if (_monitoring & MonitorInput) {
+               return MonitoringInput;
+       }
+               
+       if (_monitoring & MonitorDisk) {
+               return MonitoringDisk;
+       }
+
+       if (_session.transport_rolling()) {
+               return MonitoringDisk;
+       } 
+
+       /* the return value here doesn't mean that we're actually monitoring
+        * input, let alone input *audio*. but it means that we are NOT 
+        * monitoring silence. this allows us to still hear any audio generated
+        * by using internal generation techniques
+        */
+
+       return MonitoringInput;
+}