Qmmp
Loading...
Searching...
No Matches
Signals | Public Member Functions | Static Public Member Functions | List of all members
InputSource Class Referenceabstract

#include <inputsource.h>

Inherits QObject.

Inherited by EmptyInputSource, and FileInputSource.

Signals

void ready ()
 
void error ()
 

Public Member Functions

 InputSource (const QString &path, QObject *parent=nullptr)
 
virtual QIODevice * ioDevice () const =0
 
virtual bool initialize ()=0
 
virtual bool isReady () const =0
 
virtual bool isWaiting () const
 
virtual QString contentType () const
 
virtual void stop ()
 
const QString path () const
 
qint64 offset () const
 
void setOffset (qint64 offset)
 
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
 
void addStreamInfo (const QHash< QString, QString > &info)
 
bool hasStreamInfo () const
 
QHash< QString, QString > takeStreamInfo ()
 

Static Public Member Functions

static InputSourcecreate (const QString &path, QObject *parent=nullptr)
 
static QList< InputSourceFactory * > factories ()
 
static QList< InputSourceFactory * > enabledFactories ()
 
static QString file (const InputSourceFactory *factory)
 
static QStringList protocols ()
 
static QList< QRegularExpression > regExps ()
 
static InputSourceFactoryfindByUrl (const QString &url)
 
static void setEnabled (InputSourceFactory *factory, bool enable=true)
 
static bool isEnabled (const InputSourceFactory *factory)
 

Detailed Description

The InputSource class provides the base interface class of transports.

Author
Ilya Kotov forko.nosp@m.tov0.nosp@m.2@ya..nosp@m.ru

Constructor & Destructor Documentation

◆ InputSource()

InputSource ( const QString & path,
QObject * parent = nullptr )
explicit

Object contsructor.

Parameters
pathInput source path or url.
parentParent object.

Member Function Documentation

◆ addMetaData()

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

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

Parameters
metaDataMetadata map.

◆ addStreamInfo()

void addStreamInfo ( const QHash< QString, QString > & info)

Informs input source object about received stream information (for example icy data). Call of this function is required for all non-local streams/files

Parameters
infoStream information map.

◆ contentType()

virtual QString contentType ( ) const
virtual

Returns content type of the input stream. Default implementation returns empty string.

◆ create()

static InputSource * create ( const QString & path,
QObject * parent = nullptr )
static

Creates InputSource object.

Parameters
pathInput source path or url.
parentParent object. Returns 0 if the given url is not supported.

◆ enabledFactories()

static QList< InputSourceFactory * > enabledFactories ( )
static

Returns a list of enabled transport factories.

◆ error

void error ( )
signal

This signal is emitted after an error occurred.

◆ factories()

static QList< InputSourceFactory * > factories ( )
static

Returns a list of transport factories.

◆ file()

static QString file ( const InputSourceFactory * factory)
static

Returns plugin file path.

Parameters
factoryTransport plugin factory.

◆ findByUrl()

static InputSourceFactory * findByUrl ( const QString & url)
static

Returns InputSourceFactory pointer which supports URL url or nullptr if URL is not supported.

◆ hasMetaData()

bool hasMetaData ( ) const

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

◆ hasStreamInfo()

bool hasStreamInfo ( ) const

Returns true when stream information has received, otherwise returns false.

◆ initialize()

virtual bool initialize ( )
pure virtual

Prepares input data source for usage. Subclass shoud reimplement this function.

◆ ioDevice()

virtual QIODevice * ioDevice ( ) const
pure virtual

Returns QIODevice-based object for I/O operations. Subclass shoud reimplement this function.

◆ isEnabled()

static bool isEnabled ( const InputSourceFactory * factory)
static

Returns true if input plugin is enabled, otherwise returns false

Parameters
factoryDecoder plugin factory.

◆ isReady()

virtual bool isReady ( ) const
pure virtual

Returns true if transport is ready for usage; otherwise returns false.

◆ isWaiting()

virtual bool isWaiting ( ) const
virtual

Returns true if the transport is waiting more data; otherwise returns false. Reader should wait until this function returns false. Default implementation allways returns false.

◆ offset()

qint64 offset ( ) const

Returns start position in ms;

◆ path()

const QString path ( ) const

Returns input source path or url.

◆ properties()

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

Returns stream properties

◆ protocols()

static QStringList protocols ( )
static

Returns a list of supported protocols.

◆ ready

void ready ( )
signal

This signal is emitted when transport is ready for usage.

◆ regExps()

static QList< QRegularExpression > regExps ( )
static

Returns a list of supported regular expressions for URL.

◆ setEnabled()

static void setEnabled ( InputSourceFactory * factory,
bool enable = true )
static

Sets whether the input plugin is enabled.

Parameters
factoryTransport plugin factory.
enablePlugin enable state (true - enable, false - disable)

◆ setOffset()

void setOffset ( qint64 offset)

Sets start position to offset ms.

◆ setProperties()

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

Updates all extra stream properties.

Parameters
propertiesNew track properties.

◆ setProperty()

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

Sets extra stream property.

Parameters
keyProperty key.
valueProperty value.

◆ stop()

virtual void stop ( )
virtual

Stops long operation (reading, seeking) from another thead, if necessary. Default implementation does nothing.

◆ takeMetaData()

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

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

◆ takeStreamInfo()

QHash< QString, QString > takeStreamInfo ( )

Takes stream information out of InputSource object and returns it. Attention: hasStreamInfo() should return true before use of this fuction.


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