Service: drop the WASAPI inputs (mic) list — outputs and apps only
The service streams a machine's OUTPUT audio (or specific apps); capturing a mic from an unattended, logged-out box isn't a use case (Ed). Removed the "WASAPI audio inputs to send" list from the service config dialog, and made the service ignore inputs everywhere: - ServiceProfileDialog: removed the inputs CheckedListBox, its status label, its row and accessibility wiring. Save now clears SelectedWasapiSendInputs so a profile saved by an older build can't keep a mic streaming. - ServiceSendHost.BuildSendSpecs: removed the input-spec loop — a legacy profile's inputs are deliberately ignored. (The main app is unchanged: it still has its WASAPI inputs list and AudioDeviceCatalog .LoadInputs stays for it.) Test: the service-parity test now adds a mic to the profile and asserts BuildSendSpecs emits only per-application specs and never a CaptureKind.Input. Gate 46/46. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0102aa51f4
commit
27353a3f41
@@ -1000,11 +1000,14 @@ internal static class SelfTest
|
||||
{
|
||||
var appsProfile = new Profile { WasapiSendMode = "applications", SendAllApplications = true };
|
||||
appsProfile.SelectedSendApplications.Add("nonexistent-proc-for-test");
|
||||
appsProfile.SelectedWasapiSendInputs.Add("some-mic-id"); // legacy input selection must be ignored
|
||||
var appSpecs = ServiceSendHost.BuildSendSpecs(appsProfile);
|
||||
Check(!appSpecs.Any(s => s.Kind == CaptureKind.Loopback),
|
||||
"applications mode must NOT produce a whole-system loopback spec, even with SendAllApplications=true");
|
||||
Check(appSpecs.All(s => s.Kind is CaptureKind.ProcessLoopback or CaptureKind.Input),
|
||||
"applications mode must build only per-application (or input) specs — the 'send all' path is gone");
|
||||
Check(appSpecs.All(s => s.Kind == CaptureKind.ProcessLoopback),
|
||||
"the service builds only per-application specs — no whole-system loopback, and no WASAPI inputs");
|
||||
Check(!appSpecs.Any(s => s.Kind == CaptureKind.Input),
|
||||
"the service must never send WASAPI inputs, even if a legacy profile still lists one");
|
||||
}
|
||||
return "service forces Opus + 2.5ms frame + lock-to-clock; apps mode is specific-apps-only; crypto matches";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user