Exemple #1
0
        protected void WriteBits(Stream stream, params string[] bits)
        {
            var writer = new SwfStreamWriter(stream);

            foreach (var bitString in bits)
            {
                foreach (var ch in bitString)
                {
                    switch (ch)
                    {
                    case '0':
                        writer.WriteBit(false);
                        break;

                    case '1':
                        writer.WriteBit(true);
                        break;

                    case '.':
                        break;

                    default:
                        throw new InvalidOperationException("Invalid character " + ch);
                    }
                }
            }
            writer.FlushBits();
            stream.Seek(0, SeekOrigin.Begin);
        }
Exemple #2
0
        public void ReadUnsignedBits2Test()
        {
            var mem    = new MemoryStream();
            var writer = new SwfStreamWriter(mem);

            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);

            mem.Seek(0, SeekOrigin.Begin);
            var reader = new SwfStreamReader(mem);

            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());

            Assert.AreEqual(true, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(true, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
        }
Exemple #3
0
        public void WriteUnsignedBitsTest()
        {
            var mem    = new MemoryStream();
            var writer = new SwfStreamWriter(mem);

            writer.WriteUnsignedBits(0x2ab, 10);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(true);

            mem.Seek(0, SeekOrigin.Begin);
            Assert.AreEqual(0xaa, mem.ReadByte());
            Assert.AreEqual(0xc3, mem.ReadByte());

            Assert.AreEqual(mem.Length, mem.Position, "Should reach end of the stream");
        }
Exemple #4
0
        public void WriteByteAfterBitsTest()
        {
            var mem    = new MemoryStream();
            var writer = new SwfStreamWriter(mem);

            writer.WriteBit(true);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);

            writer.WriteByte(0xc3);

            mem.Seek(0, SeekOrigin.Begin);

            Assert.AreEqual(0xa8, mem.ReadByte(), "Byte 0");
            Assert.AreEqual(0xc3, mem.ReadByte(), "Byte 1");

            Assert.AreEqual(mem.Length, mem.Position, "Should reach end of the stream");
        }
        public void WriteByteAfterBitsTest()
        {
            var mem = new MemoryStream();
            var writer = new SwfStreamWriter(mem);

            writer.WriteBit(true);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);

            writer.WriteByte(0xc3);

            mem.Seek(0, SeekOrigin.Begin);

            Assert.AreEqual(0xa8, mem.ReadByte(), "Byte 0");
            Assert.AreEqual(0xc3, mem.ReadByte(), "Byte 1");

            Assert.AreEqual(mem.Length, mem.Position, "Should reach end of the stream");
        }
Exemple #6
0
        public void ReadUnsignedBits2Test()
        {
            var mem = new MemoryStream();
            var writer = new SwfStreamWriter(mem);

            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(false);

            mem.Seek(0, SeekOrigin.Begin);
            var reader = new SwfStreamReader(mem);

            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());

            Assert.AreEqual(true, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
            Assert.AreEqual(true, reader.ReadBit());
            Assert.AreEqual(false, reader.ReadBit());
        }
Exemple #7
0
        public void WriteUnsignedBitsTest()
        {
            var mem = new MemoryStream();
            var writer = new SwfStreamWriter(mem);
            writer.WriteUnsignedBits(0x2ab, 10);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(false);
            writer.WriteBit(true);
            writer.WriteBit(true);

            mem.Seek(0, SeekOrigin.Begin);
            Assert.AreEqual(0xaa, mem.ReadByte());
            Assert.AreEqual(0xc3, mem.ReadByte());

            Assert.AreEqual(mem.Length, mem.Position, "Should reach end of the stream");
        }
Exemple #8
0
 protected void WriteBits(Stream stream, params string[] bits)
 {
     var writer = new SwfStreamWriter(stream);
     foreach (var bitString in bits) {
         foreach (var ch in bitString) {
             switch (ch) {
                 case '0':
                     writer.WriteBit(false);
                     break;
                 case '1':
                     writer.WriteBit(true);
                     break;
                 case '.':
                     break;
                 default:
                     throw new InvalidOperationException("Invalid character " + ch);
             }
         }
     }
     writer.FlushBits();
     stream.Seek(0, SeekOrigin.Begin);
 }