summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_port.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-05-30 21:37:58 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-05-30 21:37:58 +0000
commitde9e216cb5fcc08b6c39071d7cef031673aa67da (patch)
tree696922c23551b5609277be3dbbc4b1d378ad6fc2 /libs/ardour/ardour/midi_port.h
parent14a80c091d850045bd35c56d5d378bfdd2fbe4f9 (diff)
(1) push a locate all the way through the processing heirarchy so that MIDI output ports can resolve any notes currently playing (2) remove MidiStateTracker from MidiPort and use a fixed set of MIDI messages (sustain-off and all-notes-off, per channel) to do note resolution (3) move note resolution caused by a LoopEvent psuedo-event to within the main MidiPort::flush_output() loop, so that we resolve (turn off) Notes that come before the loop point, rather than send them out after the note resolution messages
git-svn-id: svn://localhost/ardour2/branches/3.0@9635 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_port.h')
-rw-r--r--libs/ardour/ardour/midi_port.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/ardour/ardour/midi_port.h b/libs/ardour/ardour/midi_port.h
index 9a685be4e4..69e17ca08e 100644
--- a/libs/ardour/ardour/midi_port.h
+++ b/libs/ardour/ardour/midi_port.h
@@ -43,6 +43,7 @@ class MidiPort : public Port {
void flush_buffers (pframes_t nframes, framepos_t time);
void transport_stopped ();
+ void realtime_locate ();
void reset ();
Buffer& get_buffer (pframes_t nframes) {
@@ -59,9 +60,9 @@ class MidiPort : public Port {
private:
MidiBuffer* _buffer;
bool _has_been_mixed_down;
- bool _resolve_in_process;
+ bool _resolve_required;
- MidiStateTracker _midi_state_tracker;
+ void resolve_notes (void* jack_buffer, MidiBuffer::TimeType when);
};
} // namespace ARDOUR