Stub implementation of LV2 persist extension.
[ardour.git] / libs / ardour / ardour / midi_region.h
index 0b62809fc396ee8528f1f0f0d06a1798eaad65da..dbbf6d80d19e187f3a95b11725b12d5bdd653a0b 100644 (file)
 
 class XMLNode;
 
+namespace ARDOUR {
+        namespace Properties {
+                /* this is pseudo-property: nothing has this as an actual
+                   property, but it allows us to signal changes to the
+                   MidiModel used by the MidiRegion 
+                */
+                extern PBD::PropertyDescriptor<void*> midi_data; 
+        }
+}
+
 namespace ARDOUR {
 
 class Route;
@@ -48,6 +58,8 @@ template<typename T> class MidiRingBuffer;
 class MidiRegion : public Region
 {
   public:
+       static void make_property_quarks ();
+
        ~MidiRegion();
 
         boost::shared_ptr<MidiRegion> clone ();
@@ -109,18 +121,21 @@ class MidiRegion : public Region
                             NoteMode mode = Sustained, 
                             MidiStateTracker* tracker = 0) const;
 
+       void register_properties ();
+
        void recompute_at_start ();
        void recompute_at_end ();
 
        void set_position_internal (framepos_t pos, bool allow_bbt_recompute);
 
-       void switch_source(boost::shared_ptr<Source> source);
        void model_changed ();
        void model_automation_state_changed (Evoral::Parameter const &);
+        void model_contents_changed ();
 
        std::set<Evoral::Parameter> _filtered_parameters; ///< parameters that we ask our source not to return when reading
        PBD::ScopedConnection _model_connection;
        PBD::ScopedConnection _source_connection;
+        PBD::ScopedConnection _model_contents_connection;
 };
 
 } /* namespace ARDOUR */