summaryrefslogtreecommitdiffstats
path: root/src/plugins/coreaudio
diff options
context:
space:
mode:
authorDyami Caliri <dyami@dragonframe.com>2016-04-22 17:00:31 -0700
committerYoann Lopes <yoann.lopes@qt.io>2016-04-27 12:27:26 +0000
commitcf44daa75499eecfee8f614837908d722d8741f3 (patch)
treed835a8cfc56cdb9faaf22cfd3c531661930a7827 /src/plugins/coreaudio
parentc1cfbd98d2c03a2aff305c4fc190424906d7f465 (diff)
CoreAudio: use AudioComponent instead of deprecated Carbon Component
OS X 10.11 generates a warning when the code uses the Carbon Component Manager to locate audio devices. The new AudioComponent interface has been available since 10.7. Change-Id: I46ecbcd62871ecc46ce3ebd9ea2a37a9e1342f41 Task-number: QTBUG-48828 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
Diffstat (limited to 'src/plugins/coreaudio')
-rw-r--r--src/plugins/coreaudio/coreaudioinput.mm33
-rw-r--r--src/plugins/coreaudio/coreaudiooutput.mm32
2 files changed, 11 insertions, 54 deletions
diff --git a/src/plugins/coreaudio/coreaudioinput.mm b/src/plugins/coreaudio/coreaudioinput.mm
index e0cedb1b9..b5be71166 100644
--- a/src/plugins/coreaudio/coreaudioinput.mm
+++ b/src/plugins/coreaudio/coreaudioinput.mm
@@ -36,7 +36,7 @@
#include "coreaudioutils.h"
#if defined(Q_OS_OSX)
-# include <CoreServices/CoreServices.h>
+# include <AudioUnit/AudioComponent.h>
#endif
#if defined(Q_OS_IOS)
@@ -480,31 +480,15 @@ bool CoreAudioInput::open()
if (m_isOpen)
return true;
-#if defined(Q_OS_OSX)
UInt32 size = 0;
- ComponentDescription componentDescription;
- componentDescription.componentType = kAudioUnitType_Output;
- componentDescription.componentSubType = kAudioUnitSubType_HALOutput;
- componentDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
- componentDescription.componentFlags = 0;
- componentDescription.componentFlagsMask = 0;
-
- // Open
- Component component = FindNextComponent(NULL, &componentDescription);
- if (component == 0) {
- qWarning() << "QAudioInput: Failed to find HAL Output component";
- return false;
- }
-
- if (OpenAComponent(component, &m_audioUnit) != noErr) {
- qWarning() << "QAudioInput: Unable to Open Output Component";
- return false;
- }
-#else //iOS
AudioComponentDescription componentDescription;
componentDescription.componentType = kAudioUnitType_Output;
+#if defined(Q_OS_OSX)
+ componentDescription.componentSubType = kAudioUnitSubType_HALOutput;
+#else
componentDescription.componentSubType = kAudioUnitSubType_RemoteIO;
+#endif
componentDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
componentDescription.componentFlags = 0;
componentDescription.componentFlagsMask = 0;
@@ -519,7 +503,7 @@ bool CoreAudioInput::open()
qWarning() << "QAudioInput: Unable to Open Output Component";
return false;
}
-#endif
+
// Set mode
// switch to input mode
UInt32 enable = 1;
@@ -687,12 +671,7 @@ void CoreAudioInput::close()
if (m_audioUnit != 0) {
AudioOutputUnitStop(m_audioUnit);
AudioUnitUninitialize(m_audioUnit);
-#if defined(Q_OS_OSX)
- CloseComponent(m_audioUnit);
-#else //iOS
AudioComponentInstanceDispose(m_audioUnit);
-#endif
-
}
delete m_audioBuffer;
diff --git a/src/plugins/coreaudio/coreaudiooutput.mm b/src/plugins/coreaudio/coreaudiooutput.mm
index 2db26297a..8c3760a39 100644
--- a/src/plugins/coreaudio/coreaudiooutput.mm
+++ b/src/plugins/coreaudio/coreaudiooutput.mm
@@ -42,7 +42,7 @@
#include <AudioUnit/AudioUnit.h>
#include <AudioToolbox/AudioToolbox.h>
#if defined(Q_OS_OSX)
-# include <CoreServices/CoreServices.h>
+# include <AudioUnit/AudioComponent.h>
#endif
#if defined(Q_OS_IOS)
@@ -543,30 +543,13 @@ bool CoreAudioOutput::open()
if (m_isOpen)
return true;
-#if defined(Q_OS_OSX)
- ComponentDescription componentDescription;
- componentDescription.componentType = kAudioUnitType_Output;
- componentDescription.componentSubType = kAudioUnitSubType_HALOutput;
- componentDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
- componentDescription.componentFlags = 0;
- componentDescription.componentFlagsMask = 0;
-
- // Open
- Component component = FindNextComponent(NULL, &componentDescription);
- if (component == 0) {
- qWarning() << "QAudioOutput: Failed to find HAL Output component";
- return false;
- }
-
- if (OpenAComponent(component, &m_audioUnit) != noErr) {
- qWarning() << "QAudioOutput: Unable to Open Output Component";
- return false;
- }
-#else //iOS
-
AudioComponentDescription componentDescription;
componentDescription.componentType = kAudioUnitType_Output;
+#if defined(Q_OS_OSX)
+ componentDescription.componentSubType = kAudioUnitSubType_HALOutput;
+#else
componentDescription.componentSubType = kAudioUnitSubType_RemoteIO;
+#endif
componentDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
componentDescription.componentFlags = 0;
componentDescription.componentFlagsMask = 0;
@@ -581,7 +564,6 @@ bool CoreAudioOutput::open()
qWarning() << "QAudioOutput: Unable to Open Output Component";
return false;
}
-#endif
// register callback
AURenderCallbackStruct callback;
@@ -673,11 +655,7 @@ void CoreAudioOutput::close()
if (m_audioUnit != 0) {
AudioOutputUnitStop(m_audioUnit);
AudioUnitUninitialize(m_audioUnit);
-#if defined(Q_OS_OSX)
- CloseComponent(m_audioUnit);
-#else //iOS
AudioComponentInstanceDispose(m_audioUnit);
-#endif
}
delete m_audioBuffer;