refactor midi player api

This commit is contained in:
🪞👃🪞 2024-11-27 00:15:43 +01:00
parent a26a1f2967
commit 71e19c9800
11 changed files with 159 additions and 183 deletions

View file

@ -136,9 +136,9 @@ pub fn arranger_content_vertical (
let name = format!("{}", &name[0..max_w]);
let name = TuiStyle::bold(name, true);
// beats elapsed
let elapsed = if let Some((_, Some(phrase))) = track.play_phrase().as_ref() {
let elapsed = if let Some((_, Some(phrase))) = track.player.play_phrase().as_ref() {
let length = phrase.read().unwrap().length;
let elapsed = track.pulses_since_start().unwrap();
let elapsed = track.player.pulses_since_start().unwrap();
let elapsed = timebase.format_beats_1_short(
(elapsed as usize % length) as f64
);
@ -147,7 +147,7 @@ pub fn arranger_content_vertical (
String::from("")
};
// beats until switchover
let until_next = track.next_phrase().as_ref().map(|(t, _)|{
let until_next = track.player.next_phrase().as_ref().map(|(t, _)|{
let target = t.pulse.get();
let current = current.pulse.get();
if target > current {
@ -158,12 +158,12 @@ pub fn arranger_content_vertical (
}
}).unwrap_or(String::from(""));
// name of active MIDI input
let input = format!("▎>{}", track.midi_ins().get(0)
let input = format!("▎>{}", track.player.midi_ins().get(0)
.map(|port|port.short_name())
.transpose()?
.unwrap_or("(none)".into()));
// name of active MIDI output
let output = format!("▎<{}", track.midi_outs().get(0)
let output = format!("▎<{}", track.player.midi_outs().get(0)
.map(|port|port.short_name())
.transpose()?
.unwrap_or("(none)".into()));
@ -196,7 +196,7 @@ pub fn arranger_content_vertical (
let color = phrase.read().unwrap().color;
add(&name.as_str()[0..max_w].push_x(1).fixed_x(w as u16))?;
bg = color.dark.rgb;
if let Some((_, Some(ref playing))) = track.play_phrase() {
if let Some((_, Some(ref playing))) = track.player.play_phrase() {
if *playing.read().unwrap() == *phrase.read().unwrap() {
bg = color.light.rgb
}