Bump to v3.1.0: new audio cues (save, profile-switch), per-profile custom cue paths, redesigned tray menu
Two new cues join the existing connect / disconnect / record-start /
record-stop set:
* profile-save cue (sounds\save.wav by default) fires in
SaveProfileTo after a successful Save or Save As. Honours the
Profile.EnableSaveCue per-profile flag.
* profile-switch cue (sounds\profile.wav by default) fires in the
MainForm Shown handler after a profile finishes loading - covers
both startup-with-profile and mid-session profile switches.
Honours the Profile.EnableProfileSwitchCue flag. Because cue
loading runs AFTER settings.ApplyProfile in the ctor (line 542),
the profile being entered determines which sound plays - not the
one being left, exactly as Ed asked.
The audio cue UI in PreferencesDialog stays as a CheckedListBox (up /
down navigates, Space toggles) with TWO action buttons below that
operate on whichever cue is selected:
* Play [cue name] (Alt+P) - previews via SoundPlayer.Play on the
resolved path (custom override if set, default in sounds\
otherwise). Independent of the tick state.
* Browse for [cue name]... (Alt+B) - opens a WAV picker. If the
user picks a file inside RemSound's own sounds\ folder, it's
treated as "use default" and the override is cleared - avoids
pinning the user to a specific shipped default that a future
release might replace. Right-click "Use default sound" reverts.
Custom cue paths AND enable flags are per-profile. Lives on
Profile.CustomCuePaths (Dictionary<string,string>) and the per-cue
EnableXxxCue bool? properties. Cache mirror in
RemSoundSettingsStore.Settings.
All default WAVs moved from the install-root flat layout into a
sounds\ subfolder (csproj Content rules updated). save.wav and
profile.wav are bundled defaults.
Tray menu rewritten (MainFormTrayController) per Ed's spec:
* Show RemSound (W) - now uses Win32 SetForegroundWindow after the
standard Activate() because WinForms Activate is blocked by the
foreground-lock when invoked from a tray-menu click, which left
screen-reader users having to Alt+Tab to reach the restored
window.
* Enable sending (S) / Enable receiving (R) - tickable, reflect
current state, TOGGLE rather than always-on.
* Profiles (P) - submenu populated from AppConfig.RecentProfiles
with the same &1..&5 mnemonics the File menu uses. Pre-populated
once at construction so WinForms recognises it as a submenu and
fires DropDownOpening - originally I relied entirely on the
open event, which the framework skipped for items with no
DropDownItems, producing the "Profiles does nothing" bug.
* Exit (X).
Tray tooltip now built dynamically from snapshot tick (1 Hz):
"RemSound - [recording for MM:SS,] N peer(s), sending (lane),
receiving (lane)". Recording timer only included while
RecordingController.IsRecording is true (added
RecordingStartedUtc accessor for the elapsed calculation). Lane is
derived from which device-list ticks are active, not just the audio-
mode setting, so a BothIndependent user with only WASAPI inputs ticked
honestly reads as "sending (WASAPI)".
Fixes:
* Initial tooltip "RemSound" produced a "RemSound RemSound" read on
NVDA because the process name and tooltip matched. Set to
"RemSound - starting up" so the duplicate disappears.
* Recent profile menu items no longer carry a "Recent profile N:"
AccessibleName prefix in either the tray submenu or the File
menu's Recent profiles - now just the profile name. Number-key
mnemonics (&1..&5) untouched.
Manual (readme.html) updated: new section 17 "Audio cue sounds"
documents all six cues, the Play/Browse buttons, the right-click
"Use default sound", and the per-profile semantics. Sections 17-21
renumbered to 18-22. New "System tray icon and its menu" subsection
inside section 4 documents the redesigned right-click menu and the
hover tooltip. MANUAL.md regenerated via sync-manual.py. About box
gets a v3.1 block at the top. RELEASE_NOTES.md fully rewritten for
v3.1.
No wire format change - v3.1 talks to other v3.0.x machines exactly
as before.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
0189b12668
commit
70c2669d70
@@ -20,6 +20,83 @@ internal sealed class AboutDialog : Form
|
||||
/// updates" path.</summary>
|
||||
private const string ReleaseNotes =
|
||||
"""
|
||||
RemSound v3.1
|
||||
|
||||
Two big rounds of work on audio cues and the system
|
||||
tray, plus a handful of smaller fixes.
|
||||
|
||||
New audio cue sounds:
|
||||
* Profile saved. Plays a short cue whenever a
|
||||
profile is saved (Ctrl+S or File menu Save as).
|
||||
Gives you an audible "yes, that took" so you
|
||||
don't have to look at the screen.
|
||||
* Profile switched. Plays a short cue whenever a
|
||||
profile finishes loading - at startup and after
|
||||
you pick a different profile. It plays the new
|
||||
profile's cue, not the old one's, so if you
|
||||
give each profile a different switched-to
|
||||
sound you can tell at a glance which profile
|
||||
you're now on.
|
||||
|
||||
Per-profile custom cue sounds:
|
||||
* The Audio cue sounds list in Preferences now has
|
||||
six entries (Connect, Disconnect, Recording
|
||||
start, Recording stop, Profile saved, Profile
|
||||
switched), each with a tick to enable or
|
||||
silence it.
|
||||
* Two new buttons sit under the list. Play
|
||||
previews the currently-highlighted cue through
|
||||
your default Windows output. Browse opens a
|
||||
file picker so you can replace the default
|
||||
sound with any WAV file from your own disk.
|
||||
Right-clicking Browse offers "Use default
|
||||
sound" to undo the swap.
|
||||
* Both the tick states AND the custom sound
|
||||
choices are saved with the active profile, so
|
||||
different profiles can carry different cue
|
||||
palettes. A "quiet listening" profile can have
|
||||
all cues off; a "studio" profile can use a
|
||||
distinct set of sounds.
|
||||
* The default WAV files have moved from sitting
|
||||
loose next to RemSound.exe into a new sounds
|
||||
subfolder, keeping the install folder tidier.
|
||||
|
||||
System tray icon redesigned:
|
||||
* Hovering shows a live summary - peer count,
|
||||
send / receive mode (WASAPI, ASIO, or both),
|
||||
and how long any current recording has been
|
||||
running. Refreshes every second.
|
||||
* Right-click menu reworked. The items are now
|
||||
Show RemSound (W), Enable sending (S, ticks
|
||||
reflect state), Enable receiving (R, same),
|
||||
Profiles (P, submenu of your recent profiles
|
||||
with number-key shortcuts), and Exit (X).
|
||||
* Show RemSound now reliably brings the window
|
||||
forward and focuses it, fixing a case where
|
||||
screen reader users had to Alt+Tab to actually
|
||||
reach the restored window.
|
||||
* Enable sending and Enable receiving toggle the
|
||||
state instead of always switching it on, so
|
||||
you can use them to turn off too.
|
||||
* The Profiles submenu lets you switch profiles
|
||||
from the tray without re-opening the main
|
||||
window. Number keys 1..5 jump straight to a
|
||||
slot.
|
||||
|
||||
Bug fixes:
|
||||
* The tray icon's initial hover text was reading
|
||||
as "RemSound RemSound" on screen readers
|
||||
because the tooltip text matched the process
|
||||
name. Now reads cleanly as "RemSound - starting
|
||||
up" at first, then the live state takes over.
|
||||
* Recent profiles in both menus no longer
|
||||
announce a "Recent profile N:" prefix - they
|
||||
just read the profile name. The number-key
|
||||
shortcuts still work.
|
||||
|
||||
No wire format change. v3.1 talks to other v3.0.x
|
||||
machines exactly as v3.0 / v3.0.1 / v3.0.2 did.
|
||||
|
||||
RemSound v3.0.2
|
||||
|
||||
Hot-fix for a slow memory leak in the receive side. If
|
||||
|
||||
Reference in New Issue
Block a user