|
Ardour
9.0-pre0-1950-g391fe97693
|
#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.