tek/crates/tek_sequencer/src/transport_handle.rs
2024-09-05 17:38:32 +03:00

67 lines
1.9 KiB
Rust

use crate::*;
impl Handle<Tui> for TransportToolbar {
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
Ok(
from.key(KeyCode::Right).does(||self.focus_next())?
||
from.key(KeyCode::Left).does(||self.focus_prev())?
||
from.key(KeyCode::Char(' ')).does(||self.toggle_play())?
)
}
}
impl Handle<Tui> for TransportPlayPauseButton {
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
Ok(None)
}
}
impl Handle<Tui> for TransportBPM {
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
//TransportFocus::BPM => {
//transport.timebase.bpm.fetch_add(1.0, Ordering::Relaxed);
//},
//TransportFocus::BPM => {
//transport.timebase.bpm.fetch_sub(1.0, Ordering::Relaxed);
//},
Ok(None)
}
}
impl Handle<Tui> for TransportQuantize {
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
//TransportFocus::Quant => {
//transport.quant.value = next_note_length(transport.quant)
//},
//TransportFocus::Quant => {
//transport.quant.value = prev_note_length(transport.quant);
//},
Ok(None)
}
}
impl Handle<Tui> for TransportSync {
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
//TransportFocus::Sync => {
//transport.sync.value = next_note_length(transport.sync)
//},
//TransportFocus::Sync => {
//transport.sync.value = prev_note_length(transport.sync);
//},
Ok(None)
}
}
impl Handle<Tui> for TransportClock {
fn handle (&mut self, from: &Tui) -> Perhaps<bool> {
//TransportFocus::Sync => {
//transport.sync.value = next_note_length(transport.sync)
//},
//TransportFocus::Sync => {
//transport.sync.value = prev_note_length(transport.sync);
//},
Ok(None)
}
}