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

#include <output.h>

Public Member Functions

 Output ()
 
virtual ~Output ()
 
virtual bool initialize (quint32 freq, ChannelMap map, Qmmp::AudioFormat format)=0
 
virtual qint64 latency ()=0
 
virtual qint64 writeAudio (unsigned char *data, qint64 maxSize)=0
 
virtual void drain ()=0
 
virtual void reset ()=0
 
virtual void suspend ()
 
virtual void resume ()
 
virtual void setTrackInfo (const TrackInfo &info)
 
AudioParameters audioParameters () const
 
quint32 sampleRate () const
 
int channels () const
 
const ChannelMapchannelMap () const
 
Qmmp::AudioFormat format () const
 
int sampleSize () const
 

Static Public Member Functions

static Outputcreate ()
 
static QList< OutputFactory * > factories ()
 
static QString file (const OutputFactory *factory)
 
static void setCurrentFactory (const OutputFactory *factory)
 
static OutputFactorycurrentFactory ()
 

Protected Member Functions

void configure (quint32 freq, ChannelMap map, Qmmp::AudioFormat format)
 

Detailed Description

The Output class provides the base interface class of audio outputs.

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

◆ Output()

Output ( )

Object contsructor.

◆ ~Output()

virtual ~Output ( )
virtual

Destructor.

Member Function Documentation

◆ audioParameters()

AudioParameters audioParameters ( ) const

Returns selected audio parameters.

◆ channelMap()

const ChannelMap& channelMap ( ) const

Returns required channel map.

◆ channels()

int channels ( ) const

Returns number of channels.

◆ configure()

void configure ( quint32  freq,
ChannelMap  map,
Qmmp::AudioFormat  format 
)
protected

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

Parameters
freqSample rate.
mapMap of channels.
formatAudio format.

◆ create()

static Output* create ( )
static

Creates selected output.

Returns
Output subclass object.

◆ currentFactory()

static OutputFactory* currentFactory ( )
static

Returns selected output factory.

◆ drain()

virtual void drain ( )
pure virtual

Writes all remaining plugin's internal data to audio output device. Subclass should reimplement this function.

◆ factories()

static QList<OutputFactory*> factories ( )
static

Returns a list of output factories.

◆ file()

static QString file ( const OutputFactory factory)
static

Returns plugin file path.

Parameters
factoryOutput plugin factory.

◆ format()

Qmmp::AudioFormat format ( ) const

Returns selected audio format.

◆ initialize()

virtual bool initialize ( quint32  freq,
ChannelMap  map,
Qmmp::AudioFormat  format 
)
pure virtual

Prepares object for usage and setups required audio parameters. Subclass should reimplement this function.

Parameters
freqSample rate.
mapMap of channels.
formatAudio format
Returns
initialization result (true - success, false - failure)

◆ latency()

virtual qint64 latency ( )
pure virtual

Returns output interface latency in milliseconds.

◆ reset()

virtual void reset ( )
pure virtual

Drops all plugin's internal data, resets audio device Subclass should reimplement this function.

◆ resume()

virtual void resume ( )
virtual

Resumes processing audio data.

◆ sampleRate()

quint32 sampleRate ( ) const

Returns samplerate.

◆ sampleSize()

int sampleSize ( ) const

Returns sample size in bytes.

◆ setCurrentFactory()

static void setCurrentFactory ( const OutputFactory factory)
static

Selects current output factory.

◆ setTrackInfo()

virtual void setTrackInfo ( const TrackInfo info)
virtual

Sets track information for output. Default implementation does nothing. Reimplement this function to receive metadata.

◆ suspend()

virtual void suspend ( )
virtual

Stops processing audio data, preserving buffered audio data.

◆ writeAudio()

virtual qint64 writeAudio ( unsigned char *  data,
qint64  maxSize 
)
pure virtual

Requests playback to pause. If it was paused already, playback should resume. Subclasses that reimplement this function must call the base implementation.

Writes up to maxSize bytes from data to the output interface device. Returns the number of bytes written, or -1 if an error occurred. Subclass should reimplement this function.


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