summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-01-09 16:43:30 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-01-09 16:43:30 +0000
commit34373c30f3bdb8436d9f002b6cb9e1363346d6b5 (patch)
treea8f210f8ef802f6a184ea1db29e8d20cae9bc3be /libs/ardour
parentd0d6a2015f1e823232b7d6daece722a8b20e2dd9 (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.h1
-rw-r--r--libs/ardour/midi_track.cc26
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;
+}