aboutsummaryrefslogtreecommitdiffstats
path: root/src/daemon.rs
diff options
context:
space:
mode:
authorsalmon <salmonik@tuta.io>2026-08-12 02:56:18 +0200
committersalmon <salmonik@tuta.io>2026-08-12 02:56:18 +0200
commit8ec85d39c55769c564298782a51c6ec25dd6ba9f (patch)
treea55bda29f2f12afbb64eb5ef05a920fa19ca4d3e /src/daemon.rs
parentclean up readme and make install.sh activate rc.d service (diff)
downloadrsplayer-8ec85d39c55769c564298782a51c6ec25dd6ba9f.tar.gz
rsplayer-8ec85d39c55769c564298782a51c6ec25dd6ba9f.zip
fix a bug where adding track using `now` when shuffle is on does not work as expected
Diffstat (limited to '')
-rw-r--r--src/daemon.rs14
1 files changed, 7 insertions, 7 deletions
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(
1075 let new_pos = q.position() + 1; 1075 let new_pos = q.position() + 1;
1076 q.set_position(new_pos); 1076 q.set_position(new_pos);
1077 } 1077 }
1078 if let Some(track) = q.track_at(q.position()) { 1078 if let Some(track) = q.current() {
1079 audio.play(track.path.clone()); 1079 audio.play(track.path.clone());
1080 spawn_send_now_playing(scrobbler, track); 1080 spawn_send_now_playing(scrobbler, track);
1081 if let Ok(mut s) = scrobble_state.lock() { 1081 if let Ok(mut s) = scrobble_state.lock() {
@@ -1181,12 +1181,12 @@ fn process_command(
1181 match position { 1181 match position {
1182 "now" => { 1182 "now" => {
1183 spawn_try_scrobble_current(scrobbler, scrobble_state); 1183 spawn_try_scrobble_current(scrobbler, scrobble_state);
1184 q.push_track(track.clone()); 1184 q.insert_after_current(PathBuf::from(path_str.clone()));
1185 if !was_empty { 1185 if !was_empty {
1186 let new_pos = q.position() + 1; 1186 let new_pos = q.position() + 1;
1187 q.set_position(new_pos); 1187 q.set_position(new_pos);
1188 } 1188 }
1189 if let Some(track) = q.track_at(q.position()) { 1189 if let Some(track) = q.current() {
1190 audio.play(track.path.clone()); 1190 audio.play(track.path.clone());
1191 spawn_send_now_playing(scrobbler, track); 1191 spawn_send_now_playing(scrobbler, track);
1192 if let Ok(mut s) = scrobble_state.lock() { 1192 if let Ok(mut s) = scrobble_state.lock() {
@@ -1199,7 +1199,7 @@ fn process_command(
1199 format!("Playing now: {}\n", path_str) 1199 format!("Playing now: {}\n", path_str)
1200 } 1200 }
1201 "next" => { 1201 "next" => {
1202 q.push_track(track); 1202 q.insert_after_current(PathBuf::from(path_str.clone()));
1203 format!("Queued next: {}\n", path_str) 1203 format!("Queued next: {}\n", path_str)
1204 } 1204 }
1205 _ => { 1205 _ => {
@@ -1237,7 +1237,7 @@ fn process_command(
1237 let new_pos = q.position() + 1; 1237 let new_pos = q.position() + 1;
1238 q.set_position(new_pos); 1238 q.set_position(new_pos);
1239 } 1239 }
1240 if let Some(track) = q.track_at(q.position()) { 1240 if let Some(track) = q.current() {
1241 audio.play(track.path.clone()); 1241 audio.play(track.path.clone());
1242 spawn_send_now_playing(scrobbler, track); 1242 spawn_send_now_playing(scrobbler, track);
1243 if let Ok(mut s) = scrobble_state.lock() { 1243 if let Ok(mut s) = scrobble_state.lock() {
@@ -1291,7 +1291,7 @@ fn process_command(
1291 let new_pos = q.position() + 1; 1291 let new_pos = q.position() + 1;
1292 q.set_position(new_pos); 1292 q.set_position(new_pos);
1293 } 1293 }
1294 if let Some(track) = q.track_at(q.position()) { 1294 if let Some(track) = q.current() {
1295 audio.play(track.path.clone()); 1295 audio.play(track.path.clone());
1296 spawn_send_now_playing(scrobbler, track); 1296 spawn_send_now_playing(scrobbler, track);
1297 if let Ok(mut s) = scrobble_state.lock() { 1297 if let Ok(mut s) = scrobble_state.lock() {
@@ -1389,7 +1389,7 @@ fn process_command(
1389 let new_pos = q.position() + 1; 1389 let new_pos = q.position() + 1;
1390 q.set_position(new_pos); 1390 q.set_position(new_pos);
1391 } 1391 }
1392 if let Some(track) = q.track_at(q.position()) { 1392 if let Some(track) = q.current() {
1393 audio.play(track.path.clone()); 1393 audio.play(track.path.clone());
1394 spawn_send_now_playing(scrobbler, track); 1394 spawn_send_now_playing(scrobbler, track);
1395 if let Ok(mut s) = scrobble_state.lock() { 1395 if let Ok(mut s) = scrobble_state.lock() {