32 lines
807 B
Bash
Executable File
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."
|