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}