diff options
Diffstat (limited to '')
| -rw-r--r-- | src/daemon.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/daemon.rs b/src/daemon.rs index dab0e5a..3379c7b 100644 --- a/src/daemon.rs +++ b/src/daemon.rs | |||
| @@ -475,6 +475,15 @@ fn process_command( | |||
| 475 | audio.resume(); | 475 | audio.resume(); |
| 476 | "Resumed\n".to_string() | 476 | "Resumed\n".to_string() |
| 477 | } | 477 | } |
| 478 | "toggle" => { | ||
| 479 | if audio.is_playing() { | ||
| 480 | audio.pause(); | ||
| 481 | "Paused\n".to_string() | ||
| 482 | } else { | ||
| 483 | audio.resume(); | ||
| 484 | "Resumed\n".to_string() | ||
| 485 | } | ||
| 486 | } | ||
| 478 | "stop" => { | 487 | "stop" => { |
| 479 | audio.stop(); | 488 | audio.stop(); |
| 480 | // Clear queue on stop | 489 | // Clear queue on stop |
| @@ -685,6 +694,10 @@ fn process_command( | |||
| 685 | } else { | 694 | } else { |
| 686 | let mut output = String::new(); | 695 | let mut output = String::new(); |
| 687 | let current_position = q.position; | 696 | let current_position = q.position; |
| 697 | let playing_track_idx = match q.shuffle { | ||
| 698 | ShuffleMode::None => current_position, | ||
| 699 | _ => *q.shuffled_indices.get(current_position).unwrap_or(&0), | ||
| 700 | }; | ||
| 688 | // Use shuffled_indices for display order if shuffle is on | 701 | // Use shuffled_indices for display order if shuffle is on |
| 689 | let indices: Vec<usize> = if let ShuffleMode::None = q.shuffle { | 702 | let indices: Vec<usize> = if let ShuffleMode::None = q.shuffle { |
| 690 | (0..q.tracks.len()).collect() | 703 | (0..q.tracks.len()).collect() |
| @@ -694,7 +707,7 @@ fn process_command( | |||
| 694 | for (display_idx, &track_idx) in indices.iter().enumerate() { | 707 | for (display_idx, &track_idx) in indices.iter().enumerate() { |
| 695 | if let Some(track) = q.tracks.get(track_idx) { | 708 | if let Some(track) = q.tracks.get(track_idx) { |
| 696 | let track_str = track.display_string(display_idx); | 709 | let track_str = track.display_string(display_idx); |
| 697 | if track_idx == current_position { | 710 | if track_idx == playing_track_idx { |
| 698 | output.push_str(&format!("> {} (playing)\n", track_str)); | 711 | output.push_str(&format!("> {} (playing)\n", track_str)); |
| 699 | } else { | 712 | } else { |
| 700 | output.push_str(&format!(" {}\n", track_str)); | 713 | output.push_str(&format!(" {}\n", track_str)); |
