fix: resolve 4 critical audio mixer bugs (v0.5)
- SwitchDevice volume silently zeroed: Init uses cfg.SavedVolume, SwitchDevice restores saved volume after reopening device - SwitchDevice not persisted to database: caller saves SelectedAudioDevice - Device restore passes invalid 'system default' to SDL: now passes '' - Stop() no-op when audio toggled off: removed AudioEnabled guard Regression tests added for all 4 bugs. CI now runs go test before build.
This commit is contained in:
+8
-19
@@ -7,12 +7,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
- Audio volume silently zeroed after switching output devices
|
||||
- Device switch not persisted to database across restarts
|
||||
- Device restore path passes invalid device name to SDL
|
||||
- Stop() no-op when audio toggled off mid-playback
|
||||
- Play() deadlocks when called before device is open (recursive SwitchDevice → Play)
|
||||
- Audio volume silently zeroed after switching output devices (Init used hardcoded 0.20; SwitchDevice did not restore saved volume)
|
||||
- SwitchDevice not persisted to database across restarts (caller now saves to AppConfig)
|
||||
- Device restore path passes invalid device name "system default" to SDL (now passes "" for default)
|
||||
- Stop() no-op when audio toggled off mid-playback (removed AudioEnabled guard from Stop)
|
||||
|
||||
### Known Issues
|
||||
- Active device highlight incorrect when using default device
|
||||
- Play() deadlocks when called before device is open
|
||||
|
||||
### Added
|
||||
- Human-readable audio device names (Built-in Speakers, HDMI/TV/Monitor)
|
||||
@@ -21,17 +23,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
||||
### Changed (Major Refactors)
|
||||
- Mixer package: inject audio backend dependencies for testability
|
||||
- Mixer package: extract wpctl calls behind an interface
|
||||
|
||||
## [Audio Bugs v0.1] - 2026-07-10
|
||||
|
||||
### Fixed
|
||||
- Audio volume silently zeroed after switching output devices
|
||||
- Device switch not persisted to database across restarts
|
||||
- Device restore path passes invalid device name to SDL
|
||||
- Stop() no-op when audio toggled off mid-playback
|
||||
- Active device highlight incorrect when using default device
|
||||
- Play() deadlocks when called before device is open
|
||||
|
||||
### Added
|
||||
- Human-readable audio device names (Built-in Speakers, HDMI/TV/Monitor)
|
||||
- Unit tests for mixer package (parseSinks, parseSinkLine, ConvertVolume)
|
||||
- SwitchDevice now takes *db.AppConfig to access saved volume
|
||||
|
||||
Reference in New Issue
Block a user