Skip to main content

zk_audio/mic_sim/
core.rs

1use super::models::MicrophoneSimModel;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5pub struct MicrophoneSimConfig {
6    #[serde(default)]
7    pub enabled: bool,
8    #[serde(default)]
9    pub model: MicrophoneSimModel,
10}
11
12impl Default for MicrophoneSimConfig {
13    fn default() -> Self {
14        Self {
15            enabled: false,
16            model: MicrophoneSimModel::Off,
17        }
18    }
19}
20
21impl MicrophoneSimConfig {
22    pub fn active_model(&self) -> Option<MicrophoneSimModel> {
23        if self.enabled && self.model != MicrophoneSimModel::Off {
24            Some(self.model)
25        } else {
26            None
27        }
28    }
29}