Skip to content

SarAsio: configure the running inner driver instead of a second one (#133) - #149

Draft
eiz-claude wants to merge 2 commits into
mack/ci-installerfrom
mack/fix-133-configure-inner-driver
Draft

eiz-claude wants to merge 2 commits into
mack/ci-installerfrom
mack/fix-133-configure-inner-driver

Conversation

@eiz-claude

@eiz-claude eiz-claude commented Oct 3, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #133.

With the host running, the Configure button next to the hardware interface in SAR's control panel created and initialized a second instance of the inner ASIO driver, only to call controlPanel() on it. ASIO drivers may assume one instance per process; FlexASIO crashed on it (dechamps/FlexASIO#183).

SarAsioWrapper::controlPanel now passes its running inner driver and the CLSID it loaded into the configuration dialog. When the selected interface is that driver, the Configure button calls controlPanel() on the running instance. Other selections, and SarAsio without a running driver (e.g. SarConfigure.exe), still open a temporary instance as before.

Test

New SarTest control-panel check (issue-133-control-panel scenario):

  1. Start the host on the software clock.
  2. Open SAR's control panel and send the Configure button's click to its page.
  3. Cancel the panel.
  4. Fail if the clock ever had two live instances. The clock now counts its instances and controlPanel calls.
test VM (Win11 25H2) clock instances, max inner controlPanel calls result
tests without the fix 2 1 failed
with the fix 1 1 passed

🤖 Generated with Claude Code

eiz and others added 2 commits October 3, 2026 10:43
Adds SarTest control-panel and an issue-133-control-panel scenario in
a new "issues" group (on by default). With the host running, it opens
SAR's control panel, sends the hardware interface's Configure button
click, cancels the panel, and fails if the software clock ever had two
live instances. The clock now counts its live instances and
controlPanel calls and reports them in ClockStats.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With the host running, the hardware interface's Configure button
created and initialized a second instance of the inner ASIO driver
just to call controlPanel() on it. ASIO drivers may assume a single
instance per process, and FlexASIO crashed on it. The control panel
now gets the wrapper's running inner driver and its CLSID, and uses it
when it is the selected one. Other selections, and SarAsio without a
running driver, still open a temporary instance.

Fixes #133.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@eiz-claude
eiz-claude added this pull request to stack #154 October 3, 2026 15:01
@eiz-claude eiz-claude changed the title mack/fix 133 configure inner driver SarAsio: configure the running inner driver instead of a second one (#133) Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants