Clean plugins

This commit is contained in:
2026-02-21 01:27:32 +01:00
parent e9bca2548c
commit 77d5235d92
12 changed files with 284 additions and 167 deletions

View File

@@ -158,12 +158,17 @@ pub struct SharedSequencerState {
pub active_patterns: Vec<ActivePatternState>,
pub step_traces: Arc<StepTracesMap>,
pub event_count: usize,
pub tempo: f64,
pub beat: f64,
}
#[allow(dead_code)]
pub struct SequencerSnapshot {
pub active_patterns: Vec<ActivePatternState>,
step_traces: Arc<StepTracesMap>,
pub event_count: usize,
pub tempo: f64,
pub beat: f64,
}
impl From<&SharedSequencerState> for SequencerSnapshot {
@@ -172,6 +177,8 @@ impl From<&SharedSequencerState> for SequencerSnapshot {
active_patterns: s.active_patterns.clone(),
step_traces: Arc::clone(&s.step_traces),
event_count: s.event_count,
tempo: s.tempo,
beat: s.beat,
}
}
}
@@ -183,6 +190,8 @@ impl SequencerSnapshot {
active_patterns: Vec::new(),
step_traces: Arc::new(HashMap::new()),
event_count: 0,
tempo: 0.0,
beat: 0.0,
}
}
@@ -222,11 +231,7 @@ pub struct SequencerHandle {
impl SequencerHandle {
pub fn snapshot(&self) -> SequencerSnapshot {
let state = self.shared_state.load();
SequencerSnapshot {
active_patterns: state.active_patterns.clone(),
step_traces: Arc::clone(&state.step_traces),
event_count: state.event_count,
}
SequencerSnapshot::from(state.as_ref())
}
pub fn swap_audio_channel(&self) -> Receiver<AudioCommand> {
@@ -563,6 +568,8 @@ pub struct SequencerState {
cc_access: Option<Arc<dyn CcAccess>>,
muted: std::collections::HashSet<(usize, usize)>,
soloed: std::collections::HashSet<(usize, usize)>,
last_tempo: f64,
last_beat: f64,
}
impl SequencerState {
@@ -592,6 +599,8 @@ impl SequencerState {
cc_access,
muted: std::collections::HashSet::new(),
soloed: std::collections::HashSet::new(),
last_tempo: 0.0,
last_beat: 0.0,
}
}
@@ -701,6 +710,8 @@ impl SequencerState {
pub fn tick(&mut self, input: TickInput) -> TickOutput {
self.process_commands(input.commands);
self.last_tempo = input.tempo;
self.last_beat = input.beat;
if !input.playing {
return self.tick_paused();
@@ -1092,6 +1103,8 @@ impl SequencerState {
.collect(),
step_traces: Arc::clone(&self.step_traces),
event_count: self.event_count,
tempo: self.last_tempo,
beat: self.last_beat,
}
}
}