示例#1
0
        public void GetLoopContextWithPrevious(bool isSelfCalculated, bool ensureSelfCalculated)
        {
            short num         = 20;
            var   sampleCount = 100;

            var(adpcm, coefs) = GenerateAudio.GenerateAdpcmEmpty(sampleCount);
            var previous = new GcAdpcmLoopContext(num, num, num, num, isSelfCalculated);

            var builder = new GcAdpcmChannelBuilder(adpcm, coefs, sampleCount)
                          .WithLoop(true, num, sampleCount)
                          .WithPrevious(null, previous, null)
                          .PrepareForBuild();

            builder.EnsureLoopContextIsSelfCalculated = ensureSelfCalculated;
            var context = builder.GetLoopContext();

            Assert.Equal(previous, context);
        }
示例#2
0
        public void CreateLoopContextWithNoPrevious(short predScale, short hist1, short hist2, int loopStart, bool isSelfCalculated)
        {
            var sampleCount = 100;

            var(adpcm, coefs) = GenerateAudio.GenerateAdpcmEmpty(sampleCount);

            var builder = new GcAdpcmChannelBuilder(adpcm, coefs, sampleCount)
                          .WithLoop(true, loopStart, sampleCount)
                          .WithLoopContext(loopStart, predScale, hist1, hist2, isSelfCalculated);

            builder.AlignedLoopStart = loopStart;

            var context = builder.GetLoopContext();

            Assert.Equal(predScale, context.PredScale);
            Assert.Equal(hist1, context.Hist1);
            Assert.Equal(hist2, context.Hist2);
            Assert.Equal(loopStart, context.LoopStart);
            Assert.Equal(isSelfCalculated, context.IsSelfCalculated);
        }
示例#3
0
        public void GetLoopContextReplacePrevious(short expected, int loopStart, bool isSelfCalculated, bool ensureSelfCalculated)
        {
            short num         = 20;
            short numLarge    = 25;
            var   sampleCount = 100;

            var(adpcm, coefs) = GenerateAudio.GenerateAdpcmEmpty(sampleCount);
            var previous = new GcAdpcmLoopContext(num, num, num, num, isSelfCalculated);

            var builder = new GcAdpcmChannelBuilder(adpcm, coefs, sampleCount)
                          .WithPrevious(null, previous, null)
                          .WithLoop(true, loopStart, sampleCount)
                          .WithLoopContext(numLarge, numLarge, numLarge, numLarge, isSelfCalculated)
                          .PrepareForBuild();

            builder.EnsureLoopContextIsSelfCalculated = ensureSelfCalculated;
            var context = builder.GetLoopContext();

            Assert.Equal(expected, context.PredScale);
            Assert.Equal(expected, context.Hist1);
            Assert.Equal(expected, context.Hist2);
            Assert.Equal(loopStart, context.LoopStart);
        }