summaryrefslogtreecommitdiffstats
path: root/sdrbase/audio/portaudioholder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sdrbase/audio/portaudioholder.cpp')
-rw-r--r--sdrbase/audio/portaudioholder.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/sdrbase/audio/portaudioholder.cpp b/sdrbase/audio/portaudioholder.cpp
new file mode 100644
index 0000000..1ba31c8
--- /dev/null
+++ b/sdrbase/audio/portaudioholder.cpp
@@ -0,0 +1,26 @@
+#include <QMessageBox>
+#include <portaudio.h>
+#include "audio/portaudioholder.h"
+
+PortAudioHolder::PortAudioHolder() :
+ m_initialized(false)
+{
+ PaError err;
+
+ if((err = Pa_Initialize()) == paNoError) {
+ m_initialized = true;
+ qDebug("PortAudio initialized");
+ } else {
+ qCritical("PortAudio: could not initialise: %s (%d)", Pa_GetErrorText(err), err);
+ QString error = QObject::tr("PortAudio could not be initialised: %1 (%2)").arg(Pa_GetErrorText(err)).arg(err);
+ QMessageBox::critical(NULL, "PortAudio failure", error);
+ }
+}
+
+PortAudioHolder::~PortAudioHolder()
+{
+ if(m_initialized) {
+ Pa_Terminate();
+ qDebug("PortAudio terminated");
+ }
+}