Release v4.6: follow the Windows default audio device (output + input)

- New "Use Windows default audio device, follows Windows changes" entry at the top of the
  received-output and send-input WASAPI lists. Resolves the current Windows default live,
  re-routes automatically when the default device changes, works alongside specific devices,
  and persists across launches (a follower can't go stale). Optional "untick the others?"
  prompt with a remembered "don't ask again", reset via a new Options item "Reset the default
  audio device prompt".
- Manual updated for the feature, plus a sweep that corrected the now-stale Options-menu
  section (retired Startup-behaviour item, four->five Preferences tabs, missing entries).
  About changelog and RELEASE_NOTES updated; version 4.6.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ednunp
2026-06-23 11:41:58 +01:00
co-authored by Claude Opus 4.8
parent 962f35ab80
commit 36431d6d39
8 changed files with 355 additions and 42 deletions
+15
View File
@@ -181,6 +181,21 @@ public sealed class AppConfig
/// readable in their profile files.</summary>
public bool KeyboardShortcutsImportOffered { get; set; }
/// <summary>If true, the "Use Windows default output" follower at the top of the received-sound
/// output list is ticked at startup, so received sound plays to whatever Windows currently calls
/// the default output and re-routes when that changes (plug in headphones, it follows). Unlike a
/// specific device tick — which can go stale and play to the wrong card — a follower can never be
/// wrong, so it's safe to persist. Default false (opt-in). <see cref="UseDefaultInputDevice"/> is
/// the same idea for the send-input list.</summary>
public bool UseDefaultOutputDevice { get; set; }
public bool UseDefaultInputDevice { get; set; }
/// <summary>Remembered answer to the "untick the other outputs/inputs when you turn on Use Windows
/// default?" prompt. Null = ask each time; true = always untick; false = never untick. Set when the
/// user ticks "Don't ask again" on that prompt. Machine-wide.</summary>
public bool? UntickOthersWhenUsingDefaultOutput { get; set; }
public bool? UntickOthersWhenUsingDefaultInput { get; set; }
/// <summary>If non-null and a profile with this title exists, RemSound skips the
/// startup profile picker and loads this profile directly. Combine with
/// <see cref="StartMinimised"/> + the Windows auto-start registry entry