public void TestSolo()
        {
            var handler = CommandGenerator.CreateAutoCommandHandler <AudioMixerMonitorSetCommand, AudioMixerMonitorGetCommand>("Solo");

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.ClassicAudioMonitors, helper =>
            {
                IBMDSwitcherAudioMonitorOutput monitor = GetMonitor(helper);
                AtemState stateBefore = helper.Helper.BuildLibState();
                AudioState.MonitorOutputState monState = stateBefore.Audio.MonitorOutputs.Single();

                for (int i = 0; i < 5; i++)
                {
                    bool target   = i % 2 == 0;
                    monState.Solo = target;
                    helper.SendAndWaitForChange(stateBefore, () => { monitor.SetSolo(target ? 1 : 0); });
                }
            });
        }
        public void TestDimLevel()
        {
            var handler = CommandGenerator.CreateAutoCommandHandler <AudioMixerMonitorSetCommand, AudioMixerMonitorGetCommand>("DimLevel");

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.ClassicAudioMonitors, helper =>
            {
                IBMDSwitcherAudioMonitorOutput monitor = GetMonitor(helper);
                AtemState stateBefore = helper.Helper.BuildLibState();
                AudioState.MonitorOutputState monState = stateBefore.Audio.MonitorOutputs.Single();

                for (int i = 0; i < 5; i++)
                {
                    uint target       = Randomiser.RangeInt(100);
                    monState.DimLevel = target;
                    helper.SendAndWaitForChange(stateBefore, () => { monitor.SetDimLevel(target / 100d); });
                }
            });
        }
示例#3
0
        private static AudioState.MonitorOutputState BuildMonitor(IBMDSwitcherAudioMonitorOutput props)
        {
            var state = new AudioState.MonitorOutputState();

            props.GetMonitorEnable(out int enable);
            state.Enabled = enable != 0;
            props.GetGain(out double gain);
            state.Gain = gain;
            props.GetMute(out int mute);
            state.Mute = mute != 0;
            props.GetSolo(out int solo);
            state.Solo = solo != 0;
            props.GetSoloInput(out long soloInput);
            state.SoloSource = (AudioSource)soloInput;
            props.GetDim(out int dim);
            state.Dim = dim != 0;
            props.GetDimLevel(out double dimLevel);
            state.DimLevel = (uint)(dimLevel * 100);

            return(state);
        }