TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
Signals | Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
InputSource Class Referenceabstract

The InputSource class provides the base interface class of transports. More...

#include <inputsource.h>

+ Inheritance diagram for InputSource:

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 ()
 
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< RegularExpressionregExps ()
 
static InputSourceFactoryfindByUrl (const QString &url)
 
static void setEnabled (InputSourceFactory *factory, bool enable=true)
 
static bool isEnabled (const InputSourceFactory *factory)
 

Static Private Member Functions

static void loadPlugins ()
 

Private Attributes

QString m_path
 
qint64 m_offset = -1
 
QMap< Qmmp::MetaData, QString > m_metaData
 
QMap< Qmmp::TrackProperty, QString > m_properties
 
QHash< QString, QString > m_streamInfo
 
bool m_hasMetaData = false
 
bool m_hasStreamInfo = false
 

Static Private Attributes

static QList< QmmpPluginCache * > * m_cache
 
static QStringList m_disabledNames
 

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

Definition at line 35 of file inputsource.h.

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

void InputSource::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.
void InputSource::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.
virtual QString InputSource::contentType ( ) const
virtual

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

static InputSource* 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.
static QList<InputSourceFactory *> InputSource::enabledFactories ( )
static

Returns a list of enabled transport factories.

void InputSource::error ( )
signal

This signal is emitted after an error occurred.

static QList<InputSourceFactory *> InputSource::factories ( )
static

Returns a list of transport factories.

Referenced by MusicPluginWidget::loadPluginsInfo().

static QString InputSource::file ( const InputSourceFactory factory)
static

Returns plugin file path.

Parameters
factoryTransport plugin factory.

Referenced by MusicPluginWidget::loadPluginsInfo().

static InputSourceFactory* InputSource::findByUrl ( const QString &  url)
static

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

bool InputSource::hasMetaData ( ) const

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

bool InputSource::hasStreamInfo ( ) const

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

virtual bool InputSource::initialize ( )
pure virtual

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

Implemented in FileInputSource, and EmptyInputSource.

virtual QIODevice* InputSource::ioDevice ( ) const
pure virtual

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

Implemented in FileInputSource, and EmptyInputSource.

static bool InputSource::isEnabled ( const InputSourceFactory factory)
static

Returns true if input plugin is enabled, otherwise returns false

Parameters
factoryDecoder plugin factory.

Referenced by MusicPluginItem::MusicPluginItem().

virtual bool InputSource::isReady ( ) const
pure virtual

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

Implemented in FileInputSource, and EmptyInputSource.

virtual bool InputSource::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.

static void InputSource::loadPlugins ( )
staticprivate
qint64 InputSource::offset ( ) const

Returns start position in ms;

QString InputSource::path ( ) const

Returns input source path or url.

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

Returns stream properties

static QStringList InputSource::protocols ( )
static

Returns a list of supported protocols.

void InputSource::ready ( )
signal

This signal is emitted when transport is ready for usage.

static QList<RegularExpression> InputSource::regExps ( )
static

Returns a list of supported regular expressions for URL.

static void InputSource::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)

Referenced by MusicPluginItem::setEnabled().

void InputSource::setOffset ( qint64  offset)

Sets start position to offset ms.

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

Updates all extra stream properties.

Parameters
propertiesNew track properties.
void InputSource::setProperty ( Qmmp::TrackProperty  key,
const QVariant &  value 
)

Sets extra stream property.

Parameters
keyProperty key.
valueProperty value.
virtual void InputSource::stop ( )
virtual

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

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

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

QHash<QString, QString> InputSource::takeStreamInfo ( )

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

Member Data Documentation

QList<QmmpPluginCache*>* InputSource::m_cache
staticprivate

Definition at line 195 of file inputsource.h.

QStringList InputSource::m_disabledNames
staticprivate

Definition at line 196 of file inputsource.h.

bool InputSource::m_hasMetaData = false
private

Definition at line 192 of file inputsource.h.

bool InputSource::m_hasStreamInfo = false
private

Definition at line 192 of file inputsource.h.

QMap<Qmmp::MetaData, QString> InputSource::m_metaData
private

Definition at line 189 of file inputsource.h.

qint64 InputSource::m_offset = -1
private

Definition at line 188 of file inputsource.h.

QString InputSource::m_path
private

Definition at line 187 of file inputsource.h.

QMap<Qmmp::TrackProperty, QString> InputSource::m_properties
private

Definition at line 190 of file inputsource.h.

QHash<QString, QString> InputSource::m_streamInfo
private

Definition at line 191 of file inputsource.h.


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