summaryrefslogtreecommitdiffstats
path: root/tests/auto/unit/mockbackend/qmockaudiodecoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/unit/mockbackend/qmockaudiodecoder.h')
-rw-r--r--tests/auto/unit/mockbackend/qmockaudiodecoder.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/auto/unit/mockbackend/qmockaudiodecoder.h b/tests/auto/unit/mockbackend/qmockaudiodecoder.h
new file mode 100644
index 000000000..89e21ef23
--- /dev/null
+++ b/tests/auto/unit/mockbackend/qmockaudiodecoder.h
@@ -0,0 +1,69 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#ifndef MOCKAUDIODECODERCONTROL_H
+#define MOCKAUDIODECODERCONTROL_H
+
+#include "private/qplatformaudiodecoder_p.h"
+
+#include <QtCore/qpair.h>
+#include <QtCore/qurl.h>
+
+#include "qaudiobuffer.h"
+#include <QTimer>
+#include <QIODevice>
+
+#define MOCK_DECODER_MAX_BUFFERS 10
+
+QT_BEGIN_NAMESPACE
+
+class QMockAudioDecoder : public QPlatformAudioDecoder
+{
+ Q_OBJECT
+
+public:
+ QMockAudioDecoder(QAudioDecoder *parent = nullptr);
+
+ QUrl source() const override;
+
+ void setSource(const QUrl &fileName) override;
+
+ QIODevice *sourceDevice() const override;
+
+ void setSourceDevice(QIODevice *device) override;
+
+ QAudioFormat audioFormat() const override;
+
+ void setAudioFormat(const QAudioFormat &format) override;
+
+ // When decoding we decode to first buffer, then second buffer
+ // we then stop until the first is read again and so on, for
+ // 5 buffers
+ void start() override;
+
+ void stop() override;
+
+ QAudioBuffer read() override;
+
+ bool bufferAvailable() const override;
+
+ qint64 position() const override;
+
+ qint64 duration() const override;
+
+private slots:
+ void pretendDecode();
+
+public:
+ QUrl mSource;
+ QIODevice *mDevice;
+ QAudioFormat mFormat;
+ qint64 mPosition;
+
+ int mSerial;
+ QList<QAudioBuffer> mBuffers;
+};
+
+QT_END_NAMESPACE
+
+#endif // QAUDIODECODERCONTROL_H