mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 20:26:42 +01:00
53 lines
1.2 KiB
Rust
53 lines
1.2 KiB
Rust
use crate::*;
|
|
|
|
pub trait TransportControl {
|
|
fn quant (&self) -> &Quantize;
|
|
fn bpm (&self) -> &BeatsPerMinute;
|
|
fn next_quant (&self) -> f64 {
|
|
next_note_length(self.quant().get() as usize) as f64
|
|
}
|
|
fn prev_quant (&self) -> f64 {
|
|
prev_note_length(self.quant().get() as usize) as f64
|
|
}
|
|
fn sync (&self) -> &LaunchSync;
|
|
fn next_sync (&self) -> f64 {
|
|
next_note_length(self.sync().get() as usize) as f64
|
|
}
|
|
fn prev_sync (&self) -> f64 {
|
|
prev_note_length(self.sync().get() as usize) as f64
|
|
}
|
|
}
|
|
|
|
impl TransportControl for TransportTui {
|
|
fn bpm (&self) -> &BeatsPerMinute {
|
|
self.bpm()
|
|
}
|
|
fn quant (&self) -> &Quantize {
|
|
self.quant()
|
|
}
|
|
fn sync (&self) -> &LaunchSync {
|
|
self.sync()
|
|
}
|
|
}
|
|
|
|
impl TransportControl for SequencerTui {
|
|
fn bpm (&self) -> &BeatsPerMinute {
|
|
self.bpm()
|
|
}
|
|
fn quant (&self) -> &Quantize {
|
|
self.quant()
|
|
}
|
|
fn sync (&self) -> &LaunchSync {
|
|
self.sync()
|
|
}
|
|
}
|
|
|
|
pub trait ArrangerControl {
|
|
fn selected (&self) -> ArrangerSelection;
|
|
}
|
|
|
|
impl ArrangerControl for ArrangerTui {
|
|
fn selected (&self) -> ArrangerSelection {
|
|
self.selected
|
|
}
|
|
}
|