20 #ifndef __ardour_midi_source_h__
21 #define __ardour_midi_source_h__
25 #include <glibmm/threads.h>
26 #include <boost/enable_shared_from_this.hpp>
37 class MidiChannelFilter;
38 class MidiStateTracker;
41 template<
typename T>
class MidiRingBuffer;
61 int write_to (
const Lock& lock,
82 const std::set<Evoral::Parameter>& filtered)
const;
98 virtual void append_event_beats(
const Lock& lock,
105 virtual void append_event_frames(
const Lock& lock,
109 virtual bool empty ()
const;
113 virtual void mark_streaming_midi_write_started (
const Lock& lock,
NoteMode mode);
114 virtual void mark_streaming_write_started (
const Lock& lock);
115 virtual void mark_streaming_write_completed (
const Lock& lock);
136 virtual void mark_midi_streaming_write_completed (
141 virtual void session_saved();
149 int set_state (
const XMLNode&,
int version);
180 void copy_automation_state_from (
MidiSource *);
190 virtual void flush_midi(
const Lock& lock) = 0;
LIBEVORAL_API const Beats MaxBeats
Glib::Threads::Mutex::Lock Lock
PBD::Signal2< void, Evoral::Parameter, AutoState > AutomationStateChanged
PBD::Signal0< void > ModelChanged
std::string _captured_for
framepos_t _capture_length
PBD::Signal2< void, Evoral::Parameter, Evoral::ControlList::InterpolationStyle > InterpolationChanged
bool length_mutable() const
LIBEVORAL_API const Beats MinBeats
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
boost::shared_ptr< MidiModel > model()
TimeType length_beats() const
void set_captured_for(std::string str)
AutomationStateMap _automation_state
static PBD::Signal1< void, MidiSource * > MidiSourceCreated
Evoral::Beats _length_beats
framepos_t _last_read_end
framepos_t _capture_loop_length
void set_length_beats(TimeType l)
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
Evoral::Sequence< Evoral::Beats >::const_iterator _model_iter
std::map< Evoral::Parameter, Evoral::ControlList::InterpolationStyle > InterpolationStyleMap
boost::shared_ptr< MidiModel > _model
std::string captured_for() const
InterpolationStyleMap _interpolation_style
std::map< Evoral::Parameter, AutoState > AutomationStateMap
LIBARDOUR_API PBD::PropertyDescriptor< framecnt_t > length