diff --git a/services/codec/src/main.rs b/services/codec/src/main.rs index dfbf6dd2e..1eefd3504 100644 --- a/services/codec/src/main.rs +++ b/services/codec/src/main.rs @@ -79,7 +79,7 @@ fn xmain() -> ! { } }), Some(api::Opcode::PauseStream) => xous::msg_scalar_unpack!(msg, _, _, _, _, { - if codec.is_on() && codec.is_init() { + if codec.is_on() && codec.is_init() && codec.is_live() { codec.drain(); // this will suppress any future callbacks from firing while codec.can_play() { xous::yield_slice(); @@ -90,7 +90,7 @@ fn xmain() -> ! { } }), Some(api::Opcode::AbortStream) => xous::msg_scalar_unpack!(msg, _, _, _, _, { - if codec.is_on() && codec.is_init() { + if codec.is_on() && codec.is_init() && codec.is_live() { codec.audio_i2s_stop(); } else { log::error!("attempted to abort a stream on an uninitialized codec, ignoring!") diff --git a/services/gam/src/menu.rs b/services/gam/src/menu.rs index ad42125a5..3c1241fa0 100644 --- a/services/gam/src/menu.rs +++ b/services/gam/src/menu.rs @@ -281,7 +281,7 @@ impl<'a> Menu<'a> { self.gam.redraw().unwrap(); #[cfg(feature="tts")] { - // self.tts.tts_simple(&self.name).unwrap(); + self.tts.tts_simple(&self.name).unwrap(); } } fn num_items(&self) -> usize { diff --git a/services/status/Cargo.toml b/services/status/Cargo.toml index 9620dfb01..ccd0509b5 100644 --- a/services/status/Cargo.toml +++ b/services/status/Cargo.toml @@ -41,5 +41,6 @@ chrono = "0.4" [features] debugprint = [] braille = [] # used for braille mode, so console isn't overwhelmed with status +tts = [] # default = ["debugprint"] # "debugprint" default = [] diff --git a/services/status/src/mainmenu.rs b/services/status/src/mainmenu.rs index 68fda548d..2484b7463 100644 --- a/services/status/src/mainmenu.rs +++ b/services/status/src/mainmenu.rs @@ -7,11 +7,13 @@ use num_traits::*; use crate::StatusOpcode; +#[allow(unused_variables)] // quiets a warning about unused com that is emitted in tts config. Would be nice to make this more targeted... pub fn create_main_menu(keys: Arc>, status_conn: xous::CID, com: &com::Com) { let key_conn = keys.lock().unwrap().conn(); let mut menuitems = Vec::::new(); + #[cfg(not(feature="tts"))] // no backlight on versions with no display menuitems.push(MenuItem { name: String::from_str(t!("mainmenu.backlighton", xous::LANG)), action_conn: Some(com.conn()), @@ -20,6 +22,7 @@ pub fn create_main_menu(keys: Arc>, status_conn: xous::CID, com: close_on_select: true, }); + #[cfg(not(feature="tts"))] menuitems.push(MenuItem { name: String::from_str(t!("mainmenu.backlightoff", xous::LANG)), action_conn: Some(com.conn()), @@ -95,6 +98,7 @@ pub fn create_main_menu(keys: Arc>, status_conn: xous::CID, com: close_on_select: true, }); + #[cfg(not(feature="tts"))] menuitems.push(MenuItem { name: String::from_str(t!("mainmenu.kbd", xous::LANG)), action_conn: Some(status_conn), diff --git a/services/tts/src/main.rs b/services/tts/src/main.rs index 430b3e8b8..c7c945e3b 100644 --- a/services/tts/src/main.rs +++ b/services/tts/src/main.rs @@ -111,6 +111,7 @@ fn xmain() -> ! { synth_done.store(false, Ordering::SeqCst); tts_be.tts_simple(msg.text.as_str().unwrap()).unwrap(); just_initiated = true; + log::debug!("resuming codec"); codec.resume().unwrap(); }, Some(Opcode::CodecCb) => msg_scalar_unpack!(msg, free_play, _available_rec, _, routing_id, { @@ -158,8 +159,6 @@ fn xmain() -> ! { if (locked_buf.len() == 0) && synth_done.load(Ordering::SeqCst) { codec.pause().unwrap(); } - } else { - codec.pause().unwrap(); // this should stop callbacks from occurring too. } }), Some(Opcode::CodecStop) => {