1pub const SERVER_NAME_TTS_EXEC: &str = "_Text To Speech Executable_ / (external C program)";
2pub const MAX_WAV_BUF_SAMPLES: usize = 1024;
3
4#[derive(num_derive::FromPrimitive, num_derive::ToPrimitive, Debug)]
6pub enum TtsBeOpcode {
7    StrToWav,
9    RegisterCb,
11    Quit,
13}
14
15#[derive(Debug, Copy, Clone, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
17pub enum TtsBeControl {
18    Abort,
19    End,
20}
21
22#[derive(Debug, Clone, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
25pub struct TtsBackendMsg {
26    pub text: String,
27}
28
29#[derive(Debug, Copy, Clone, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
31pub struct TtsBackendConfig {
32    pub sid: [u32; 4],
33    pub op: u32,
34    pub samples_per_cb: Option<u32>,
35    pub words_per_minute: Option<u32>,
36}
37
38#[derive(Debug, Copy, Clone, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
41pub struct TtsBackendData {
42    pub data: [u16; MAX_WAV_BUF_SAMPLES],
45    pub len: u32,
47    pub control: Option<TtsBeControl>,
48}