AudioFileReaderFactory Class Reference

#include <AudioFileReaderFactory.h>

Classes

struct  Parameters
 

Public Types

enum  Normalisation { Normalisation::None, Normalisation::Peak }
 
enum  GaplessMode { GaplessMode::Gapless, GaplessMode::Gappy }
 
enum  ThreadingMode { ThreadingMode::NotThreaded, ThreadingMode::Threaded }
 

Static Public Member Functions

static QString getKnownExtensions ()
 Return the file extensions that we have audio file readers for, in a format suitable for use with QFileDialog. More...
 
static AudioFileReadercreateReader (FileSource source, Parameters parameters, ProgressReporter *reporter=0)
 Return an audio file reader initialised to the file at the given path, or NULL if no suitable reader for this path is available or the file cannot be opened. More...
 
static bool isSupported (FileSource source)
 Return true if the given source has a file extension that indicates a supported file type. More...
 

Detailed Description

Definition at line 27 of file AudioFileReaderFactory.h.

Member Enumeration Documentation

Enumerator
None 

Do not normalise file data.

Peak 

Normalise file data to abs(max) == 1.0.

Definition at line 37 of file AudioFileReaderFactory.h.

Enumerator
Gapless 

Any encoder delay and padding found in file metadata will be compensated for, giving gapless decoding (assuming the metadata are correct).

This is currently only applicable to mp3 files: all other supported files are always gapless where the file metadata provides for it. See documentation for MP3FileReader::GaplessMode for details of the specific implementation.

Gappy 

No delay compensation will happen and the results will be equivalent to the behaviour of audio readers before the compensation logic was implemented.

This is currently only applicable to mp3 files: all other supported files are always gapless where the file metadata provides for it. See documentation for MP3FileReader::GaplessMode for details of the specific implementation.

Definition at line 50 of file AudioFileReaderFactory.h.

Enumerator
NotThreaded 

Any necessary decoding will happen synchronously when the reader is created.

Threaded 

If the reader supports threaded decoding, it will be used and the file will be decoded in a background thread.

If the reader does not support threaded decoding, behaviour will be as for NotThreaded.

Definition at line 75 of file AudioFileReaderFactory.h.

Member Function Documentation

QString AudioFileReaderFactory::getKnownExtensions ( )
static

Return the file extensions that we have audio file readers for, in a format suitable for use with QFileDialog.

For example, "*.wav *.aiff *.ogg".

Definition at line 33 of file AudioFileReaderFactory.cpp.

References BQAFileReader::getSupportedExtensions(), WavFileReader::getSupportedExtensions(), and MP3FileReader::getSupportedExtensions().

AudioFileReader * AudioFileReaderFactory::createReader ( FileSource  source,
Parameters  parameters,
ProgressReporter reporter = 0 
)
static

Return an audio file reader initialised to the file at the given path, or NULL if no suitable reader for this path is available or the file cannot be opened.

If a ProgressReporter is provided, it will be updated with progress status. This will only be meaningful if decoding is being carried out in non-threaded mode (either because the threaded parameter was not supplied or because the specific file reader used does not support it); in threaded mode, reported progress will jump straight to 100% before threading takes over. Caller retains ownership of the reporter object.

Caller owns the returned object and must delete it after use.

Definition at line 71 of file AudioFileReaderFactory.cpp.

References CodedAudioFileReader::CacheInMemory, CodedAudioFileReader::CacheInTemporaryFile, CodedAudioFileReader::DecodeAtOnce, CodedAudioFileReader::DecodeThreaded, AudioFileSizeEstimator::estimate(), MP3FileReader::Gapless, AudioFileReaderFactory::Parameters::gaplessMode, MP3FileReader::Gappy, FileSource::getContentType(), FileSource::getErrorString(), FileSource::getLocalFilename(), FileSource::getLocation(), AudioFileReader::getSampleRate(), FileSource::isAvailable(), AudioFileReader::isOK(), FileSource::isOK(), AudioFileReader::isQuicklySeekable(), AudioFileReaderFactory::Parameters::normalisation, StorageAdviser::PreferMemory, StorageAdviser::recommend(), StorageAdviser::SpeedCritical, BQAFileReader::supports(), WavFileReader::supports(), MP3FileReader::supports(), SVDEBUG, AudioFileReaderFactory::Parameters::targetRate, AudioFileReaderFactory::Parameters::threadingMode, and StorageAdviser::UseMemory.

Referenced by AudioFileReaderFactory::Parameters::Parameters(), and ReadOnlyWaveFileModel::ReadOnlyWaveFileModel().

bool AudioFileReaderFactory::isSupported ( FileSource  source)
static

Return true if the given source has a file extension that indicates a supported file type.

This does not necessarily mean that it can be opened; conversely it may theoretically be possible to open some files without supported extensions, depending on the readers available.

Definition at line 54 of file AudioFileReaderFactory.cpp.

References BQAFileReader::supports(), WavFileReader::supports(), and MP3FileReader::supports().

Referenced by AudioFileReaderFactory::Parameters::Parameters().


The documentation for this class was generated from the following files: