public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt16(GraphicsMode); writer.WriteUInt16(OpColor[0]); writer.WriteUInt16(OpColor[1]); writer.WriteUInt16(OpColor[2]); } }
public void Write(BoxWriter writer, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum) { if (version == 1) { ulong tmpTime = Time - BaseTime; writer.WriteUInt64(tmpTime); writer.WriteUInt64(MoofOffset); } else { writer.WriteUInt32((uint)Time); writer.WriteUInt32((uint)MoofOffset); } switch (((LengthSizeOfTrafNum + 1) * 8)) { case 0x18: //this.TrafNumber = reader.ReadUInt24(); writer.WriteUInt24(TrafNumber); break; case 0x20: //this.TrafNumber = reader.ReadUInt32(); writer.WriteUInt32(TrafNumber); break; case 8: //this.TrafNumber = reader.ReadByte(); writer.Write((byte)TrafNumber); break; case 0x10: //this.TrafNumber = reader.ReadUInt16(); writer.WriteUInt16((UInt16)TrafNumber); break; } switch (((LengthSizeOfTrunNum + 1) * 8)) { case 0x18: //this.TrunNumber = reader.ReadUInt24(); writer.WriteUInt24(TrunNumber); break; case 0x20: //this.TrunNumber = reader.ReadUInt32(); writer.WriteUInt32(TrunNumber); break; case 8: //this.TrunNumber = reader.ReadByte(); writer.Write((byte)TrunNumber); break; case 0x10: //this.TrunNumber = reader.ReadUInt16(); writer.WriteUInt16((UInt16)TrunNumber); break; } switch (((LengthSizeOfSampleNum + 1) * 8)) { case 8: //this.SampleNumber = reader.ReadByte(); writer.Write((byte)SampleNumber); return; case 0x10: //this.SampleNumber = reader.ReadUInt16(); writer.WriteUInt16((UInt16)SampleNumber); break; case 0x18: //this.SampleNumber = reader.ReadUInt24(); writer.WriteUInt24(SampleNumber); return; case 0x20: //this.SampleNumber = reader.ReadUInt32(); writer.WriteUInt32(SampleNumber); return; } }