Fix 3 bug standalone: VKB chiếm phím V, TCP FX button mở FX chain, VST GUI embed qua bridge

- VKB: stopImmediatePropagation thay stopPropagation (keydown+keyup) — chặn
  transport hotkey 'v' mở prompt Gain khi VKB đang mở (VKB đăng ký trước).
- TCP FX button: onClick -> window.__openFxRack(track.id, track.name), title
  'Mở Track FX Chain', giữ caret ▾ (title 'FX nhanh (cũ)') cho dropdown legacy.
- VST FX GUI embed: copy fx_vst_bridge.exe vào bundle (engine.spec binaries),
  find_bridge_exe tìm được trong _internal/ — hết lỗi 409 'Không tìm thấy bridge'.

Verified bằng Playwright: VKB không mở Gain prompt, FX chain rack mở + GUI VST
embed hiển thị (cả track FX rack lẫn Master FX Chain).
This commit is contained in:
2026-08-21 16:17:33 +07:00
parent bcd8e37e86
commit 9b14c99a7a
3 changed files with 31 additions and 6 deletions
+10
View File
@@ -12,6 +12,16 @@ binaries = collect_dynamic_libs('soundfile')
# package 'app' (vd thu muc md/). Cac assets cua app (static/templates/models)
# duoc bundle qua collect_data_files('app').
_SPEC_ROOT = os.path.abspath(SPECPATH)
# Native bridge cho VST FX (fx_vst_bridge.exe + DLL + plugin_host) — bundle vao
# root (dest '.') de find_bridge_exe (frozen: exe_dir = thu muc chua
# sys.executable = dist/daw_engine) tu dong tim thay. Chi build tren Windows.
if os.name == 'nt':
_bridge_dir = os.path.join(_SPEC_ROOT, 'native_bridge', 'build', 'Release')
for _b in ('fx_vst_bridge.exe', 'jpeg62.dll', 'libfluidsynth-3.dll', 'plugin_host.exe'):
_bp = os.path.join(_bridge_dir, _b)
if os.path.exists(_bp):
binaries.append((_bp, '.'))
# ⚠️ GOC ROOT CUA MOI LOI 'app\\static does not exist' (gap 3 lan):
# lenh `pyinstaller engine.spec` (entry-point script) KHONG them CWD vao