diff --git a/crates/app/src/api.rs b/crates/app/src/api.rs index 6804f030..1dc8045e 100644 --- a/crates/app/src/api.rs +++ b/crates/app/src/api.rs @@ -195,21 +195,6 @@ fn delegate_to_pool (app: &mut Tek, cmd: PoolCommand) -> Perhaps { }) } -handle!(TuiIn: |self: MidiPool, input|{ - //Ok(if let Some(command) = match self.mode() { - //Some(PoolMode::Rename(..)) => self.keys_rename, - //Some(PoolMode::Length(..)) => self.keys_length, - //Some(PoolMode::Import(..)) | Some(PoolMode::Export(..)) => self.keys_file, - //_ => self.keys - //}.command::(self, input) { - Ok(if let Some(command) = self.keys.command(self, input) { - let _undo = command.execute(self)?; - Some(true) - } else { - None - }) -}); - provide!(bool: |self: MidiPool| {}); provide!(MidiClip: |self: MidiPool| { diff --git a/crates/app/src/model.rs b/crates/app/src/model.rs index fce8f4a0..d3e0b8d0 100644 --- a/crates/app/src/model.rs +++ b/crates/app/src/model.rs @@ -799,8 +799,6 @@ pub struct MidiPool { pub clip: AtomicUsize, /// Mode switch pub mode: Option, - - pub keys: InputMap<'static, Self, PoolCommand, TuiIn, SourceIter<'static>>, } impl Default for MidiPool { @@ -811,13 +809,6 @@ impl Default for MidiPool { clips: Arc::from(RwLock::from(vec![])), clip: 0.into(), mode: None, - keys: InputMap::new(SourceIter(include_str!("../../../config/keys_pool.edn"))) - .layer_if(|pool: &Self|matches!(pool.mode, Some(Import(..))|Some(Export(..))), - SourceIter(include_str!("../../../config/keys_pool_file.edn"))) - .layer_if(|pool: &Self|matches!(pool.mode, Some(Rename(..))), - SourceIter(include_str!("../../../config/keys_clip_rename.edn"))) - .layer_if(|pool: &Self|matches!(pool.mode, Some(Length(..))), - SourceIter(include_str!("../../../config/keys_clip_length.edn"))) } } } diff --git a/crates/cli/tek.rs b/crates/cli/tek.rs index bf0cd6d6..09f4e58f 100644 --- a/crates/cli/tek.rs +++ b/crates/cli/tek.rs @@ -126,17 +126,53 @@ impl Cli { .layer(SourceIter(include_str!("../../config/keys_global.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_clock.edn")).into()), LaunchMode::Sequencer => InputMap::default() + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Import(..))|Some(PoolMode::Export(..)) + ), SourceIter(include_str!("../../config/keys_pool_file.edn")).into()) + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Rename(..)) + ), SourceIter(include_str!("../../config/keys_clip_rename.edn")).into()) + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Length(..)) + ), SourceIter(include_str!("../../config/keys_clip_length.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_global.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_editor.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_clock.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_sequencer.edn")).into()), LaunchMode::Groovebox => InputMap::default() + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Import(..))|Some(PoolMode::Export(..)) + ), SourceIter(include_str!("../../config/keys_pool_file.edn")).into()) + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Rename(..)) + ), SourceIter(include_str!("../../config/keys_clip_rename.edn")).into()) + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Length(..)) + ), SourceIter(include_str!("../../config/keys_clip_length.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_global.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_editor.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_clock.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_sequencer.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_groovebox.edn")).into()), LaunchMode::Arranger {..} => InputMap::default() + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Import(..))|Some(PoolMode::Export(..)) + ), SourceIter(include_str!("../../config/keys_pool_file.edn")).into()) + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Rename(..)) + ), SourceIter(include_str!("../../config/keys_clip_rename.edn")).into()) + .layer_if(|state: &Tek|matches!( + state.pool.as_ref().map(|p|p.mode.as_ref()).flatten(), + Some(PoolMode::Length(..)) + ), SourceIter(include_str!("../../config/keys_clip_length.edn")).into()) .layer(SourceIter(include_str!("../../config/keys_global.edn")).into()) .layer_if(|state: &Tek|state.is_editing(), SourceIter(include_str!("../../config/keys_editor.edn")).into())