diff options
Diffstat (limited to 'libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp')
-rw-r--r-- | libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp b/libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp index 3eeee722e1..2d9081830c 100644 --- a/libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp +++ b/libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp @@ -1321,7 +1321,7 @@ WTErr WCMRPortAudioDevice::ShowConfigPanel (void *pParam) AUTO_FUNC_DEBUG; WTErr retVal = eNoErr; - if (Active()) + if (Active() && !m_ResetRequested ) { #ifdef PLATFORM_WINDOWS if(Pa_GetHostApiInfo(Pa_GetDeviceInfo(m_DeviceID)->hostApi)->type == paASIO) @@ -1329,15 +1329,21 @@ WTErr WCMRPortAudioDevice::ShowConfigPanel (void *pParam) // stop and deactivate the device bool wasStreaming = Streaming(); SetActive(false); + // show control panel for the device if (PaAsio_ShowControlPanel (m_DeviceID, pParam) != paNoError) retVal = eGenericErr; - // reset device to pick up changes - ResetDevice(); + // restore previous state for the device SetActive(true); if (wasStreaming) SetStreaming(true); + + + // reset device to pick up changes + if (!m_ResetRequested) { + m_pMyManager->NotifyClient (WCMRAudioDeviceManagerClient::RequestReset); + } } #else pParam = pParam; |