mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 03:36:41 +01:00
delete track/scene
This commit is contained in:
parent
2fd7d7b39f
commit
9bc4e3fb5f
6 changed files with 52 additions and 41 deletions
|
|
@ -1 +1 @@
|
|||
(@r sampler record/begin :pitch)
|
||||
(@r sampler record/toggle :sample)
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
(@up select :sample-up)
|
||||
(@w select :sample-up)
|
||||
(@up sampler select :sample-up)
|
||||
(@w sampler select :sample-up)
|
||||
|
||||
(@down select :sample-down)
|
||||
(@s select :sample-down)
|
||||
(@down sampler select :sample-down)
|
||||
(@s sampler select :sample-down)
|
||||
|
||||
(@left select :sample-left)
|
||||
(@a select :sample-left)
|
||||
(@left sampler select :sample-left)
|
||||
(@a sampler select :sample-left)
|
||||
|
||||
(@right select :sample-right)
|
||||
(@d select :sample-right)
|
||||
(@right sampler select :sample-right)
|
||||
(@d sampler select :sample-right)
|
||||
|
||||
(@r record/toggle :sample)
|
||||
(@r sampler record/toggle :sample)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
(@delete scene delete :scene)
|
||||
(@q scene launch :scene)
|
||||
(@c scene color :scene)
|
||||
(@c scene color :scene)
|
||||
(@comma scene prev)
|
||||
(@period scene next)
|
||||
(@lt scene swap-prev)
|
||||
(@gt scene swap-next)
|
||||
(@delete scene delete)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
(@delete track delete :track)
|
||||
(@q track launch :track)
|
||||
(@c track color :track)
|
||||
(@c track color :track)
|
||||
(@comma track prev)
|
||||
(@period track next)
|
||||
(@lt track swap-prev)
|
||||
(@gt track swap-next)
|
||||
(@delete track delete)
|
||||
|
||||
(@r track rec)
|
||||
(@m track mon)
|
||||
(@p track play)
|
||||
(@P track solo)
|
||||
(@r track rec)
|
||||
(@m track mon)
|
||||
(@p track play)
|
||||
(@P track solo)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@ expose!([self: Tek]
|
|||
|
||||
handle!(TuiIn: |self: Tek, input|Ok(if let Some(command) = self.keys.command(self, input) {
|
||||
let undo = command.execute(self)?;
|
||||
if let Some(undo) = undo {
|
||||
self.history.push(undo);
|
||||
}
|
||||
Some(true)
|
||||
} else {
|
||||
None
|
||||
|
|
@ -68,13 +71,15 @@ impose!([app: Tek]
|
|||
(t, 0) => Self::Select(Selection::Track(t)),
|
||||
(0, s) => Self::Select(Selection::Scene(s)),
|
||||
(t, s) => Self::Select(Selection::Clip(t, s)) })))
|
||||
|
||||
(ClipCommand:
|
||||
("edit" [a: MaybeClip] Some(Self::Edit(a.unwrap())))
|
||||
("color" [a: usize, b: usize] Some(Self::SetColor(a.unwrap(), b.unwrap(), ItemTheme::random())))
|
||||
("enqueue" [a: usize, b: usize] Some(Self::Enqueue(a.unwrap(), b.unwrap())))
|
||||
("get" [a: usize, b: usize] Some(Self::Get(a.unwrap(), b.unwrap())))
|
||||
("loop" [a: usize, b: usize, c: bool] Some(Self::SetLoop(a.unwrap(), b.unwrap(), c.unwrap())))
|
||||
("put" [a: usize, b: usize, c: MaybeClip] Some(Self::Put(a.unwrap(), b.unwrap(), c.unwrap()))))
|
||||
("put" [a: usize, b: usize, c: MaybeClip] Some(Self::Put(a.unwrap(), b.unwrap(), c.unwrap())))
|
||||
("delete" [a: usize, b: usize] Some(Self::Put(a.unwrap(), b.unwrap(), None))))
|
||||
|
||||
(InputCommand:
|
||||
("add" [] Some(Self::Add)))
|
||||
|
|
@ -84,24 +89,24 @@ impose!([app: Tek]
|
|||
|
||||
(SceneCommand:
|
||||
("add" [] Some(Self::Add))
|
||||
("del" [a: usize] Some(Self::Del(0)))
|
||||
("delete" [a: Option<usize>] Some(Self::Del(a.flatten().unwrap())))
|
||||
("zoom" [a: usize] Some(Self::SetZoom(a.unwrap())))
|
||||
("color" [a: usize] Some(Self::SetColor(a.unwrap(), ItemTheme::G[128])))
|
||||
("enqueue" [a: usize] Some(Self::Enqueue(a.unwrap())))
|
||||
("swap" [a: usize, b: usize] Some(Self::Swap(a.unwrap(), b.unwrap()))))
|
||||
|
||||
(TrackCommand:
|
||||
("add" [] Some(Self::Add))
|
||||
("size" [a: usize] Some(Self::SetSize(a.unwrap())))
|
||||
("zoom" [a: usize] Some(Self::SetZoom(a.unwrap())))
|
||||
("color" [a: usize] Some(Self::SetColor(a.unwrap(), ItemTheme::random())))
|
||||
("del" [a: usize] Some(Self::Del(a.unwrap())))
|
||||
("stop" [a: usize] Some(Self::Stop(a.unwrap())))
|
||||
("swap" [a: usize, b: usize] Some(Self::Swap(a.unwrap(), b.unwrap())))
|
||||
("play" [] Some(Self::TogglePlay))
|
||||
("solo" [] Some(Self::ToggleSolo))
|
||||
("rec" [] Some(Self::ToggleRec))
|
||||
("mon" [] Some(Self::ToggleMon))));
|
||||
("add" [] Some(Self::Add))
|
||||
("size" [a: usize] Some(Self::SetSize(a.unwrap())))
|
||||
("zoom" [a: usize] Some(Self::SetZoom(a.unwrap())))
|
||||
("color" [a: usize] Some(Self::SetColor(a.unwrap(), ItemTheme::random())))
|
||||
("delete" [a: Option<usize>] Some(Self::Del(a.flatten().unwrap())))
|
||||
("stop" [a: usize] Some(Self::Stop(a.unwrap())))
|
||||
("swap" [a: usize, b: usize] Some(Self::Swap(a.unwrap(), b.unwrap())))
|
||||
("play" [] Some(Self::TogglePlay))
|
||||
("solo" [] Some(Self::ToggleSolo))
|
||||
("rec" [] Some(Self::ToggleRec))
|
||||
("mon" [] Some(Self::ToggleMon))));
|
||||
|
||||
defcom!([self, app: Tek]
|
||||
|
||||
|
|
|
|||
|
|
@ -137,16 +137,23 @@ impl Cli {
|
|||
.layer(SourceIter(include_str!("../../config/keys_sequencer.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_groovebox.edn"))),
|
||||
LaunchMode::Arranger {..} => InputMap::default()
|
||||
.layer(SourceIter(include_str!("../../config/keys_global.edn")))
|
||||
.layer_if(
|
||||
|state: &Tek|state.is_editing(),
|
||||
.layer(
|
||||
SourceIter(include_str!("../../config/keys_global.edn")))
|
||||
.layer_if(|state: &Tek|state.is_editing(),
|
||||
SourceIter(include_str!("../../config/keys_editor.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_clock.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_arranger.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_clip.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_track.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_scene.edn")))
|
||||
.layer(SourceIter(include_str!("../../config/keys_mix.edn"))),
|
||||
.layer_if(|state: &Tek|state.selected.is_clip(),
|
||||
SourceIter(include_str!("../../config/keys_clip.edn")))
|
||||
.layer_if(|state: &Tek|state.selected.is_track(),
|
||||
SourceIter(include_str!("../../config/keys_track.edn")))
|
||||
.layer_if(|state: &Tek|state.selected.is_scene(),
|
||||
SourceIter(include_str!("../../config/keys_scene.edn")))
|
||||
.layer_if(|state: &Tek|state.selected.is_mix(),
|
||||
SourceIter(include_str!("../../config/keys_mix.edn")))
|
||||
.layer(
|
||||
SourceIter(include_str!("../../config/keys_clock.edn")))
|
||||
.layer(
|
||||
SourceIter(include_str!("../../config/keys_arranger.edn")))
|
||||
,
|
||||
_ => todo!("{mode:?}"),
|
||||
},
|
||||
pool: match mode {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue