on session-load: skip output-change-handler until IOs are restored
[ardour.git] / libs / ardour / ardour / midi_port.h
index 7a019e5a203c7af23ffb05e8d5cac51c12b293f2..5dc55398cb9c7fdb1441e3202488d534ee47a5f1 100644 (file)
@@ -41,16 +41,20 @@ class MidiPort : public Port {
        void cycle_end (pframes_t nframes);
        void cycle_split ();
 
-       void flush_buffers (pframes_t nframes, framepos_t time, framecnt_t offset = 0);
+       void flush_buffers (pframes_t nframes);
        void transport_stopped ();
+       void realtime_locate ();
+       void reset ();
+        void require_resolve ();
 
-       size_t raw_buffer_size (pframes_t nframes) const;
+       bool input_active() const { return _input_active; }
+       void set_input_active (bool yn);
 
-       Buffer& get_buffer (framecnt_t nframes, framecnt_t offset = 0) {
-               return get_midi_buffer (nframes, offset);
+       Buffer& get_buffer (pframes_t nframes) {
+               return get_midi_buffer (nframes);
        }
 
-       MidiBuffer& get_midi_buffer (framecnt_t nframes, framecnt_t offset = 0);
+       MidiBuffer& get_midi_buffer (pframes_t nframes);
 
   protected:
        friend class AudioEngine;
@@ -59,10 +63,11 @@ class MidiPort : public Port {
 
   private:
        MidiBuffer* _buffer;
-       bool _has_been_mixed_down;
-       bool _resolve_in_process;
+       bool        _has_been_mixed_down;
+       bool        _resolve_required;
+       bool        _input_active;
 
-       MidiStateTracker _midi_state_tracker;
+       void resolve_notes (void* jack_buffer, MidiBuffer::TimeType when);
 };
 
 } // namespace ARDOUR