JS8Call-Improved master
Loading...
Searching...
No Matches
SoundOutput.h
1// -*- Mode: C++ -*-
2#ifndef SOUNDOUT_H__
3#define SOUNDOUT_H__
4
5#include <QAudioDevice>
6#include <QAudioFormat>
7#include <QAudioSink>
8#include <QObject>
9#include <QString>
10
11// An instance of this sends audio data to a specified soundcard.
12
13class SoundOutput : public QObject {
14 Q_OBJECT;
15
16 public:
17 SoundOutput() = default;
18
19 qreal attenuation() const;
20 QAudioFormat format() const;
21
22 public Q_SLOTS:
23 void setFormat(QAudioDevice const &device, unsigned channels,
24 unsigned msBuffered = 0u);
25 void setDeviceFormat(QAudioDevice const &device, QAudioFormat const &format,
26 unsigned msBuffered = 0u);
27 void restart(QIODevice *);
28 void suspend();
29 void resume();
30 void reset();
31 void stop();
32 void setAttenuation(qreal); /* unsigned */
33 void resetAttenuation(); /* to zero */
34
35 Q_SIGNALS:
36 void error(QString message) const;
37 void status(QString message) const;
38
39 private:
40 bool checkStream() const;
41
42 private Q_SLOTS:
43 void handleStateChanged(QAudio::State) const;
44
45 private:
46 QAudioDevice m_device;
47 QScopedPointer<QAudioSink> m_stream;
48 QAudioFormat m_format;
49 unsigned m_msBuffered = 0u;
50 qreal m_volume = 1.0;
51 bool m_error = false;
52};
53
54#endif
void setDeviceFormat(QAudioDevice const &device, QAudioFormat const &format, unsigned msBuffered=0u)
Sets the audio device and format.
Definition SoundOutput.cpp:79
void suspend()
Suspends audio output.
Definition SoundOutput.cpp:139
QAudioFormat format() const
Gets the current audio format.
Definition SoundOutput.cpp:190
void reset()
Resets the audio output.
Definition SoundOutput.cpp:159
void setAttenuation(qreal)
Sets the attenuation in decibels.
Definition SoundOutput.cpp:196
qreal attenuation() const
Gets the current attenuation in decibels.
Definition SoundOutput.cpp:182
void resume()
Resumes audio output.
Definition SoundOutput.cpp:149
void stop()
Stops audio output.
Definition SoundOutput.cpp:169
void restart(QIODevice *)
Restarts audio output with the specified source.
Definition SoundOutput.cpp:101
void resetAttenuation()
Resets the attenuation to zero.
Definition SoundOutput.cpp:209
void setFormat(QAudioDevice const &device, unsigned channels, unsigned msBuffered=0u)
Sets the audio format based on the device and channel count.
Definition SoundOutput.cpp:59