From cfd0781ebae76447cc8072fd60883aabf8158d32 Mon Sep 17 00:00:00 2001 From: salmonik Date: Fri, 8 May 2026 00:40:40 +0200 Subject: Extract queue module, add comprehensive tests, fix queue/play bugs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Moved Queue, Track, ShuffleMode, AudioMetadata from daemon.rs into new src/queue.rs module with public API\n• Fixed rsp play 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 --- TODO.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'TODO.md') diff --git a/TODO.md b/TODO.md index 68a0cf0..945f244 100644 --- a/TODO.md +++ b/TODO.md @@ -48,12 +48,16 @@ - [x] **Shell completions** - Generate shell completions with `rsp completions bash|elvish|fish|powershell|zsh`. +- [x] **Extract queue module** - Moved `Queue`, `Track`, `ShuffleMode`, `AudioMetadata` from daemon into `src/queue.rs` with public API and accessor methods. + +- [x] **Comprehensive queue tests** - 34 tests covering navigation, shuffle, insert ordering, edge cases, and display. + +- [x] **Fix queue/play bugs** - `rsp play ` no longer interrupts playback when something is already playing; directory `play -n`/`play -i` now inserts in correct order; removed dead duplicate shuffle handler; queue display no longer shows `(playing)` when playback is stopped. + ## Remaining Work - [ ] **Persist queue state** - Save queue to disk so it survives daemon restarts. - [ ] **Scrobbling (Last.fm/ListenBrainz)** - Add scrobbling support via configured credentials. -- [ ] **Shell completion scripts** - Generate bash/zsh/fish completions using clap. - - [ ] **Systemd service unit** - Create systemd service file for auto-start. \ No newline at end of file -- cgit v1.2.3