コード例 #1
0
        public HeuristicResult Match(IHeuristicReader reader)
        {
            var data = reader.Read(0x10);

            if (data.Length < 0x10)
            {
                return(null);
            }

            var length = Bitter.ToInt32S(data);

            if (length == 0)
            {
                return(null);
            }

            if ((length & 0x7FF) != 0)
            {
                return(null);
            }

            if (data[0x05] == 0)
            {
                return(null);
            }

            var sampleRate = Bitter.ToInt16S(data, 6);

            if (sampleRate == 0)
            {
                return(null);
            }

            if (data[0x08] == 0)
            {
                return(null);
            }

            if (data[0x08] > 2)
            {
                return(null);
            }

            return(new VagHeuristicResult(this)
            {
                Start = 0x800,
                Interleave = 0x800,
                Channels = data[0x08],
                SampleRate = sampleRate,
                Length = length
            });
        }