Bump to v2.0.0: ASIO startup splash so launch no longer looks frozen
Opening an ASIO driver takes 1-3 seconds, synchronously, during MainForm construction — confirmed in logs as a ~2.8s dead gap on an ASIO-profile launch (a WASAPI-only launch is ~131ms for the same stretch). During that gap the main window is blank / "Not Responding" and looks hung. New AsioLoadingSplash shows a small "Loading audio driver, please wait..." window on its OWN dedicated STA thread with its own message loop, so it stays painted while the main thread is blocked opening the driver. Program.cs starts it before new MainForm() and dismisses it after. Deliberately, the ASIO driver open stays on the main UI thread — that STA/message-pump thread is what ASIO/COM drivers are most compatible with, and moving the open off it risks breaking drivers that can't be tested. Only the cosmetic splash moved to a side thread; no ASIO/driver code is touched. Splash shows only for profiles with an ASIO driver selected; WASAPI-only profiles build fast and get no splash. Version bumped to 2.0.0 to mark the milestone. No wire-format or audio-pipeline changes — v1.5 through v2.0 interoperate. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
4344e3439d
commit
00cb4deef1
@@ -83,7 +83,13 @@ internal static class Program
|
||||
string? nextPath = null;
|
||||
while (true)
|
||||
{
|
||||
// Opening an ASIO driver is slow (1-3 s) and happens synchronously inside
|
||||
// MainForm construction. Show a "Loading audio driver" splash — on its own
|
||||
// thread, so it stays painted while this thread is busy — so startup doesn't
|
||||
// look hung. No-op for WASAPI-only profiles (construction is near-instant).
|
||||
var splash = AsioLoadingSplash.StartIfNeeded(profile);
|
||||
using var form = new MainForm(store, profile, title, nextPath);
|
||||
splash?.Dismiss();
|
||||
Application.Run(form);
|
||||
|
||||
if (form.ReloadFromScratch)
|
||||
|
||||
Reference in New Issue
Block a user