public byte[] Save() { byte[] result = new byte[15 + Data.Length]; BEBitConv.ToInt32(result, 0, Magic); BEBitConv.ToInt32(result, 4, Version); BEBitConv.ToInt16(result, 8, Resolution); MIDIConv.To3BE(result, 10, Tempo); BEBitConv.ToInt16(result, 13, Rhythm); Data.CopyTo(result, 15); return(result); }
public static void ToInt32(Endianness endianness, byte[] str, int offset, int value) { switch (endianness) { case Endianness.LittleEndian: BitConv.ToInt32(str, offset, value); break; case Endianness.BigEndian: BEBitConv.ToInt32(str, offset, value); break; default: throw new ArgumentException("Endianness is invalid."); } }