summaryrefslogtreecommitdiffstats
path: root/src/plugins/coreaudio
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-26 14:25:10 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-26 14:25:10 +0100
commit7610f6e9ba8b92df6d18b94fcec982064dffacbd (patch)
tree65653559c62cc451258543b87ff971371e8d8e05 /src/plugins/coreaudio
parentac6f9d27b1610356303714c3f8d2f2ab2ca5883a (diff)
parent365e05bad8c4a42a449eeef257a16c6f8faca318 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Diffstat (limited to 'src/plugins/coreaudio')
-rw-r--r--src/plugins/coreaudio/coreaudiooutput.h1
-rw-r--r--src/plugins/coreaudio/coreaudiooutput.mm5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/coreaudio/coreaudiooutput.h b/src/plugins/coreaudio/coreaudiooutput.h
index 5db102ad2..9f62cd77d 100644
--- a/src/plugins/coreaudio/coreaudiooutput.h
+++ b/src/plugins/coreaudio/coreaudiooutput.h
@@ -193,6 +193,7 @@ private:
QTimer *m_intervalTimer;
CoreAudioDeviceInfo *m_audioDeviceInfo;
qreal m_cachedVolume;
+ bool m_pullMode;
QAudio::Error m_errorCode;
QAudio::State m_stateCode;
diff --git a/src/plugins/coreaudio/coreaudiooutput.mm b/src/plugins/coreaudio/coreaudiooutput.mm
index 80e006433..dfac44c2d 100644
--- a/src/plugins/coreaudio/coreaudiooutput.mm
+++ b/src/plugins/coreaudio/coreaudiooutput.mm
@@ -228,6 +228,7 @@ CoreAudioOutput::CoreAudioOutput(const QByteArray &device)
, m_startTime(0)
, m_audioBuffer(0)
, m_cachedVolume(1.0)
+ , m_pullMode(false)
, m_errorCode(QAudio::NoError)
, m_stateCode(QAudio::StoppedState)
{
@@ -277,6 +278,7 @@ void CoreAudioOutput::start(QIODevice *device)
m_stateCode = QAudio::ActiveState;
// Start
+ m_pullMode = true;
m_errorCode = QAudio::NoError;
m_totalFrames = 0;
m_startTime = CoreAudioUtils::currentTime();
@@ -302,6 +304,7 @@ QIODevice *CoreAudioOutput::start()
m_stateCode = QAudio::IdleState;
// Start
+ m_pullMode = false;
m_errorCode = QAudio::NoError;
m_totalFrames = 0;
m_startTime = CoreAudioUtils::currentTime();
@@ -353,7 +356,7 @@ void CoreAudioOutput::resume()
if (m_stateCode == QAudio::SuspendedState) {
audioThreadStart();
- m_stateCode = QAudio::ActiveState;
+ m_stateCode = m_pullMode ? QAudio::ActiveState : QAudio::IdleState;
m_errorCode = QAudio::NoError;
emit stateChanged(m_stateCode);
}