Volume/pan/EQ tab overhaul: one master switch, peer checklist, 16-band parametric EQ
Reworks the per-peer shaping tab (held for next release):
* Renamed the tab to "Volume, pan and EQ for peers"; the Preferences toggle now defaults ON.
* Collapsed the two master switches (Enable EQ / Enable pan) into ONE: "Enable volume, pan and
EQ for all peers" (Alt+E). Volume now obeys it too. PeerDspChain.Build takes a single enabled
flag; Profile.EnableAllPeerShaping replaces the two bools (old ones kept for load-migration).
* Peer picker is now a CheckedListBox: ticking a peer shapes them (per-peer bypass via new
PeerShaping.Enabled, default true); the focused row is the one the controls edit. Effective
shaping = master switch AND that peer's tick. Letter-nav suppressed so keys never toggle a tick.
* Three EQ modes, renamed: "3 band simple EQ", "12 band advanced graphic EQ", and the new
"16 band parametric EQ" (PeerEqMode.Parametric16Band).
* Parametric EQ: up to 16 user bands, each a boost/cut across a start->end range (PeerShaping
.ParametricBands; ParametricToPeaking maps range -> peaking centre+Q, shared by DSP and curve).
Add band dialog (spin-or-type, numeric-only, live preview, OK/Escape); Bands list sorted
bass->treble reading "X Hz to Y Hz, plus/minus N dB"; Delete key / Delete button, multi-select.
Set peer EQ to default clears the parametric list too.
* dB now spoken as words ("plus 3 dB" / "minus 6 dB" / "flat") on the graphic sliders and the
parametric list, since NVDA users typically have punctuation off and never hear a "+".
* New unbound machine-wide global shortcut "Toggle volume, pan and EQ for all peers" (not stored
in any profile) via the hotkey controller + settings store.
* Renamed the Inputs/outputs "Set volume for all received audio" to "Master receive volume".
* Added EqCurveControl: a purely-visual EQ response graph (not focusable, invisible to NVDA).
* Full manual sweep (readme.html + regenerated MANUAL.md).
Build clean; --selftest passes. Deployed to both test folders. Held for next release.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
eaae76d015
commit
033edd776f
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
# uninstall.sh — Remove the RemSound UDP relay and its auto-updater cleanly.
|
||||
#
|
||||
# Run with sudo:
|
||||
# sudo ./uninstall.sh
|
||||
#
|
||||
# Stops and disables both the relay and the updater timer, removes their
|
||||
# scripts and unit files, and removes the /etc/remsound-relay/ state dir
|
||||
# (version file + rollback backups). Leaves log files in place — rename or
|
||||
# delete them yourself if you don't want them kept. Does NOT touch your
|
||||
# router port-forward — that's separate.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This uninstaller must run as root. Try: sudo ./uninstall.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Stop the updater timer first so it can't fire mid-uninstall.
|
||||
if systemctl list-unit-files remsound-relay-update.timer >/dev/null 2>&1; then
|
||||
echo "Stopping remsound-relay-update.timer ..."
|
||||
systemctl stop remsound-relay-update.timer 2>/dev/null || true
|
||||
systemctl disable remsound-relay-update.timer 2>/dev/null || true
|
||||
fi
|
||||
|
||||
if systemctl list-unit-files remsound-relay-update.service >/dev/null 2>&1; then
|
||||
systemctl stop remsound-relay-update.service 2>/dev/null || true
|
||||
fi
|
||||
|
||||
if systemctl list-unit-files remsound-relay.service >/dev/null 2>&1; then
|
||||
echo "Stopping remsound-relay.service ..."
|
||||
systemctl stop remsound-relay.service 2>/dev/null || true
|
||||
echo "Disabling remsound-relay.service ..."
|
||||
systemctl disable remsound-relay.service 2>/dev/null || true
|
||||
fi
|
||||
|
||||
for f in \
|
||||
/etc/systemd/system/remsound-relay.service \
|
||||
/etc/systemd/system/remsound-relay-update.service \
|
||||
/etc/systemd/system/remsound-relay-update.timer \
|
||||
/usr/local/sbin/remsound-relay.py \
|
||||
/usr/local/sbin/remsound-relay-update.sh
|
||||
do
|
||||
if [[ -f "$f" ]]; then
|
||||
echo "Removing $f ..."
|
||||
rm -f "$f"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -d /etc/remsound-relay ]]; then
|
||||
echo "Removing /etc/remsound-relay/ (version stamp + backup) ..."
|
||||
rm -rf /etc/remsound-relay
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
echo
|
||||
echo "Uninstall complete."
|
||||
echo "Note: log files left in place — delete them yourself if you don't want them:"
|
||||
echo " /var/log/remsound-relay.log"
|
||||
echo " /var/log/remsound-relay-update.log"
|
||||
echo "Note: any router port-forward you added for UDP 47830 is unchanged — remove that yourself if you no longer need it."
|
||||
Reference in New Issue
Block a user