Files
pulse-soundboard/stop_soundboard.sh
2026-01-03 14:49:12 +00:00

32 lines
807 B
Bash
Executable File

#!/usr/bin/env bash
STATE="$HOME/.soundboard"
[[ -f "$STATE/playing.pids" ]] || exit 0
while read -r PID; do
# Check if process exists before sending SIGINT
if [[ -n "$PID" ]] && kill -0 "$PID" 2>/dev/null; then
kill -INT "$PID" 2>/dev/null || true
fi
done < "$STATE/playing.pids"
# Clear the PID file after attempting to stop everything
rm -f "$STATE/playing.pids"
echo "All soundboard playback stopped."
# 2. Restore default mic BEFORE unloading modules
DEFAULT_MIC=$(pactl info | grep "Default Source" | awk '{print $3}')
if [[ -n "$DEFAULT_MIC" ]]; then
pactl set-default-source "$DEFAULT_MIC"
fi
# 3. Unload all soundboard modules safely
for f in "$STATE"/*.id; do
pactl unload-module "$(cat "$f")" 2>/dev/null || true
rm -f "$f"
done
echo "Soundboard stopped."