mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-25 15:53:52 +02:00
More use of shared_ptr to Track, for safety...
... This even makes it possible to remove the prohibition of undo and redo during transport, not that we want to though. Playback and recording will continue, using track objects that might not be in the current project.
This commit is contained in:
@@ -684,16 +684,14 @@ protected:
|
||||
class WaveTrackCache {
|
||||
public:
|
||||
WaveTrackCache()
|
||||
: mPTrack(0)
|
||||
, mBufferSize(0)
|
||||
: mBufferSize(0)
|
||||
, mOverlapBuffer()
|
||||
, mNValidBuffers(0)
|
||||
{
|
||||
}
|
||||
|
||||
explicit WaveTrackCache(const WaveTrack *pTrack)
|
||||
: mPTrack(0)
|
||||
, mBufferSize(0)
|
||||
explicit WaveTrackCache(const std::shared_ptr<const WaveTrack> &pTrack)
|
||||
: mBufferSize(0)
|
||||
, mOverlapBuffer()
|
||||
, mNValidBuffers(0)
|
||||
{
|
||||
@@ -701,8 +699,8 @@ public:
|
||||
}
|
||||
~WaveTrackCache();
|
||||
|
||||
const WaveTrack *GetTrack() const { return mPTrack; }
|
||||
void SetTrack(const WaveTrack *pTrack);
|
||||
const WaveTrack *GetTrack() const { return mPTrack.get(); }
|
||||
void SetTrack(const std::shared_ptr<const WaveTrack> &pTrack);
|
||||
|
||||
// Uses fillZero always
|
||||
// Returns null on failure
|
||||
@@ -731,7 +729,7 @@ private:
|
||||
}
|
||||
};
|
||||
|
||||
const WaveTrack *mPTrack;
|
||||
std::shared_ptr<const WaveTrack> mPTrack;
|
||||
size_t mBufferSize;
|
||||
Buffer mBuffers[2];
|
||||
GrowableSampleBuffer mOverlapBuffer;
|
||||
|
||||
Reference in New Issue
Block a user