public void TestEqualizerReset() { var target = new FairlightMixerSourceEqualizerResetCommand { Mask = FairlightMixerSourceEqualizerResetCommand.MaskFlags.Equalizer }; var handler = CommandGenerator.MatchCommand(target, true); AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper => { EachRandomSource(helper, (stateBefore, srcState, inputId, src, i) => { IBMDSwitcherFairlightAudioEqualizer eq = GetEqualizer(src); target.Index = (AudioSource)inputId; target.SourceId = srcState.SourceId; uint timeBefore = helper.Server.CurrentTime; helper.SendAndWaitForChange(null, () => { eq.Reset(); }); // It should have sent a response, but we dont expect any comparable data Assert.NotEqual(timeBefore, helper.Server.CurrentTime); }, 1); }); }
public static void ApplyEqualizer(IBMDSwitcherFairlightAudioEqualizer eq, FairlightAudioState.EqualizerState state) { eq.GetEnabled(out int eqEnabled); state.Enabled = eqEnabled != 0; eq.GetGain(out double eqGain); state.Gain = eqGain; #if !ATEM_v8_1 var bands = AtemSDKConverter.CastSdk <IBMDSwitcherFairlightAudioEqualizerBandIterator>(eq.CreateIterator); state.Bands = AtemSDKConverter.IterateList <IBMDSwitcherFairlightAudioEqualizerBand, FairlightAudioState.EqualizerBandState>(bands.Next, (band, i) => { band.GetEnabled(out int enabled); band.GetFrequency(out uint freq); band.GetFrequencyRange(out _BMDSwitcherFairlightAudioEqualizerBandFrequencyRange freqRange); band.GetGain(out double gain); band.GetQFactor(out double qfactor); band.GetShape(out _BMDSwitcherFairlightAudioEqualizerBandShape shape); band.GetSupportedFrequencyRanges(out _BMDSwitcherFairlightAudioEqualizerBandFrequencyRange supportedRanges); band.GetSupportedShapes(out _BMDSwitcherFairlightAudioEqualizerBandShape supportedShapes); return(new FairlightAudioState.EqualizerBandState { BandEnabled = enabled != 0, Frequency = freq, FrequencyRange = AtemEnumMaps.FairlightEqualizerFrequencyRangeMap.FindByValue(freqRange), Gain = gain, QFactor = qfactor, Shape = AtemEnumMaps.FairlightEqualizerBandShapeMap.FindByValue(shape), SupportedFrequencyRanges = AtemEnumMaps.FairlightEqualizerFrequencyRangeMap.FindFlagsByValue(supportedRanges), SupportedShapes = AtemEnumMaps.FairlightEqualizerBandShapeMap.FindFlagsByValue(supportedShapes) }); }); #endif }
private static void ForSampleOfBands(AtemMockServerWrapper helper, Action <IBMDSwitcherFairlightAudioEqualizerBand, uint> func) { IBMDSwitcherFairlightAudioEqualizer equalizer = GetEqualizer(helper); var bands = GetSampleOfBands(equalizer); Assert.NotEmpty(bands); foreach (Tuple <IBMDSwitcherFairlightAudioEqualizerBand, uint> bandT in bands) { uint index = bandT.Item2; IBMDSwitcherFairlightAudioEqualizerBand band = bandT.Item1; func(band, index); } }
public void TestEnabled() { var handler = CommandGenerator.CreateAutoCommandHandler <FairlightMixerMasterSetCommand, FairlightMixerMasterGetCommand>("EqualizerEnabled"); AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper => { IBMDSwitcherFairlightAudioEqualizer equalizer = GetEqualizer(helper); AtemState stateBefore = helper.Helper.BuildLibState(); for (int i = 0; i < 5; i++) { stateBefore.Fairlight.ProgramOut.Equalizer.Enabled = i % 2 > 0; helper.SendAndWaitForChange(stateBefore, () => { equalizer.SetEnabled(i % 2); }); } }); }
public void TestGain() { var handler = CommandGenerator.CreateAutoCommandHandler <FairlightMixerMasterSetCommand, FairlightMixerMasterGetCommand>("EqualizerGain"); AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper => { IBMDSwitcherFairlightAudioEqualizer equalizer = GetEqualizer(helper); AtemState stateBefore = helper.Helper.BuildLibState(); for (int i = 0; i < 5; i++) { double target = Randomiser.Range(-20, 20); stateBefore.Fairlight.ProgramOut.Equalizer.Gain = target; helper.SendAndWaitForChange(stateBefore, () => { equalizer.SetGain(target); }); } }); }
private static void ForSampleOfBands(AtemMockServerWrapper helper, Action <AtemState, FairlightAudioState.EqualizerBandState, IBMDSwitcherFairlightAudioEqualizerBand, long, long, uint> func) { TestFairlightInputSource.EachRandomSource(helper, (stateBefore, srcState, inputId, src, i) => { IBMDSwitcherFairlightAudioEqualizer equalizer = GetEqualizer(src); var bands = GetSampleOfBands(equalizer); Assert.NotEmpty(bands); foreach (Tuple <IBMDSwitcherFairlightAudioEqualizerBand, uint> bandT in bands) { uint index = bandT.Item2; IBMDSwitcherFairlightAudioEqualizerBand band = bandT.Item1; func(stateBefore, srcState.Equalizer.Bands[(int)index], band, inputId, srcState.SourceId, index); } }, 1); }
public void TestEqualizerEnabled() { var handler = CommandGenerator.CreateAutoCommandHandler <FairlightMixerSourceSetCommand, FairlightMixerSourceGetCommand>("EqualizerEnabled"); bool tested = false; AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper => { EachRandomSource(helper, (stateBefore, srcState, inputId, src, i) => { IBMDSwitcherFairlightAudioEqualizer eq = GetEqualizer(src); tested = true; srcState.Equalizer.Enabled = i % 2 == 1; helper.SendAndWaitForChange(stateBefore, () => { eq.SetEnabled(i % 2); }); }); }); Assert.True(tested); }
public void TestReset() { var target = new FairlightMixerMasterEqualizerResetCommand { Mask = FairlightMixerMasterEqualizerResetCommand.MaskFlags.Equalizer }; var handler = CommandGenerator.MatchCommand(target, true); AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper => { IBMDSwitcherFairlightAudioEqualizer eq = GetEqualizer(helper); uint timeBefore = helper.Server.CurrentTime; helper.SendAndWaitForChange(null, () => { eq.Reset(); }); // It should have sent a response, but we dont expect any comparable data Assert.NotEqual(timeBefore, helper.Server.CurrentTime); }); }
private static List <Tuple <IBMDSwitcherFairlightAudioEqualizerBand, uint> > GetSampleOfBands(IBMDSwitcherFairlightAudioEqualizer eq) { var it = AtemSDKConverter.CastSdk <IBMDSwitcherFairlightAudioEqualizerBandIterator>(eq.CreateIterator); var allBands = AtemSDKConverter .IterateList <IBMDSwitcherFairlightAudioEqualizerBand, Tuple <IBMDSwitcherFairlightAudioEqualizerBand, uint> >(it.Next, Tuple.Create); return(Randomiser.SelectionOfGroup(allBands, 3).ToList()); }