From 69172d7abe17d56b68a97465344467d8c34482b6 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 10 May 2026 00:29:01 +0200 Subject: Fix queue display returning nothing - removed daemon pager, return full output instead. Increase pre-buffer to 100 packets. --- src/queue.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/queue.rs') diff --git a/src/queue.rs b/src/queue.rs index db329c6..f556ed3 100644 --- a/src/queue.rs +++ b/src/queue.rs @@ -184,24 +184,29 @@ impl Queue { fn restore_from_original(&mut self) { if self.original_tracks.is_empty() { + eprintln!("DEBUG: original_tracks empty"); self.shuffled_indices.clear(); return; } let current_pos = self.position; + let indices_len = self.shuffled_indices.len().min(10); + eprintln!("DEBUG restore: current_pos={}, tracks.len={}, shuffled_indices={:?}", + current_pos, self.tracks.len(), &self.shuffled_indices[..indices_len]); // Find which tracks have been played (positions 0..=current_pos in shuffled order) - // These are tracks whose shuffled_indices value is <= current_pos let mut played_track_paths: Vec = Vec::new(); for i in 0..=current_pos { - if let Some(&idx) = self.shuffled_indices.get(i) { - if let Some(track) = self.tracks.get(idx) { - played_track_paths.push(track.path.clone()); - } + if let Some(&idx) = self.shuffled_indices.get(i) + && let Some(track) = self.tracks.get(idx) + { + eprintln!("DEBUG: played track at shuffled pos {} -> track idx {} = {:?}", + i, idx, track.path.file_name()); + played_track_paths.push(track.path.clone()); } } - // Keep the played tracks in their current order (shuffled order) + // Keep the played tracks in their current order let mut new_tracks: Vec = Vec::new(); for path in &played_track_paths { if let Some(track) = self.tracks.iter().find(|t| &t.path == path) { @@ -209,14 +214,18 @@ impl Queue { } } + eprintln!("DEBUG: kept {} played tracks", new_tracks.len()); + // Add remaining tracks from original in original order - for orig_track in &self.original_tracks { + for (i, orig_track) in self.original_tracks.iter().enumerate() { let is_played = played_track_paths.iter().any(|p| p == &orig_track.path); if !is_played { + eprintln!("DEBUG: adding unplayed from original idx {}: {:?}", i, orig_track.path.file_name()); new_tracks.push(orig_track.clone()); } } + eprintln!("DEBUG: final tracks.len={}", new_tracks.len()); self.tracks = new_tracks; self.position = current_pos; self.shuffled_indices.clear(); -- cgit v1.2.3