fix(backend): find_bridge_exe frozen onedir thieu exe_dir candidate - bridge sidecar nam canh app root ngoai _MEIPASS lam list_fx tra rong (Mastering/FX Rack khong load VST duoc); mirror logic runtime._vst_render_available

This commit is contained in:
2026-08-19 08:15:59 +07:00
parent 0cf771242f
commit 0334c2a5a3
2 changed files with 17 additions and 1 deletions
+7
View File
@@ -32,6 +32,13 @@ def find_bridge_exe() -> str:
if root:
cands += [os.path.join(root, "binaries", BRIDGE_EXE),
os.path.join(root, BRIDGE_EXE)]
# PyInstaller onedir: daw_engine.exe nam <app_root>/daw_engine/, bridge
# sidecar nam canh app root (khong trong _MEIPASS) - tim ca exe_dir.
exe_dir = os.path.dirname(os.path.abspath(sys.executable))
cands += [os.path.join(exe_dir, "binaries", BRIDGE_EXE),
os.path.join(exe_dir, BRIDGE_EXE),
os.path.join(os.path.dirname(exe_dir), "binaries", BRIDGE_EXE),
os.path.join(os.path.dirname(exe_dir), BRIDGE_EXE)]
cands.append(os.path.join(settings.BASE_DIR, "install", BRIDGE_EXE))
for p in cands:
if p and os.path.isfile(p):
+10 -1
View File
@@ -381,7 +381,16 @@ def _vst_render_available() -> bool:
if env and os.path.isfile(env):
return True
exe = "daw_vst_bridge.exe" if os.name == "nt" else "daw_vst_bridge"
return os.path.isfile(os.path.join(settings.BASE_DIR, "install", exe))
if os.path.isfile(os.path.join(settings.BASE_DIR, "install", exe)):
return True
# Frozen onedir: bridge sidecar nam canh app root (ngoai _MEIPASS)
if getattr(sys, "frozen", False):
exe_dir = os.path.dirname(os.path.abspath(sys.executable))
for cand in (os.path.join(exe_dir, exe),
os.path.join(os.path.dirname(exe_dir), exe)):
if os.path.isfile(cand):
return True
return False
def _lan_info() -> dict: