SerahToolkit_SharpGL.FF8_Core.PlayMovie.Read C# (CSharp) Method

Read() public method

public Read ( ) : void
return void
        public void Read()
        {
            if(path == null)
                return;
            FileStream fs = new FileStream(path, FileMode.Open,FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);

            uint n = 0;
            uint len = (uint)fs.Length;
            nClips = 0;
            while (n < len)
            {
                fs.Seek(n, SeekOrigin.Begin);
                uint header = br.ReadUInt32() & 0xFFFFFF;
                if (header != 0x503846)
                    return;
                fs.Seek(2, SeekOrigin.Current);
                _mClips[nClips].Frames = br.ReadUInt16();
                n += 8;
                fs.Seek(n+8, SeekOrigin.Begin);
                fs.Seek(_mClips[nClips].Frames*0x2C+(0x2C-8), SeekOrigin.Current);
                header = br.ReadUInt32() & 0xFFFFFF;
                if (header != 0x4B4942)
                    return;

                _mClips[nClips].Resolutions[0].Offset = (uint)fs.Position-4;
                _mClips[nClips].Resolutions[0].Size = br.ReadUInt32();
                _mClips[nClips].Frames = br.ReadUInt32();
                _mClips[nClips].Resolutions[0].Size += 8;
                n = _mClips[nClips].Resolutions[0].Size + _mClips[nClips].Resolutions[0].Offset;

                fs.Seek(n, SeekOrigin.Begin);
                header = br.ReadUInt32() & 0xFFFFFF;
                if(header != 0x4B4942)
                    return;
                _mClips[nClips].Resolutions[1].Offset = _mClips[nClips].Resolutions[0].Offset + _mClips[nClips].Resolutions[0].Size;
                _mClips[nClips].Resolutions[1].Size = br.ReadUInt32();
                _mClips[nClips].Resolutions[1].Size += 8;
                n += _mClips[nClips].Resolutions[1].Size;
                nClips++;
            }
            bSuccess = true;
            br.Dispose();
            fs.Dispose();
        }

Usage Example

Ejemplo n.º 1
0
 private void moviePlayerToolStripMenuItem_Click(object sender, EventArgs e)
 {
     string s = null;
     using (OpenFileDialog ofd = new OpenFileDialog())
     {
         ofd.Filter = "Movie pak file (.pak)|*.pak";
         if (ofd.ShowDialog() == DialogResult.OK)
             s = ofd.FileName;
     }
     FF8_Core.PlayMovie mov = new PlayMovie(s);
     SerahToolkit_SharpGL.Text text = new Text(3);
     mov.Read();
     text.TransferMP(mov);
     text.PopulateMP(); //ehh
     text.ShowDialog();
 }