mirror of
https://github.com/storytold/soundcraft.git
synced 2026-11-11 16:35:42 -06:00
Merge pull request #1025 from Silvertree2010/fix/h2054-session-text-export-counts-midi
Count only audio-track clips in session text export
This commit is contained in:
@@ -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::<usize>(), s.sources.len()));
|
||||
s.tracks.iter().filter(|t| t.kind == soundcraft_model::TrackKind::Audio).map(|t| t.clips().len()).sum::<usize>(), 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();
|
||||
|
||||
Reference in New Issue
Block a user