21 #ifndef __ardour_midi_region_h__
22 #define __ardour_midi_region_h__
41 template<
typename Time>
class EventSink;
46 class MidiChannelFilter;
50 class MidiStateTracker;
55 template<
typename T>
class MidiRingBuffer;
88 int set_state (
const XMLNode&,
int version);
103 void fix_negative_start ();
104 void transpose (
int);
129 void register_properties ();
132 void recompute_at_start ();
133 void recompute_at_end ();
135 void set_position_internal (
framepos_t pos,
bool allow_bbt_recompute);
138 void update_length_beats ();
140 void model_changed ();
143 void set_start_beats_from_start_frames ();
144 void update_after_tempo_map_change ();
virtual framecnt_t readable_length() const
virtual framecnt_t read(Sample *, framepos_t, framecnt_t, int) const
virtual bool can_trim_start_before_source_start() const
std::set< Evoral::Parameter > _filtered_parameters
parameters that we ask our source not to return when reading
std::vector< boost::shared_ptr< Source > > SourceList
LIBARDOUR_API PBD::PropertyDescriptor< Evoral::Beats > start_beats
LIBARDOUR_API void make_property_quarks()
PBD::ScopedConnection _model_connection
double _last_length_beats
PBD::ScopedConnection _model_contents_connection
PBD::ScopedConnection _source_connection
LIBARDOUR_API PBD::PropertyDescriptor< Evoral::Beats > length_beats
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
PBD::Property< Evoral::Beats > _length_beats
PBD::Property< Evoral::Beats > _start_beats
LIBARDOUR_API PBD::PropertyDescriptor< framecnt_t > length