From 3fc7ecf7d645542fe06ca933057c9609a846b78a Mon Sep 17 00:00:00 2001 From: Albert Salgueda Date: Wed, 20 May 2026 15:43:15 +0000 Subject: [PATCH] feat(desktop): add deeplink actions for pause/resume + mic/camera switching Extends the cap-desktop:// deeplink surface with the actions needed to drive recording from external clients (e.g. a Raycast extension): pause_recording, resume_recording, toggle_pause_recording, set_mic_input, and set_camera_input. Each action delegates to the existing tauri command of the same name, so behavior matches what the in-app UI already does. Closes #1540 (deeplinks side). --- .../desktop/src-tauri/src/deeplink_actions.rs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/desktop/src-tauri/src/deeplink_actions.rs b/apps/desktop/src-tauri/src/deeplink_actions.rs index a1170284877..fce55cffaf8 100644 --- a/apps/desktop/src-tauri/src/deeplink_actions.rs +++ b/apps/desktop/src-tauri/src/deeplink_actions.rs @@ -26,6 +26,15 @@ pub enum DeepLinkAction { mode: RecordingMode, }, StopRecording, + PauseRecording, + ResumeRecording, + TogglePauseRecording, + SetMicInput { + label: Option, + }, + SetCameraInput { + id: Option, + }, OpenEditor { project_path: PathBuf, }, @@ -147,6 +156,21 @@ impl DeepLinkAction { DeepLinkAction::StopRecording => { crate::recording::stop_recording(app.clone(), app.state()).await } + DeepLinkAction::PauseRecording => { + crate::recording::pause_recording(app.clone(), app.state()).await + } + DeepLinkAction::ResumeRecording => { + crate::recording::resume_recording(app.clone(), app.state()).await + } + DeepLinkAction::TogglePauseRecording => { + crate::recording::toggle_pause_recording(app.clone(), app.state()).await + } + DeepLinkAction::SetMicInput { label } => { + crate::set_mic_input(app.state(), label).await + } + DeepLinkAction::SetCameraInput { id } => { + crate::set_camera_input(app.clone(), app.state(), id, None).await + } DeepLinkAction::OpenEditor { project_path } => { crate::open_project_from_path(Path::new(&project_path), app.clone()) }