diff --git a/src/backends/speech_dispatcher.rs b/src/backends/speech_dispatcher.rs index 8b656b0..18087ef 100644 --- a/src/backends/speech_dispatcher.rs +++ b/src/backends/speech_dispatcher.rs @@ -38,6 +38,11 @@ impl Backend for SpeechDispatcher { self.0.say(Priority::Important, text); } + fn stop(&self) { + trace!("stop()"); + self.0.cancel(); + } + fn get_rate(&self) -> u8 { i32_to_u8(self.0.get_voice_rate()) } diff --git a/src/lib.rs b/src/lib.rs index 3588475..5a6adb1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,6 +9,7 @@ pub enum Backends { trait Backend { fn speak(&self, text: &str, interrupt: bool); + fn stop(&self); fn get_rate(&self) -> u8; fn set_rate(&self, rate: u8); fn get_pitch(&self) -> u8; @@ -32,6 +33,11 @@ impl TTS { self } + pub fn stop(&self) -> &Self { + self.0.stop(); + self + } + pub fn get_rate(&self) -> u8 { self.0.get_rate() }