feat(native): realtime master FX chain + fx-gui fast start, hide/show, non-topmost
- FxGuiServer: HWND_TOP (no longer always-on-top), /hide + /show endpoints, onStarted callback prints SF_FXGUI_PORT before plugin load (fast connect) - RenderFxJob: RealtimeFxChain (mutex+worker, SEH-guarded, bypass slots, deferred Vst3Fx dtor); --fx-gui split into parse/create/load-attach stages - main: FreeConsole unless SF_KEEP_CONSOLE; control type 6 SET_FX_CHAIN feeds g_fxChain on the audio loop; shutdown before CoUninitialize - plugins.py: CREATE_NO_WINDOW on both Popen paths - lib.rs: set_fx_chain command -> push_control(6) - app.jsx/nativeBridgeService: setFxChain sync from MasteringModal; panel close uses /hide + refs to fix closure bug; VstGuiEmbed rect refresh -> /show
This commit is contained in:
@@ -169,6 +169,18 @@
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* 6. REALTIME MASTER FX CHAIN (T2.4)
|
||||
* chainJson: JSON array [{path, bypass}, ...] applied to the live master
|
||||
* mix via the bridge control queue (type 6). Async — never blocks UI.
|
||||
*/
|
||||
setFxChain: function (chainJson) {
|
||||
if (!this._tauri()) return false;
|
||||
window.__TAURI__.core.invoke('set_fx_chain', { chainJson: chainJson })
|
||||
.catch(function (e) { console.warn('[BridgeService] set_fx_chain:', e); });
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* 5. AUDIO SINK: register consumer of PCM frames from the bridge.
|
||||
* cb(l: Float32Array, r: Float32Array)
|
||||
|
||||
Reference in New Issue
Block a user