Mercurial > hg > svcore
diff data/fileio/CodedAudioFileReader.h @ 1126:39019ce29178 tony-2.0-integration
Merge through to branch for Tony 2.0
author | Chris Cannam |
---|---|
date | Thu, 20 Aug 2015 14:54:21 +0100 |
parents | 5cbf71022679 |
children | 757a406dabc4 |
line wrap: on
line diff
--- a/data/fileio/CodedAudioFileReader.h Fri Aug 14 18:16:14 2015 +0100 +++ b/data/fileio/CodedAudioFileReader.h Thu Aug 20 14:54:21 2015 +0100 @@ -38,7 +38,12 @@ CacheInMemory }; - virtual SampleBlock getInterleavedFrames(sv_frame_t start, sv_frame_t count) const; + enum DecodeMode { + DecodeAtOnce, // decode the file on construction, with progress + DecodeThreaded // decode in a background thread after construction + }; + + virtual std::vector<float> getInterleavedFrames(sv_frame_t start, sv_frame_t count) const; virtual sv_samplerate_t getNativeRate() const { return m_fileRate; } @@ -60,7 +65,7 @@ // may throw InsufficientDiscSpace: void addSamplesToDecodeCache(float **samples, sv_frame_t nframes); void addSamplesToDecodeCache(float *samplesInterleaved, sv_frame_t nframes); - void addSamplesToDecodeCache(const SampleBlock &interleaved); + void addSamplesToDecodeCache(const std::vector<float> &interleaved); // may throw InsufficientDiscSpace: void finishDecodeCache(); @@ -78,8 +83,8 @@ protected: QMutex m_cacheMutex; CacheMode m_cacheMode; - SampleBlock m_data; - mutable QReadWriteLock m_dataLock; + std::vector<float> m_data; + mutable QMutex m_dataLock; bool m_initialised; Serialiser *m_serialiser; sv_samplerate_t m_fileRate;