Implement clear queue in tui
This commit is contained in:
parent
6ac13a710c
commit
02f47d682b
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "$(echo $GITHUB_REF| cut -d'/' -f2)"
|
|
||||||
if [ "$(echo $GITHUB_REF| cut -d'/' -f2)" != "tags" ]; then
|
if [ "$(echo $GITHUB_REF| cut -d'/' -f2)" != "tags" ]; then
|
||||||
|
echo "Not a tag"
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ pub enum MessageFromUi {
|
||||||
InsertTracks(Vec<String>, usize),
|
InsertTracks(Vec<String>, usize),
|
||||||
RemoveTracks(Vec<usize>),
|
RemoveTracks(Vec<usize>),
|
||||||
ReplaceQueue(Vec<String>),
|
ReplaceQueue(Vec<String>),
|
||||||
|
ClearQueue(bool),
|
||||||
NextTrack,
|
NextTrack,
|
||||||
PrevTrack,
|
PrevTrack,
|
||||||
RestartTrack,
|
RestartTrack,
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,9 @@ async fn poll(
|
||||||
MessageFromUi::ToggleRepeat => {
|
MessageFromUi::ToggleRepeat => {
|
||||||
rpc_client.toggle_repeat().await?
|
rpc_client.toggle_repeat().await?
|
||||||
}
|
}
|
||||||
|
MessageFromUi::ClearQueue(exclude_current) => {
|
||||||
|
rpc_client.clear_queue(exclude_current).await?
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(resp) = rpc_client.update_stream.next() => {
|
Some(resp) = rpc_client.update_stream.next() => {
|
||||||
|
|
@ -306,6 +309,12 @@ fn run_ui(tx: Sender<MessageFromUi>, rx: Receiver<MessageToUi>) {
|
||||||
(UiFocus::Queue, KeyModifiers::NONE, KeyCode::Char('d')) => {
|
(UiFocus::Queue, KeyModifiers::NONE, KeyCode::Char('d')) => {
|
||||||
app.queue.remove_track();
|
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));
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use crabidy_core::proto::crabidy::{
|
use crabidy_core::proto::crabidy::{
|
||||||
crabidy_service_client::CrabidyServiceClient, AppendRequest, ChangeVolumeRequest,
|
crabidy_service_client::CrabidyServiceClient, AppendRequest, ChangeVolumeRequest,
|
||||||
GetLibraryNodeRequest, GetUpdateStreamRequest, GetUpdateStreamResponse, InitRequest,
|
ClearQueueRequest, GetLibraryNodeRequest, GetUpdateStreamRequest, GetUpdateStreamResponse,
|
||||||
InitResponse, InsertRequest, LibraryNode, NextRequest, PrevRequest, QueueRequest,
|
InitRequest, InitResponse, InsertRequest, LibraryNode, NextRequest, PrevRequest, QueueRequest,
|
||||||
RemoveRequest, ReplaceRequest, RestartTrackRequest, SetCurrentRequest, ToggleMuteRequest,
|
RemoveRequest, ReplaceRequest, RestartTrackRequest, SetCurrentRequest, ToggleMuteRequest,
|
||||||
TogglePlayRequest, ToggleRepeatRequest, ToggleShuffleRequest,
|
TogglePlayRequest, ToggleRepeatRequest, ToggleShuffleRequest,
|
||||||
};
|
};
|
||||||
|
|
@ -128,6 +128,12 @@ impl RpcClient {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn clear_queue(&mut self, exclude_current: bool) -> Result<(), Box<dyn Error>> {
|
||||||
|
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<String>) -> Result<(), Box<dyn Error>> {
|
pub async fn replace_queue(&mut self, uuids: Vec<String>) -> Result<(), Box<dyn Error>> {
|
||||||
let replace_request = Request::new(ReplaceRequest { uuids });
|
let replace_request = Request::new(ReplaceRequest { uuids });
|
||||||
self.client.replace(replace_request).await?;
|
self.client.replace(replace_request).await?;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue