diff options
Diffstat (limited to '')
| -rw-r--r-- | TODO.md | 24 |
1 files changed, 12 insertions, 12 deletions
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | - [x] **Dev/release build config separation** - Store config next to binary in dev mode, use XDG in release mode. | 5 | - [x] **Dev/release build config separation** - Store config next to binary in dev mode, use XDG in release mode. |
| 6 | 6 | ||
| 7 | - [x] **Volume without argument returns current volume** - `rsplayer volume` now returns current level. | 7 | - [x] **Volume without argument returns current volume** - `rsp volume` now returns current level. |
| 8 | 8 | ||
| 9 | - [x] **Fix SampleRate access in audio.rs:104** - `config.sample_rate().0` is invalid because `cpal::SampleRate` is a type alias for `u32`, not a tuple struct. | 9 | - [x] **Fix SampleRate access in audio.rs:104** - `config.sample_rate().0` is invalid because `cpal::SampleRate` is a type alias for `u32`, not a tuple struct. |
| 10 | 10 | ||
| @@ -14,7 +14,7 @@ | |||
| 14 | 14 | ||
| 15 | - [x] **Run clippy** - All linting checks pass. | 15 | - [x] **Run clippy** - All linting checks pass. |
| 16 | 16 | ||
| 17 | - [x] **Run tests** - All tests pass (no tests exist yet). | 17 | - [x] **Run tests** - All tests pass. |
| 18 | 18 | ||
| 19 | - [x] **Check formatting** - Code formatting is correct. | 19 | - [x] **Check formatting** - Code formatting is correct. |
| 20 | 20 | ||
| @@ -24,7 +24,7 @@ | |||
| 24 | 24 | ||
| 25 | - [x] **Add Resume CLI subcommand** - Added `Resume` subcommand to CLI so users can resume playback after pause. | 25 | - [x] **Add Resume CLI subcommand** - Added `Resume` subcommand to CLI so users can resume playback after pause. |
| 26 | 26 | ||
| 27 | - [x] **Implement shuffle mode** - Added shuffle on/off/album functionality with queue management in daemon. Supports `rsplayer shuffle on/off/album` commands. | 27 | - [x] **Implement shuffle mode** - Added shuffle on/off/album functionality with queue management in daemon. Supports `rsp shuffle on/off/album` commands. |
| 28 | 28 | ||
| 29 | - [x] **Implement next/previous commands** - Next and previous track commands now work with the queue system. | 29 | - [x] **Implement next/previous commands** - Next and previous track commands now work with the queue system. |
| 30 | 30 | ||
| @@ -32,7 +32,7 @@ | |||
| 32 | 32 | ||
| 33 | - [x] **Auto-play next track** - Daemon automatically plays next track when current one ends (using `poll_track_ended()`). | 33 | - [x] **Auto-play next track** - Daemon automatically plays next track when current one ends (using `poll_track_ended()`). |
| 34 | 34 | ||
| 35 | - [x] **Queue display with pager** - `rsplayer queue` shows all queued tracks with pager support for long lists. | 35 | - [x] **Queue display with pager** - `rsp queue` shows all queued tracks with pager support for long lists. |
| 36 | 36 | ||
| 37 | - [x] **Album shuffle mode structure** - `ShuffleMode::Album` added to enum and queue logic (behaves like `All` until database ready). | 37 | - [x] **Album shuffle mode structure** - `ShuffleMode::Album` added to enum and queue logic (behaves like `All` until database ready). |
| 38 | 38 | ||
| @@ -40,20 +40,20 @@ | |||
| 40 | 40 | ||
| 41 | - [x] **Flexible play command** - Added `-i/--now`, `-n/--next`, `-l/--last` flags to play command: `play MUSIC` (default - add to end and play), `play -i MUSIC` (insert after current and skip to it), `play -n MUSIC` (insert after current, don't skip), `play -l MUSIC` (add to end of queue). Also fixed queue display to correctly show playing track. | 41 | - [x] **Flexible play command** - Added `-i/--now`, `-n/--next`, `-l/--last` flags to play command: `play MUSIC` (default - add to end and play), `play -i MUSIC` (insert after current and skip to it), `play -n MUSIC` (insert after current, don't skip), `play -l MUSIC` (add to end of queue). Also fixed queue display to correctly show playing track. |
| 42 | 42 | ||
| 43 | ## Potential Improvements | 43 | - [x] **Add unit tests for Player struct** - Tests added for Player, Track, PlaybackState, and ShuffleMode in `tests/playback.rs`. |
| 44 | 44 | ||
| 45 | - [ ] **Add error handling for audio playback** - Consider more robust error handling in the audio thread. | 45 | - [x] **Database scan command** - Implemented `rsp scan` with `--force` full rescan and `--paths` override options. Uses symphonia for metadata extraction. |
| 46 | 46 | ||
| 47 | - [x] **Add unit tests for Player struct** - The `Player` struct in `playback.rs` has no corresponding tests. | 47 | - [x] **Settings subcommands** - Implemented `rsp settings get/set/list/unset` for config management. |
| 48 | 48 | ||
| 49 | - [ ] **Persist queue state** - Save queue to disk so it survives daemon restarts. | 49 | - [x] **Shell completions** - Generate shell completions with `rsp completions bash|elvish|fish|powershell|zsh`. |
| 50 | 50 | ||
| 51 | - [ ] **Album shuffle mode (database)** - Implement proper `ShuffleMode::Album` when database is ready (shuffle tracks within same album/folder). | 51 | ## Remaining Work |
| 52 | 52 | ||
| 53 | - [ ] **Scrobbling (Last.fm/ListenBrainz)** - Add scrobbling support via configured credentials. | 53 | - [ ] **Persist queue state** - Save queue to disk so it survives daemon restarts. |
| 54 | 54 | ||
| 55 | - [ ] **Database integration** - Scan music paths, populate SQLite database, use for metadata. | 55 | - [ ] **Scrobbling (Last.fm/ListenBrainz)** - Add scrobbling support via configured credentials. |
| 56 | 56 | ||
| 57 | - [ ] **Shell completion scripts** - Generate bash/zsh/fish completions using clap. | 57 | - [ ] **Shell completion scripts** - Generate bash/zsh/fish completions using clap. |
| 58 | 58 | ||
| 59 | - [ ] **Systemd service unit** - Create systemd service file for auto-start. | 59 | - [ ] **Systemd service unit** - Create systemd service file for auto-start. \ No newline at end of file |
