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); }
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); }