<Option name="waveform" value="000000cc"/>
<Option name="clipped waveform" value="ff0000e5"/>
<Option name="region base" value="bfbfc1aa"/>
- <Option name="selected region base" value="b591a8ff"/>
+ <Option name="selected region base" value="565693a6"/>
<Option name="midi frame base" value="698f9d6d"/>
<Option name="audio track base" value="c6d3d868"/>
<Option name="audio bus base" value="dbd1ea68"/>
XMLNode& get_state ();
int set_state (const XMLNode&);
+
+ bool length_mutable() const { return true; }
virtual void load_model(bool lock=true, bool force_reload=false) = 0;
virtual void destroy_model() = 0;
XMLNode& get_state ();
int set_state (const XMLNode&);
- virtual bool destructive() const { return false; }
+ virtual bool destructive() const { return false; }
+ virtual bool length_mutable() const { return false; }
void use () { _in_use++; }
void disuse () { if (_in_use) { _in_use--; } }
bool
Region::verify_length (nframes_t len)
{
- if (source() && source()->destructive()) {
+ if (source() && (source()->destructive() || source()->length_mutable())) {
return true;
}
bool
Region::verify_start_and_length (nframes_t new_start, nframes_t& new_length)
{
- if (source() && source()->destructive()) {
+ if (source() && (source()->destructive() || source()->length_mutable())) {
return true;
}
bool
Region::verify_start (nframes_t pos)
{
- if (source() && source()->destructive()) {
+ if (source() && (source()->destructive() || source()->length_mutable())) {
return true;
}
bool
Region::verify_start_mutable (nframes_t& new_start)
{
- if (source() && source()->destructive()) {
+ if (source() && (source()->destructive() || source()->length_mutable())) {
return true;
}