Пример #1
0
        public void IdspAlignsLoopToBlock(bool loops, int startIn, int endIn, int startOut, int endOut, int blockSize)
        {
            GcAdpcmFormat audio = GenerateAudio.GenerateAdpcmSineWave(BuildParseTestOptions.Samples, 2, BuildParseTestOptions.SampleRate);

            audio = audio.WithLoop(loops, startIn, endIn);

            var config = new IdspConfiguration {
                BlockSize = blockSize
            };

            byte[] idsp    = new IdspWriter().GetFile(audio, config);
            var    decoded = (GcAdpcmFormat) new IdspReader().ReadFormat(idsp);

            Assert.Equal(startOut, decoded.LoopStart);
            Assert.Equal(endOut, decoded.LoopEnd);
        }
Пример #2
0
        public static Configuration Idsp(Options options, Configuration inConfig = null)
        {
            IdspConfiguration config = inConfig as IdspConfiguration ?? new IdspConfiguration();

            switch (options.OutFormat)
            {
            case AudioFormat.Pcm16:
                throw new InvalidDataException("Can't use format PCM16 with IDSP files");

            case AudioFormat.Pcm8:
                throw new InvalidDataException("Can't use format PCM8 with IDSP files");
            }

            if (options.BlockSize > 0)
            {
                config.BlockSize = options.BlockSize;
            }

            return(config);
        }