Qmmp
Public Member Functions | Static Public Member Functions | Protected Member Functions
Decoder Class Reference

#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 (unsigned char *data, qint64 maxSize)=0
virtual int bitrate ()=0
virtual void next ()
virtual const QString nextURL () const
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 QList< DecoderFactory * > enabledFactories ()
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, const ChannelMap &map, Qmmp::AudioFormat f=Qmmp::PCM_S16LE)
void configure (quint32 srate, int channels, 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:
inputQIODevice-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:
metaDataMetadata map.

Returns detected audio parameters.

virtual int bitrate ( ) [pure virtual]

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

void configure ( quint32  srate,
const ChannelMap &  map,
Qmmp::AudioFormat  f = Qmmp::PCM_S16LE 
) [protected]

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

Parameters:
srateSample rate.
mapMap of channels.
fAudio format.
void configure ( quint32  srate,
int  channels,
Qmmp::AudioFormat  f = Qmmp::PCM_S16LE 
) [protected]

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

Parameters:
srateSample rate.
channelsNumber of channels (internal channel sequence).
fAudio format.
static QList<DecoderFactory*> enabledFactories ( ) [static]

Returns a list of enabled decoder factories.

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

Returns a list of decoder factories.

static QString file ( DecoderFactory factory) [static]

Returns plugin file path.

Parameters:
factoryDecoder 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:
pathFull local file path.
useContentContent-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:
factoryDecoder 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 ( ) const [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 ( unsigned 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. 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. Subclass should reimplement this function.

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

Sets whether the input plugin is enabled.

Parameters:
factoryDecoder plugin factory.
enablePlugin enable state (true - enable, false - disable)
void setReplayGainInfo ( const QMap< Qmmp::ReplayGainKey, double > &  rg)

Sets ReplayGain information. Use this function before playback.

Parameters:
rgReplayGain information
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:
 All Classes Functions Variables Enumerations Enumerator