aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/daemon.rs4
-rw-r--r--src/queue.rs7
-rw-r--r--tests/queue.rs8
3 files changed, 10 insertions, 9 deletions
diff --git a/src/daemon.rs b/src/daemon.rs
index 00bf35f..e88669a 100644
--- a/src/daemon.rs
+++ b/src/daemon.rs
@@ -254,7 +254,7 @@ fn process_command(
254 if audio.is_playing() { 254 if audio.is_playing() {
255 if let Some(track_path) = audio.current_track() { 255 if let Some(track_path) = audio.current_track() {
256 let track = Track::from_path(track_path); 256 let track = Track::from_path(track_path);
257 let track_str = track.display_string(0); 257 let track_str = track.display_string(0, 1);
258 format!("Playing\nTrack: {}\n", track_str) 258 format!("Playing\nTrack: {}\n", track_str)
259 } else { 259 } else {
260 "Playing\n".to_string() 260 "Playing\n".to_string()
@@ -511,7 +511,7 @@ fn process_command(
511 let is_playing = audio.is_playing(); 511 let is_playing = audio.is_playing();
512 for (display_idx, &track_idx) in indices.iter().enumerate() { 512 for (display_idx, &track_idx) in indices.iter().enumerate() {
513 if let Some(track) = q.track_at(track_idx) { 513 if let Some(track) = q.track_at(track_idx) {
514 let track_str = track.display_string(display_idx); 514 let track_str = track.display_string(display_idx, q.len());
515 if track_idx == playing_track_idx && is_playing { 515 if track_idx == playing_track_idx && is_playing {
516 output.push_str(&format!("> {} (playing)\n", track_str)); 516 output.push_str(&format!("> {} (playing)\n", track_str));
517 } else { 517 } else {
diff --git a/src/queue.rs b/src/queue.rs
index dca8e3d..9e8e1af 100644
--- a/src/queue.rs
+++ b/src/queue.rs
@@ -96,7 +96,7 @@ impl Track {
96 } 96 }
97 } 97 }
98 98
99 pub fn display_string(&self, index: usize) -> String { 99 pub fn display_string(&self, index: usize, total: usize) -> String {
100 let album_artist = self 100 let album_artist = self
101 .artist 101 .artist
102 .clone() 102 .clone()
@@ -109,11 +109,12 @@ impl Track {
109 .unwrap_or("Unknown") 109 .unwrap_or("Unknown")
110 .to_string() 110 .to_string()
111 }); 111 });
112 let width = total.to_string().len();
112 113
113 if album_artist.is_empty() { 114 if album_artist.is_empty() {
114 format!("{}. {}", index + 1, title) 115 format!("{:0width$}. {}", index + 1, title)
115 } else { 116 } else {
116 format!("{}. {} - {}", index + 1, album_artist, title) 117 format!("{:0width$}. {} - {}", index + 1, album_artist, title)
117 } 118 }
118 } 119 }
119} 120}
diff --git a/tests/queue.rs b/tests/queue.rs
index d3e923e..bff83ca 100644
--- a/tests/queue.rs
+++ b/tests/queue.rs
@@ -214,7 +214,7 @@ fn test_track_display_with_metadata() {
214 Some("Test Artist"), 214 Some("Test Artist"),
215 Some("Test Album"), 215 Some("Test Album"),
216 ); 216 );
217 let display = t.display_string(0); 217 let display = t.display_string(0, 1);
218 assert_eq!(display, "1. Test Artist - Test Title"); 218 assert_eq!(display, "1. Test Artist - Test Title");
219} 219}
220 220
@@ -226,14 +226,14 @@ fn test_track_display_artist_fallback_to_album() {
226 None, 226 None,
227 Some("Test Album"), 227 Some("Test Album"),
228 ); 228 );
229 let display = t.display_string(0); 229 let display = t.display_string(0, 1);
230 assert_eq!(display, "1. Test Album - Test Title"); 230 assert_eq!(display, "1. Test Album - Test Title");
231} 231}
232 232
233#[test] 233#[test]
234fn test_track_display_no_metadata() { 234fn test_track_display_no_metadata() {
235 let t = track_no_meta("/music/song.mp3"); 235 let t = track_no_meta("/music/song.mp3");
236 let display = t.display_string(0); 236 let display = t.display_string(0, 1);
237 assert_eq!(display, "1. song.mp3"); 237 assert_eq!(display, "1. song.mp3");
238} 238}
239 239
@@ -245,7 +245,7 @@ fn test_track_display_index_offset() {
245 Some("Artist"), 245 Some("Artist"),
246 Some("Album"), 246 Some("Album"),
247 ); 247 );
248 assert_eq!(t.display_string(4), "5. Artist - Title"); 248 assert_eq!(t.display_string(4, 10), "05. Artist - Title");
249} 249}
250 250
251// ---------- Shuffle ---------- 251// ---------- Shuffle ----------