From 8f23afe4629e025d27333b0fc3faf6cd5568ebd0 Mon Sep 17 00:00:00 2001 From: NetterSilver <133535268+Silvertree2010@users.noreply.github.com> Date: Sat, 24 Oct 2026 17:00:54 +0200 Subject: [PATCH] Count only audio-track clips in session text export Found while testing crates/engine/src/inspect.rs:116-120 (session_text) Co-Authored-By: Claude Haiku 5.5 Co-Authored-By: Claude Sonnet 5.5 --- crates/engine/src/inspect.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/engine/src/inspect.rs b/crates/engine/src/inspect.rs index 9084a25b..6869c1e8 100644 --- a/crates/engine/src/inspect.rs +++ b/crates/engine/src/inspect.rs @@ -115,7 +115,7 @@ pub fn session_text(e: &Engine) -> String { out.push_str(&format!("SESSION NAME:\t{}\nSAMPLE RATE:\t{}\nBIT DEPTH:\t{:?}\nTIMECODE FORMAT:\t{}\n# OF AUDIO TRACKS:\t{}\n# OF AUDIO CLIPS:\t{}\n# OF AUDIO FILES:\t{}\n\n", s.name, s.sample_rate.hz(), s.bit_depth, s.frame_rate.label(), s.tracks.iter().filter(|t| t.kind == soundcraft_model::TrackKind::Audio).count(), - s.tracks.iter().map(|t| t.clips().len()).sum::(), s.sources.len())); + s.tracks.iter().filter(|t| t.kind == soundcraft_model::TrackKind::Audio).map(|t| t.clips().len()).sum::(), s.sources.len())); out.push_str("F I L E S I N S E S S I O N\nFilename\tLocation\n"); for src in &s.sources { out.push_str(&format!("{}\t{}\n", src.name, src.path)); @@ -156,6 +156,19 @@ mod tests { use super::*; use serde_json::json; + #[test] + fn session_text_counts_only_audio_track_clips() { + let mut e = Engine::default(); + let t = e.execute("track.new", &json!({"kind": "midi"})).unwrap()["tracks"][0].clone(); + e.execute("midi.new_clip", &json!({"track": t, "start": 0, "length": 48000})).unwrap(); + let text = session_text(&e); + assert!(text.contains("# OF AUDIO CLIPS:\t0\n"), "{text}"); + + let demo = crate::demo::demo_engine(); + let n: usize = demo.session().tracks.iter().filter(|t| t.kind == soundcraft_model::TrackKind::Audio).map(|t| t.clips().len()).sum(); + assert!(session_text(&demo).contains(&format!("# OF AUDIO CLIPS:\t{n}\n"))); + } + #[test] fn sources_report_whether_audio_is_loaded() { let mut e = crate::demo::demo_engine();