31 virtual QUrl source()
const = 0;
32 virtual void setSource(
const QUrl &fileName) = 0;
34 virtual QIODevice* sourceDevice()
const = 0;
35 virtual void setSourceDevice(QIODevice *device) = 0;
37 virtual void start() = 0;
38 virtual void stop() = 0;
40 virtual QAudioFormat audioFormat()
const = 0;
41 virtual void setAudioFormat(
const QAudioFormat &format) = 0;
43 virtual QAudioBuffer read() = 0;
44 virtual bool bufferAvailable()
const {
return m_bufferAvailable; }
46 virtual qint64 position()
const {
return m_position; }
47 virtual qint64 duration()
const {
return m_duration; }
49 void formatChanged(
const QAudioFormat &format);
53 void error(
int error,
const QString &errorString);
54 void clearError() { error(QAudioDecoder::NoError, QString()); }
57 void bufferAvailableChanged(
bool available);
58 void setIsDecoding(
bool running =
true) {
59 if (m_isDecoding == running)
61 m_isDecoding = running;
62 emit q->isDecodingChanged(m_isDecoding);
65 bool isDecoding()
const {
return m_isDecoding; }
67 void positionChanged(qint64 position);
68 void durationChanged(qint64 duration);
70 QAudioDecoder::Error error()
const {
return m_error; }
71 QString errorString()
const {
return m_errorString; }
73 virtual bool canReadQrc()
const {
return false; }
75 ~QPlatformAudioDecoder() override;
78 explicit QPlatformAudioDecoder(QAudioDecoder *parent);
81 QAudioDecoder *q =
nullptr;
83 qint64 m_duration = -1;
84 qint64 m_position = -1;
85 QAudioDecoder::Error m_error = QAudioDecoder::NoError;
86 QString m_errorString;
87 bool m_isDecoding =
false;
88 bool m_bufferAvailable =
false;