diff options
author | Robin Gareus <robin@gareus.org> | 2020-03-14 12:36:00 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-03-14 13:25:54 +0100 |
commit | 8f378650700930dba1865cb1bdf1895223e6dd43 (patch) | |
tree | ece9ba2718ce61a09361469256ff22e7ec1663eb /libs/ardour/audio_track.cc | |
parent | 97f3d9496bdb602305cf522f10b21124af8aef40 (diff) |
Prevent freeze/bounce of sidechain processors
This also consolidates code to test if a processor can be frozen
from various places.
Diffstat (limited to 'libs/ardour/audio_track.cc')
-rw-r--r-- | libs/ardour/audio_track.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index b90d1392b6..692549551d 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -406,21 +406,23 @@ AudioTrack::freeze_me (InterThreadInfo& itt) for (ProcessorList::iterator r = _processors.begin(); r != _processors.end(); ++r) { - if ((*r)->does_routing() && (*r)->active()) { + if (boost::dynamic_pointer_cast<PeakMeter>(*r)) { + continue; + } + + if (!can_freeze_processor (*r)) { break; } - if (!boost::dynamic_pointer_cast<PeakMeter>(*r)) { - FreezeRecordProcessorInfo* frii = new FreezeRecordProcessorInfo ((*r)->get_state(), (*r)); + FreezeRecordProcessorInfo* frii = new FreezeRecordProcessorInfo ((*r)->get_state(), (*r)); - frii->id = (*r)->id(); + frii->id = (*r)->id(); - _freeze_record.processor_info.push_back (frii); + _freeze_record.processor_info.push_back (frii); - /* now deactivate the processor, */ - if (!boost::dynamic_pointer_cast<Amp>(*r)) { - (*r)->deactivate (); - } + /* now deactivate the processor, */ + if (!boost::dynamic_pointer_cast<Amp>(*r)) { + (*r)->deactivate (); } _session.set_dirty (); |