diff options
Diffstat (limited to '')
| -rw-r--r-- | src/daemon.rs | 5 | ||||
| -rw-r--r-- | src/queue.rs | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/daemon.rs b/src/daemon.rs index cca9b11..00bf35f 100644 --- a/src/daemon.rs +++ b/src/daemon.rs | |||
| @@ -453,11 +453,10 @@ fn process_command( | |||
| 453 | q.add_track(file.clone()); | 453 | q.add_track(file.clone()); |
| 454 | } | 454 | } |
| 455 | if !audio.is_playing() | 455 | if !audio.is_playing() |
| 456 | && let Some(track) = files.first() | 456 | && let Some(track) = q.current() |
| 457 | { | 457 | { |
| 458 | let track = Track::from_path(track.clone()); | ||
| 459 | audio.play(track.path.clone()); | 458 | audio.play(track.path.clone()); |
| 460 | notification::notify_track(&track); | 459 | notification::notify_track(track); |
| 461 | } | 460 | } |
| 462 | format!("Queued {} tracks from: {}\n", files.len(), path_str) | 461 | format!("Queued {} tracks from: {}\n", files.len(), path_str) |
| 463 | } | 462 | } |
diff --git a/src/queue.rs b/src/queue.rs index 53b104f..dca8e3d 100644 --- a/src/queue.rs +++ b/src/queue.rs | |||
| @@ -171,7 +171,9 @@ impl Queue { | |||
| 171 | if let ShuffleMode::All = self.shuffle { | 171 | if let ShuffleMode::All = self.shuffle { |
| 172 | let mut rng = rand::rng(); | 172 | let mut rng = rand::rng(); |
| 173 | let pos = self.position.min(len.saturating_sub(1)); | 173 | let pos = self.position.min(len.saturating_sub(1)); |
| 174 | if pos + 1 < len { | 174 | if pos == 0 && len > 1 { |
| 175 | self.shuffled_indices.shuffle(&mut rng); | ||
| 176 | } else if pos + 1 < len { | ||
| 175 | self.shuffled_indices[pos + 1..].shuffle(&mut rng); | 177 | self.shuffled_indices[pos + 1..].shuffle(&mut rng); |
| 176 | } | 178 | } |
| 177 | } | 179 | } |
