add MIDITrack specific ::monitoring_state() method
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 9 Jan 2012 16:43:30 +0000 (16:43 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 9 Jan 2012 16:43:30 +0000 (16:43 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@11207 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/midi_track.h
libs/ardour/midi_track.cc

index 6ca48573d58455136b46b616b0f1b6e2f218c9fc..803f84f387401aa4cc460c29fa1eda53ba335c77 100644 (file)
@@ -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;
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;
+}