Fix master volume + VST3FX GUI state restore on save/reload

- serializeProjectToSchema now writes master volume_db and mastering gui_open_path/name
- deserialize restores masterVolume + masteringSettings.gui_open_path/name
- track vst_gui_open_path/name fallback to live state (not just _persistFxGui*)
- MasteringModal/FXRackModal reopen effects react to isOpen + restored gui path
- openMasterVstGui/openVstGui store gui name for reopen
- bridge: /preset capture endpoint + RenderFxJob.captureState for GUI knob state
This commit is contained in:
2026-08-19 14:44:40 +07:00
parent 8874e42596
commit 2f5c70ac29
6 changed files with 308 additions and 102 deletions
+6
View File
@@ -55,6 +55,12 @@ int run_open_fx_gui(const std::string& jobPath);
// --open-fx-gui.
int run_fx_gui_server(const std::string& jobPath);
// Capture the GUI plugin's current state (component + controller) as base64
// of the bridge blob [4B BE compLen][comp][4B BE ctrlLen][ctrl] - the same
// format applyPreset accepts. Runs on the GUI pump thread; blocks up to
// timeoutMs. outB64 stays empty on timeout or when the plugin has no state.
void fxGuiRequestCapture(void* hwnd, std::string& outB64, int timeoutMs);
// Realtime FX chain (T2.4): live VST3 audio effects on the bridge master mix.
// setChain() is async (a worker thread loads the plugins and swaps the chain);
// process() runs ONLY on the audio thread; shutdown() joins the worker and must