mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
enable adding midi ins and outs
This commit is contained in:
parent
76cefdca61
commit
5d6592bbdf
12 changed files with 171 additions and 165 deletions
|
|
@ -662,28 +662,19 @@ pub enum SamplerMode {
|
|||
Sample(SamplerCommand),
|
||||
}
|
||||
atom_command!(SamplerTuiCommand: |state: SamplerTui| {
|
||||
("select" [i: usize] Self::Select(i.expect("no index")))
|
||||
("import" [,..a] if let Some(command) = FileBrowserCommand::try_from_expr(state, a) {
|
||||
Self::Import(command)
|
||||
} else {
|
||||
return None
|
||||
})
|
||||
("sample" [,..a] if let Some(command) = SamplerCommand::try_from_expr(&state.state, a) {
|
||||
Self::Sample(command)
|
||||
} else {
|
||||
return None
|
||||
})
|
||||
});
|
||||
("select" [i: usize] Some(Self::Select(i.expect("no index"))))
|
||||
("import" [,..a] FileBrowserCommand::try_from_expr(state, a).map(Self::Import))
|
||||
("sample" [,..a] SamplerCommand::try_from_expr(&state.state, a).map(Self::Sample)) });
|
||||
provide!(usize: |self: SamplerTui| {});
|
||||
provide!(PathBuf: |self: SamplerTui| {});
|
||||
provide!(Arc<str>: |self: SamplerTui| {});
|
||||
atom_command!(FileBrowserCommand: |state: SamplerTui| {
|
||||
("begin" [] Self::Begin)
|
||||
("cancel" [] Self::Cancel)
|
||||
("confirm" [] Self::Confirm)
|
||||
("select" [i: usize] Self::Select(i.expect("no index")))
|
||||
("chdir" [p: PathBuf] Self::Chdir(p.expect("no path")))
|
||||
("filter" [f: Arc<str>] Self::Filter(f.expect("no filter")))
|
||||
("begin" [] Some(Self::Begin))
|
||||
("cancel" [] Some(Self::Cancel))
|
||||
("confirm" [] Some(Self::Confirm))
|
||||
("select" [i: usize] Some(Self::Select(i.expect("no index"))))
|
||||
("chdir" [p: PathBuf] Some(Self::Chdir(p.expect("no path"))))
|
||||
("filter" [f: Arc<str>] Some(Self::Filter(f.expect("no filter"))))
|
||||
});
|
||||
#[derive(Clone, Debug)] pub enum SamplerCommand {
|
||||
RecordBegin(u7),
|
||||
|
|
@ -697,21 +688,21 @@ atom_command!(FileBrowserCommand: |state: SamplerTui| {
|
|||
}
|
||||
atom_command!(SamplerCommand: |state: Sampler| {
|
||||
("record/begin" [i: u7]
|
||||
Self::RecordBegin(i.expect("no index")))
|
||||
Some(Self::RecordBegin(i.expect("no index"))))
|
||||
("record/cancel" []
|
||||
Self::RecordCancel)
|
||||
Some(Self::RecordCancel))
|
||||
("record/finish" []
|
||||
Self::RecordFinish)
|
||||
Some(Self::RecordFinish))
|
||||
("set/sample" [i: u7, s: Option<Arc<RwLock<Sample>>>]
|
||||
Self::SetSample(i.expect("no index"), s.expect("no sampler")))
|
||||
Some(Self::SetSample(i.expect("no index"), s.expect("no sampler"))))
|
||||
("set/start" [i: u7, s: usize]
|
||||
Self::SetStart(i.expect("no index"), s.expect("no start")))
|
||||
Some(Self::SetStart(i.expect("no index"), s.expect("no start"))))
|
||||
("set/gain" [i: u7, g: f32]
|
||||
Self::SetGain(i.expect("no index"), g.expect("no garin")))
|
||||
Some(Self::SetGain(i.expect("no index"), g.expect("no garin"))))
|
||||
("note/on" [p: u7, v: u7]
|
||||
Self::NoteOn(p.expect("no pitch"), v.expect("no velocity")))
|
||||
Some(Self::NoteOn(p.expect("no pitch"), v.expect("no velocity"))))
|
||||
("note/off" [p: u7]
|
||||
Self::NoteOff(p.expect("no pitch")))
|
||||
Some(Self::NoteOff(p.expect("no pitch"))))
|
||||
});
|
||||
provide!(u7: |self: Sampler| {});
|
||||
provide!(Option<Arc<RwLock<Sample>>>: |self: Sampler| {});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue