20 #include "libardour-config.h"
41 template <
typename T>
class EventSink;
42 template <
typename Time>
class Event;
106 if (with_descendants) {
121 return extent.second - extent.first;
138 return mp->
read (dst, start, cnt);
147 fatal <<
string_compose (
_(
"programming error: %1"),
"MidiPlaylistSource::write_unlocked() called - should be impossible") <<
endmsg;
155 fatal <<
string_compose (
_(
"programming error: %1"),
"MidiPlaylistSource::append_event_beats() called - should be impossible") <<
endmsg;
162 fatal <<
string_compose (
_(
"programming error: %1"),
"MidiPlaylistSource::append_event_frames() called - should be impossible") <<
endmsg;
framecnt_t length(framepos_t) const
LIBPBD_API Transmitter fatal
int set_state(const XMLNode &, int version)
Glib::Threads::Mutex::Lock Lock
framecnt_t read(Evoral::EventSink< framepos_t > &buf, framepos_t start, framecnt_t cnt, uint32_t chan_n=0, MidiChannelFilter *filter=NULL)
void load_model(const Glib::Threads::Mutex::Lock &lock, bool force_reload=false)
shared_ptr< T > dynamic_pointer_cast(shared_ptr< U > const &r)
void flush_midi(const Lock &lock)
std::ostream & endmsg(std::ostream &ostr)
framecnt_t read_unlocked(Sample *dst, framepos_t start, framecnt_t cnt) const
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
void append_event_frames(const Glib::Threads::Mutex::Lock &lock, const Evoral::Event< framepos_t > &ev, framepos_t source_start)
boost::shared_ptr< Playlist > _playlist
virtual ~MidiPlaylistSource()
void add_state(XMLNode &)
static int loading_state_version
void destroy_model(const Glib::Threads::Mutex::Lock &lock)
int set_state(const XMLNode &, int version)
int set_state(const XMLNode &, int version)
std::string string_compose(const std::string &fmt, const T1 &o1)
std::pair< framepos_t, framepos_t > get_extent() const
int set_state(const XMLNode &, int version)
MidiPlaylistSource(Session &, const PBD::ID &orig, const std::string &name, boost::shared_ptr< MidiPlaylist >, uint32_t chn, frameoffset_t begin, framecnt_t len, Source::Flag flags)
framecnt_t write_unlocked(Sample *src, framecnt_t cnt)
void append_event_beats(const Glib::Threads::Mutex::Lock &lock, const Evoral::Event< Evoral::Beats > &ev)