Remove empty MIDI regions which result from recordings made when no MIDI data is...
[ardour.git] / libs / ardour / ardour / region.h
index fb827e308d88d5713ddeb2325f2686a7c6d27ed5..2cf9bab97b6905c93cde04707811389b75efac2b 100644 (file)
@@ -91,9 +91,8 @@ class Region
 
        static PBD::Signal2<void,boost::shared_ptr<ARDOUR::Region>, const PBD::PropertyChange&> RegionPropertyChanged;
 
-       void unlock_property_changes () { _no_property_changes = false; }
-       void block_property_changes () { _no_property_changes = true; }
-       
+        PBD::PropertyList* property_factory (const XMLNode&) const;
+
        virtual ~Region();
        
        /** Note: changing the name of a Region does not constitute an edit */
@@ -154,8 +153,7 @@ class Region
        void set_position_lock_style (PositionLockStyle ps);
        void recompute_position_from_lock_style ();
 
-       void freeze ();
-       void thaw ();
+       void suspend_property_changes ();
 
        bool covers (framepos_t frame) const {
                return first_frame() <= frame && frame <= last_frame();
@@ -190,6 +188,9 @@ class Region
        void trim_end (framepos_t new_position, void *src);
        void trim_to (framepos_t position, framecnt_t length, void *src);
 
+        void cut_front (nframes_t new_position, void *src);
+        void cut_end (nframes_t new_position, void *src);
+
        void set_layer (layer_t l); /* ONLY Playlist can call this */
        void raise ();
        void lower ();
@@ -286,9 +287,12 @@ class Region
 
   protected:
        void send_change (const PBD::PropertyChange&);
+        void mid_thaw (const PBD::PropertyChange&);
 
        void trim_to_internal (framepos_t position, framecnt_t length, void *src);
        virtual void set_position_internal (framepos_t pos, bool allow_bbt_recompute);
+        void modify_front (nframes_t new_position, bool reset_fade, void* src);
+        void modify_end (nframes_t new_position, bool reset_fade, void* src);
 
        void maybe_uncopy ();
        void first_edit ();
@@ -302,7 +306,6 @@ class Region
        virtual void recompute_at_end () = 0;
        
        DataType                _type;
-       bool                    _no_property_changes;
 
        PBD::Property<bool>        _muted;
        PBD::Property<bool>        _opaque;
@@ -330,14 +333,11 @@ class Region
        framepos_t              _last_position;
        PositionLockStyle       _positional_lock_style;
        mutable RegionEditState _first_edit;
-       int                     _frozen;
        BBT_Time                _bbt_time;
        AnalysisFeatureList     _transients;
        bool                    _valid_transients;
        mutable uint64_t        _read_data_count;  ///< modified in read()
-       PBD::PropertyChange     _pending_changed;
        uint64_t                _last_layer_op;  ///< timestamp
-       Glib::Mutex             _lock;
        SourceList              _sources;
        /** Used when timefx are applied, so we can always use the original source */
        SourceList              _master_sources;
@@ -349,7 +349,6 @@ class Region
 
        virtual int _set_state (const XMLNode&, int version, PBD::PropertyChange& what_changed, bool send_signal);
 
-       bool set_property (const PBD::PropertyBase&);
        void register_properties ();
 
 private: