mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
wip: unify view/keys configs
This commit is contained in:
parent
6ed0627056
commit
26baa8127d
11 changed files with 103 additions and 109 deletions
25
config/config_arranger.edn
Normal file
25
config/config_arranger.edn
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
(name "Arranger")
|
||||
|
||||
(info "A session grid.")
|
||||
|
||||
(view
|
||||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(fill/xy (bsp/a
|
||||
(fill/xy (align/e :pool))
|
||||
:arranger))))))
|
||||
|
||||
(keys
|
||||
(layer-if :mode-pool-import "./keys_pool_file.edn")
|
||||
(layer-if :mode-pool-export "./keys_pool_file.edn")
|
||||
(layer-if :mode-pool-rename "./keys_clip_rename.edn")
|
||||
(layer-if :mode-pool-length "./keys_clip_length.edn")
|
||||
(layer "./keys_global.edn")
|
||||
(layer-if :mode-editor "./keys_editor.edn")
|
||||
(layer-if :mode-clip "./keys_clip.edn")
|
||||
(layer-if :mode-track "./keys_track.edn")
|
||||
(layer-if :mode-scene "./keys_scene.edn")
|
||||
(layer-if :mode-mix "./keys_mix.edn")
|
||||
(layer "./keys_clock.edn")
|
||||
(layer "./keys_arranger.edn"))
|
||||
22
config/config_groovebox.edn
Normal file
22
config/config_groovebox.edn
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
(name "Arranger")
|
||||
|
||||
(info "A sequencer with built-in sampler.")
|
||||
|
||||
(view
|
||||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(bsp/n (fixed/y 5 :sample-viewer)
|
||||
(bsp/w (fixed/x :w-sidebar :pool)
|
||||
(bsp/e :samples-keys
|
||||
(fill/y :editor))))))))
|
||||
|
||||
(keys
|
||||
(layer-if :mode-pool-import "./keys_pool_file.edn")
|
||||
(layer-if :mode-pool-export "./keys_pool_file.edn")
|
||||
(layer-if :mode-pool-rename "./keys_clip_rename.edn")
|
||||
(layer-if :mode-pool-length "./keys_clip_length.edn")
|
||||
(layer "./keys_global.edn")
|
||||
(layer-if :mode-editor "./keys_editor.edn")
|
||||
(layer "./keys_clock.edn")
|
||||
(layer "./keys_arranger.edn"))
|
||||
13
config/config_sampler.edn
Normal file
13
config/config_sampler.edn
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
(name "Sampler")
|
||||
|
||||
(info "A sampling soundboard.")
|
||||
|
||||
(view
|
||||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(fill/xy :samples-grid)))))
|
||||
|
||||
(keys
|
||||
(layer "./keys_global.edn")
|
||||
(layer "./keys_sampler.edn"))
|
||||
21
config/config_sequencer.edn
Normal file
21
config/config_sequencer.edn
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
(name "Sequencer")
|
||||
|
||||
(info "A MIDI sequencer.")
|
||||
|
||||
(view
|
||||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(fill/xy (bsp/a
|
||||
(fill/xy (align/e :pool))
|
||||
:editor)))))
|
||||
|
||||
(keys
|
||||
(layer-if :mode-pool-import "./keys_pool_file.edn")
|
||||
(layer-if :mode-pool-export "./keys_pool_file.edn")
|
||||
(layer-if :mode-pool-rename "./keys_clip_rename.edn")
|
||||
(layer-if :mode-pool-length "./keys_clip_length.edn")
|
||||
(layer "./keys_global.edn")
|
||||
(layer "./keys_editor.edn")
|
||||
(layer "./keys_clock.edn")
|
||||
(layer "./keys_arranger.edn"))
|
||||
9
config/config_transport.edn
Normal file
9
config/config_transport.edn
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
(name "Transport")
|
||||
|
||||
(info "A JACK transport controller.")
|
||||
|
||||
(view :transport)
|
||||
|
||||
(keys
|
||||
(layer "./keys_global.edn")
|
||||
(layer "./keys_clock.edn"))
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(fill/xy (bsp/a
|
||||
(fill/xy (align/e :pool))
|
||||
:arranger)))))
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(bsp/n (fixed/y 5 :sample-viewer)
|
||||
(bsp/w (fixed/x :w-sidebar :pool)
|
||||
(bsp/e :samples-keys
|
||||
(fill/y :editor)))))))
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(fill/xy :samples-grid))))
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
(bsp/a :modal
|
||||
(bsp/s (fixed/y 1 :transport)
|
||||
(bsp/n (fixed/y 1 :status)
|
||||
(fill/xy (bsp/a
|
||||
(fill/xy (align/e :pool))
|
||||
:editor)))))
|
||||
|
|
@ -1 +0,0 @@
|
|||
:transport
|
||||
|
|
@ -139,91 +139,19 @@ impl Cli {
|
|||
},
|
||||
scenes,
|
||||
selected: Selection::TrackClip { track: 0, scene: 0 },
|
||||
config: Configuration {
|
||||
view: SourceIter(match mode {
|
||||
LaunchMode::Clock =>
|
||||
include_str!("../../config/view_transport.edn"),
|
||||
LaunchMode::Sequencer =>
|
||||
include_str!("../../config/view_sequencer.edn"),
|
||||
LaunchMode::Groovebox =>
|
||||
include_str!("../../config/view_groovebox.edn"),
|
||||
LaunchMode::Arranger { .. } =>
|
||||
include_str!("../../config/view_arranger.edn"),
|
||||
LaunchMode::Sampler =>
|
||||
include_str!("../../config/view_sampler.edn"),
|
||||
_ => todo!("{mode:?}"),
|
||||
}),
|
||||
keys: match mode {
|
||||
LaunchMode::Sampler => InputMap::default()
|
||||
.layer(SourceIter(include_str!("../../config/keys_global.edn")).into())
|
||||
.layer(SourceIter(include_str!("../../config/keys_sampler.edn")).into()),
|
||||
LaunchMode::Clock => InputMap::default()
|
||||
.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())
|
||||
.layer_if(|state: &Tek|state.selected.is_clip()&&!state.is_editing(),
|
||||
SourceIter(include_str!("../../config/keys_clip.edn")).into())
|
||||
.layer_if(|state: &Tek|state.selected.is_track()&&!state.is_editing(),
|
||||
SourceIter(include_str!("../../config/keys_track.edn")).into())
|
||||
.layer_if(|state: &Tek|state.selected.is_scene()&&!state.is_editing(),
|
||||
SourceIter(include_str!("../../config/keys_scene.edn")).into())
|
||||
.layer_if(|state: &Tek|state.selected.is_mix()&&!state.is_editing(),
|
||||
SourceIter(include_str!("../../config/keys_mix.edn")).into())
|
||||
.layer(SourceIter(include_str!("../../config/keys_clock.edn")).into())
|
||||
.layer(SourceIter(include_str!("../../config/keys_arranger.edn")).into()),
|
||||
_ => todo!("{mode:?}"),
|
||||
},
|
||||
},
|
||||
config: Configuration::from(match mode {
|
||||
LaunchMode::Clock =>
|
||||
include_str!("../../config/view_transport.edn"),
|
||||
LaunchMode::Sequencer =>
|
||||
include_str!("../../config/view_sequencer.edn"),
|
||||
LaunchMode::Groovebox =>
|
||||
include_str!("../../config/view_groovebox.edn"),
|
||||
LaunchMode::Arranger { .. } =>
|
||||
include_str!("../../config/view_arranger.edn"),
|
||||
LaunchMode::Sampler =>
|
||||
include_str!("../../config/view_sampler.edn"),
|
||||
_ => todo!("{mode:?}"),
|
||||
}),
|
||||
..Default::default()
|
||||
};
|
||||
if let &LaunchMode::Arranger { scenes, tracks, track_width, .. } = mode {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue