6 #ifndef SWIFT_SOUND_THREADEDTONEPAIRPLAYER_H
7 #define SWIFT_SOUND_THREADEDTONEPAIRPLAYER_H
9 #include <QAudioFormat>
13 #include <QReadWriteLock>
24 namespace swift::sound
41 void play(
int volume,
const QList<swift::sound::CTonePair> &tonePairs);
51 virtual void initialize()
override;
54 virtual void beforeQuit() noexcept override;
57 void handleStateChanged(QAudio::State newState);
59 QByteArray getAudioByTonePairs(const QList<
CTonePair> &tonePairs);
60 QByteArray generateAudioFromTonePairs(const
CTonePair &tonePair);
67 void writeAmplitudeToBuffer(
double amplitude,
unsigned char *bufferPointer);
69 swift::misc::audio::CAudioDeviceInfo m_deviceInfo;
70 QAudioSink *m_audioOutput =
nullptr;
71 QByteArray m_bufferData;
73 QAudioFormat m_audioFormat;
75 mutable QRecursiveMutex m_mutex;
Base class for a long-lived worker object which lives in its own thread.
Value object encapsulating information of a audio device.
Threaded tone player. Don't use it directly but use.
virtual ~CThreadedTonePairPlayer()=default
Destructor.
#define SWIFT_SOUND_EXPORT
Export a class or function from the library.