24 #include <QStringList>
45 explicit Decoder(QIODevice *input =
nullptr);
55 virtual bool initialize() = 0;
60 virtual qint64 totalTime()
const = 0;
65 virtual void seek(qint64 time) = 0;
71 virtual qint64 read(
unsigned char *data, qint64 maxSize) = 0;
76 virtual int bitrate()
const = 0;
89 virtual const QString nextURL()
const;
97 const QMap<Qmmp::ReplayGainKey, double> &replayGainInfo()
const;
102 void setReplayGainInfo(
const QMap<Qmmp::ReplayGainKey,double> &rg);
112 void addMetaData(
const QMap<Qmmp::MetaData, QString> &metaData);
116 bool hasMetaData()
const;
121 QMap<Qmmp::MetaData, QString> takeMetaData();
132 void setProperties(
const QMap<Qmmp::TrackProperty, QString> &properties);
136 QMap<Qmmp::TrackProperty, QString> properties()
const;
142 static DecoderFactory *findByFilePath(
const QString &path,
bool useContent =
false);
160 static QList<DecoderFactory *> findByFileExtension(
const QString &path);
164 static QList<DecoderFactory*> factories();
168 static QList<DecoderFactory*> enabledFactories();
172 static QStringList nameFilters();
176 static QStringList contentTypes();
186 static QStringList protocols();
192 static void setEnabled(
DecoderFactory *factory,
bool enable =
true);
221 static void loadPlugins();
227 QIODevice *m_input =
nullptr;
228 bool m_hasMetaData =
false;
230 QMap<Qmmp::ReplayGainKey, double>
m_rg;
static constexpr wchar_t key[]
The AudioParameters class keeps information about audio settings.
Input plugin interface (decoder factory).
static QStringList m_disabledNames
This class represents audio channel mapping.
QMap< Qmmp::ReplayGainKey, double > m_rg
The Decoder class provides the base interface class of audio decoders.
QMap< Qmmp::TrackProperty, QString > m_properties
QMap< Qmmp::MetaData, QString > m_metaData
AudioParameters m_parameters
static QList< QmmpPluginCache * > * m_cache