//go:build linux package linux import ( "os/exec" "wis-free-v3/internal/logger" ) // IsPlaying checks if media is currently playing using playerctl func IsPlaying() bool { cmd := exec.Command("playerctl", "status") out, err := cmd.Output() if err != nil { return false } return string(out) == "Playing\n" } // TogglePlayPause sends the play-pause command via playerctl func TogglePlayPause() { cmd := exec.Command("playerctl", "play-pause") err := cmd.Run() if err != nil { logger.Error("Failed to toggle media on Linux: %v", err) } } // PauseMedia checks if playing, pauses if so, returns whether we paused func PauseMedia() bool { wasPlaying := IsPlaying() if wasPlaying { TogglePlayPause() } return wasPlaying } // ResumeMedia resumes only if we paused it func ResumeMedia(wasPaused bool) { if wasPaused { TogglePlayPause() } }