aboutsummaryrefslogtreecommitdiff
path: root/src/itfile.rs
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2025-03-01 17:59:32 -0500
committerGravatar Chris Xiong <chirs241097@gmail.com> 2025-03-01 17:59:32 -0500
commit1b75753a315064a97c14742babcc783dedb7bf6f (patch)
treeda7e1cd781db56508ddcfd6200c2d95a798b13ef /src/itfile.rs
parent6e5dc4eaee1ffb9474390dbd62a6dae4b90d8f5f (diff)
downloadit2midi-1b75753a315064a97c14742babcc783dedb7bf6f.tar.xz
Random playback ordering fixes that I have forgotten about.
Diffstat (limited to 'src/itfile.rs')
-rw-r--r--src/itfile.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/itfile.rs b/src/itfile.rs
index 6d85a87..311207b 100644
--- a/src/itfile.rs
+++ b/src/itfile.rs
@@ -541,7 +541,8 @@ pub fn load(filename: &str) -> Result<ITFile, self::Error>
let patt_offsets: Vec<u32> = read_vec(&mut f, header.npatt as usize)?;
println!("orders {:?}", orders);
- println!("inst offsets {:x?}",inst_offsets);
+ println!("inst offsets {:x?}", inst_offsets);
+ println!("patt offsets {:x?}", patt_offsets);
let mut message = String::new();
if header.has_message()
@@ -601,6 +602,11 @@ pub fn load(filename: &str) -> Result<ITFile, self::Error>
let mut patterns: Vec<Patt> = Vec::new();
for patt_offset in patt_offsets
{
+ if patt_offset == 0
+ {
+ patterns.push(Patt{nrows: 0, nch: 64, data: vec![]});
+ continue;
+ }
f.seek(SeekFrom::Start(patt_offset.into()))?;
let patt = Patt::load(&mut f)?;
let dataend_off = f.stream_position()?;