summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_track.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-11-03 17:10:00 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-11-03 17:10:00 +0000
commitab795db9131a464a18454771dcc8d3d79dd61c38 (patch)
tree00acd360db542cc64961dcb63fa423f9dfa7b1ae /libs/ardour/audio_track.cc
parentbb520383a374789783321d4c19d71c97541c4315 (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.cc13
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;