summaryrefslogtreecommitdiff
path: root/libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp')
-rw-r--r--libs/backends/wavesaudio/wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp12
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;