diff options
Diffstat (limited to 'libs/ardour/ardour/midi_region.h')
-rw-r--r-- | libs/ardour/ardour/midi_region.h | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/libs/ardour/ardour/midi_region.h b/libs/ardour/ardour/midi_region.h index e0caddd954..2cbed8f99c 100644 --- a/libs/ardour/ardour/midi_region.h +++ b/libs/ardour/ardour/midi_region.h @@ -72,22 +72,28 @@ class MidiRegion : public Region int set_state (const XMLNode&); int separate_by_channel (ARDOUR::Session&, vector<MidiRegion*>&) const; - - UndoAction get_memento() const; - - // Act as a proxy for MidiModel automation stuff (for CC) - // Yep, this is pretty ugly... - Controls& controls() { return midi_source()->model()->controls(); } - const Controls& controls() const { return midi_source()->model()->controls(); } - boost::shared_ptr<Evoral::Control> control(const Evoral::Parameter& id, bool create=false) - { return midi_source()->model()->control(id, create); } + /* automation */ + + boost::shared_ptr<Evoral::Control> + control(const Evoral::Parameter& id, bool create=false) { + return model()->data().control(id, create); + } - boost::shared_ptr<const Evoral::Control> control(const Evoral::Parameter& id) const - { return midi_source()->model()->control(id); } + virtual boost::shared_ptr<const Evoral::Control> + control(const Evoral::Parameter& id) const { + return model()->data().control(id); + } + + /* export */ int exportme (ARDOUR::Session&, ARDOUR::ExportSpecification&); + UndoAction get_memento() const; + + boost::shared_ptr<MidiModel> model() { return midi_source()->model(); } + boost::shared_ptr<const MidiModel> model() const { return midi_source()->model(); } + private: friend class RegionFactory; |