Qmmp
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Decoder Class Referenceabstract

#include <decoder.h>

Public Member Functions

 Decoder (QIODevice *input=0)
 
virtual ~Decoder ()
 
virtual bool initialize ()=0
 
virtual qint64 totalTime () const =0
 
virtual void seek (qint64 time)=0
 
virtual qint64 read (unsigned char *data, qint64 maxSize)=0
 
virtual int bitrate () const =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 ()
 
void setProperty (Qmmp::TrackProperty key, const QVariant &value)
 
void setProperties (const QMap< Qmmp::TrackProperty, QString > &properties)
 
const QMap< Qmmp::TrackProperty, QString > & properties () const
 

Static Public Member Functions

static DecoderFactoryfindByFilePath (const QString &path, bool useContent=false)
 
static DecoderFactoryfindByMime (const QString &mime)
 
static DecoderFactoryfindByContent (QIODevice *input)
 
static DecoderFactoryfindByProtocol (const QString &p)
 
static QList< DecoderFactory * > findByFileExtension (const QString &path)
 
static QList< DecoderFactory * > factories ()
 
static QList< DecoderFactory * > enabledFactories ()
 
static QStringList nameFilters ()
 
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)
 
void configure (const AudioParameters &p)
 

Detailed Description

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

Author
Brad Hughes bhugh.nosp@m.es@t.nosp@m.rollt.nosp@m.ech..nosp@m.com
Ilya Kotov forko.nosp@m.tov0.nosp@m.2@ya..nosp@m.ru

Constructor & Destructor Documentation

◆ Decoder()

Decoder ( QIODevice *  input = 0)

Object contsructor.

Parameters
inputQIODevice-based input source.

◆ ~Decoder()

virtual ~Decoder ( )
virtual

Destructor.

Member Function Documentation

◆ addMetaData()

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.

◆ audioParameters()

AudioParameters audioParameters ( ) const

Returns detected audio parameters.

◆ bitrate()

virtual int bitrate ( ) const
pure virtual

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

◆ configure() [1/3]

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.

◆ configure() [2/3]

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.

◆ configure() [3/3]

void configure ( const AudioParameters p)
protected

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

Parameters
pAudio parameters.

◆ enabledFactories()

static QList<DecoderFactory*> enabledFactories ( )
static

Returns a list of enabled decoder factories.

◆ factories()

static QList<DecoderFactory*> factories ( )
static

Returns a list of decoder factories.

◆ file()

static QString file ( DecoderFactory factory)
static

Returns plugin file path.

Parameters
factoryDecoder plugin factory.

◆ findByContent()

static DecoderFactory* findByContent ( QIODevice *  input)
static

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

◆ findByFileExtension()

static QList<DecoderFactory *> findByFileExtension ( const QString &  path)
static

Returns a list of DecoderFactory pointers which support extension of the required file

Parameters
pathFull file path or url with correct extension.

◆ findByFilePath()

static DecoderFactory* findByFilePath ( 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)

◆ findByMime()

static DecoderFactory* findByMime ( const QString &  mime)
static

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

◆ findByProtocol()

static DecoderFactory* findByProtocol ( const QString &  p)
static

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

◆ hasMetaData()

bool hasMetaData ( ) const

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

◆ initialize()

virtual bool initialize ( )
pure virtual

Prepares decoder for usage. Subclass should reimplement this function.

◆ input()

QIODevice* input ( )

Returns QIODevice-based input source assigned for this decoder.

◆ isEnabled()

static bool isEnabled ( DecoderFactory factory)
static

Returns true if input plugin is enabled, otherwise returns false

Parameters
factoryDecoder plugin factory.

◆ nameFilters()

static QStringList nameFilters ( )
static

Returns a list of file name filters, i.e. "*.mp3 *.mpg".

◆ next()

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.

◆ nextURL()

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.

◆ properties()

const QMap<Qmmp::TrackProperty, QString>& properties ( ) const

Returns track properties

◆ protocols()

static QStringList protocols ( )
static

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

◆ read()

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.

◆ replayGainInfo()

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

Returns ReplayGain information.

◆ seek()

virtual void seek ( qint64  time)
pure virtual

Requests a seek to the time time indicated, specified in milliseconds. Subclass should reimplement this function.

◆ setEnabled()

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)

◆ setProperties()

void setProperties ( const QMap< Qmmp::TrackProperty, QString > &  properties)

Updates all extra track properties.

Parameters
propertiesNew track properties.

◆ setProperty()

void setProperty ( Qmmp::TrackProperty  key,
const QVariant &  value 
)

Sets extra track property.

Parameters
keyProperty key.
valueProperty value.

◆ setReplayGainInfo()

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

Sets ReplayGain information. Use this function before playback.

Parameters
rgReplayGain information

◆ takeMetaData()

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

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

◆ totalTime()

virtual qint64 totalTime ( ) const
pure virtual

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


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