| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| | |
Reviewed-on: https://codeberg.org/salmonik/RSPlayer/pulls/1
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
| |
format string is no longer used to represent songs that have insufficient metadata to fullfill the format string
|
| | |
|
| |
|
|
|
| |
if supplied when a track is played, the rest of the album will be queued
after the track
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- 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 hidden completions subcommand to CLI (developer use only)
- Regenerate all completion scripts from current CLI structure
- Add elvish and powershell completion scripts
- install.sh: Fix rsp stop -> rsp stop-daemon, rsp start -> rsp start-daemon
- install.sh: Install completions for user's current shell
- install.sh: Zsh uses /usr/share/zsh/site-functions/_rsp directly
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
position
|
| | |
|
| | |
|
| |
|
|
| |
output instead. Increase pre-buffer to 100 packets.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
| |
Uses notify-rust to send D-Bus desktop notifications from the daemon
when tracks change, the queue empties, or audio errors occur.
|
| |
|
|
| |
• 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
|
| |
|
|
|
|
|
|
|
| |
shuffle preserving current position
- insert_after_current: guard against panic on empty queue
- play -i (now): skip position increment when queue was empty so track plays
- directory last: use audio.is_playing() instead of q.current() to avoid replaying finished track
- shuffle: only randomize tracks after current position
|
| |
|
|
|
|
| |
- Add 'rsp toggle' command to toggle between play and pause
- Fix queue display showing wrong track as playing when shuffle is enabled
- Update shell completion scripts for new toggle command
|
| |
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
| |
scrobbler modules
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add -i/--now, -n/--next, -l/--last flags to play command:
- 'play MUSIC' (default) adds to end of queue and plays
- 'play -i MUSIC' inserts after current and skips to it
- 'play -n MUSIC' inserts after current, doesn't skip
- 'play -l MUSIC' adds to end of queue (default behavior)
- Add insert_after_current and track_at methods to Queue in daemon
- Update play command handler to handle position arguments
- Fix queue display to correctly show playing track (compare track_idx
instead of display_idx with current_position)
|
| |
|
|
|
|
| |
Extract ID3/metadata tags from audio files using symphonia and display
as 'INDEX. ARTIST - TITLE' format, falling back to filename. Only shows
the track number before any slash (e.g., '15' from '15/19').
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
fails
|