From 89d8fe18b1ef774d59238ac660bb7b472b18aff9 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Wed, 10 Jan 2018 13:20:31 -0500 Subject: [PATCH] Define WaveTrack::Reinit() --- src/WaveTrack.cpp | 27 +++++++++++++++++++++++++++ src/WaveTrack.h | 6 ++++++ 2 files changed, 33 insertions(+) diff --git a/src/WaveTrack.cpp b/src/WaveTrack.cpp index 5eb7c9e80..bb581b6d8 100644 --- a/src/WaveTrack.cpp +++ b/src/WaveTrack.cpp @@ -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(*settings); + else + mpSpectrumSettings.reset(); + } + + { + auto &settings = orig.mpWaveformSettings; + if (settings) + mpWaveformSettings = std::make_unique(*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) diff --git a/src/WaveTrack.h b/src/WaveTrack.h index 17fb1e3f9..d461f4b53 100644 --- a/src/WaveTrack.h +++ b/src/WaveTrack.h @@ -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;