mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 12:46:42 +01:00
extract _cmd modules
This commit is contained in:
parent
e20f195c20
commit
60c129d868
7 changed files with 270 additions and 267 deletions
|
|
@ -1,55 +1,4 @@
|
|||
use crate::*;
|
||||
impl TransportToolbar<Tui> {
|
||||
fn handle_play_pause (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
key!(KeyCode::Enter) => self.toggle_play().map(|_|())?,
|
||||
_ => return Ok(None)
|
||||
}
|
||||
Ok(Some(true))
|
||||
}
|
||||
fn handle_bpm (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
key!(KeyCode::Char(',')) => { self.bpm -= 1.0; },
|
||||
key!(KeyCode::Char('.')) => { self.bpm += 1.0; },
|
||||
key!(KeyCode::Char('<')) => { self.bpm -= 0.001; },
|
||||
key!(KeyCode::Char('>')) => { self.bpm += 0.001; },
|
||||
_ => return Ok(None)
|
||||
}
|
||||
Ok(Some(true))
|
||||
}
|
||||
fn handle_quant (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
key!(KeyCode::Char(',')) => { self.quant = prev_note_length(self.quant); },
|
||||
key!(KeyCode::Char('.')) => { self.quant = next_note_length(self.quant); },
|
||||
_ => return Ok(None)
|
||||
}
|
||||
return Ok(Some(true))
|
||||
}
|
||||
fn handle_sync (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
key!(KeyCode::Char(',')) => { self.sync = prev_note_length(self.sync); },
|
||||
key!(KeyCode::Char('.')) => { self.sync = next_note_length(self.sync); },
|
||||
_ => return Ok(None)
|
||||
}
|
||||
return Ok(Some(true))
|
||||
}
|
||||
}
|
||||
impl Handle<Tui> for TransportToolbar<Tui> {
|
||||
fn handle (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match from.event() {
|
||||
key!(KeyCode::Left) => { self.focus.prev(); },
|
||||
key!(KeyCode::Right) => { self.focus.next(); },
|
||||
_ => match self.focus {
|
||||
TransportToolbarFocus::PlayPause => return self.handle_play_pause(from),
|
||||
TransportToolbarFocus::Bpm => return self.handle_bpm(from),
|
||||
TransportToolbarFocus::Quant => return self.handle_quant(from),
|
||||
TransportToolbarFocus::Sync => return self.handle_sync(from),
|
||||
TransportToolbarFocus::Clock => {/*todo*/},
|
||||
}
|
||||
}
|
||||
Ok(Some(true))
|
||||
}
|
||||
}
|
||||
impl Content for TransportToolbar<Tui> {
|
||||
type Engine = Tui;
|
||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue