26 #include <QStringList> 31 #include "inputsourcefactory.h" 33 class QmmpPluginCache;
47 InputSource(
const QString &path, QObject *parent =
nullptr);
52 virtual QIODevice *ioDevice() = 0;
57 virtual bool initialize() = 0;
61 virtual bool isReady() = 0;
67 virtual bool isWaiting();
71 virtual QString contentType()
const;
75 const QString path()
const;
79 qint64 offset()
const;
83 void setOffset(qint64 offset);
89 void addMetaData(
const QMap<Qmmp::MetaData, QString> &metaData);
93 bool hasMetaData()
const;
98 QMap<Qmmp::MetaData, QString> takeMetaData();
109 void setProperties(
const QMap<Qmmp::TrackProperty, QString> &properties);
113 const QMap<Qmmp::TrackProperty, QString> &properties()
const;
119 void addStreamInfo(
const QHash<QString, QString> &info);
123 bool hasStreamInfo()
const;
128 QHash<QString, QString> takeStreamInfo();
135 static InputSource *create(
const QString &path, QObject *parent =
nullptr);
139 static QList<InputSourceFactory *> factories();
143 static QList<InputSourceFactory *> enabledFactories();
152 static QStringList protocols();
156 static QList<QRegularExpression> regExps();
186 QMap<Qmmp::MetaData, QString> m_metaData;
187 QMap<Qmmp::TrackProperty, QString> m_properties;
188 QHash<QString, QString> m_streamInfo;
189 bool m_hasMetaData, m_hasStreamInfo;
190 static void loadPlugins();
191 static QList<QmmpPluginCache*> *m_cache;
192 static QStringList m_disabledNames;
195 #endif // INPUTSOURCE_H
TrackProperty
Definition: qmmp.h:90