mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +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
|
||||||
|
|
||||||
|
- 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
|
- Added a workaround for a bug present in every _Bluecat Audio_ VST3 plugin
|
||||||
where those plugins don't expose the `IPluginBase` interface through their
|
where those plugins don't expose the `IPluginBase` interface through their
|
||||||
query interface.
|
query interface.
|
||||||
|
|||||||
@@ -39,10 +39,13 @@ Vst2Bridge* current_bridge_instance = nullptr;
|
|||||||
* NOTE: `effMainsChanged` is the odd one here. EZdrummer interacts with the
|
* NOTE: `effMainsChanged` is the odd one here. EZdrummer interacts with the
|
||||||
* Win32 message loop while handling this function. If we don't execute
|
* 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.
|
* 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,
|
const std::set<int> unsafe_opcodes{
|
||||||
effEditOpen, effEditClose, effEditIdle,
|
effOpen, effClose, effEditGetRect, effEditOpen, effEditClose,
|
||||||
effEditTop, effMainsChanged};
|
effEditIdle, effEditTop, effMainsChanged, effGetChunk, effSetChunk};
|
||||||
|
|
||||||
intptr_t VST_CALL_CONV
|
intptr_t VST_CALL_CONV
|
||||||
host_callback_proxy(AEffect*, int, int, intptr_t, void*, float);
|
host_callback_proxy(AEffect*, int, int, intptr_t, void*, float);
|
||||||
|
|||||||
Reference in New Issue
Block a user