tek/crates/tek_api/src/model_transport.rs

43 lines
1 KiB
Rust

use crate::*;
pub struct TransportModel {
jack: Arc<RwLock<JackClient>>,
/// Current sample rate, tempo, and PPQ.
clock: Arc<Clock>,
/// JACK transport handle.
transport: jack::Transport,
/// Enable metronome?
metronome: bool,
}
impl HasJack for TransportModel {
fn jack (&self) -> &Arc<RwLock<JackClient>> {
&self.jack
}
}
impl HasClock for TransportModel {
fn clock (&self) -> &Arc<Clock> {
&self.clock
}
}
//impl TransportModelApi for TransportModel {
//fn transport (&self) -> &jack::Transport {
//&self.transport
//}
//fn metronome (&self) -> bool {
//self.metronome
//}
//}
impl Debug for TransportModel {
fn fmt (&self, f: &mut Formatter<'_>) -> std::result::Result<(), Error> {
f.debug_struct("transport")
.field("jack", &self.jack)
.field("transport", &"(JACK transport)")
.field("clock", &self.clock)
.field("metronome", &self.metronome)
.finish()
}
}