Exemple #1
0
        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);
            });
        }
Exemple #2
0
        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
        }
Exemple #3
0
        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); });
                }
            });
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
            });
        }
Exemple #9
0
        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());
        }