SynchBits() public method

Synchronizes the bits.
public SynchBits ( ) : void
return void
        /// <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>
        /// 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.characterId);

            w.SynchBits();
            if (this.startBounds != null)
                this.startBounds.WriteTo(w);
            w.SynchBits();
            if (this.endBounds != null)
                this.endBounds.WriteTo(w);

            w.Write(this.offset);
            if (this.morphFillStyles != null)
                this.morphFillStyles.WriteTo(w);
            if (this.morphLineStyles != null)
                this.morphLineStyles.WriteTo(w);

            ShapeWithStyle.NumFillBits = (uint)morphFillStyles.Count;
            ShapeWithStyle.NumLineBits = (uint)morphLineStyles.Count;

            if (this.startEdges != null)
                this.startEdges.WriteTo(w);
            if (this.endEdges != null)
                this.endEdges.WriteTo(w);

            w.Flush();
            // write to data array
            _data = m.ToArray();
        }
Beispiel #3
0
 /// <summary>
 /// Writes to.
 /// </summary>
 /// <param name="writer">Writer.</param>
 public void WriteTo(BufferedBinaryWriter writer)
 {
     IEnumerator rects = this.GetEnumerator();
     while (rects.MoveNext())
     {
         writer.SynchBits();
         ((Rect)rects.Current).WriteTo(writer);
     }
 }
Beispiel #4
0
        /// <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>
        /// Writes to a binary writer.
        /// </summary>
        /// <param name="writer">Writer.</param>
        public void WriteTo(BufferedBinaryWriter writer)
        {
            writer.SynchBits();
            writer.WriteUBits(ShapeWithStyle.NumFillBits, 4);
            writer.WriteUBits(ShapeWithStyle.NumLineBits, 4);

            ShapeRecord lastShape = this.GetLastOne();
            if (lastShape != null && !(lastShape is EndShapeRecord))
                this.Add(new EndShapeRecord());

            IEnumerator shapes = this.GetEnumerator();
            while (shapes.MoveNext())
                ((ShapeRecord)shapes.Current).WriteTo(writer);
        }
Beispiel #6
0
        /// <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();
        }
Beispiel #8
0
        /// <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)
        {
            MemoryStream m = new MemoryStream();
            BufferedBinaryWriter w = new BufferedBinaryWriter(m);

            RecordHeader rh = new RecordHeader(TagCode, GetSizeOf());
            rh.WriteTo(w);

            w.WriteUBits(0, 4);
            w.WriteUBits(playbackSoundRate, 2);
            w.WriteUBits(playbackSoundSize, 1);
            w.WriteUBits(playbackSoundType, 1);
            w.SynchBits();
            w.WriteUBits(streamSoundCompression, 4);
            w.WriteUBits(streamSoundRate, 2);
            w.WriteUBits(streamSoundSize, 1);
            w.WriteUBits(streamSoundType, 1);

            w.Write(streamSoundSampleCount);
            if (streamSoundCompression == 2)
                w.Write(latencySeek);

            w.Flush();
            // write to data array
            _data = m.ToArray();
        }