Decoder Class Reference

The Decoder class provides the base interface class of audio decoders. More...

#include <decoder.h>

List of all members.

Public Member Functions

 Decoder (QIODevice *input=0)
virtual ~Decoder ()
virtual bool initialize ()=0
virtual qint64 totalTime ()=0
virtual void seek (qint64 time)=0
virtual qint64 read (char *data, qint64 maxSize)=0
virtual int bitrate ()=0
virtual void next ()
virtual const QString nextURL ()
AudioParameters audioParameters () const
QMap< Qmmp::ReplayGainKey, double > replayGainInfo () const
void setReplayGainInfo (const QMap< Qmmp::ReplayGainKey, double > &rg)
QIODevice * input ()
void addMetaData (const QMap< Qmmp::MetaData, QString > &metaData)
bool hasMetaData () const
QMap< Qmmp::MetaData, QString > takeMetaData ()

Static Public Member Functions

static DecoderFactoryfindByPath (const QString &path, bool useContent=false)
static DecoderFactoryfindByMime (const QString &mime)
static DecoderFactoryfindByContent (QIODevice *input)
static DecoderFactoryfindByProtocol (const QString &p)
static QList< DecoderFactory * > * factories ()
static QString file (DecoderFactory *factory)
static QStringList protocols ()
static void setEnabled (DecoderFactory *factory, bool enable=true)
static bool isEnabled (DecoderFactory *factory)

Protected Member Functions

void configure (quint32 srate=44100, int chan=2, Qmmp::AudioFormat f=Qmmp::PCM_S16LE)


Detailed Description

The Decoder class provides the base interface class of audio decoders.

Author:
Brad Hughes <bhughes@trolltech.com>

Ilya Kotov <forkotov@hotmail.ru>


Constructor & Destructor Documentation

Decoder ( QIODevice *  input = 0  ) 

Object contsructor.

Parameters:
input QIODevice-based input source.

virtual ~Decoder (  )  [virtual]

Destructor.


Member Function Documentation

void addMetaData ( const QMap< Qmmp::MetaData, QString > &  metaData  ) 

Informs decoder about new received metadata. Call of this function is required for all non-local streams/files

Parameters:
metaData Metadata map.

AudioParameters audioParameters (  )  const

Returns detected audio parameters.

virtual int bitrate (  )  [pure virtual]

Returns current bitrate (in kbps). Subclass should reimplement this function.

void configure ( quint32  srate = 44100,
int  chan = 2,
Qmmp::AudioFormat  f = Qmmp::PCM_S16LE 
) [protected]

Use this function inside initialize() reimplementation to tell other plugins about audio parameters.

Parameters:
srate Sample rate.
chan Number of channels.
f Audio format.

static QList<DecoderFactory*>* factories (  )  [static]

Returns a list of decoder factories.

static QString file ( DecoderFactory factory  )  [static]

Returns plugin file path.

Parameters:
factory Decoder plugin factory.

static DecoderFactory* findByContent ( QIODevice *  input  )  [static]

Returns DecoderFactory pointer which supports data provided by input or 0 if data is unsupported.

static DecoderFactory* findByMime ( const QString &  mime  )  [static]

Returns DecoderFactory pointer which supports mime type mime or 0 if mime type mime is unsupported

static DecoderFactory* findByPath ( const QString &  path,
bool  useContent = false 
) [static]

Returns DecoderFactory pointer which supports file path or 0 if file path is unsupported

Parameters:
path Full local file path
useContent Content-based file type determination (true - enabled, false - disabled)

static DecoderFactory* findByProtocol ( const QString &  p  )  [static]

Returns DecoderFactory pointer which supports protocol p or 0 if url is not supported.

bool hasMetaData (  )  const

Returns true when new metadata has received, otherwise returns false.

virtual bool initialize (  )  [pure virtual]

Prepares decoder for usage. Subclass should reimplement this function.

QIODevice* input (  ) 

Returns QIODevice-based input source assigned for this decoder.

static bool isEnabled ( DecoderFactory factory  )  [static]

Returns true if input plugin is enabled, otherwise returns false

Parameters:
factory Decoder plugin factory.

virtual void next (  )  [virtual]

Tells decoder that it should play next track. By default this function does nothing. Reimplemet it if your decoder can play next track without stop/start cycle. This may be useful for multitrack formats like cue or cda.

virtual const QString nextURL (  )  [virtual]

Returns url which decoder can play without stop/start cycle. By default this function does nothing. Reimplemet it if your decoder can play next track without stop/start cycle.

static QStringList protocols (  )  [static]

Returns a list of supported protocols (including meta-protocols). This fuction ignores disabled decoders.

virtual qint64 read ( char *  data,
qint64  maxSize 
) [pure virtual]

Reads up to maxSize bytes of decoded audio to data Returns the number of bytes read, or -1 if an error occurred. In most cases subclass should reimplement this function.

QMap<Qmmp::ReplayGainKey, double> replayGainInfo (  )  const

Returns ReplayGain information.

virtual void seek ( qint64  time  )  [pure virtual]

Requests a seek to the time time indicated, specified in milliseconds.

static void setEnabled ( DecoderFactory factory,
bool  enable = true 
) [static]

Sets whether the input plugin is enabled.

Parameters:
factory Decoder plugin factory.
enable Plugin enable state (true - enable, false - disable)

void setReplayGainInfo ( const QMap< Qmmp::ReplayGainKey, double > &  rg  ) 

Sets ReplayGain information. Use this function before playback.

QMap<Qmmp::MetaData, QString> takeMetaData (  ) 

Takes metadata out of decoder and returns it. Attention: hasMetaData() should return true before use of this fuction.

virtual qint64 totalTime (  )  [pure virtual]

Returns the total time in milliseconds. Subclass should reimplement this function.


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

Generated on Thu Nov 10 20:39:10 2011 for Qmmp by  doxygen 1.5.9