add toggle-pause command to pwsp-cli

This commit is contained in:
2025-12-16 20:30:34 +03:00
parent e8d1947f18
commit 546b6fd13f
4 changed files with 37 additions and 8 deletions
+22 -1
View File
@@ -1,5 +1,5 @@
use crate::{
types::socket::Response,
types::{audio_player::PlayerState, socket::Response},
utils::{daemon::get_audio_player, pipewire::get_all_devices},
};
use async_trait::async_trait;
@@ -16,6 +16,8 @@ pub struct PauseCommand {}
pub struct ResumeCommand {}
pub struct TogglePauseCommand {}
pub struct StopCommand {}
pub struct IsPausedCommand {}
@@ -75,6 +77,25 @@ impl Executable for ResumeCommand {
}
}
#[async_trait]
impl Executable for TogglePauseCommand {
async fn execute(&self) -> Response {
let mut audio_player = get_audio_player().await.lock().await;
if audio_player.get_state() == PlayerState::Stopped {
return Response::new(false, "Audio is not playing");
}
if audio_player.is_paused() {
audio_player.resume();
Response::new(true, "Audio was resumed")
} else {
audio_player.pause();
Response::new(true, "Audio was paused")
}
}
}
#[async_trait]
impl Executable for StopCommand {
async fn execute(&self) -> Response {