mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 04:36:45 +01:00
43 lines
1 KiB
Rust
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()
|
|
}
|
|
}
|