diff options
| author | salmon <salmonik@tuta.io> | 2026-08-12 02:56:18 +0200 |
|---|---|---|
| committer | salmon <salmonik@tuta.io> | 2026-08-12 02:56:18 +0200 |
| commit | 8ec85d39c55769c564298782a51c6ec25dd6ba9f (patch) | |
| tree | a55bda29f2f12afbb64eb5ef05a920fa19ca4d3e /src/daemon.rs | |
| parent | clean up readme and make install.sh activate rc.d service (diff) | |
| download | rsplayer-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.rs | 14 |
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() { |
