mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 20:10:13 +02:00
Run effSetChunk and effGetChunk from main thread
This commit is contained in:
@@ -21,6 +21,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed preset/state loading in both the VST2 and VST3 versions of _Algonaut
|
||||
Atlas_ by loading and saving plugin state from the main GUI thread.
|
||||
- Added a workaround for a bug present in every _Bluecat Audio_ VST3 plugin
|
||||
where those plugins don't expose the `IPluginBase` interface through their
|
||||
query interface.
|
||||
|
||||
@@ -39,10 +39,13 @@ Vst2Bridge* current_bridge_instance = nullptr;
|
||||
* NOTE: `effMainsChanged` is the odd one here. EZdrummer interacts with the
|
||||
* Win32 message loop while handling this function. If we don't execute
|
||||
* this from the main GUI thread, then EZdrummer won't produce any sound.
|
||||
* NOTE: `effSetChunk` and `effGetChunk` should be callable from any thread, but
|
||||
* Algonaut Atlas doesn't restore chunk data unless `effSetChunk` is run
|
||||
* from the GUI thread
|
||||
*/
|
||||
const std::set<int> unsafe_opcodes{effOpen, effClose, effEditGetRect,
|
||||
effEditOpen, effEditClose, effEditIdle,
|
||||
effEditTop, effMainsChanged};
|
||||
const std::set<int> unsafe_opcodes{
|
||||
effOpen, effClose, effEditGetRect, effEditOpen, effEditClose,
|
||||
effEditIdle, effEditTop, effMainsChanged, effGetChunk, effSetChunk};
|
||||
|
||||
intptr_t VST_CALL_CONV
|
||||
host_callback_proxy(AEffect*, int, int, intptr_t, void*, float);
|
||||
|
||||
Reference in New Issue
Block a user