public void TestSource() { AtemMockServerWrapper.Each(_output, _pool, SourceCommandHandler, DeviceTestCases.All, helper => { Dictionary <VideoSource, IBMDSwitcherInputAux> allAuxes = helper.GetSdkInputsOfType <IBMDSwitcherInputAux>(); VideoSource[] chosenIds = VideoSourceUtil.TakeSelection(allAuxes.Keys.ToArray()); foreach (VideoSource auxSource in chosenIds) { uint auxId = AtemEnumMaps.GetAuxId(auxSource); IBMDSwitcherInputAux aux = allAuxes[auxSource]; // GetInputAvailabilityMask is used when checking if another input can be used for this output. // We track this another way aux.GetInputAvailabilityMask(out _BMDSwitcherInputAvailability availabilityMask); Assert.Equal(availabilityMask, (_BMDSwitcherInputAvailability)((int)SourceAvailability.Auxiliary << 2)); AtemState stateBefore = helper.Helper.BuildLibState(); VideoSource[] validSources = stateBefore.Settings.Inputs.Where( i => i.Value.Properties.SourceAvailability.HasFlag(SourceAvailability.Auxiliary) ).Select(i => i.Key).ToArray(); var sampleSources = VideoSourceUtil.TakeSelection(validSources); foreach (VideoSource src in sampleSources) { stateBefore.Auxiliaries[(int)auxId].Source = src; helper.SendAndWaitForChange(stateBefore, () => { aux.SetInputSource((long)src); }); } } }); }
private void EachColor(AtemMockServerWrapper helper, Action <AtemState, ColorState, IBMDSwitcherInputColor, ColorGeneratorId, int> fcn, int iterations = 5) { foreach (KeyValuePair <VideoSource, IBMDSwitcherInputColor> c in helper.GetSdkInputsOfType <IBMDSwitcherInputColor>()) { ColorGeneratorId id = AtemEnumMaps.GetSourceIdForGen(c.Key); AtemState stateBefore = helper.Helper.BuildLibState(); ColorState colBefore = stateBefore.ColorGenerators[(int)id]; for (int i = 0; i < iterations; i++) { fcn(stateBefore, colBefore, c.Value, id, i); } } }