aboutsummaryrefslogtreecommitdiffstats
path: root/tests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* audio: open the output at the track's rate instead of pw-alsa's 44100salmonik5 days1-0/+42
| | | | | | | | | | | | cpal asks the ALSA "default" PCM for its default config and pipewire-alsa answers 44.1 kHz no matter what the graph runs at, so 48 kHz material was resampled down to 44.1 in our linear resampler and then back up to 48 by PipeWire. The stream now opens at the track's own rate (when the device supports it), which keeps our resampler out of the path and leaves the conversion to PipeWire's polyphase one. The new `sample_rate` setting forces a fixed rate instead ("auto" by default), for anyone who would rather match the graph exactly.
* queue: use let chains and tidy importssalmonik5 days1-2/+5
|
* fix a bug where adding track using `now` when shuffle is on does not work as ↵salmon2026-08-121-0/+77
| | | | expected
* queue logic fixessalmon2026-08-121-0/+93
|
* add track index to MPRISsalmonik2026-07-062-0/+3
|
* correctly working auto completion for dbsalmonik2026-06-063-47/+161
|
* dirty, broken commitsalmonik2026-06-041-1/+392
|
* fix no metadata songs handlingsalmonik2026-05-271-1/+1
| | | | format string is no longer used to represent songs that have insufficient metadata to fullfill the format string
* Add internet streams supportsalmonik2026-05-271-0/+2
|
* add licensingsalmonik2026-05-265-0/+35
|
* Fix metadata extraction for symphonia 0.6 and add Albums shuffle modesalmonik2026-05-222-0/+107
|
* Add scrobbling support (Last.fm + ListenBrainz) and rsp settings reloadsalmonik2026-05-162-25/+25
| | | | | | | | | | | | - Full Last.fm API implementation with MD5 signing (track.updateNowPlaying, track.scrobble) - Full ListenBrainz API implementation (/1/submit-listens for playing_now and single) - ScrobbleState in daemon tracking track, start time, and unix timestamp per play - Scrobble threshold: ≥30s play AND (≥half duration OR ≥4 min) - Duration extraction from symphonia codec params into AudioMetadata and Track - Token validation at daemon startup and on config change - ListenBrainz token valid (user: Salmonium) command to re-read config from disk (avoids token in shell history) - Desktop notifications for token validation results - Empty-credential filtering (empty string = no-op)
* Add display_format config, fix restart command, clean up config codesalmonik2026-05-112-4/+38
| | | | | | | | | | | - Add display_format option with get/set/list/unset for customizing track display - Add Track::format() supporting $ARTIST, $ALBUM, $TRACK variables - Update queue, status, notifications to use display_format - Fix restart command using wrong subcommand 'start' -> 'start-daemon' - Remove socket_path from config (now computed at runtime from XDG_RUNTIME_DIR) - Consolidate duplicate save() and save_all() into single save() - Fix redundant .clone().clone() in config.rs - Add todo item for caching config in daemon hot paths
* Add shuffle restore tests, remove debug prints, update TODOsalmonik2026-05-101-9/+41
|
* Fix queue display returning nothing - removed daemon pager, return full ↵salmonik2026-05-101-0/+171
| | | | output instead. Increase pre-buffer to 100 packets.
* Pad queue display numbers with leading zerossalmonik2026-05-081-4/+4
| | | | | | display_string now takes a total parameter to compute the zero-padding width. Queue positions are formatted as 01, 02, ..., 10 instead of 1, 2, ..., 10, keeping columns aligned.
* Fix shuffle first song not being shuffledsalmonik2026-05-081-3/+3
| | | | | | | | | | | update_shuffle_indices now shuffles all indices when position is 0 (no tracks have been played yet), so the first track played is random instead of always being tracks[0]. Directory playback now uses q.current() to pick the first track, resolving through shuffled indices when shuffle is active. Also pins notify-rust version in Cargo.toml and removes PLAN.md (superseded by TODO.md).
* Extract queue module, add comprehensive tests, fix queue/play bugssalmonik2026-05-081-0/+459
| | | | • Moved Queue, Track, ShuffleMode, AudioMetadata from daemon.rs into new src/queue.rs module with public API\n• Fixed rsp play <file> interrupting active playback (now checks is_playing)\n• Fixed directory play -n/-i inserting files in reverse order (now uses .iter().rev())\n• Removed dead duplicate shuffle handler in process_command\n• Fixed queue display showing (playing) when playback is stopped\n• Added 34 tests covering navigation, shuffle, insert ordering, edge cases, display
* Add unit tests in /tests directory for config, database, playback, and ↵salmonik2026-05-054-0/+470
scrobbler modules