JS8Call-Improved master
Loading...
Searching...
No Matches
SoundInput.h
1// -*- Mode: C++ -*-
2#ifndef SOUNDIN_H__
3#define SOUNDIN_H__
4
5#include "JS8_Audio/AudioDevice.h"
6
7#include <QAudioDevice>
8#include <QAudioSource>
9#include <QDateTime>
10#include <QObject>
11#include <QPointer>
12#include <QScopedPointer>
13#include <QString>
14
15// Gets audio data from sound sample source and passes it to a sink device
16class SoundInput : public QObject {
17 Q_OBJECT;
18
19 public:
20 SoundInput(QObject *parent = nullptr) : QObject{parent}, m_sink{nullptr} {}
21
23
24 // sink must exist from the start call until the next start call or
25 // stop call
26 Q_SLOT void start(QAudioDevice const &, int framesPerBuffer,
27 AudioDevice *sink,
28 AudioDevice::Channel = AudioDevice::Mono);
29 Q_SLOT void suspend();
30 Q_SLOT void resume();
31 Q_SLOT void stop();
32
33 Q_SIGNAL void error(QString message) const;
34 Q_SIGNAL void status(QString message) const;
35
36 private:
37 // used internally
38 Q_SLOT void handleStateChanged(QAudio::State) const;
39
40 bool audioError() const;
41
42 QScopedPointer<QAudioSource> m_stream;
43 QPointer<AudioDevice> m_sink;
44};
45
46#endif
Definition AudioDevice.h:11
Q_SLOT void suspend()
Suspends audio input.
Definition SoundInput.cpp:111
Q_SLOT void stop()
Stops audio input.
Definition SoundInput.cpp:168
Q_SLOT void start(QAudioDevice const &, int framesPerBuffer, AudioDevice *sink, AudioDevice::Channel=AudioDevice::Mono)
Starts audio input from the specified device.
Definition SoundInput.cpp:64
Q_SLOT void resume()
Resumes audio input.
Definition SoundInput.cpp:121
~SoundInput()
Destructs the SoundInput object.
Definition SoundInput.cpp:182