diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-11-03 17:10:00 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-11-03 17:10:00 +0000 |
commit | ab795db9131a464a18454771dcc8d3d79dd61c38 (patch) | |
tree | 00acd360db542cc64961dcb63fa423f9dfa7b1ae /libs/ardour/audio_track.cc | |
parent | bb520383a374789783321d4c19d71c97541c4315 (diff) |
fix up what freeze does with fader settings, gain & pan automation; unfreeze too
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4088 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_track.cc')
-rw-r--r-- | libs/ardour/audio_track.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index d3b5e442c7..595471e7b5 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -848,6 +848,10 @@ AudioTrack::freeze (InterThreadInfo& itt) } } + _freeze_record.gain = _gain; + _freeze_record.gain_automation_state = _gain_automation_curve.automation_state(); + _freeze_record.pan_automation_state = _panner->automation_state(); + new_playlist = PlaylistFactory::create (_session, new_playlist_name, false); region_name = new_playlist_name; @@ -866,6 +870,12 @@ AudioTrack::freeze (InterThreadInfo& itt) diskstream->use_playlist (boost::dynamic_pointer_cast<AudioPlaylist>(new_playlist)); diskstream->set_record_enabled (false); + /* reset stuff that has already been accounted for in the freeze process */ + + set_gain (1.0, this); + _gain_automation_curve.set_automation_state (Off); + _panner->set_automation_state (Off); + _freeze_record.state = Frozen; FreezeChange(); /* EMIT SIGNAL */ } @@ -896,6 +906,9 @@ AudioTrack::unfreeze () } _freeze_record.playlist.reset (); + set_gain (_freeze_record.gain, this); + _gain_automation_curve.set_automation_state (_freeze_record.gain_automation_state); + _panner->set_automation_state (_freeze_record.pan_automation_state); } _freeze_record.state = UnFrozen; |