//! Voice subsystem errors.

use thiserror::Error;

#[derive(Debug, Error)]
pub enum VoiceError {
    #[error("audio device error: {0}")]
    Device(String),

    #[error("audio capture error: {0}")]
    Capture(String),

    #[error("audio playback error: {0}")]
    Playback(String),

    #[error("STT provider error: {0}")]
    Stt(String),

    #[error("TTS provider error: {0}")]
    Tts(String),

    #[error("configuration error: {0}")]
    Config(String),

    #[error("voice listener already running")]
    AlreadyRunning,

    #[error("voice listener not running")]
    NotRunning,

    #[error("io error: {0}")]
    Io(#[from] std::io::Error),
}
