Browse Source

Better CoreAudio handling of devices with combined in/out channels.

tags/2021-05-28
jules 12 years ago
parent
commit
a052b648ec
1 changed files with 13 additions and 4 deletions
  1. +13
    -4
      modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp

+ 13
- 4
modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp View File

@@ -1831,13 +1831,22 @@ public:
if (deviceName.isEmpty())
deviceName = inputDeviceName;
AudioDeviceID inputDeviceID = inputIds [inputIndex];
AudioDeviceID outputDeviceID = outputIds [outputIndex];
if (inputDeviceID == 0 && inputDeviceID == 0)
return nullptr;
if (inputDeviceID == outputDeviceID)
return new CoreAudioIODevice (outputDeviceName, inputDeviceID, inputIndex, outputDeviceID, outputIndex);
ScopedPointer<CoreAudioIODevice> in, out;
if (inputIndex >= 0)
in = new CoreAudioIODevice (outputDeviceName, inputIds [inputIndex], inputIndex, 0, -1);
if (inputDeviceID != 0)
in = new CoreAudioIODevice (outputDeviceName, inputDeviceID, inputIndex, 0, -1);
if (outputIndex >= 0)
out = new CoreAudioIODevice (inputDeviceName, 0, -1, outputIds [outputIndex], outputIndex);
if (outputDeviceID != 0)
out = new CoreAudioIODevice (inputDeviceName, 0, -1, outputDeviceID, outputIndex);
if (in == nullptr) return out.release();
if (out == nullptr) return in.release();


Loading…
Cancel
Save