Handy/src-tauri/src/signal_handle.rs
CJ Pais 46fd170d69
attempt to clean up warnings on build (#1037)
* attempt to clean up warnings on build

* format

* fix linux warning
2026-03-14 11:42:42 +08:00

38 lines
1.2 KiB
Rust

use crate::TranscriptionCoordinator;
#[cfg(unix)]
use log::debug;
use log::warn;
use tauri::{AppHandle, Manager};
#[cfg(unix)]
use signal_hook::consts::{SIGUSR1, SIGUSR2};
#[cfg(unix)]
use signal_hook::iterator::Signals;
#[cfg(unix)]
use std::thread;
/// Send a transcription input to the coordinator.
/// Used by signal handlers, CLI flags, and any other external trigger.
pub fn send_transcription_input(app: &AppHandle, binding_id: &str, source: &str) {
if let Some(c) = app.try_state::<TranscriptionCoordinator>() {
c.send_input(binding_id, source, true, false);
} else {
warn!("TranscriptionCoordinator not initialized");
}
}
#[cfg(unix)]
pub fn setup_signal_handler(app_handle: AppHandle, mut signals: Signals) {
debug!("Signal handlers registered (SIGUSR1, SIGUSR2)");
thread::spawn(move || {
for sig in signals.forever() {
let (binding_id, signal_name) = match sig {
SIGUSR1 => ("transcribe_with_post_process", "SIGUSR1"),
SIGUSR2 => ("transcribe", "SIGUSR2"),
_ => continue,
};
debug!("Received {signal_name}");
send_transcription_input(&app_handle, binding_id, signal_name);
}
});
}