Esempio n. 1
0
        // ReSharper restore MemberCanBeProtected.Global
        // ReSharper restore UnusedAutoPropertyAccessor.Global
        // ReSharper restore MemberCanBePrivate.Global
        // ReSharper restore AutoPropertyCanBeMadeGetOnly.Global

        // ReSharper disable once UnusedMember.Global
        public VgmFile()
        {
            // Empty file
            _stream = new MemoryStream();
            Header  = new VgmHeader();
            Gd3Tag  = new Gd3Tag();
        }
Esempio n. 2
0
        public VgmFile(string filename)
        {
            _stream = new MemoryStream();
            Header  = new VgmHeader();
            Gd3Tag  = new Gd3Tag();

            LoadFromFile(filename);
        }
Esempio n. 3
0
        public static Gd3Tag LoadFromVgm(string filename)
        {
            // Open the stream
            using (var s = new OptionalGzipStream(filename))
                using (var r = new BinaryReader(s, Encoding.ASCII))
                {
                    r.ReadBytes(0x14);
                    var offset = r.ReadUInt32() + 0x14;
                    if (offset == 0)
                    {
                        // No tag
                        return(null);
                    }

                    if (offset > s.Length - 8 - 11 * 2)
                    {
                        throw new InvalidDataException("Not enough room in file for GD3 offset");
                    }

                    var result = new Gd3Tag();
                    result.Parse(s, offset);
                    return(result);
                }
        }