Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qplatformaudiodecoder_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QAUDIODECODERCONTROL_H
5#define QAUDIODECODERCONTROL_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtMultimedia/qaudiobuffer.h>
19#include <QtMultimedia/qaudiodecoder.h>
20#include <QtCore/qpair.h>
21#include <QtCore/qurl.h>
22#include <QtCore/private/qglobal_p.h>
23
25
26class QIODevice;
27class Q_MULTIMEDIA_EXPORT QPlatformAudioDecoder : public QObject
28{
30
31public:
32 virtual QUrl source() const = 0;
33 virtual void setSource(const QUrl &fileName) = 0;
34
35 virtual QIODevice* sourceDevice() const = 0;
36 virtual void setSourceDevice(QIODevice *device) = 0;
37
38 virtual void start() = 0;
39 virtual void stop() = 0;
40
41 virtual QAudioFormat audioFormat() const = 0;
42 virtual void setAudioFormat(const QAudioFormat &format) = 0;
43
44 virtual QAudioBuffer read() = 0;
45 virtual bool bufferAvailable() const { return m_bufferAvailable; }
46
47 virtual qint64 position() const { return m_position; }
48 virtual qint64 duration() const { return m_duration; }
49
50 void formatChanged(const QAudioFormat &format);
51
52 void sourceChanged();
53
54 void error(int error, const QString &errorString);
56
57 void bufferReady();
58 void bufferAvailableChanged(bool available);
59 void setIsDecoding(bool running = true) {
60 if (m_isDecoding == running)
61 return;
62 m_isDecoding = running;
63 emit q->isDecodingChanged(m_isDecoding);
64 }
65 void finished();
66 bool isDecoding() const { return m_isDecoding; }
67
68 void positionChanged(qint64 position);
69 void durationChanged(qint64 duration);
70
71 QAudioDecoder::Error error() const { return m_error; }
72 QString errorString() const { return m_errorString; }
73
75
76protected:
77 explicit QPlatformAudioDecoder(QAudioDecoder *parent);
78
79private:
80 QAudioDecoder *q = nullptr;
81
82 qint64 m_duration = -1;
83 qint64 m_position = -1;
85 QString m_errorString;
86 bool m_isDecoding = false;
87 bool m_bufferAvailable = false;
88};
89
91
92#endif // QAUDIODECODERCONTROL_H
IOBluetoothDevice * device
\inmodule QtMultimedia
The QAudioDecoder class implements decoding audio.
Error
Defines a media player error condition.
The QAudioFormat class stores audio stream parameter information.
\inmodule QtCore \reentrant
Definition qiodevice.h:34
\inmodule QtCore
Definition qobject.h:103
virtual ~QPlatformAudioDecoder()
virtual void setSource(const QUrl &fileName)=0
QAudioDecoder::Error error() const
virtual qint64 position() const
virtual QAudioFormat audioFormat() const =0
virtual QUrl source() const =0
virtual QIODevice * sourceDevice() const =0
virtual qint64 duration() const
virtual void setSourceDevice(QIODevice *device)=0
virtual void setAudioFormat(const QAudioFormat &format)=0
virtual bool bufferAvailable() const
virtual void start()=0
virtual void stop()=0
void setIsDecoding(bool running=true)
virtual QAudioBuffer read()=0
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qurl.h:94
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
static Q_CONSTINIT QBasicAtomicInt running
GLint GLsizei GLsizei GLenum format
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define Q_OBJECT
#define emit
long long qint64
Definition qtypes.h:60