svcore  1.9
OggVorbisFileReader Class Reference

#include <OggVorbisFileReader.h>

Inheritance diagram for OggVorbisFileReader:
Collaboration diagram for OggVorbisFileReader:

Classes

class  DecodeThread
 

Public Types

enum  DecodeMode { DecodeAtOnce, DecodeThreaded }
 
enum  CacheMode { CacheInTemporaryFile, CacheInMemory }
 
typedef std::map< QString, QString > TagMap
 

Public Slots

void cancelled ()
 

Signals

void progress (int)
 
void frameCountChanged ()
 

Public Member Functions

 OggVorbisFileReader (FileSource source, DecodeMode decodeMode, CacheMode cacheMode, int targetRate=0, bool normalised=false, ProgressReporter *reporter=0)
 
virtual ~OggVorbisFileReader ()
 
virtual QString getError () const
 
virtual QString getLocation () const
 Return the location of the audio data in the reader (as passed in to the FileSource constructor, for example). More...
 
virtual QString getTitle () const
 Return the title of the work in the audio file, if known. More...
 
virtual QString getMaker () const
 Return the "maker" of the work in the audio file, if known. More...
 
virtual TagMap getTags () const
 
virtual int getDecodeCompletion () const
 
virtual bool isUpdating () const
 
virtual void getInterleavedFrames (int start, int count, SampleBlock &frames) const
 Return interleaved samples for count frames from index start. More...
 
virtual int getNativeRate () const
 
virtual bool isQuicklySeekable () const
 Intermediate cache means all CodedAudioFileReaders are quickly seekable. More...
 
bool isOK () const
 
int getFrameCount () const
 
int getChannelCount () const
 
int getSampleRate () const
 
virtual void getDeInterleavedFrames (int start, int count, std::vector< SampleBlock > &frames) const
 Return de-interleaved samples for count frames from index start. More...
 

Static Public Member Functions

static void getSupportedExtensions (std::set< QString > &extensions)
 
static bool supportsExtension (QString ext)
 
static bool supportsContentType (QString type)
 
static bool supports (FileSource &source)
 

Protected Member Functions

void initialiseDecodeCache ()
 
void addSamplesToDecodeCache (float **samples, int nframes)
 
void addSamplesToDecodeCache (float *samplesInterleaved, int nframes)
 
void addSamplesToDecodeCache (const SampleBlock &interleaved)
 
void finishDecodeCache ()
 
bool isDecodeCacheInitialised () const
 
void startSerialised (QString id)
 
void endSerialised ()
 

Static Protected Member Functions

static int readPacket (OGGZ *, ogg_packet *, long, void *)
 
static int acceptFrames (FishSound *, float **, long, void *)
 

Protected Attributes

FileSource m_source
 
QString m_path
 
QString m_error
 
QString m_title
 
QString m_maker
 
TagMap m_tags
 
OGGZ * m_oggz
 
FishSound * m_fishSound
 
ProgressReporterm_reporter
 
int m_fileSize
 
int m_bytesRead
 
bool m_commentsRead
 
bool m_cancelled
 
int m_completion
 
DecodeThreadm_decodeThread
 
QMutex m_cacheMutex
 
CacheMode m_cacheMode
 
SampleBlock m_data
 
QReadWriteLock m_dataLock
 
bool m_initialised
 
Serialiserm_serialiser
 
int m_fileRate
 
QString m_cacheFileName
 
SNDFILE * m_cacheFileWritePtr
 
WavFileReaderm_cacheFileReader
 
float * m_cacheWriteBuffer
 
int m_cacheWriteBufferIndex
 
int m_cacheWriteBufferSize
 
Resamplerm_resampler
 
float * m_resampleBuffer
 
int m_fileFrameCount
 
bool m_normalised
 
float m_max
 
float m_gain
 
int m_frameCount
 
int m_channelCount
 
int m_sampleRate
 

Detailed Description

Definition at line 32 of file OggVorbisFileReader.h.

Member Typedef Documentation

◆ TagMap

typedef std::map<QString, QString> AudioFileReader::TagMap
inherited

Definition at line 65 of file AudioFileReader.h.

Member Enumeration Documentation

◆ DecodeMode

Enumerator
DecodeAtOnce 
DecodeThreaded 

Definition at line 37 of file OggVorbisFileReader.h.

◆ CacheMode

Enumerator
CacheInTemporaryFile 
CacheInMemory 

Definition at line 36 of file CodedAudioFileReader.h.

Constructor & Destructor Documentation

◆ OggVorbisFileReader()

◆ ~OggVorbisFileReader()

OggVorbisFileReader::~OggVorbisFileReader ( )
virtual

Definition at line 104 of file OggVorbisFileReader.cpp.

References m_cancelled, and m_decodeThread.

Member Function Documentation

◆ getError()

virtual QString OggVorbisFileReader::getError ( ) const
inlinevirtual

Reimplemented from AudioFileReader.

Definition at line 50 of file OggVorbisFileReader.h.

References m_error.

◆ getLocation()

virtual QString OggVorbisFileReader::getLocation ( ) const
inlinevirtual

Return the location of the audio data in the reader (as passed in to the FileSource constructor, for example).

Reimplemented from AudioFileReader.

Definition at line 52 of file OggVorbisFileReader.h.

References FileSource::getLocation(), and m_source.

◆ getTitle()

virtual QString OggVorbisFileReader::getTitle ( ) const
inlinevirtual

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 from AudioFileReader.

Definition at line 53 of file OggVorbisFileReader.h.

References m_title.

◆ getMaker()

virtual QString OggVorbisFileReader::getMaker ( ) const
inlinevirtual

Return the "maker" of the work in the audio file, if known.

This could represent almost anything (band, composer, conductor, artist etc).

Reimplemented from AudioFileReader.

Definition at line 54 of file OggVorbisFileReader.h.

References m_maker.

◆ getTags()

virtual TagMap OggVorbisFileReader::getTags ( ) const
inlinevirtual

Reimplemented from AudioFileReader.

Definition at line 55 of file OggVorbisFileReader.h.

References m_tags.

◆ getSupportedExtensions()

void OggVorbisFileReader::getSupportedExtensions ( std::set< QString > &  extensions)
static

◆ supportsExtension()

bool OggVorbisFileReader::supportsExtension ( QString  ext)
static

Definition at line 218 of file OggVorbisFileReader.cpp.

References getSupportedExtensions().

Referenced by supports().

◆ supportsContentType()

bool OggVorbisFileReader::supportsContentType ( QString  type)
static

Definition at line 226 of file OggVorbisFileReader.cpp.

Referenced by supports().

◆ supports()

bool OggVorbisFileReader::supports ( FileSource source)
static

◆ getDecodeCompletion()

virtual int OggVorbisFileReader::getDecodeCompletion ( ) const
inlinevirtual

Reimplemented from AudioFileReader.

Definition at line 62 of file OggVorbisFileReader.h.

References m_completion.

◆ isUpdating()

virtual bool OggVorbisFileReader::isUpdating ( ) const
inlinevirtual

Reimplemented from AudioFileReader.

Definition at line 64 of file OggVorbisFileReader.h.

References m_decodeThread.

◆ cancelled

void OggVorbisFileReader::cancelled ( )
slot

Definition at line 115 of file OggVorbisFileReader.cpp.

References m_cancelled.

Referenced by OggVorbisFileReader().

◆ readPacket()

int OggVorbisFileReader::readPacket ( OGGZ *  ,
ogg_packet *  packet,
long  ,
void *  data 
)
staticprotected

◆ acceptFrames()

int OggVorbisFileReader::acceptFrames ( FishSound *  fs,
float **  frames,
long  nframes,
void *  data 
)
staticprotected

◆ getInterleavedFrames()

void CodedAudioFileReader::getInterleavedFrames ( int  start,
int  count,
SampleBlock frames 
) const
virtualinherited

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 409 of file CodedAudioFileReader.cpp.

References CodedAudioFileReader::CacheInMemory, CodedAudioFileReader::CacheInTemporaryFile, WavFileReader::getInterleavedFrames(), AudioFileReader::isOK(), CodedAudioFileReader::m_cacheFileReader, CodedAudioFileReader::m_cacheMode, AudioFileReader::m_channelCount, CodedAudioFileReader::m_data, CodedAudioFileReader::m_dataLock, CodedAudioFileReader::m_gain, CodedAudioFileReader::m_initialised, CodedAudioFileReader::m_normalised, and SVDEBUG.

◆ getNativeRate()

virtual int CodedAudioFileReader::getNativeRate ( ) const
inlinevirtualinherited

Reimplemented from AudioFileReader.

Definition at line 44 of file CodedAudioFileReader.h.

References CodedAudioFileReader::m_fileRate.

◆ isQuicklySeekable()

virtual bool CodedAudioFileReader::isQuicklySeekable ( ) const
inlinevirtualinherited

Intermediate cache means all CodedAudioFileReaders are quickly seekable.

Implements AudioFileReader.

Definition at line 47 of file CodedAudioFileReader.h.

◆ progress

void CodedAudioFileReader::progress ( int  )
signalinherited

◆ initialiseDecodeCache()

◆ addSamplesToDecodeCache() [1/3]

◆ addSamplesToDecodeCache() [2/3]

◆ addSamplesToDecodeCache() [3/3]

◆ finishDecodeCache()

◆ isDecodeCacheInitialised()

◆ startSerialised()

void CodedAudioFileReader::startSerialised ( QString  id)
protectedinherited

◆ endSerialised()

◆ isOK()

◆ getFrameCount()

◆ getChannelCount()

◆ getSampleRate()

int AudioFileReader::getSampleRate ( ) const
inlineinherited

◆ getDeInterleavedFrames()

void AudioFileReader::getDeInterleavedFrames ( int  start,
int  count,
std::vector< SampleBlock > &  frames 
) const
virtualinherited

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().

◆ frameCountChanged

void AudioFileReader::frameCountChanged ( )
signalinherited

Member Data Documentation

◆ m_source

FileSource OggVorbisFileReader::m_source
protected

Definition at line 72 of file OggVorbisFileReader.h.

Referenced by getLocation().

◆ m_path

QString OggVorbisFileReader::m_path
protected

Definition at line 73 of file OggVorbisFileReader.h.

Referenced by OggVorbisFileReader().

◆ m_error

QString OggVorbisFileReader::m_error
protected

Definition at line 74 of file OggVorbisFileReader.h.

Referenced by getError(), and OggVorbisFileReader().

◆ m_title

QString OggVorbisFileReader::m_title
protected

Definition at line 75 of file OggVorbisFileReader.h.

Referenced by acceptFrames(), and getTitle().

◆ m_maker

QString OggVorbisFileReader::m_maker
protected

Definition at line 76 of file OggVorbisFileReader.h.

Referenced by acceptFrames(), and getMaker().

◆ m_tags

TagMap OggVorbisFileReader::m_tags
protected

Definition at line 77 of file OggVorbisFileReader.h.

Referenced by acceptFrames(), and getTags().

◆ m_oggz

OGGZ* OggVorbisFileReader::m_oggz
protected

◆ m_fishSound

FishSound* OggVorbisFileReader::m_fishSound
protected

◆ m_reporter

ProgressReporter* OggVorbisFileReader::m_reporter
protected

Definition at line 81 of file OggVorbisFileReader.h.

Referenced by OggVorbisFileReader(), and readPacket().

◆ m_fileSize

int OggVorbisFileReader::m_fileSize
protected

Definition at line 82 of file OggVorbisFileReader.h.

Referenced by OggVorbisFileReader(), and readPacket().

◆ m_bytesRead

int OggVorbisFileReader::m_bytesRead
protected

Definition at line 83 of file OggVorbisFileReader.h.

Referenced by readPacket().

◆ m_commentsRead

bool OggVorbisFileReader::m_commentsRead
protected

Definition at line 84 of file OggVorbisFileReader.h.

Referenced by acceptFrames().

◆ m_cancelled

bool OggVorbisFileReader::m_cancelled
protected

Definition at line 85 of file OggVorbisFileReader.h.

Referenced by acceptFrames(), cancelled(), readPacket(), and ~OggVorbisFileReader().

◆ m_completion

int OggVorbisFileReader::m_completion
protected

◆ m_decodeThread

DecodeThread* OggVorbisFileReader::m_decodeThread
protected

Definition at line 101 of file OggVorbisFileReader.h.

Referenced by isUpdating(), OggVorbisFileReader(), and ~OggVorbisFileReader().

◆ m_cacheMutex

◆ m_cacheMode

◆ m_data

◆ m_dataLock

QReadWriteLock CodedAudioFileReader::m_dataLock
mutableprotectedinherited

◆ m_initialised

◆ m_serialiser

Serialiser* CodedAudioFileReader::m_serialiser
protectedinherited

◆ m_fileRate

◆ m_cacheFileName

QString CodedAudioFileReader::m_cacheFileName
protectedinherited

◆ m_cacheFileWritePtr

◆ m_cacheFileReader

◆ m_cacheWriteBuffer

◆ m_cacheWriteBufferIndex

int CodedAudioFileReader::m_cacheWriteBufferIndex
protectedinherited

◆ m_cacheWriteBufferSize

int CodedAudioFileReader::m_cacheWriteBufferSize
protectedinherited

◆ m_resampler

◆ m_resampleBuffer

◆ m_fileFrameCount

int CodedAudioFileReader::m_fileFrameCount
protectedinherited

◆ m_normalised

bool CodedAudioFileReader::m_normalised
protectedinherited

◆ m_max

float CodedAudioFileReader::m_max
protectedinherited

◆ m_gain

float CodedAudioFileReader::m_gain
protectedinherited

◆ m_frameCount

◆ m_channelCount

◆ m_sampleRate


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