50 lines
No EOL
1 KiB
Rust
50 lines
No EOL
1 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
// Events sent from jarvis-app to GUI
|
|
#[derive(Clone, Debug, Serialize)]
|
|
#[serde(tag = "event", rename_all = "snake_case")]
|
|
pub enum IpcEvent {
|
|
// Wake word detected, starting to listen
|
|
WakeWordDetected,
|
|
|
|
// Actively listening for command
|
|
Listening,
|
|
|
|
// Speech recognized
|
|
SpeechRecognized { text: String },
|
|
|
|
// Command was executed
|
|
CommandExecuted { id: String, success: bool },
|
|
|
|
// Returned to idle state
|
|
Idle,
|
|
|
|
// Error occurred
|
|
Error { message: String },
|
|
|
|
// App started
|
|
Started,
|
|
|
|
// App is shutting down
|
|
Stopping,
|
|
|
|
// Pong response
|
|
Pong,
|
|
}
|
|
|
|
// Actions sent from GUI to jarvis-app
|
|
#[derive(Clone, Debug, Deserialize)]
|
|
#[serde(tag = "action", rename_all = "snake_case")]
|
|
pub enum IpcAction {
|
|
// Request graceful shutdown
|
|
Stop,
|
|
|
|
// Reload commands from disk
|
|
ReloadCommands,
|
|
|
|
// Ping to check connection
|
|
Ping,
|
|
|
|
// Mute/unmute listening
|
|
SetMuted { muted: bool },
|
|
} |