use crate::app::editor::EditorState;
const BPM_MIN: usize = 1;
const BPM_MAX: usize = 360;
impl EditorState {
pub fn set_bpm_target(&mut self, target: usize) {
self.bpm_target = target.clamp(BPM_MIN, BPM_MAX);
}
pub fn set_bpm(&mut self, bpm: usize) {
let c = bpm.clamp(BPM_MIN, BPM_MAX);
self.bpm = c;
self.bpm_target = c;
}
pub fn mod_bpm_target(&mut self, diff: isize) {
let new_target =
(self.bpm_target as isize + diff).clamp(BPM_MIN as isize, BPM_MAX as isize) as usize;
self.bpm_target = new_target;
}
pub fn mod_bpm(&mut self, diff: isize) {
let new_val = (self.bpm as isize + diff).clamp(BPM_MIN as isize, BPM_MAX as isize) as usize;
self.bpm = new_val;
self.bpm_target = new_val;
}
}