crap forgot to add slide_actions
Some checks failed
/ test (push) Has been cancelled

This commit is contained in:
Chris Cochrun 2025-12-16 11:47:00 -06:00
parent 0cd741f815
commit 1240bda2b2

41
src/core/slide_actions.rs Normal file
View file

@ -0,0 +1,41 @@
use miette::{IntoDiagnostic, Result};
use std::sync::Arc;
use tracing::warn;
use obws::{Client, responses::scenes::Scene};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub(crate) enum ObsAction {
Scene { scene: Scene },
StartStream,
StopStream,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub(crate) enum Action {
Obs { action: ObsAction },
Other,
}
impl ObsAction {
pub async fn run(&self, client: Arc<Client>) -> Result<()> {
match self {
ObsAction::Scene { scene } => {
warn!(?scene, "Changing obs scenes");
client
.scenes()
.set_current_program_scene(&scene.id)
.await
.into_diagnostic()?;
}
ObsAction::StartStream => {
client.streaming().start().await.into_diagnostic()?
}
ObsAction::StopStream => {
client.streaming().stop().await.into_diagnostic()?
}
}
Ok(())
}
}