/// <summary> /// Writes to. /// </summary> /// <param name="writer">Writer.</param> public override void WriteTo(BufferedBinaryWriter writer) { base.WriteTo(writer); uint numBits = GetNumBits(); writer.WriteUBits(numBits - 2, 4); bool generalLineFlag = HasGeneralLine(); writer.WriteBoolean(generalLineFlag); if (generalLineFlag) { writer.WriteSBits(deltaX, numBits); writer.WriteSBits(deltaY, numBits); } else { bool vertLineFlag = HasVerticalLine(); writer.WriteBoolean(vertLineFlag); if (!vertLineFlag) writer.WriteSBits(deltaX, numBits); else writer.WriteSBits(deltaY, numBits); } }
/// <summary> /// Writes to. /// </summary> /// <param name="writer">Writer.</param> public override void WriteTo(BufferedBinaryWriter writer) { base.WriteTo(writer); writer.WriteBoolean(this.straightFlag); }
/// <summary> /// Writes to a binary writer. /// </summary> /// <param name="writer">Writer.</param> public virtual void WriteTo(BufferedBinaryWriter writer) { writer.WriteBoolean(typeFlag); }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { if (version < 3) return; MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf()); rh.WriteTo(w); w.Write(this.buttonId); w.WriteUBits(0, 7); w.WriteBoolean(trackAsMenu); w.Write(this.actionOffset); if (characters != null) { IEnumerator butts = characters.GetEnumerator(); while (butts.MoveNext()) { ((ButtonRecord)butts.Current).WriteTo(w, TagCodeEnum.DefineButton2); w.SynchBits(); } } w.Write((byte)0); if (actions != null) { for (int i = 0; i < actions.Count; i++) { ButtonCondaction buttCon = actions[i]; if (i == actions.Count - 1) w.Write((ushort)0); else { int size = buttCon.GetSizeOf(); w.Write((ushort)size); } buttCon.WriteTo(w); } } w.Flush(); // write to data array _data = m.ToArray(); }
/// <summary> /// Writes to. /// </summary> /// <param name="writer">Writer.</param> public override void WriteTo(BufferedBinaryWriter writer) { base.WriteTo(writer); bool stateNewStyle = HasNewStyle(); bool stateLineStyle = HasLineStyle(); bool stateFillStyle0 = HasFillStyle0(); bool stateFillStyle1 = HasFillStyle1(); bool stateMoveTo = HasMoveTo(); writer.WriteBoolean(stateNewStyle); writer.WriteBoolean(stateLineStyle); writer.WriteBoolean(stateFillStyle1); writer.WriteBoolean(stateFillStyle0); writer.WriteBoolean(stateMoveTo); if (stateMoveTo) { uint moveBitsNum = GetMoveNumBits(); writer.WriteUBits(moveBitsNum, 5); writer.WriteSBits(moveDeltaX, moveBitsNum); writer.WriteSBits(moveDeltaY, moveBitsNum); } if (stateFillStyle0) { writer.WriteUBits((uint)fillStyle0, ShapeWithStyle.NumFillBits); } if (stateFillStyle1) { writer.WriteUBits((uint)fillStyle1, ShapeWithStyle.NumFillBits); } if (stateLineStyle) { writer.WriteUBits((uint)lineStyle, ShapeWithStyle.NumLineBits); } if (stateNewStyle) { fillStyles.WriteTo(writer); lineStyles.WriteTo(writer); ShapeWithStyle.NumFillBits = BufferedBinaryWriter.GetNumBits((uint)fillStyles.Count); ShapeWithStyle.NumLineBits = BufferedBinaryWriter.GetNumBits((uint)lineStyles.Count); writer.WriteUBits(ShapeWithStyle.NumFillBits, 4); writer.WriteUBits(ShapeWithStyle.NumLineBits, 4); } }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { if (version < 6) return; MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf()); rh.WriteTo(w); w.Write(this.characterId); w.Write(this.numFrames); w.Write(this.width); w.Write(this.height); w.WriteUBits(0, 5); w.WriteUBits(videoFlagsDeblocking, 2); w.WriteBoolean(videoFlagsSmoothing); w.Write(this.codecId); w.Flush(); // write to data array _data = m.ToArray(); }
/// <summary> /// Writes to. /// </summary> /// <param name="binaryWriter">Binary writer.</param> public void WriteTo(BufferedBinaryWriter binaryWriter) { binaryWriter.SynchBits(); bool hasScale = HasScale(); bool hasRotate = HasRotate(); binaryWriter.WriteBoolean(hasScale); if (hasScale) { uint nScaleBits = GetScaleBitsNum(); binaryWriter.WriteUBits(nScaleBits, 5); binaryWriter.WriteFBits(matrix[0, 0], nScaleBits); binaryWriter.WriteFBits(matrix[1, 1], nScaleBits); } binaryWriter.WriteBoolean(hasRotate); if (hasRotate) { uint nRotateBits = GetRotateBitsNum(); binaryWriter.WriteUBits(nRotateBits, 5); binaryWriter.WriteFBits(matrix[1, 0], nRotateBits); binaryWriter.WriteFBits(matrix[0, 1], nRotateBits); } uint nTranslateBits = GetTranslateBitsNum(); binaryWriter.WriteUBits(nTranslateBits, 5); binaryWriter.WriteSBits((int)matrix[0, 2], nTranslateBits); binaryWriter.WriteSBits((int)matrix[1, 2], nTranslateBits); binaryWriter.SynchBits(); }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { if (version < 6) return; MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf(), true); rh.WriteTo(w); w.Write(this.fontId); w.Write((byte)this.fontName.Length); if (fontName != null) w.WriteString(this.fontName, (uint)this.fontName.Length); w.WriteUBits(0, 2); w.WriteBoolean(fontFlagsSmallText); w.WriteUBits(0, 2); w.WriteBoolean(fontFlagsItalic); w.WriteBoolean(fontFlagsBold); w.WriteBoolean(true); w.Write(this.languageCode); if (codeTable != null) { IEnumerator glyphs = codeTable.GetEnumerator(); while (glyphs.MoveNext()) w.Write((ushort)glyphs.Current); } w.Flush(); // write to data array _data = m.ToArray(); }
/// <summary> /// Writes to a binary writer. /// </summary> /// <param name="writer">Writer.</param> public void WriteTo(BufferedBinaryWriter writer) { writer.SynchBits(); writer.WriteBoolean(true); writer.WriteUBits(0, 3); bool styleFlagsHasFont = HasFont(); bool styleFlagsHasColor = HasColor(); bool styleFlagsHasYOffset = HasYOffset(); bool styleFlagsHasXOffset = HasXOffset(); writer.WriteBoolean(styleFlagsHasFont); writer.WriteBoolean(styleFlagsHasColor); writer.WriteBoolean(styleFlagsHasYOffset); writer.WriteBoolean(styleFlagsHasXOffset); if (styleFlagsHasFont) writer.Write(this.fontId); if (styleFlagsHasColor) this.textColor.WriteTo(writer); if (styleFlagsHasXOffset) writer.Write(this.xOffset); if (styleFlagsHasYOffset) writer.Write(this.yOffset); if (styleFlagsHasFont) writer.Write(this.textHeight); writer.Write((byte)this.glyphEntries.Count); if (this.glyphEntries != null) { IEnumerator glyphs = this.glyphEntries.GetEnumerator(); while (glyphs.MoveNext()) ((GlyphEntry)glyphs.Current).WriteTo(writer); } }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { if (version < 4) return; MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf()); rh.WriteTo(w); w.Write(this.characterId); this.rect.WriteTo(w); w.SynchBits(); if (initialText != null && initialText.Length > 0) w.WriteBoolean(true); else w.WriteBoolean(false); w.WriteBoolean(wordWrap); w.WriteBoolean(multiline); w.WriteBoolean(password); w.WriteBoolean(readOnly); if (textColor != null) w.WriteBoolean(true); else w.WriteBoolean(false); w.WriteBoolean(HasMaxLength); w.WriteBoolean(HasFont); w.SynchBits(); w.WriteBoolean(false); w.WriteBoolean(autoSize); w.WriteBoolean(HasLayout); w.WriteBoolean(noSelect); w.WriteBoolean(border); w.WriteBoolean(false); w.WriteBoolean(html); w.WriteBoolean(usedOutlines); if (HasFont) { w.Write(fontId); w.Write(fontHeight); } if (HasTextColor) textColor.WriteTo(w); if (HasMaxLength) w.Write(maxLenght); if (HasLayout) { w.Write(align); w.Write(leftMargin); w.Write(rightMargin); w.Write(indent); w.Write(leading); } w.WriteString(variableName); if (HasText) w.WriteString(initialText); w.Flush(); // write to data array _data = m.ToArray(); }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf()); rh.WriteTo(w); w.Write(fontId); w.Write((byte)fontName.Length); if (fontName != null) w.WriteString(fontName, (uint)fontName.Length); w.WriteUBits(0, 2); //reserved w.WriteBoolean(fontFlagsSmallText); w.WriteBoolean(fontFlagsShiftJIS); w.WriteBoolean(fontFlagsAINSI); w.WriteBoolean(fontFlagsItalic); w.WriteBoolean(fontFlagsBold); w.WriteBoolean(fontFlagsWildCodes); if (!fontFlagsWildCodes) { for (int i = 0; i < codeTable.Length; i++) w.Write((byte)codeTable[i]); } else { for (int i = 0; i < codeTable.Length; i++) w.Write((ushort)codeTable[i]); } w.Flush(); // write to data array _data = m.ToArray(); }
/// <summary> /// Writes to. /// </summary> /// <param name="writer">Writer.</param> public void WriteTo(BufferedBinaryWriter writer) { writer.SynchBits(); writer.WriteBoolean(hasAddTerms); writer.WriteBoolean(hasMultTerms); uint nBits = GetNumBits(); writer.WriteUBits(nBits, 4); if (hasMultTerms) { writer.WriteSBits(redMultTerms, nBits); writer.WriteSBits(greenMultTerms, nBits); writer.WriteSBits(blueMultTerms, nBits); } if (hasAddTerms) { writer.WriteSBits(redAddTerms, nBits); writer.WriteSBits(greenAddTerms, nBits); writer.WriteSBits(blueAddTerms, nBits); } writer.SynchBits(); }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { if (version < 2) return; bool fontFlagsWideOffsets = HasWideOffsets(); bool fontFlagsHasLayout = HasLayoutInfo(); bool fontFlagsWideCodes = HasWideCodes(version); if (glyphShapesTable != null) glyphShapesTable.IsWideCodes = fontFlagsWideCodes; MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf()); rh.WriteTo(w); w.Write(fontId); w.WriteBoolean(fontFlagsHasLayout); w.WriteBoolean(fontFlagsShiftJIS); w.WriteBoolean(fontFlagsSmallText); w.WriteBoolean(fontFlagsANSI); w.WriteBoolean(fontFlagsWideOffsets); w.WriteBoolean(fontFlagsWideCodes); w.WriteBoolean(fontFlagsItalic); w.WriteBoolean(fontFlagsBold); if (version >= 6) w.Write((byte)languageCode); else w.Write((byte)0); w.Write((byte)(this.fontName.Length + 1)); w.WriteString(fontName); int numGlyph = GetNumGlyphs(); w.Write((ushort)numGlyph); glyphShapesTable.IsWideCodes = fontFlagsWideCodes; //Create the codetableoffset and offsettable int offsetTableSize = 0; if (fontFlagsWideOffsets) offsetTableSize = (numGlyph * 4) + 4; else offsetTableSize = (numGlyph * 2) + 2; char[] codes = glyphShapesTable.GetOrderedCodes(); IEnumerator glyphsEnum = glyphShapesTable.GetOrderedGlyphs(codes).GetEnumerator(); int currentOffset = 0; for (int i = 0; glyphsEnum.MoveNext(); i++) { long offset = offsetTableSize + currentOffset; if (fontFlagsWideOffsets) w.Write((uint)offset); else w.Write((ushort)offset); ShapeRecordCollection shapes = ((ShapeRecordCollection)glyphsEnum.Current); int shapeSize = shapes.GetSizeOf(); currentOffset += shapeSize; } if (fontFlagsWideOffsets) w.Write((uint)(offsetTableSize + currentOffset)); else w.Write((ushort)(offsetTableSize + currentOffset)); glyphShapesTable.WriteTo(w); if (fontFlagsHasLayout) { w.Write(fontAscent); w.Write(fontDescent); w.Write(fontLeading); if (numGlyph > 0) { fontAdvanceTable.WriteTo(w); fontBoundsTable.WriteTo(w); if (version >= 7) w.Write((ushort)0); else fontKerningTable.WriteTo(w); } } w.Flush(); // write to data array _data = m.ToArray(); }
/// <summary> /// Writes to a binary writer. /// </summary> /// <param name="writer">Writer.</param> /// <param name="buttonType">Button type.</param> public void WriteTo(BufferedBinaryWriter writer, TagCodeEnum buttonType) { writer.WriteUBits(0, 4); writer.WriteBoolean(buttonStateHitTest); writer.WriteBoolean(buttonStateDown); writer.WriteBoolean(buttonStateOver); writer.WriteBoolean(buttonStateUp); writer.Write(this.characterId); writer.Write(this.placeDepth); if (placeMatrix != null) placeMatrix.WriteTo(writer); if (colorTransform != null && buttonType == TagCodeEnum.DefineButton2) colorTransform.WriteTo(writer); }
/// <summary> /// Writes to binary writer. /// </summary> /// <param name="writer">Writer.</param> public void WriteTo(BufferedBinaryWriter writer) { writer.WriteUBits(0, 2); writer.WriteBoolean(syncStop); writer.WriteBoolean(syncNoMultiple); writer.WriteBoolean(HasEnvelope); writer.WriteBoolean(HasLoops); writer.WriteBoolean(HasOutPoint); writer.WriteBoolean(HasInPoint); if (HasInPoint) writer.Write(inPoint); if (HasOutPoint) writer.Write(outPoint); if (HasLoops) writer.Write(loopCount); if (HasEnvelope) { writer.Write((byte)envelopeRecord.Count); IEnumerator envelopes = envelopeRecord.GetEnumerator(); while (envelopes.MoveNext()) ((SoundEnvelope)envelopes.Current).WriteTo(writer); } }
/// <summary> /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see> /// </summary> public override void UpdateData(byte version) { if (version < 3) return; MemoryStream m = new MemoryStream(); BufferedBinaryWriter w = new BufferedBinaryWriter(m); RecordHeader rh = new RecordHeader(TagCode, GetSizeOf(version)); rh.WriteTo(w); w.WriteBoolean(HasClipActions()); w.WriteBoolean(HasClipDepth()); w.WriteBoolean(HasName()); w.WriteBoolean(HasRatio()); w.WriteBoolean(HasColorTransform()); w.WriteBoolean(HasMatrix()); w.WriteBoolean(HasCharacter()); w.WriteBoolean(placeFlagMove); w.Write(depth); if (HasCharacter()) w.Write(characterId); if (HasMatrix()) matrix.WriteTo(w); if (HasColorTransform()) colorTransform.WriteTo(w); if (HasRatio()) w.Write((ushort)(ratio * 65535.0f)); if (HasName()) w.WriteString(name); if (HasClipDepth()) w.Write(clipDepth); if (HasClipActions()) { w.Write(actionHead); // ClipActionRecords foreach (ClipActionRec clpA in clipActions) w.Write(clpA.GetData(version)); // ClipActionRecords end if (version >= 6) w.Write((int)0); else w.Write((short)0); } w.Flush(); _data = m.ToArray(); }