mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
pool: remove InputMap
This commit is contained in:
parent
457e6bb7eb
commit
0533ea92ac
3 changed files with 36 additions and 24 deletions
|
|
@ -195,21 +195,6 @@ fn delegate_to_pool (app: &mut Tek, cmd: PoolCommand) -> Perhaps<TekCommand> {
|
|||
})
|
||||
}
|
||||
|
||||
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, PoolCommand, TuiIn>(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| {
|
||||
|
|
|
|||
|
|
@ -799,8 +799,6 @@ pub struct MidiPool {
|
|||
pub clip: AtomicUsize,
|
||||
/// Mode switch
|
||||
pub mode: Option<PoolMode>,
|
||||
|
||||
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")))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue