From: <sv...@op...> - 2024-08-31 13:54:05
|
Author: sagamusix Date: Sat Aug 31 15:53:58 2024 New Revision: 21556 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21556 Log: [Fix] Avoid crash in plugin bridge if plugin changes channel configuration without telling us (observed with Surge XT via vst3ishell, https://bugs.openmpt.org/view.php?id=1807). Modified: trunk/OpenMPT/pluginBridge/Bridge.cpp Modified: trunk/OpenMPT/pluginBridge/Bridge.cpp ============================================================================== --- trunk/OpenMPT/pluginBridge/Bridge.cpp Sat Aug 31 14:20:12 2024 (r21555) +++ trunk/OpenMPT/pluginBridge/Bridge.cpp Sat Aug 31 15:53:58 2024 (r21556) @@ -476,6 +476,9 @@ // [value]: 0 means "turn off", 1 means "turn on" ::SetThreadPriority(m_audioThread, msg.value ? THREAD_PRIORITY_ABOVE_NORMAL : THREAD_PRIORITY_NORMAL); m_sharedMem->tailSize = static_cast<int32>(Dispatch(effGetTailSize, 0, 0, nullptr, 0.0f)); + // Plugin should tell us if number of channels changes through audioMasterIOChanged, but Surge XT via vst3ishell has been observed not to do that. + if(msg.value) + DispatchToHost(audioMasterVendorSpecific, kVendorOpenMPT, kUpdateProcessingBuffer, nullptr, 0.0f); break; case effEditGetRect: |