Ardour
9.0-pre0-582-g084a23a80d
|
#include <midi_state_tracker.h>
Public Member Functions | |
MidiNoteTracker () | |
virtual | ~MidiNoteTracker () |
virtual void | track (const uint8_t *evbuf) |
virtual void | dump (std::ostream &) const |
virtual void | reset () |
void | track (const MidiBuffer::const_iterator &from, const MidiBuffer::const_iterator &to) |
void | add (uint8_t note, uint8_t chn) |
void | remove (uint8_t note, uint8_t chn) |
void | resolve_notes (MidiBuffer &buffer, samplepos_t time, bool reset=true) |
void | resolve_notes (Evoral::EventSink< samplepos_t > &buffer, samplepos_t time) |
void | resolve_notes (MidiSource &src, const Source::WriterLock &lock, Temporal::Beats time) |
void | flush_notes (MidiBuffer &buffer, samplepos_t time, bool reset=true) |
bool | empty () const |
uint16_t | on () const |
bool | active (uint8_t note, uint8_t channel) const |
template<typename Time > | |
void | track (const Evoral::Event< Time > &ev) |
Private Member Functions | |
void | push_notes (MidiBuffer &dst, samplepos_t time, bool reset, int cmd, int velocity) |
Private Attributes | |
uint8_t | _active_notes [128 *16] |
uint16_t | _on |
Tracks played notes, so they can be resolved in potential stuck note situations (e.g. looping, transport stop, etc).
Definition at line 41 of file midi_state_tracker.h.
ARDOUR::MidiNoteTracker::MidiNoteTracker | ( | ) |
|
inlinevirtual |
Definition at line 45 of file midi_state_tracker.h.
|
inline |
Definition at line 62 of file midi_state_tracker.h.
void ARDOUR::MidiNoteTracker::add | ( | uint8_t | note, |
uint8_t | chn | ||
) |
|
virtual |
Reimplemented in ARDOUR::MidiStateTracker.
|
inline |
Definition at line 60 of file midi_state_tracker.h.
void ARDOUR::MidiNoteTracker::flush_notes | ( | MidiBuffer & | buffer, |
samplepos_t | time, | ||
bool | reset = true |
||
) |
|
inline |
Definition at line 61 of file midi_state_tracker.h.
|
private |
void ARDOUR::MidiNoteTracker::remove | ( | uint8_t | note, |
uint8_t | chn | ||
) |
|
virtual |
Reimplemented in ARDOUR::MidiStateTracker.
void ARDOUR::MidiNoteTracker::resolve_notes | ( | Evoral::EventSink< samplepos_t > & | buffer, |
samplepos_t | time | ||
) |
void ARDOUR::MidiNoteTracker::resolve_notes | ( | MidiBuffer & | buffer, |
samplepos_t | time, | ||
bool | reset = true |
||
) |
void ARDOUR::MidiNoteTracker::resolve_notes | ( | MidiSource & | src, |
const Source::WriterLock & | lock, | ||
Temporal::Beats | time | ||
) |
|
inline |
Definition at line 67 of file midi_state_tracker.h.
void ARDOUR::MidiNoteTracker::track | ( | const MidiBuffer::const_iterator & | from, |
const MidiBuffer::const_iterator & | to | ||
) |
|
virtual |
Reimplemented in ARDOUR::MidiStateTracker.
|
private |
Definition at line 72 of file midi_state_tracker.h.
|
private |
Definition at line 73 of file midi_state_tracker.h.