1pub mod terminal_display;
2pub mod tts;
3pub mod auto_reply;
4
5use client::scheduler::EventHandler;
6use std::sync::Arc;
7
8pub fn terminal_display_handler() -> Arc<dyn EventHandler> {
10 Arc::new(terminal_display::TerminalDisplayHandler)
11}
12
13pub fn tts_handler_default(server_url: String) -> Arc<dyn EventHandler> {
16 Arc::new(tts::TtsHandler::new_rest_api_default(server_url))
17}
18
19pub fn tts_handler(
21 server_url: String,
22 voice: Option<String>,
23 backend: Option<String>,
24 quality: Option<String>,
25 format: Option<String>,
26 sample_rate: Option<u32>,
27) -> Arc<dyn EventHandler> {
28 Arc::new(tts::TtsHandler::new_rest_api(
29 server_url,
30 voice,
31 backend,
32 quality,
33 format,
34 sample_rate,
35 ))
36}
37
38pub fn tts_handler_command(tts_command: String, tts_args: Vec<String>) -> Arc<dyn EventHandler> {
41 Arc::new(tts::TtsHandler::new_command(tts_command, tts_args))
42}
43
44pub fn auto_reply_handler(config: auto_reply::AutoReplyConfig) -> Arc<dyn EventHandler> {
46 Arc::new(auto_reply::AutoReplyHandler::new(config))
47}
48
49#[cfg(test)]
50mod tests {}