diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-01-09 16:43:30 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-01-09 16:43:30 +0000 |
commit | 34373c30f3bdb8436d9f002b6cb9e1363346d6b5 (patch) | |
tree | a8f210f8ef802f6a184ea1db29e8d20cae9bc3be /libs/ardour | |
parent | d0d6a2015f1e823232b7d6daece722a8b20e2dd9 (diff) |
add MIDITrack specific ::monitoring_state() method
git-svn-id: svn://localhost/ardour2/branches/3.0@11207 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/midi_track.h | 1 | ||||
-rw-r--r-- | libs/ardour/midi_track.cc | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h index 6ca48573d5..803f84f387 100644 --- a/libs/ardour/ardour/midi_track.h +++ b/libs/ardour/ardour/midi_track.h @@ -108,6 +108,7 @@ public: boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const; void set_monitoring (MonitorChoice); + MonitorState monitoring_state () const; void set_input_active (bool); bool input_active () const; 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; +} |