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 */
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();
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 ();
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 ();
virtual void recompute_at_end () = 0;
DataType _type;
- bool _no_property_changes;
PBD::Property<bool> _muted;
PBD::Property<bool> _opaque;
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;
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: