예제 #1
0
        private void ReadChunk(ByteArray aByteArray)
        {
            string lId = aByteArray.ReadString(4);

            Logger.LogNormal("ID:" + lId);

            UInt32 lSize = aByteArray.ReadUInt32();

            int lPositionStart = aByteArray.Position;

            // Padding.
            if (lSize % 2 == 1)
            {
                if (lPositionStart + lSize <= aByteArray.Length && aByteArray.ReadByte(( int )(lPositionStart + lSize)) == 0x00)
                {
                    lSize++;

                    Logger.LogWarning("Padding:" + lSize);
                }

                aByteArray.SetPosition(lPositionStart);
            }

            FormChunk lRiffChunk = Construct(lId, lSize, aByteArray, this);

            chunkList.Add(lRiffChunk);
        }
예제 #2
0
        protected void OverrideChunk(FormChunk aChunk)
        {
            for (int i = 0; i < chunkList.Count; i++)
            {
                if (chunkList[i].id == aChunk.id)
                {
                    chunkList[i] = aChunk;

                    return;
                }
            }
        }
예제 #3
0
 protected void AddChunk(FormChunk aRiffChunk)
 {
     chunkList.Add(aRiffChunk);
 }