mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Added a removeAudioDeviceType() method to AudioDeviceManager and made the ownership semantics of addAudioDeviceType() clearer
This commit is contained in:
parent
57d3cc6166
commit
859315fe4f
2 changed files with 26 additions and 8 deletions
|
|
@ -105,7 +105,7 @@ void AudioDeviceManager::createDeviceTypesIfNeeded()
|
|||
createAudioDeviceTypes (types);
|
||||
|
||||
for (auto* t : types)
|
||||
addAudioDeviceType (t);
|
||||
addAudioDeviceType (std::unique_ptr<AudioIODeviceType> (t));
|
||||
|
||||
types.clear (false);
|
||||
|
||||
|
|
@ -180,15 +180,32 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>&
|
|||
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Android());
|
||||
}
|
||||
|
||||
void AudioDeviceManager::addAudioDeviceType (AudioIODeviceType* newDeviceType)
|
||||
void AudioDeviceManager::addAudioDeviceType (std::unique_ptr<AudioIODeviceType> newDeviceType)
|
||||
{
|
||||
if (newDeviceType != nullptr)
|
||||
{
|
||||
jassert (lastDeviceTypeConfigs.size() == availableDeviceTypes.size());
|
||||
availableDeviceTypes.add (newDeviceType);
|
||||
|
||||
availableDeviceTypes.add (newDeviceType.release());
|
||||
lastDeviceTypeConfigs.add (new AudioDeviceSetup());
|
||||
|
||||
newDeviceType->addListener (callbackHandler.get());
|
||||
availableDeviceTypes.getLast()->addListener (callbackHandler.get());
|
||||
}
|
||||
}
|
||||
|
||||
void AudioDeviceManager::removeAudioDeviceType (AudioIODeviceType* deviceTypeToRemove)
|
||||
{
|
||||
if (deviceTypeToRemove != nullptr)
|
||||
{
|
||||
jassert (lastDeviceTypeConfigs.size() == availableDeviceTypes.size());
|
||||
|
||||
auto index = availableDeviceTypes.indexOf (deviceTypeToRemove);
|
||||
|
||||
if (auto removed = std::unique_ptr<AudioIODeviceType> (availableDeviceTypes.removeAndReturn (index)))
|
||||
{
|
||||
removed->removeListener (callbackHandler.get());
|
||||
lastDeviceTypeConfigs.remove (index, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue