mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 04:06:45 +01:00
wip: refactor pt.6, fixed tek_api
This commit is contained in:
parent
5df08409e5
commit
869d92110d
29 changed files with 1678 additions and 1679 deletions
|
|
@ -43,7 +43,7 @@ impl ArrangerCli {
|
|||
Some(scene_color_1.mix(scene_color_2, i as f32 / self.scenes as f32))
|
||||
)?;
|
||||
}
|
||||
Ok(ArrangerView::new(
|
||||
Ok(ArrangerApp::new(
|
||||
jack,
|
||||
self.transport.then_some(transport),
|
||||
arrangement,
|
||||
|
|
@ -53,33 +53,3 @@ impl ArrangerCli {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl Audio for ArrangerView {
|
||||
fn process (&mut self, client: &Client, scope: &ProcessScope) -> Control {
|
||||
if let Some(ref transport) = self.transport {
|
||||
transport.write().unwrap().process(client, scope);
|
||||
}
|
||||
let Arrangement { scenes, ref mut tracks, selected, .. } = &mut self.arrangement;
|
||||
for track in tracks.iter_mut() {
|
||||
track.player.process(client, scope);
|
||||
}
|
||||
if let ArrangementFocus::Clip(t, s) = selected {
|
||||
if let Some(Some(Some(phrase))) = scenes.get(*s).map(|scene|scene.clips.get(*t)) {
|
||||
if let Some(track) = tracks.get(*t) {
|
||||
if let Some((ref started_at, Some(ref playing))) = track.player.phrase {
|
||||
let phrase = phrase.read().unwrap();
|
||||
if *playing.read().unwrap() == *phrase {
|
||||
let pulse = self.clock.current.pulse.get();
|
||||
let start = started_at.pulse.get();
|
||||
let now = (pulse - start) % phrase.length as f64;
|
||||
self.editor.now.set(now);
|
||||
return Control::Continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
self.editor.now.set(0.);
|
||||
Control::Continue
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ impl SequencerCli {
|
|||
//phrase.write().unwrap().length = length;
|
||||
//}
|
||||
}
|
||||
Ok(SequencerView {
|
||||
Ok(SequencerApp {
|
||||
jack: jack.clone(),
|
||||
focus_cursor: (1, 1),
|
||||
entered: false,
|
||||
|
|
@ -45,14 +45,3 @@ impl SequencerCli {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
/// JACK process callback for sequencer app
|
||||
impl Audio for SequencerView {
|
||||
fn process (&mut self, client: &Client, scope: &ProcessScope) -> Control {
|
||||
if let Some(ref transport) = self.transport {
|
||||
transport.write().unwrap().process(client, scope);
|
||||
}
|
||||
self.player.process(client, scope);
|
||||
Control::Continue
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue