From 8ec85d39c55769c564298782a51c6ec25dd6ba9f Mon Sep 17 00:00:00 2001 From: salmon Date: Wed, 12 Aug 2026 02:56:18 +0200 Subject: fix a bug where adding track using `now` when shuffle is on does not work as expected --- src/daemon.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/daemon.rs') diff --git a/src/daemon.rs b/src/daemon.rs index 21f1a3b..bdee362 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -1075,7 +1075,7 @@ fn process_command( let new_pos = q.position() + 1; q.set_position(new_pos); } - if let Some(track) = q.track_at(q.position()) { + if let Some(track) = q.current() { audio.play(track.path.clone()); spawn_send_now_playing(scrobbler, track); if let Ok(mut s) = scrobble_state.lock() { @@ -1181,12 +1181,12 @@ fn process_command( match position { "now" => { spawn_try_scrobble_current(scrobbler, scrobble_state); - q.push_track(track.clone()); + q.insert_after_current(PathBuf::from(path_str.clone())); if !was_empty { let new_pos = q.position() + 1; q.set_position(new_pos); } - if let Some(track) = q.track_at(q.position()) { + if let Some(track) = q.current() { audio.play(track.path.clone()); spawn_send_now_playing(scrobbler, track); if let Ok(mut s) = scrobble_state.lock() { @@ -1199,7 +1199,7 @@ fn process_command( format!("Playing now: {}\n", path_str) } "next" => { - q.push_track(track); + q.insert_after_current(PathBuf::from(path_str.clone())); format!("Queued next: {}\n", path_str) } _ => { @@ -1237,7 +1237,7 @@ fn process_command( let new_pos = q.position() + 1; q.set_position(new_pos); } - if let Some(track) = q.track_at(q.position()) { + if let Some(track) = q.current() { audio.play(track.path.clone()); spawn_send_now_playing(scrobbler, track); if let Ok(mut s) = scrobble_state.lock() { @@ -1291,7 +1291,7 @@ fn process_command( let new_pos = q.position() + 1; q.set_position(new_pos); } - if let Some(track) = q.track_at(q.position()) { + if let Some(track) = q.current() { audio.play(track.path.clone()); spawn_send_now_playing(scrobbler, track); if let Ok(mut s) = scrobble_state.lock() { @@ -1389,7 +1389,7 @@ fn process_command( let new_pos = q.position() + 1; q.set_position(new_pos); } - if let Some(track) = q.track_at(q.position()) { + if let Some(track) = q.current() { audio.play(track.path.clone()); spawn_send_now_playing(scrobbler, track); if let Ok(mut s) = scrobble_state.lock() { -- cgit v1.2.3