mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-08 04:36:45 +01:00
add const PPQ = 96
This commit is contained in:
parent
0da54db5e0
commit
11a66ee415
5 changed files with 28 additions and 20 deletions
|
|
@ -133,15 +133,14 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
type Engine = Tui;
|
||||
fn content (&self) -> impl Widget<Engine = Tui> {
|
||||
let Self(state, factor) = self;
|
||||
let ppq = 96;
|
||||
let (cols, rows) = if *factor == 0 {(
|
||||
track_clip_name_lengths(state.tracks.as_slice()),
|
||||
scene_ppqs(state.tracks.as_slice(), state.scenes.as_slice()),
|
||||
)} else {(
|
||||
track_clip_name_lengths(state.tracks.as_slice()),
|
||||
(0..=state.scenes.len()).map(|i|(factor*ppq, factor*ppq*i)).collect::<Vec<_>>(),
|
||||
(0..=state.scenes.len()).map(|i|(factor*PPQ, factor*PPQ*i)).collect::<Vec<_>>(),
|
||||
)};
|
||||
//let height = rows.last().map(|(w,y)|(y+w)/ppq).unwrap_or(16);
|
||||
//let height = rows.last().map(|(w,y)|(y+w)/PPQ).unwrap_or(16);
|
||||
let tracks: &[Sequencer<Tui>] = state.tracks.as_ref();
|
||||
let scenes: &[Scene] = state.scenes.as_ref();
|
||||
let offset = 4 + scene_name_max_len(scenes) as u16;
|
||||
|
|
@ -181,7 +180,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> {
|
|||
}).fixed_xy(w, h);
|
||||
|
||||
let tracks_clips = col!((scene, (pulses, _)) in scenes.iter().zip(rows) => {
|
||||
let height = 1.max((pulses / 96) as u16);
|
||||
let height = 1.max((pulses / PPQ) as u16);
|
||||
let playing = scene.is_playing(tracks);
|
||||
Stack::right(move |add| {
|
||||
add(&scene_name(scene, playing, height))?;
|
||||
|
|
@ -222,7 +221,7 @@ pub fn track_clip_name_lengths <E: Engine> (tracks: &[Sequencer<E>]) -> Vec<(usi
|
|||
pub fn scene_ppqs <E: Engine> (tracks: &[Sequencer<E>], scenes: &[Scene]) -> Vec<(usize, usize)> {
|
||||
let mut total = 0;
|
||||
let mut scenes: Vec<(usize, usize)> = scenes.iter().map(|scene|{
|
||||
let pulses = scene.pulses(tracks).max(96);
|
||||
let pulses = scene.pulses(tracks).max(PPQ);
|
||||
total = total + pulses;
|
||||
(pulses, total - pulses)
|
||||
}).collect();
|
||||
|
|
@ -249,7 +248,7 @@ impl<'a> Widget for VerticalArrangerGrid<'a> {
|
|||
}
|
||||
}
|
||||
for (_, y) in rows.iter() {
|
||||
let y = area.y() + (*y / 96) as u16 + 1;
|
||||
let y = area.y() + (*y / PPQ) as u16 + 1;
|
||||
if y >= to.buffer.area.height {
|
||||
break
|
||||
}
|
||||
|
|
@ -278,15 +277,15 @@ impl<'a> Widget for VerticalArrangerCursor<'a> {
|
|||
];
|
||||
let get_scene_area = |s: usize| [
|
||||
area.x(),
|
||||
2 + area.y() + (rows[s].1 / 96) as u16,
|
||||
2 + area.y() + (rows[s].1 / PPQ) as u16,
|
||||
area.w(),
|
||||
(rows[s].0 / 96) as u16
|
||||
(rows[s].0 / PPQ) as u16
|
||||
];
|
||||
let get_clip_area = |t: usize, s: usize| [
|
||||
offset + area.x() + cols[t].1 as u16 - 1,
|
||||
2 + area.y() + (rows[s].1 / 96) as u16,
|
||||
2 + area.y() + (rows[s].1 / PPQ) as u16,
|
||||
cols[t].0 as u16,
|
||||
(rows[s].0 / 96) as u16
|
||||
(rows[s].0 / PPQ) as u16
|
||||
];
|
||||
let mut track_area: Option<[u16;4]> = None;
|
||||
let mut scene_area: Option<[u16;4]> = None;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue