aboutsummaryrefslogtreecommitdiffstats
path: root/src/queue.rs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix shuffle restore - track played tracks via shuffled_indices, not positionsalmonik2026-05-091-8/+21
|
* Fix shuffle none - keep played tracks in placesalmonik2026-05-091-4/+15
|
* Major rewrite: play command, queue display, and shuffle modessalmonik2026-05-091-2/+83
| | | | | | | | - Play command: no args queues to end (play only if queue empty + player playing), -i inserts after current and skips, -n inserts after current, removed -l flag - Queue display: detect terminal size, use pager only if queue exceeds terminal rows - Shuffle modes: always remember original queue, restore on 'shuffle none', album shuffle shuffles within each album's range separately
* Pad queue display numbers with leading zerossalmonik2026-05-081-3/+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-1/+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/+250
• 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