diff --git a/.gitea/scripts/check-tag b/.gitea/scripts/check-tag index d0a2c28..38df842 100755 --- a/.gitea/scripts/check-tag +++ b/.gitea/scripts/check-tag @@ -1,6 +1,6 @@ #!/bin/bash -echo "$(echo $GITHUB_REF| cut -d'/' -f2)" if [ "$(echo $GITHUB_REF| cut -d'/' -f2)" != "tags" ]; then + echo "Not a tag" exit 1; fi diff --git a/cbd-tui/src/app/mod.rs b/cbd-tui/src/app/mod.rs index 8c5e3ca..5ffeb1a 100644 --- a/cbd-tui/src/app/mod.rs +++ b/cbd-tui/src/app/mod.rs @@ -65,6 +65,7 @@ pub enum MessageFromUi { InsertTracks(Vec, usize), RemoveTracks(Vec), ReplaceQueue(Vec), + ClearQueue(bool), NextTrack, PrevTrack, RestartTrack, diff --git a/cbd-tui/src/main.rs b/cbd-tui/src/main.rs index f1aada0..ed9c6cb 100644 --- a/cbd-tui/src/main.rs +++ b/cbd-tui/src/main.rs @@ -123,6 +123,9 @@ async fn poll( MessageFromUi::ToggleRepeat => { rpc_client.toggle_repeat().await? } + MessageFromUi::ClearQueue(exclude_current) => { + rpc_client.clear_queue(exclude_current).await? + } } } Some(resp) = rpc_client.update_stream.next() => { @@ -306,6 +309,12 @@ fn run_ui(tx: Sender, rx: Receiver) { (UiFocus::Queue, KeyModifiers::NONE, KeyCode::Char('d')) => { app.queue.remove_track(); } + (UiFocus::Queue, KeyModifiers::NONE, KeyCode::Char('c')) => { + tx.send(MessageFromUi::ClearQueue(true)); + } + (UiFocus::Queue, KeyModifiers::SHIFT, KeyCode::Char('C')) => { + tx.send(MessageFromUi::ClearQueue(false)); + } _ => {} } } diff --git a/cbd-tui/src/rpc.rs b/cbd-tui/src/rpc.rs index d37b948..20f6e67 100644 --- a/cbd-tui/src/rpc.rs +++ b/cbd-tui/src/rpc.rs @@ -1,7 +1,7 @@ use crabidy_core::proto::crabidy::{ crabidy_service_client::CrabidyServiceClient, AppendRequest, ChangeVolumeRequest, - GetLibraryNodeRequest, GetUpdateStreamRequest, GetUpdateStreamResponse, InitRequest, - InitResponse, InsertRequest, LibraryNode, NextRequest, PrevRequest, QueueRequest, + ClearQueueRequest, GetLibraryNodeRequest, GetUpdateStreamRequest, GetUpdateStreamResponse, + InitRequest, InitResponse, InsertRequest, LibraryNode, NextRequest, PrevRequest, QueueRequest, RemoveRequest, ReplaceRequest, RestartTrackRequest, SetCurrentRequest, ToggleMuteRequest, TogglePlayRequest, ToggleRepeatRequest, ToggleShuffleRequest, }; @@ -128,6 +128,12 @@ impl RpcClient { Ok(()) } + pub async fn clear_queue(&mut self, exclude_current: bool) -> Result<(), Box> { + let clear_queue_request = Request::new(ClearQueueRequest { exclude_current }); + self.client.clear_queue(clear_queue_request).await?; + Ok(()) + } + pub async fn replace_queue(&mut self, uuids: Vec) -> Result<(), Box> { let replace_request = Request::new(ReplaceRequest { uuids }); self.client.replace(replace_request).await?;