wip: refactor pt.33: 33e; midi player traits

This commit is contained in:
🪞👃🪞 2024-11-15 00:44:51 +01:00
parent ce78b95d8a
commit cbbecc5aba
21 changed files with 522 additions and 487 deletions

View file

@ -0,0 +1,43 @@
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()
}
}