diff --git a/crabidy-core/crabidy/v1/crabidy.proto b/crabidy-core/crabidy/v1/crabidy.proto index 8d7ffa7..c0697ac 100644 --- a/crabidy-core/crabidy/v1/crabidy.proto +++ b/crabidy-core/crabidy/v1/crabidy.proto @@ -18,7 +18,7 @@ service CrabidyService { rpc ToggleShuffle(ToggleShuffleRequest) returns (ToggleShuffleResponse); rpc ToggleRepeat(ToggleRepeatRequest) returns (ToggleRepeatResponse); rpc GetUpdateStream(GetUpdateStreamRequest) returns (stream GetUpdateStreamResponse); - rpc ClearQueue(ClearQueueRequest) returns (ClearQueueRequest); + rpc ClearQueue(ClearQueueRequest) returns (ClearQueueResponse); rpc SaveQueue(SaveQueueRequest) returns (SaveQueueResponse); // Playback diff --git a/crabidy-server/src/rpc.rs b/crabidy-server/src/rpc.rs index 17bbce4..6e53a86 100644 --- a/crabidy-server/src/rpc.rs +++ b/crabidy-server/src/rpc.rs @@ -1,13 +1,13 @@ use crate::{PlaybackMessage, ProviderMessage}; use crabidy_core::proto::crabidy::{ crabidy_service_server::CrabidyService, get_update_stream_response::Update as StreamUpdate, - AppendRequest, AppendResponse, ChangeVolumeRequest, ChangeVolumeResponse, - GetLibraryNodeRequest, GetLibraryNodeResponse, GetUpdateStreamRequest, GetUpdateStreamResponse, - InitRequest, InitResponse, InsertRequest, InsertResponse, NextRequest, NextResponse, - PrevRequest, PrevResponse, QueueRequest, QueueResponse, RemoveRequest, RemoveResponse, - ReplaceRequest, ReplaceResponse, RestartTrackRequest, RestartTrackResponse, SaveQueueRequest, - SaveQueueResponse, SetCurrentRequest, SetCurrentResponse, StopRequest, StopResponse, - ToggleMuteRequest, ToggleMuteResponse, TogglePlayRequest, TogglePlayResponse, + AppendRequest, AppendResponse, ChangeVolumeRequest, ChangeVolumeResponse, ClearQueueRequest, + ClearQueueResponse, GetLibraryNodeRequest, GetLibraryNodeResponse, GetUpdateStreamRequest, + GetUpdateStreamResponse, InitRequest, InitResponse, InsertRequest, InsertResponse, NextRequest, + NextResponse, PrevRequest, PrevResponse, QueueRequest, QueueResponse, RemoveRequest, + RemoveResponse, ReplaceRequest, ReplaceResponse, RestartTrackRequest, RestartTrackResponse, + SaveQueueRequest, SaveQueueResponse, SetCurrentRequest, SetCurrentResponse, StopRequest, + StopResponse, ToggleMuteRequest, ToggleMuteResponse, TogglePlayRequest, TogglePlayResponse, ToggleRepeatRequest, ToggleRepeatResponse, ToggleShuffleRequest, ToggleShuffleResponse, }; use futures::TryStreamExt; @@ -278,6 +278,25 @@ impl CrabidyService for RpcService { Ok(Response::new(Box::pin(output_stream))) } + + #[instrument(skip(self, _request))] + async fn clear_queue( + &self, + _request: tonic::Request, + ) -> std::result::Result, tonic::Status> { + debug!("Received clear_queue request"); + let playback_tx = self.playback_tx.clone(); + let span = debug_span!("play-chan"); + let uuids = Vec::new(); + playback_tx + .send_async(PlaybackMessage::Replace { uuids, span }) + .in_current_span() + .await + .map_err(|_| Status::internal("Failed to send request via channel"))?; + let reply = ClearQueueResponse {}; + Ok(Response::new(reply)) + } + #[instrument(skip(self, _request))] async fn save_queue( &self,