public void TestInputTalkbackGain()
        {
            var  handler = CommandGenerator.CreateAutoCommandHandler <FairlightMixerMonitorSetCommand, FairlightMixerMonitorGetCommand>("InputTalkbackGain");
            bool tested  = false;

            AtemMockServerWrapper.Each(_output, _pool, handler, DeviceTestCases.FairlightMain, helper =>
            {
                var monitor = GetMonitor(helper);
                if (monitor == null)
                {
                    return;
                }
                tested = true;

                AtemState stateBefore = helper.Helper.BuildLibState();
                FairlightAudioState.MonitorOutputState monState = stateBefore.Fairlight.Monitors.Single();

                for (int i = 0; i < 5; i++)
                {
                    var target = Randomiser.Range(-60, 0);
                    monState.InputTalkbackGain = target;
                    helper.SendAndWaitForChange(stateBefore, () => { monitor.SetInputTalkbackGain(target); });
                }
            });
            Assert.True(tested);
        }
        private static FairlightAudioState.MonitorOutputState BuildMonitor(IBMDSwitcherFairlightAudioHeadphoneOutput props)
        {
            var state = new FairlightAudioState.MonitorOutputState();

            props.GetGain(out double gain);
            state.Gain = gain;
            props.GetInputMasterOutGain(out double pgmGain);
            state.InputMasterGain = pgmGain;
            props.GetInputTalkbackGain(out double tbGain);
            state.InputTalkbackGain = tbGain;
            props.GetInputSidetoneGain(out double sidetoneGain);
            state.InputSidetoneGain = sidetoneGain;

            return(state);
        }