wip: refactor pt.21: api traits

This commit is contained in:
🪞👃🪞 2024-11-13 19:14:29 +01:00
parent b8708d6b2d
commit 029614631e
10 changed files with 626 additions and 490 deletions

View file

@ -24,7 +24,7 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for ArrangerApp {
let phrases = Arc::new(RwLock::new(PhrasePool { phrases: vec![] }));
let model = Arc::new(RwLock::new(Arranger {
arrangement: Arc::new(RwLock::new(ArrangerModel {
arrangement: Arc::new(RwLock::new(ArrangerModel {
jack: jack.clone(),
clock: clock.clone(),
name: Arc::new(RwLock::new(String::new())),
@ -32,13 +32,13 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for ArrangerApp {
tracks: vec![],
scenes: vec![],
})),
sequencer: Arc::new(RwLock::new(SequencerModel {
sequencer: Arc::new(RwLock::new(SequencerModel {
transport: transport.clone(),
phrases: phrases.clone(),
player: Arc::new(RwLock::new(MIDIPlayer::new(jack, &clock, "preview")?)),
})),
transport: transport.clone(),
phrases: phrases.clone(),
transport: transport.clone(),
phrases: phrases.clone(),
}));
Ok(Self::new(

View file

@ -43,15 +43,6 @@ impl TryFrom<&Arc<RwLock<JackClient>>> for SequencerApp {
}
}
pub struct SequencerModel {
/// State of the JACK transport.
pub transport: Arc<RwLock<tek_api::Transport>>,
/// State of the phrase pool.
pub phrases: Arc<RwLock<PhrasePool>>,
/// State of the phrase player.
pub player: Arc<RwLock<MIDIPlayer>>,
}
impl<E: Engine> From<&Arc<RwLock<SequencerModel>>> for SequencerView<E> {
fn from (model: &Arc<RwLock<SequencerModel>>) -> Self {
Self {