public bool LoadSeq(ref Sequences seqs) { short i, j; int size; byte b; byte[] buffer = new byte[256]; short m16_32; if (sizes[2] > seqs.n) { return(false); } int[] s_offsets = new int[sizes[2] + 1 + 1]; // seq-Offsets seqs.clear(); switch (type1) { case "COSO": case "MMME": { readOffsets(offsets[2], ref s_offsets, sizes[2]); s_offsets[sizes[2] + 1] = offsets[3]; // end of last seq is start of tracks break; } case "TFMX": { fs.Position = 32 + 64 * (sizes[0] + 1) + 64 * (sizes[1] + 1); for (i = 0; i <= sizes[2] + 1; i++) // seqs always 64 Bytes long { s_offsets[i] = i * 64; } break; } } for (i = 0; i <= sizes[2]; i++) { for (j = 0; j <= s_offsets[i + 1] - s_offsets[i] - 1; j++) { b = br.ReadByte(); // seqs.Seq(i, j) = b buffer[j] = b; } seqs.depack(i, buffer); } // If type1 = "TFMX" Then // seqs.compress(sizes(2)) // End If return(true); }
public void init(string f, ref Instruments i, ref Sequences se, ref Shapes sh, ref Tracks t) { switch (f) { case "TFMX": { ftype = _fType.TFMX; break; } case "MMME": { ftype = _fType.MMME; break; } } instr = i; seq = se; shape = sh; track = t; }