Compare commits

...

4 Commits

Author SHA1 Message Date
pdxlocations
ade8343104 Merge branch 'main' into notification-sound 2025-06-06 22:03:56 -07:00
pdxlocations
d6427f3fca use subprocess 2025-06-06 22:00:38 -07:00
pdxlocations
fba32bb10c add error handling for sounds 2025-05-29 10:30:41 -07:00
pdxlocations
89fc9a7ac1 add sound for mac and linux 2025-05-29 10:07:38 -07:00

View File

@@ -1,6 +1,8 @@
import logging
import os
import platform
import shutil
import subprocess
import time
from datetime import datetime
from typing import Any, Dict
@@ -25,12 +27,38 @@ from contact.utilities.singleton import ui_state, interface_state, app_state
def play_sound():
if platform.system() == "Darwin": # macOS
os.system("afplay /System/Library/Sounds/Ping.aiff")
elif platform.system() == "Linux":
os.system("paplay /usr/share/sounds/freedesktop/stereo/complete.oga")
else:
print("\a") # fallback
try:
system = platform.system()
if system == "Darwin": # macOS
sound_path = "/System/Library/Sounds/Ping.aiff"
if os.path.exists(sound_path):
subprocess.run(["afplay", sound_path], check=True)
return
else:
print(f"[WARN] macOS sound file not found: {sound_path}")
elif system == "Linux":
sound_path = "/usr/share/sounds/freedesktop/stereo/complete.oga"
if os.path.exists(sound_path):
if shutil.which("paplay"):
subprocess.run(["paplay", sound_path], check=True)
return
elif shutil.which("aplay"):
subprocess.run(["aplay", sound_path], check=True)
return
else:
print("[WARN] No sound player found (paplay/aplay)")
else:
print(f"[WARN] Linux sound file not found: {sound_path}")
except subprocess.CalledProcessError as e:
print(f"[ERROR] Sound playback failed: {e}")
except Exception as e:
print(f"[ERROR] Unexpected error: {e}")
# Final fallback: terminal beep
print("\a")
def on_receive(packet: Dict[str, Any], interface: Any) -> None: