39 template<
typename Time>
class EventSink;
44 class MidiChannelFilter;
48 class MidiNoteTracker;
61 std::shared_ptr<MidiRegion>
clone (std::string path = std::string())
const;
62 std::shared_ptr<MidiRegion>
clone (std::shared_ptr<MidiSource>,
ThawList* tl = 0)
const;
84 void merge (std::shared_ptr<MidiRegion const>);
102 std::shared_ptr<const MidiModel>
model()
const;
std::shared_ptr< MidiSource > midi_source(uint32_t n=0) const
std::shared_ptr< const MidiModel > model() const
std::shared_ptr< const Evoral::Control > control(const Evoral::Parameter &id) const
std::shared_ptr< MidiRegion > clone(std::string path=std::string()) const
std::shared_ptr< MidiModel > model()
int set_state(const XMLNode &, int version)
void finish_domain_bounce(Temporal::DomainBounceInfo &)
void fix_negative_start()
timecnt_t master_read_at(MidiRingBuffer< samplepos_t > &dst, timepos_t const &position, timecnt_t const &dur, Temporal::Range *loop_range, MidiCursor &cursor, uint32_t chan_n=0, NoteMode mode=Sustained) const
std::shared_ptr< Evoral::Control > control(const Evoral::Parameter &id, bool create=false)
MidiRegion(std::shared_ptr< const MidiRegion >, timecnt_t const &offset)
PBD::ScopedConnection _source_connection
bool do_export(std::string const &path) const
void recompute_at_start()
PBD::ScopedConnection _model_changed_connection
void register_properties()
MidiRegion(const SourceList &)
PBD::ScopedConnection _model_shift_connection
timecnt_t _read_at(const SourceList &, Evoral::EventSink< samplepos_t > &dst, timepos_t const &position, timecnt_t const &dur, Temporal::Range *loop_range, MidiCursor &cursor, uint32_t chan_n=0, NoteMode mode=Sustained, MidiNoteTracker *tracker=0, MidiChannelFilter *filter=0) const
int render_range(Evoral::EventSink< samplepos_t > &dst, uint32_t chan_n, NoteMode mode, timepos_t const &read_start, timecnt_t const &read_length, MidiChannelFilter *filter) const
PBD::ScopedConnection _model_contents_connection
bool set_name(const std::string &str)
std::shared_ptr< MidiRegion > clone(std::shared_ptr< MidiSource >, ThawList *tl=0) const
void model_automation_state_changed(Evoral::Parameter const &)
int render(Evoral::EventSink< samplepos_t > &dst, uint32_t chan_n, NoteMode mode, MidiChannelFilter *filter) const
std::set< Evoral::Parameter > _filtered_parameters
parameters that we ask our source not to return when reading
void start_domain_bounce(Temporal::DomainBounceInfo &)
void model_shifted(timecnt_t qn_distance)
void model_contents_changed()
timecnt_t read_at(Evoral::EventSink< samplepos_t > &dst, timepos_t const &position, timecnt_t const &dur, Temporal::Range *loop_range, MidiCursor &cursor, uint32_t chan_n=0, NoteMode mode=Sustained, MidiNoteTracker *tracker=0, MidiChannelFilter *filter=0) const
MidiRegion(std::shared_ptr< const MidiRegion >)
virtual bool can_trim_start_before_source_start() const
PBD::ScopedConnection _model_connection
void merge(std::shared_ptr< MidiRegion const >)
int separate_by_channel(std::vector< std::shared_ptr< Region > > &) const
std::vector< std::shared_ptr< Source > > SourceList