trace
This commit is contained in:
@@ -6,7 +6,7 @@ use std::time::Duration;
|
||||
|
||||
use super::LinkState;
|
||||
use crate::config::{MAX_BANKS, MAX_PATTERNS};
|
||||
use crate::model::{ExecutionTrace, Rng, ScriptEngine, SourceSpan, StepContext, Variables};
|
||||
use crate::model::{ExecutionTrace, Rng, ScriptEngine, StepContext, Variables};
|
||||
use crate::state::LiveKeyState;
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
|
||||
@@ -87,13 +87,13 @@ pub struct ActivePatternState {
|
||||
#[derive(Clone, Default)]
|
||||
pub struct SharedSequencerState {
|
||||
pub active_patterns: Vec<ActivePatternState>,
|
||||
pub step_traces: HashMap<(usize, usize, usize), Vec<SourceSpan>>,
|
||||
pub step_traces: HashMap<(usize, usize, usize), ExecutionTrace>,
|
||||
pub event_count: usize,
|
||||
}
|
||||
|
||||
pub struct SequencerSnapshot {
|
||||
pub active_patterns: Vec<ActivePatternState>,
|
||||
pub step_traces: HashMap<(usize, usize, usize), Vec<SourceSpan>>,
|
||||
pub step_traces: HashMap<(usize, usize, usize), ExecutionTrace>,
|
||||
pub event_count: usize,
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ impl SequencerSnapshot {
|
||||
.map(|p| p.iter)
|
||||
}
|
||||
|
||||
pub fn get_trace(&self, bank: usize, pattern: usize, step: usize) -> Option<&Vec<SourceSpan>> {
|
||||
pub fn get_trace(&self, bank: usize, pattern: usize, step: usize) -> Option<&ExecutionTrace> {
|
||||
self.step_traces.get(&(bank, pattern, step))
|
||||
}
|
||||
}
|
||||
@@ -302,7 +302,7 @@ fn sequencer_loop(
|
||||
let mut audio_state = AudioState::new();
|
||||
let mut pattern_cache = PatternCache::new();
|
||||
let mut runs_counter = RunsCounter::new();
|
||||
let mut step_traces: HashMap<(usize, usize, usize), Vec<SourceSpan>> = HashMap::new();
|
||||
let mut step_traces: HashMap<(usize, usize, usize), ExecutionTrace> = HashMap::new();
|
||||
let mut event_count: usize = 0;
|
||||
|
||||
loop {
|
||||
@@ -409,8 +409,8 @@ fn sequencer_loop(
|
||||
script_engine.evaluate_with_trace(script, &ctx, &mut trace)
|
||||
{
|
||||
step_traces.insert(
|
||||
(active.bank, active.pattern, step_idx),
|
||||
std::mem::take(&mut trace.selected_spans),
|
||||
(active.bank, active.pattern, source_idx),
|
||||
std::mem::take(&mut trace),
|
||||
);
|
||||
for cmd in cmds {
|
||||
match audio_tx.try_send(AudioCommand::Evaluate(cmd)) {
|
||||
|
||||
Reference in New Issue
Block a user