1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-23 15:50:05 +02:00

Define WaveTrack::Reinit()

This commit is contained in:
Paul Licameli 2018-01-10 13:20:31 -05:00
parent 6e75ae58ac
commit 89d8fe18b1
2 changed files with 33 additions and 0 deletions

View File

@ -163,6 +163,33 @@ void WaveTrack::Init(const WaveTrack &orig)
mDisplayLocationsCache.clear();
}
void WaveTrack::Reinit(const WaveTrack &orig)
{
Init(orig);
{
auto &settings = orig.mpSpectrumSettings;
if (settings)
mpSpectrumSettings = std::make_unique<SpectrogramSettings>(*settings);
else
mpSpectrumSettings.reset();
}
{
auto &settings = orig.mpWaveformSettings;
if (settings)
mpWaveformSettings = std::make_unique<WaveformSettings>(*settings);
else
mpWaveformSettings.reset();
}
this->SetOffset(orig.GetOffset());
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
// To do: mYv, mHeightV, mPerY, mVirtualStereo
#endif
}
void WaveTrack::Merge(const Track &orig)
{
if (orig.GetKind() == Wave)

View File

@ -74,6 +74,12 @@ class AUDACITY_DLL_API WaveTrack final : public PlayableTrack {
void Init(const WaveTrack &orig);
public:
// overwrite data excluding the sample sequence but including display
// settings
void Reinit(const WaveTrack &orig);
private:
Track::Holder Duplicate() const override;
friend class TrackFactory;