v1.7.0: Audio Device Selection
Added
- Audio device selection support 🔊 (thanks @tkaufmann!)
- Route notification sounds to a specific audio output device
- New
audioDeviceconfig option innotifications.desktopsection - New
list-devicesCLI tool to enumerate available audio devices - New
--deviceflag forsound-previewutility
Changed
- Audio backend replacement - Replaced
oto/v3(beep/speaker) withmalgo(miniaudio bindings)- Better cross-platform audio support
- Native device enumeration and selection
- More reliable playback on all platforms
Fixed
- Windows CI test failures - Fixed
.exeextension handling in cross-platform tests - Memory safety - DeviceID now properly copied instead of storing pointer to freed memory
- Player state check - Play() now returns error if player is already closed
- WaitGroup race condition - Added
closingflag to prevent race between Close() and playSoundAsync() - CI test resilience - Audio tests now skip gracefully in CI environments without audio backend
Full Changelog: v1.6.6...v1.7.0