mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 20:56:43 +01:00
transport: some standalone functioning
This commit is contained in:
parent
430c51e305
commit
b6da43e93e
7 changed files with 179 additions and 150 deletions
51
crates/tek_timer/src/transport_handle.rs
Normal file
51
crates/tek_timer/src/transport_handle.rs
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
use crate::*;
|
||||
|
||||
handle!{
|
||||
TransportToolbar |self, e| {
|
||||
handle_keymap(self, e, KEYMAP_TRANSPORT)
|
||||
}
|
||||
}
|
||||
|
||||
/// Key bindings for transport toolbar.
|
||||
pub const KEYMAP_TRANSPORT: &'static [KeyBinding<TransportToolbar>] = keymap!(TransportToolbar {
|
||||
[Left, NONE, "transport_prev", "select previous control", |transport: &mut TransportToolbar| Ok({
|
||||
transport.selected.prev();
|
||||
true
|
||||
})],
|
||||
[Right, NONE, "transport_next", "select next control", |transport: &mut TransportToolbar| Ok({
|
||||
transport.selected.next();
|
||||
true
|
||||
})],
|
||||
[Char('.'), NONE, "transport_increment", "increment value at cursor", |transport: &mut TransportToolbar| {
|
||||
match transport.selected {
|
||||
TransportFocus::BPM => {
|
||||
transport.timebase.bpm.fetch_add(1.0, Ordering::Relaxed);
|
||||
},
|
||||
TransportFocus::Quant => {
|
||||
transport.quant = next_note_length(transport.quant)
|
||||
},
|
||||
TransportFocus::Sync => {
|
||||
transport.sync = next_note_length(transport.sync)
|
||||
},
|
||||
};
|
||||
Ok(true)
|
||||
}],
|
||||
[Char(','), NONE, "transport_decrement", "decrement value at cursor", |transport: &mut TransportToolbar| {
|
||||
match transport.selected {
|
||||
TransportFocus::BPM => {
|
||||
transport.timebase.bpm.fetch_sub(1.0, Ordering::Relaxed);
|
||||
},
|
||||
TransportFocus::Quant => {
|
||||
transport.quant = prev_note_length(transport.quant);
|
||||
},
|
||||
TransportFocus::Sync => {
|
||||
transport.sync = prev_note_length(transport.sync);
|
||||
},
|
||||
};
|
||||
Ok(true)
|
||||
}],
|
||||
[Char(' '), NONE, "transport_play_toggle", "play or pause", |transport: &mut TransportToolbar| {
|
||||
transport.toggle_play()?;
|
||||
Ok(true)
|
||||
}],
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue