diff options
| -rw-r--r-- | src/ffi.rs | 4 | ||||
| -rw-r--r-- | src/map.rs | 23 |
2 files changed, 25 insertions, 2 deletions
@@ -9,7 +9,7 @@ use xdg; use {HeadphoneButton, MapGroup}; use config::{self, Config}; -use map::run_key_action; +use map::{PlayAudio, run_key_action}; use trial; #[repr(C)] @@ -102,7 +102,7 @@ pub extern "C" fn dome_key_run_key_action( &mut *state }; - run_key_action(&mut state, trigger); + run_key_action(&mut state, trigger, PlayAudio::No); } #[no_mangle] @@ -6,9 +6,24 @@ use {Action, HeadphoneButton, MapAction, MapKind}; use ffi::State; use sounds; +pub enum PlayAudio { + Yes, + No, +} + +impl PlayAudio { + fn yes(&self) -> bool { + match self { + PlayAudio::Yes => true, + PlayAudio::No => false, + } + } +} + pub fn run_key_action<'a>( state: &mut State, trigger: &'a [HeadphoneButton], + play_audio: PlayAudio, ) { match state.map_group { Some(ref map_group) => { @@ -21,6 +36,10 @@ pub fn run_key_action<'a>( if &in_mode[..] == trigger { state.in_mode = None; + if play_audio.yes() { + sounds::play_mode_deactivated().unwrap(); + } + return; } @@ -39,6 +58,10 @@ pub fn run_key_action<'a>( if mode.is_some() { state.in_mode = Some(trigger.to_vec()); + + if play_audio.yes() { + sounds::play_mode_activated().unwrap(); + } } }, None => (), |
