Exemplo n.º 1
0
        public int readFrame(MemoryStream ms) //rewritten
        {
            int        frameContentsLength = 0;
            ID3v2frame currentFrame        = newFrameStruct();

            if (Convert.ToByte(ms.ReadByte()) == 0x0)
            {
                return(0);
            }
            else
            {
                ms.Seek(-1, SeekOrigin.Current);
            }
            ms.Read(currentFrame.type, 0, frameTypeAndSizeLength);
            ms.Read(currentFrame.size, 0, frameTypeAndSizeLength);
            for (int i = frameTypeAndSizeLength - 1, shift = 0; i >= 0; i--, shift += 8)
            {
                frameContentsLength = frameContentsLength | ((int)currentFrame.size[i] << shift);
            }
            currentFrame.flags = null;
            if (version > 2)
            {
                ms.Read(currentFrame.flags, 0, 2);
            }
            Console.WriteLine(System.Text.Encoding.ASCII.GetString(currentFrame.type));
            Console.WriteLine(frameContentsLength);
            Array.Resize <byte>(ref currentFrame.contents, frameContentsLength);
            ms.Read(currentFrame.contents, 0, frameContentsLength);
            frames.Add(currentFrame);
            return(frameHeaderLength + frameContentsLength);
        }
Exemplo n.º 2
0
        ID3v2frame newFrameStruct()
        {
            ID3v2frame myFrame = new ID3v2frame();

            myFrame.type = new byte[frameTypeAndSizeLength];
            myFrame.size = new byte[frameTypeAndSizeLength];
            if (version > 2)
            {
                myFrame.flags = new byte[2];
            }
            else
            {
                myFrame.flags = null;
            }
            myFrame.contents = new byte[2048];
            return(myFrame);
        }