#include <CodedAudioFileReader.h>
Inherits AudioFileReader.
Inherited by MP3FileReader, OggVorbisFileReader, and ResamplingWavFileReader.
Inheritance diagram for CodedAudioFileReader:


Definition at line 28 of file CodedAudioFileReader.h.
Public Types | |
| enum | CacheMode { CacheInTemporaryFile, CacheInMemory } |
Signals | |
| void | progress (int) |
| void | frameCountChanged () |
Public Member Functions | |
| virtual | ~CodedAudioFileReader () |
| virtual void | getInterleavedFrames (size_t start, size_t count, SampleBlock &frames) const |
| Return interleaved samples for count frames from index start. | |
| virtual size_t | getNativeRate () const |
| bool | isOK () const |
| virtual QString | getError () const |
| size_t | getFrameCount () const |
| size_t | getChannelCount () const |
| size_t | getSampleRate () const |
| virtual QString | getLocation () const |
| Return the location of the audio data in the reader (as passed in to the FileSource constructor, for example). | |
| virtual QString | getTitle () const |
| Return the title of the work in the audio file, if known. | |
| virtual QString | getMaker () const |
| Return the "maker" of the work in the audio file, if known. | |
| virtual void | getDeInterleavedFrames (size_t start, size_t count, std::vector< SampleBlock > &frames) const |
| Return de-interleaved samples for count frames from index start. | |
| virtual int | getDecodeCompletion () const |
| virtual bool | isUpdating () const |
Protected Member Functions | |
| CodedAudioFileReader (CacheMode cacheMode, size_t targetRate) | |
| void | initialiseDecodeCache () |
| void | addSamplesToDecodeCache (float **samples, size_t nframes) |
| void | addSamplesToDecodeCache (float *samplesInterleaved, size_t nframes) |
| void | addSamplesToDecodeCache (const SampleBlock &interleaved) |
| void | finishDecodeCache () |
| bool | isDecodeCacheInitialised () const |
| void | startSerialised (QString id) |
| void | endSerialised () |
Protected Attributes | |
| QMutex | m_cacheMutex |
| CacheMode | m_cacheMode |
| SampleBlock | m_data |
| bool | m_initialised |
| Serialiser * | m_serialiser |
| size_t | m_fileRate |
| QString | m_cacheFileName |
| SNDFILE * | m_cacheFileWritePtr |
| WavFileReader * | m_cacheFileReader |
| float * | m_cacheWriteBuffer |
| size_t | m_cacheWriteBufferIndex |
| size_t | m_cacheWriteBufferSize |
| Resampler * | m_resampler |
| float * | m_resampleBuffer |
| size_t | m_frameCount |
| size_t | m_channelCount |
| size_t | m_sampleRate |
Private Member Functions | |
| void | pushBuffer (float *interleaved, size_t sz, bool final) |
Definition at line 35 of file CodedAudioFileReader.h.
| CodedAudioFileReader::~CodedAudioFileReader | ( | ) | [virtual] |
Definition at line 49 of file CodedAudioFileReader.cpp.
References endSerialised(), m_cacheFileName, m_cacheFileReader, m_cacheFileWritePtr, m_cacheMutex, m_cacheWriteBuffer, m_resampleBuffer, and m_resampler.
| CodedAudioFileReader::CodedAudioFileReader | ( | CacheMode | cacheMode, | |
| size_t | targetRate | |||
| ) | [protected] |
Definition at line 29 of file CodedAudioFileReader.cpp.
References AudioFileReader::m_frameCount, and AudioFileReader::m_sampleRate.
| void CodedAudioFileReader::getInterleavedFrames | ( | size_t | start, | |
| size_t | count, | |||
| SampleBlock & | frames | |||
| ) | const [virtual] |
Return interleaved samples for count frames from index start.
The resulting sample block will contain count * getChannelCount() samples (or fewer if end of file is reached).
The subclass implementations of this function must be thread-safe -- that is, safe to call from multiple threads with different arguments on the same object at the same time.
Implements AudioFileReader.
Definition at line 342 of file CodedAudioFileReader.cpp.
References CacheInMemory, CacheInTemporaryFile, AudioFileReader::isOK(), m_cacheFileReader, m_cacheMode, AudioFileReader::m_channelCount, m_data, and m_initialised.
| virtual size_t CodedAudioFileReader::getNativeRate | ( | ) | const [inline, virtual] |
Reimplemented from AudioFileReader.
Definition at line 43 of file CodedAudioFileReader.h.
References m_fileRate.
| void CodedAudioFileReader::progress | ( | int | ) | [signal] |
| void CodedAudioFileReader::initialiseDecodeCache | ( | ) | [protected] |
Definition at line 89 of file CodedAudioFileReader.cpp.
References CacheInMemory, CacheInTemporaryFile, Resampler::FastestTolerable, WavFileReader::getError(), TempDirectory::getInstance(), AudioFileReader::isOK(), m_cacheFileName, m_cacheFileReader, m_cacheFileWritePtr, m_cacheMode, m_cacheMutex, m_cacheWriteBuffer, m_cacheWriteBufferIndex, m_cacheWriteBufferSize, AudioFileReader::m_channelCount, m_data, m_fileRate, m_initialised, m_resampleBuffer, m_resampler, and AudioFileReader::m_sampleRate.
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), and ResamplingWavFileReader::ResamplingWavFileReader().
| void CodedAudioFileReader::addSamplesToDecodeCache | ( | float ** | samples, | |
| size_t | nframes | |||
| ) | [protected] |
Definition at line 170 of file CodedAudioFileReader.cpp.
References m_cacheFileReader, m_cacheMutex, m_cacheWriteBuffer, m_cacheWriteBufferIndex, m_cacheWriteBufferSize, AudioFileReader::m_channelCount, m_initialised, pushBuffer(), and WavFileReader::updateFrameCount().
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), and ResamplingWavFileReader::addBlock().
| void CodedAudioFileReader::addSamplesToDecodeCache | ( | float * | samplesInterleaved, | |
| size_t | nframes | |||
| ) | [protected] |
Definition at line 200 of file CodedAudioFileReader.cpp.
References m_cacheFileReader, m_cacheMutex, m_cacheWriteBuffer, m_cacheWriteBufferIndex, m_cacheWriteBufferSize, AudioFileReader::m_channelCount, m_initialised, pushBuffer(), and WavFileReader::updateFrameCount().
| void CodedAudioFileReader::addSamplesToDecodeCache | ( | const SampleBlock & | interleaved | ) | [protected] |
Definition at line 230 of file CodedAudioFileReader.cpp.
References m_cacheFileReader, m_cacheMutex, m_cacheWriteBuffer, m_cacheWriteBufferIndex, m_cacheWriteBufferSize, AudioFileReader::m_channelCount, m_initialised, pushBuffer(), and WavFileReader::updateFrameCount().
| void CodedAudioFileReader::finishDecodeCache | ( | ) | [protected] |
Definition at line 257 of file CodedAudioFileReader.cpp.
References CacheInTemporaryFile, m_cacheFileReader, m_cacheFileWritePtr, m_cacheMode, m_cacheMutex, m_cacheWriteBuffer, m_cacheWriteBufferIndex, AudioFileReader::m_channelCount, m_initialised, m_resampleBuffer, m_resampler, pushBuffer(), and WavFileReader::updateFrameCount().
Referenced by MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), ResamplingWavFileReader::ResamplingWavFileReader(), ResamplingWavFileReader::DecodeThread::run(), OggVorbisFileReader::DecodeThread::run(), and MP3FileReader::DecodeThread::run().
| bool CodedAudioFileReader::isDecodeCacheInitialised | ( | ) | const [inline, protected] |
Definition at line 56 of file CodedAudioFileReader.h.
References m_initialised.
Referenced by MP3FileReader::accept(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), ResamplingWavFileReader::ResamplingWavFileReader(), ResamplingWavFileReader::DecodeThread::run(), OggVorbisFileReader::DecodeThread::run(), and MP3FileReader::DecodeThread::run().
| void CodedAudioFileReader::startSerialised | ( | QString | id | ) | [protected] |
Definition at line 71 of file CodedAudioFileReader.cpp.
References m_serialiser.
Referenced by MP3FileReader::accept(), ResamplingWavFileReader::DecodeThread::run(), and OggVorbisFileReader::DecodeThread::run().
| void CodedAudioFileReader::endSerialised | ( | ) | [protected] |
Definition at line 80 of file CodedAudioFileReader.cpp.
References m_serialiser.
Referenced by ResamplingWavFileReader::DecodeThread::run(), OggVorbisFileReader::DecodeThread::run(), MP3FileReader::DecodeThread::run(), and ~CodedAudioFileReader().
| void CodedAudioFileReader::pushBuffer | ( | float * | interleaved, | |
| size_t | sz, | |||
| bool | final | |||
| ) | [private] |
Definition at line 292 of file CodedAudioFileReader.cpp.
References CacheInMemory, CacheInTemporaryFile, m_cacheFileWritePtr, m_cacheMode, AudioFileReader::m_channelCount, m_data, m_fileRate, AudioFileReader::m_frameCount, m_resampleBuffer, m_resampler, AudioFileReader::m_sampleRate, MUNLOCK_SAMPLEBLOCK, and Resampler::resampleInterleaved().
Referenced by addSamplesToDecodeCache(), and finishDecodeCache().
| bool AudioFileReader::isOK | ( | ) | const [inline, inherited] |
Definition at line 34 of file AudioFileReader.h.
References AudioFileReader::m_channelCount.
Referenced by AudioFileReaderFactory::create(), WaveFileModel::getData(), getInterleavedFrames(), initialiseDecodeCache(), WaveFileModel::isOK(), and ResamplingWavFileReader::ResamplingWavFileReader().
| virtual QString AudioFileReader::getError | ( | ) | const [inline, virtual, inherited] |
Reimplemented in MP3FileReader, OggVorbisFileReader, ResamplingWavFileReader, and WavFileReader.
Definition at line 36 of file AudioFileReader.h.
| size_t AudioFileReader::getFrameCount | ( | ) | const [inline, inherited] |
Definition at line 38 of file AudioFileReader.h.
References AudioFileReader::m_frameCount.
Referenced by ResamplingWavFileReader::addBlock(), WaveFileModel::getFrameCount(), ResamplingWavFileReader::ResamplingWavFileReader(), and ResamplingWavFileReader::DecodeThread::run().
| size_t AudioFileReader::getChannelCount | ( | ) | const [inline, inherited] |
Definition at line 39 of file AudioFileReader.h.
References AudioFileReader::m_channelCount.
Referenced by WritableWaveFileModel::addSamples(), WaveFileModel::getChannelCount(), AudioFileReader::getDeInterleavedFrames(), and ResamplingWavFileReader::ResamplingWavFileReader().
| size_t AudioFileReader::getSampleRate | ( | ) | const [inline, inherited] |
Definition at line 40 of file AudioFileReader.h.
References AudioFileReader::m_sampleRate.
Referenced by AudioFileReaderFactory::create(), WaveFileModel::getSampleRate(), ResamplingWavFileReader::ResamplingWavFileReader(), and WaveFileModel::WaveFileModel().
| virtual QString AudioFileReader::getLocation | ( | ) | const [inline, virtual, inherited] |
Return the location of the audio data in the reader (as passed in to the FileSource constructor, for example).
Reimplemented in MP3FileReader, OggVorbisFileReader, ResamplingWavFileReader, and WavFileReader.
Definition at line 47 of file AudioFileReader.h.
Referenced by AudioFileReaderFactory::create(), and WaveFileModel::getLocation().
| virtual QString AudioFileReader::getTitle | ( | ) | const [inline, virtual, inherited] |
Return the title of the work in the audio file, if known.
This may be implemented by subclasses that support file tagging. This is not the same thing as the file name.
Reimplemented in MP3FileReader, and OggVorbisFileReader.
Definition at line 54 of file AudioFileReader.h.
Referenced by WaveFileModel::getTitle(), and WaveFileModel::WaveFileModel().
| virtual QString AudioFileReader::getMaker | ( | ) | const [inline, virtual, inherited] |
Return the "maker" of the work in the audio file, if known.
This could represent almost anything (band, composer, conductor, artist etc).
Reimplemented in MP3FileReader, and OggVorbisFileReader.
Definition at line 61 of file AudioFileReader.h.
Referenced by WaveFileModel::getMaker().
| void AudioFileReader::getDeInterleavedFrames | ( | size_t | start, | |
| size_t | count, | |||
| std::vector< SampleBlock > & | frames | |||
| ) | const [virtual, inherited] |
Return de-interleaved samples for count frames from index start.
Implemented in this class (it calls getInterleavedFrames and de-interleaves). The resulting vector will contain getChannelCount() sample blocks of count samples each (or fewer if end of file is reached).
Definition at line 19 of file AudioFileReader.cpp.
References AudioFileReader::getChannelCount(), and AudioFileReader::getInterleavedFrames().
| virtual int AudioFileReader::getDecodeCompletion | ( | ) | const [inline, virtual, inherited] |
Reimplemented in MP3FileReader, OggVorbisFileReader, ResamplingWavFileReader, and WavFileReader.
Definition at line 87 of file AudioFileReader.h.
Referenced by WaveFileModel::isReady().
| virtual bool AudioFileReader::isUpdating | ( | ) | const [inline, virtual, inherited] |
Reimplemented in MP3FileReader, OggVorbisFileReader, ResamplingWavFileReader, and WavFileReader.
Definition at line 89 of file AudioFileReader.h.
Referenced by WaveFileModel::RangeCacheFillThread::run().
| void AudioFileReader::frameCountChanged | ( | ) | [signal, inherited] |
Referenced by WavFileReader::updateFrameCount().
QMutex CodedAudioFileReader::m_cacheMutex [protected] |
Definition at line 65 of file CodedAudioFileReader.h.
Referenced by addSamplesToDecodeCache(), finishDecodeCache(), initialiseDecodeCache(), and ~CodedAudioFileReader().
CacheMode CodedAudioFileReader::m_cacheMode [protected] |
Definition at line 66 of file CodedAudioFileReader.h.
Referenced by MP3FileReader::accept(), finishDecodeCache(), getInterleavedFrames(), initialiseDecodeCache(), pushBuffer(), ResamplingWavFileReader::DecodeThread::run(), and OggVorbisFileReader::DecodeThread::run().
SampleBlock CodedAudioFileReader::m_data [protected] |
Definition at line 67 of file CodedAudioFileReader.h.
Referenced by getInterleavedFrames(), initialiseDecodeCache(), and pushBuffer().
bool CodedAudioFileReader::m_initialised [protected] |
Definition at line 68 of file CodedAudioFileReader.h.
Referenced by addSamplesToDecodeCache(), finishDecodeCache(), getInterleavedFrames(), initialiseDecodeCache(), and isDecodeCacheInitialised().
Serialiser* CodedAudioFileReader::m_serialiser [protected] |
Definition at line 69 of file CodedAudioFileReader.h.
Referenced by endSerialised(), and startSerialised().
size_t CodedAudioFileReader::m_fileRate [protected] |
Definition at line 70 of file CodedAudioFileReader.h.
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), getNativeRate(), initialiseDecodeCache(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), pushBuffer(), and ResamplingWavFileReader::ResamplingWavFileReader().
QString CodedAudioFileReader::m_cacheFileName [protected] |
Definition at line 72 of file CodedAudioFileReader.h.
Referenced by initialiseDecodeCache(), and ~CodedAudioFileReader().
SNDFILE* CodedAudioFileReader::m_cacheFileWritePtr [protected] |
Definition at line 73 of file CodedAudioFileReader.h.
Referenced by finishDecodeCache(), initialiseDecodeCache(), pushBuffer(), and ~CodedAudioFileReader().
WavFileReader* CodedAudioFileReader::m_cacheFileReader [protected] |
Definition at line 74 of file CodedAudioFileReader.h.
Referenced by addSamplesToDecodeCache(), finishDecodeCache(), getInterleavedFrames(), initialiseDecodeCache(), and ~CodedAudioFileReader().
float* CodedAudioFileReader::m_cacheWriteBuffer [protected] |
Definition at line 75 of file CodedAudioFileReader.h.
Referenced by addSamplesToDecodeCache(), finishDecodeCache(), initialiseDecodeCache(), and ~CodedAudioFileReader().
size_t CodedAudioFileReader::m_cacheWriteBufferIndex [protected] |
Definition at line 76 of file CodedAudioFileReader.h.
Referenced by addSamplesToDecodeCache(), finishDecodeCache(), and initialiseDecodeCache().
size_t CodedAudioFileReader::m_cacheWriteBufferSize [protected] |
Definition at line 77 of file CodedAudioFileReader.h.
Referenced by addSamplesToDecodeCache(), and initialiseDecodeCache().
Resampler* CodedAudioFileReader::m_resampler [protected] |
Definition at line 79 of file CodedAudioFileReader.h.
Referenced by finishDecodeCache(), initialiseDecodeCache(), pushBuffer(), and ~CodedAudioFileReader().
float* CodedAudioFileReader::m_resampleBuffer [protected] |
Definition at line 80 of file CodedAudioFileReader.h.
Referenced by finishDecodeCache(), initialiseDecodeCache(), pushBuffer(), and ~CodedAudioFileReader().
size_t AudioFileReader::m_frameCount [protected, inherited] |
Definition at line 95 of file AudioFileReader.h.
Referenced by MP3FileReader::accept(), CodedAudioFileReader(), AudioFileReader::getFrameCount(), pushBuffer(), WavFileReader::updateFrameCount(), and WavFileReader::WavFileReader().
size_t AudioFileReader::m_channelCount [protected, inherited] |
Definition at line 96 of file AudioFileReader.h.
Referenced by MP3FileReader::accept(), OggVorbisFileReader::acceptFrames(), addSamplesToDecodeCache(), finishDecodeCache(), AudioFileReader::getChannelCount(), WavFileReader::getInterleavedFrames(), getInterleavedFrames(), initialiseDecodeCache(), AudioFileReader::isOK(), MP3FileReader::MP3FileReader(), OggVorbisFileReader::OggVorbisFileReader(), pushBuffer(), ResamplingWavFileReader::ResamplingWavFileReader(), MP3FileReader::DecodeThread::run(), WavFileReader::updateFrameCount(), and WavFileReader::WavFileReader().
size_t AudioFileReader::m_sampleRate [protected, inherited] |
Definition at line 97 of file AudioFileReader.h.
Referenced by MP3FileReader::accept(), CodedAudioFileReader(), AudioFileReader::getNativeRate(), AudioFileReader::getSampleRate(), initialiseDecodeCache(), pushBuffer(), WavFileReader::updateFrameCount(), and WavFileReader::WavFileReader().
1.5.1