diff options
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r-- | libs/ardour/midi_track.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index 1b327ae70d..1b40cb5f56 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -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; +} |