1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-08 23:24:19 +00:00

Revert "AudioDeviceManager: Handle loading of XML with missing fields more gracefully"

This reverts commit 3c1012baeb.

This change caused the AudioDeviceManager to open a fallback device if
the device name was empty, the requested number of channels was
positive, and selectDefaultDeviceOnFailure was true.

The new behaviour conflicted with the documented behaviour of
initialise(). The number of input/output channels is to be treated as a
maximum, rather than a preferred count. If a positive channelsNeeded is
requested but the device name is empty, a default device should not be
opened since the actual number of channels (0) is lower than the maximum
specified number.
This commit is contained in:
reuk 2025-11-04 14:02:59 +00:00
parent 7b9ff97ff2
commit b1ec95db6e
No known key found for this signature in database

View file

@ -510,16 +510,6 @@ String AudioDeviceManager::initialiseFromXML (const XmlElement& xml,
currentDeviceType = firstType->getTypeName();
}
const auto deviceNameMissing = (numInputChansNeeded > 0 && setup.inputDeviceName .isEmpty())
|| (numOutputChansNeeded > 0 && setup.outputDeviceName.isEmpty());
// If there's no device name, then normally this would prevent a device from opening.
// If failing to open a device would conflict with the number of requested channels, then we
// pre-emptively treat this as a failure and fall back to using devices that're able to provide
// the requested channel counts.
if (selectDefaultDeviceOnFailure && deviceNameMissing)
insertDefaultDeviceNames (setup);
setup.bufferSize = xml.getIntAttribute ("audioDeviceBufferSize", setup.bufferSize);
setup.sampleRate = xml.getDoubleAttribute ("audioDeviceRate", setup.sampleRate);