ardour
Public Member Functions | Private Attributes | List of all members
ARDOUR::MidiStateTracker Class Reference

#include <midi_state_tracker.h>

Public Member Functions

 MidiStateTracker ()
 
void track (const MidiBuffer::const_iterator &from, const MidiBuffer::const_iterator &to)
 
void track (const uint8_t *evbuf)
 
void add (uint8_t note, uint8_t chn)
 
void remove (uint8_t note, uint8_t chn)
 
void resolve_notes (MidiBuffer &buffer, framepos_t time)
 
void resolve_notes (Evoral::EventSink< framepos_t > &buffer, framepos_t time)
 
void resolve_notes (MidiSource &src, const Glib::Threads::Mutex::Lock &lock, Evoral::Beats time)
 
void dump (std::ostream &)
 
void reset ()
 
bool empty () const
 
uint16_t on () const
 
bool active (uint8_t note, uint8_t channel)
 
template<typename Time >
void track (const Evoral::Event< Time > &ev)
 

Private Attributes

uint8_t _active_notes [128 *16]
 
uint16_t _on
 

Detailed Description

Tracks played notes, so they can be resolved in potential stuck note situations (e.g. looping, transport stop, etc).

Definition at line 38 of file midi_state_tracker.h.

Constructor & Destructor Documentation

MidiStateTracker::MidiStateTracker ( )

Definition at line 36 of file midi_state_tracker.cc.

Member Function Documentation

bool ARDOUR::MidiStateTracker::active ( uint8_t  note,
uint8_t  channel 
)
inline

Definition at line 54 of file midi_state_tracker.h.

void MidiStateTracker::add ( uint8_t  note,
uint8_t  chn 
)

Definition at line 50 of file midi_state_tracker.cc.

void MidiStateTracker::dump ( std::ostream &  )

Definition at line 202 of file midi_state_tracker.cc.

bool ARDOUR::MidiStateTracker::empty ( ) const
inline

Definition at line 52 of file midi_state_tracker.h.

uint16_t ARDOUR::MidiStateTracker::on ( ) const
inline

Definition at line 53 of file midi_state_tracker.h.

void MidiStateTracker::remove ( uint8_t  note,
uint8_t  chn 
)

Definition at line 67 of file midi_state_tracker.cc.

void MidiStateTracker::reset ( )

Definition at line 42 of file midi_state_tracker.cc.

void MidiStateTracker::resolve_notes ( MidiBuffer buffer,
framepos_t  time 
)

Definition at line 113 of file midi_state_tracker.cc.

void MidiStateTracker::resolve_notes ( Evoral::EventSink< framepos_t > &  buffer,
framepos_t  time 
)

Definition at line 141 of file midi_state_tracker.cc.

void MidiStateTracker::resolve_notes ( MidiSource src,
const Glib::Threads::Mutex::Lock &  lock,
Evoral::Beats  time 
)

Definition at line 171 of file midi_state_tracker.cc.

void MidiStateTracker::track ( const MidiBuffer::const_iterator from,
const MidiBuffer::const_iterator to 
)

Definition at line 87 of file midi_state_tracker.cc.

void MidiStateTracker::track ( const uint8_t *  evbuf)

Definition at line 95 of file midi_state_tracker.cc.

template<typename Time >
void ARDOUR::MidiStateTracker::track ( const Evoral::Event< Time > &  ev)
inline

Definition at line 59 of file midi_state_tracker.h.

Member Data Documentation

uint8_t ARDOUR::MidiStateTracker::_active_notes[128 *16]
private

Definition at line 64 of file midi_state_tracker.h.

uint16_t ARDOUR::MidiStateTracker::_on
private

Definition at line 65 of file midi_state_tracker.h.


The documentation for this class was generated from the following files: