public void TwoInOneOutShouldCanBeConfiguredToSelectRightChannel() { var input1 = new TestSampleProvider(32000, 2); float[] expected = new float[] { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 }; var mp = new MultiplexingSampleProvider(new ISampleProvider[] { input1 }, 1); mp.ConnectInputToOutput(1, 0); EnsureReadsExpected(mp, expected); }
public void PerformanceTest() { var input1 = new TestSampleProvider(32000, 1); var input2 = new TestSampleProvider(32000, 1); var input3 = new TestSampleProvider(32000, 1); var input4 = new TestSampleProvider(32000, 1); var mp = new MultiplexingSampleProvider(new ISampleProvider[] { input1, input2, input3, input4 }, 4); mp.ConnectInputToOutput(0, 3); mp.ConnectInputToOutput(1, 2); mp.ConnectInputToOutput(2, 1); mp.ConnectInputToOutput(3, 0); float[] buffer = new float[input1.WaveFormat.AverageBytesPerSecond / 4]; Stopwatch s = new Stopwatch(); var duration = s.Time(() => { // read one hour worth of audio for (int n = 0; n < 60 * 60; n++) { mp.Read(buffer, 0, buffer.Length); } }); Console.WriteLine("Performance test took {0}ms", duration); }
public void HasConnectInputToOutputMethod() { var input1 = new TestSampleProvider(32000, 2); var mp = new MultiplexingSampleProvider(new ISampleProvider[] { input1 }, 1); mp.ConnectInputToOutput(1, 0); }
public void ConnectInputToOutputThrowsExceptionForInvalidOutput() { var input1 = new TestSampleProvider(32000, 2); var mp = new MultiplexingSampleProvider(new ISampleProvider[] { input1 }, 1); Assert.Throws<ArgumentException>(() => mp.ConnectInputToOutput(1, 1)); }
public void StereoInTwoOutCanBeConfiguredToSwapLeftAndRight() { var input1 = new TestSampleProvider(32000, 2); float[] expected = new float[] { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10 }; var mp = new MultiplexingSampleProvider(new ISampleProvider[] { input1 }, 2); mp.ConnectInputToOutput(0, 1); mp.ConnectInputToOutput(1, 0); EnsureReadsExpected(mp, expected); }