summaryrefslogtreecommitdiffstats
path: root/src/plugins/pulseaudio/qpulseaudioengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/pulseaudio/qpulseaudioengine.h')
-rw-r--r--src/plugins/pulseaudio/qpulseaudioengine.h33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/plugins/pulseaudio/qpulseaudioengine.h b/src/plugins/pulseaudio/qpulseaudioengine.h
index 1c6c2aaf4..04591d035 100644
--- a/src/plugins/pulseaudio/qpulseaudioengine.h
+++ b/src/plugins/pulseaudio/qpulseaudioengine.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Toolkit.
@@ -74,12 +74,36 @@ public:
pa_threaded_mainloop *mainloop() { return m_mainLoop; }
pa_context *context() { return m_context; }
+ inline void lock()
+ {
+ if (m_mainLoop)
+ pa_threaded_mainloop_lock(m_mainLoop);
+ }
+
+ inline void unlock()
+ {
+ if (m_mainLoop)
+ pa_threaded_mainloop_unlock(m_mainLoop);
+ }
+
+ inline void wait(pa_operation *op)
+ {
+ while (m_mainLoop && pa_operation_get_state(op) == PA_OPERATION_RUNNING)
+ pa_threaded_mainloop_wait(m_mainLoop);
+ }
+
QList<QByteArray> availableDevices(QAudio::Mode mode) const;
+Q_SIGNALS:
+ void contextFailed();
+
+private Q_SLOTS:
+ void prepare();
+ void onContextFailed();
+
private:
- void serverInfo();
- void sinks();
- void sources();
+ void updateDevices();
+ void release();
public:
QList<QByteArray> m_sinks;
@@ -93,6 +117,7 @@ private:
pa_mainloop_api *m_mainLoopApi;
pa_threaded_mainloop *m_mainLoop;
pa_context *m_context;
+ bool m_prepared;
};
QT_END_NAMESPACE