private void EachTalkback(AtemMockServerWrapper helper, Action <AtemState, SettingsState.TalkbackState, IBMDSwitcherTalkback, uint> fcn) { AtemState stateBefore = helper.Helper.BuildLibState(); var it = AtemSDKConverter.CastSdk <IBMDSwitcherTalkbackIterator>(helper.SdkClient.SdkSwitcher .CreateIterator); AtemSDKConverter.Iterate <IBMDSwitcherTalkback>(it.Next, (talkback, i) => { SettingsState.TalkbackState talkbackState = stateBefore.Settings.Talkback[(int)i]; fcn(stateBefore, talkbackState, talkback, i); }); }
public static void Build(AtemState state, IBMDSwitcher switcher) { var iterator = AtemSDKConverter.CastSdk <IBMDSwitcherTalkbackIterator>(switcher.CreateIterator); var talkback = AtemSDKConverter.IterateList <IBMDSwitcherTalkback, SettingsState.TalkbackState>(iterator.Next, (props, id0) => { props.GetId(out _BMDSwitcherTalkbackId channelId); var id = AtemEnumMaps.TalkbackChannelMap.FindByValue(channelId); Assert.Equal((uint)id, id0); props.GetMuteSDI(out int muteSDI); var audioInputIds = state.Settings.Inputs .Where(i => i.Value.Properties.InternalPortType == InternalPortType.External && i.Value.Properties.AvailableExternalPortTypes.Contains(VideoPortType.SDI)) .Select(i => (long)i.Key).ToList(); var res = new SettingsState.TalkbackState { MuteSDI = muteSDI != 0, }; foreach (long inputId in audioInputIds) { props.CurrentInputSupportsMuteSDI(inputId, out int supportsMuteInputSdi); int muteInputSdi = 0; int canMuteinputSdi = 0; if (supportsMuteInputSdi != 0) { props.InputCanMuteSDI(inputId, out canMuteinputSdi); if (canMuteinputSdi != 0) { props.GetInputMuteSDI(inputId, out muteInputSdi); } } res.Inputs[(VideoSource)inputId] = new SettingsState.TalkbackInputState { MuteSDI = muteInputSdi != 0, InputCanMuteSDI = canMuteinputSdi != 0, CurrentInputSupportsMuteSDI = supportsMuteInputSdi != 0, }; } return(res); }); state.Settings.Talkback = talkback; }
private List <long> SampleOfInputs(SettingsState.TalkbackState state) { return(Randomiser.SelectionOfGroup(state.Inputs.Keys.Select(k => (long)k).ToList(), 3).ToList()); }