aboutsummaryrefslogtreecommitdiffstats
path: root/src/audio.rs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* seek: jump within the current track from the CLI and over MPRISsalmonik6 days1-0/+56
| | | | | | | | | | | | | | `rsp seek 1:30`, `rsp seek +15`, `rsp seek -30` and `rsp seek` (print the position) drive a new AudioCommand that seeks the format reader, resets the decoder and drops the buffered samples, so the cpal stream keeps running and playback continues from the new spot. MPRIS gets a working Seek/SetPosition, reports CanSeek, and the state watcher now emits Seeked when the playhead jumps (not just on track changes), which is what clients need to move their progress bar after an external seek. `rsp status` also reports the position (and duration when known) and says Paused instead of Stopped when a track is loaded but not playing.
* audio: http streaming, opus/mkv support and stream recoverysalmonik6 days1-242/+699
| | | | | | | | | | | | | | - read http(s) urls through a MediaSourceStream instead of failing - register the libopus decoder and enable mkv/aac/isomp4 in symphonia - resample to the device rate with linear interpolation - rebuild the output stream when the backend dies instead of leaving playback silent while the daemon still reports "Playing" A dead pcm makes cpal call the error callback hundreds of thousands of times per second, so errors are only counted there and reported once when the stream is dropped. The first failure of a healthy stream is retried immediately, consecutive failures back off, and a stream that played long enough clears the failure budget.
* Add lyrics supportsalmonik2026-06-071-0/+23
|
* Add internet streams supportsalmonik2026-05-271-4/+127
|
* add licensingsalmonik2026-05-261-0/+7
|
* fix for new symphony API and less debug info in releasesalmonik2026-05-181-44/+53
|
* Fix queue display returning nothing - removed daemon pager, return full ↵salmonik2026-05-101-22/+21
| | | | output instead. Increase pre-buffer to 100 packets.
* Fix buffer underrun - pre-decode samples before playbacksalmonik2026-05-091-0/+31
|
* Add desktop notifications for track changes, queue end, and errorssalmonik2026-05-081-0/+4
| | | | | Uses notify-rust to send D-Bus desktop notifications from the daemon when tracks change, the queue empties, or audio errors occur.
* Add install script, shell completions, and systemd servicesalmonik2026-05-061-1/+1
| | | | | | | | | - Add install.sh script that builds release, stops daemon, and installs binary - Add shell completions for bash, zsh, and fish - Add systemd user service unit file - Add public binary declaration in Cargo.toml - Add install command to CLI - Make current_track field public for MPRIS integration (placeholder)
* Add unit tests in /tests directory for config, database, playback, and ↵salmonik2026-05-051-0/+1
| | | | scrobbler modules
* Add dev/release config separation and volume query commandsalmonik2026-05-051-0/+9
|
* fix(audio): resolve deadlock preventing auto-advance to next tracksalmonik2026-05-051-7/+7
| | | | | | | | The audio callback deadlocked when trying to lock audio_data twice, preventing track_ended from being set and breaking auto-advance. Also removed erroneous track_ended.store(true) calls from error paths that were causing incorrect queue advancement when playback failed.
* fix(daemon): robust auto-advance; ensure next track starts even if playback ↵salmonik2026-05-051-0/+418
fails