예제 #1
0
        public void TestDynamicsResetOutputPeakLevels()
        {
            var expected = new FairlightMixerSourceResetPeakLevelsCommand {
                DynamicsOutput = true
            };
            var handler = CommandGenerator.MatchCommand(expected);

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper =>
            {
                EachRandomSource(helper, (stateBefore, srcState, inputId, src, i) =>
                {
                    IBMDSwitcherFairlightAudioDynamicsProcessor dynamics = GetDynamics(src);

                    expected.Index    = (AudioSource)inputId;
                    expected.SourceId = srcState.SourceId;

                    uint timeBefore = helper.Server.CurrentTime;

                    helper.SendAndWaitForChange(null, () => { dynamics.ResetOutputPeakLevels(); });

                    // It should have sent a response, but we dont expect any comparable data
                    Assert.NotEqual(timeBefore, helper.Server.CurrentTime);
                });
            });
        }
        private static IBMDSwitcherFairlightAudioExpander GetExpander(IBMDSwitcherFairlightAudioSource src)
        {
            IBMDSwitcherFairlightAudioDynamicsProcessor dynamics = TestFairlightInputSource.GetDynamics(src);
            var expander = AtemSDKConverter.CastSdk <IBMDSwitcherFairlightAudioExpander>(dynamics.GetProcessor);

            Assert.NotNull(expander);
            return(expander);
        }
예제 #3
0
        private static IBMDSwitcherFairlightAudioCompressor GetCompressor(IBMDSwitcherFairlightAudioSource src)
        {
            IBMDSwitcherFairlightAudioDynamicsProcessor dynamics = TestFairlightInputSource.GetDynamics(src);
            var compressor = AtemSDKConverter.CastSdk <IBMDSwitcherFairlightAudioCompressor>(dynamics.GetProcessor);

            Assert.NotNull(compressor);
            return(compressor);
        }
        private static IBMDSwitcherFairlightAudioLimiter GetLimiter(AtemMockServerWrapper helper)
        {
            IBMDSwitcherFairlightAudioDynamicsProcessor dynamics = TestFairlightProgramOut.GetDynamics(helper);
            var limiter = AtemSDKConverter.CastSdk <IBMDSwitcherFairlightAudioLimiter>(dynamics.GetProcessor);

            Assert.NotNull(limiter);
            return(limiter);
        }
예제 #5
0
        public void TestMakeUpGain()
        {
            var  handler = CommandGenerator.CreateAutoCommandHandler <FairlightMixerSourceSetCommand, FairlightMixerSourceGetCommand>("MakeUpGain");
            bool tested  = false;

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper =>
            {
                EachRandomSource(helper, (stateBefore, srcState, inputId, src, i) =>
                {
                    IBMDSwitcherFairlightAudioDynamicsProcessor dynamics = GetDynamics(src);
                    tested = true;

                    var target = Randomiser.Range(0, 20);
                    srcState.Dynamics.MakeUpGain = target;
                    helper.SendAndWaitForChange(stateBefore, () => { dynamics.SetMakeupGain(target); });
                });
            });
            Assert.True(tested);
        }
        public void TestMakeUp()
        {
            var handler = CommandGenerator.CreateAutoCommandHandler <FairlightMixerMasterSetCommand, FairlightMixerMasterGetCommand>("MakeUpGain");

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper =>
            {
                IBMDSwitcherFairlightAudioDynamicsProcessor dynamics = GetDynamics(helper);

                AtemState stateBefore = helper.Helper.BuildLibState();

                for (int i = 0; i < 5; i++)
                {
                    double target = Randomiser.Range(0, 20);
                    stateBefore.Fairlight.ProgramOut.Dynamics.MakeUpGain = target;
                    helper.SendAndWaitForChange(stateBefore, () =>
                    {
                        dynamics.SetMakeupGain(target);
                    });
                }
            });
        }