diff options
Diffstat (limited to 'src/multimedia/audio/qaudiosink.h')
-rw-r--r-- | src/multimedia/audio/qaudiosink.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/multimedia/audio/qaudiosink.h b/src/multimedia/audio/qaudiosink.h new file mode 100644 index 000000000..e071e6fbc --- /dev/null +++ b/src/multimedia/audio/qaudiosink.h @@ -0,0 +1,74 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + + +#ifndef QAUDIOOUTPUT_H +#define QAUDIOOUTPUT_H + +#include <QtCore/qiodevice.h> + +#include <QtMultimedia/qtmultimediaglobal.h> + +#include <QtMultimedia/qtaudio.h> +#include <QtMultimedia/qaudioformat.h> +#include <QtMultimedia/qaudiodevice.h> + + +QT_BEGIN_NAMESPACE + + + +class QPlatformAudioSink; + +class Q_MULTIMEDIA_EXPORT QAudioSink : public QObject +{ + Q_OBJECT + +public: + explicit QAudioSink(const QAudioFormat &format = QAudioFormat(), QObject *parent = nullptr); + explicit QAudioSink(const QAudioDevice &audioDeviceInfo, const QAudioFormat &format = QAudioFormat(), QObject *parent = nullptr); + ~QAudioSink(); + + bool isNull() const { return !d; } + + QAudioFormat format() const; + + void start(QIODevice *device); + QIODevice* start(); + + void stop(); + void reset(); + void suspend(); + void resume(); + + void setBufferSize(qsizetype bytes); + qsizetype bufferSize() const; + + qsizetype bytesFree() const; + + qint64 processedUSecs() const; + qint64 elapsedUSecs() const; + + QtAudio::Error error() const; + QtAudio::State state() const; + + void setVolume(qreal); + qreal volume() const; + +Q_SIGNALS: +#if defined(Q_QDOC) + void stateChanged(QtAudio::State state); +#else + // use QAudio here to keep string-based connections working + void stateChanged(QAudio::State state); +#endif + +private: + Q_DISABLE_COPY(QAudioSink) + + QPlatformAudioSink* d; +}; + +QT_END_NAMESPACE + +#endif // QAUDIOOUTPUT_H |