X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fmidi_region.h;h=9868d1408fe3acceb957a991dc69d37fe65bd18d;hb=452672f78f5f0f9195bfd48398e29b18a8fb1df7;hp=dc3f199b5bd03b0d6eb23aafcf827b29f1a5a3d8;hpb=a473d630eb165272992e90f8d854b1d66ec0be63;p=ardour.git diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index dc3f199b5b..9868d1408f 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -23,14 +23,7 @@ #include -#include "pbd/fastlog.h" -#include "pbd/undo.h" - #include "ardour/ardour.h" -#include "ardour/gain.h" -#include "ardour/logcurve.h" -#include "ardour/midi_model.h" -#include "ardour/midi_source.h" #include "ardour/region.h" class XMLNode; @@ -42,16 +35,22 @@ namespace ARDOUR { MidiModel used by the MidiRegion */ extern PBD::PropertyDescriptor midi_data; + extern PBD::PropertyDescriptor start_beats; extern PBD::PropertyDescriptor length_beats; } } +namespace Evoral { +template class EventSink; +} + namespace ARDOUR { class Route; class Playlist; class Session; class MidiFilter; +class MidiModel; class MidiSource; class MidiStateTracker; template class MidiRingBuffer; @@ -63,7 +62,7 @@ class MidiRegion : public Region ~MidiRegion(); - boost::shared_ptr clone (); + boost::shared_ptr clone () const; boost::shared_ptr midi_source (uint32_t n=0) const; @@ -91,22 +90,14 @@ class MidiRegion : public Region /* automation */ - boost::shared_ptr - control(const Evoral::Parameter& id, bool create=false) { - return model()->control(id, create); - } + boost::shared_ptr control(const Evoral::Parameter& id, bool create=false); - virtual boost::shared_ptr - control(const Evoral::Parameter& id) const { - return model()->control(id); - } + virtual boost::shared_ptr control(const Evoral::Parameter& id) const; /* export */ - int exportme (ARDOUR::Session&, ARDOUR::ExportSpecification&); - - boost::shared_ptr model() { return midi_source()->model(); } - boost::shared_ptr model() const { return midi_source()->model(); } + boost::shared_ptr model(); + boost::shared_ptr model() const; void fix_negative_start (); void transpose (int); @@ -119,6 +110,7 @@ class MidiRegion : public Region private: friend class RegionFactory; + PBD::Property _start_beats; PBD::Property _length_beats; MidiRegion (const SourceList&); @@ -146,6 +138,9 @@ class MidiRegion : public Region void model_automation_state_changed (Evoral::Parameter const &); void model_contents_changed (); + void set_start_beats_from_start_frames (); + void update_after_tempo_map_change (); + std::set _filtered_parameters; ///< parameters that we ask our source not to return when reading PBD::ScopedConnection _model_connection; PBD::ScopedConnection _source_connection;