static void Main(string[] args) { // Create switcher discovery object IBMDSwitcherDiscovery discovery = new CBMDSwitcherDiscovery(); // Connect to switcher IBMDSwitcher switcher; _BMDSwitcherConnectToFailure failureReason; discovery.ConnectTo("192.168.10.240", out switcher, out failureReason); Console.WriteLine("Connected to switcher"); var atem = new AtemSwitcher(switcher); // Get reference to various objects IBMDSwitcherMixEffectBlock me0 = atem.MixEffectBlocks.First(); IBMDSwitcherTransitionParameters me0TransitionParams = me0 as IBMDSwitcherTransitionParameters; IBMDSwitcherTransitionWipeParameters me0WipeTransitionParams = me0 as IBMDSwitcherTransitionWipeParameters; IBMDSwitcherInput input4 = atem.SwitcherInputs .Where((i, ret) => { _BMDSwitcherPortType type; i.GetPortType(out type); return(type == _BMDSwitcherPortType.bmdSwitcherPortTypeExternal); }) .ElementAt(4); // Setup the transition Console.WriteLine("Setting preview input"); me0.SetPreviewInput(GetInputId(input4)); Console.WriteLine("Setting next transition selection"); me0TransitionParams.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionBackground); Console.WriteLine("Setting next transition style"); me0TransitionParams.SetNextTransitionStyle(_BMDSwitcherTransitionStyle.bmdSwitcherTransitionStyleWipe); Console.WriteLine("Setting transition style"); me0WipeTransitionParams.SetPattern(_BMDSwitcherPatternStyle.bmdSwitcherPatternStyleRectangleIris); Console.WriteLine("Setting transition rate"); me0WipeTransitionParams.SetRate(60); // Perform the transition Console.WriteLine("Performing auto transition"); me0.PerformAutoTransition(); System.Threading.Thread.Sleep(2000); System.Threading.Thread.Sleep(1000); me0.PerformAutoTransition(); Console.Write("Press ENTER to exit..."); Console.ReadLine(); }
private void keyWordsBut_Click(object sender, RoutedEventArgs e) { if (currentKey == -1) { m_transition = (BMDSwitcherAPI.IBMDSwitcherTransitionParameters)m_mixEffectBlock1; _BMDSwitcherTransitionSelection transitionselection; m_transition.GetNextTransitionSelection(out transitionselection); string stringtransitionselection = transitionselection.ToString(); m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionKey4); if (m_mixEffectBlock1 != null) { m_mixEffectBlock1.PerformAutoTransition(); } if (stringtransitionselection != "bmdSwitcherTransitionSelectionBackground") { m_transition.GetNextTransitionStyle(out existing_style); m_transition.SetNextTransitionStyle(_BMDSwitcherTransitionStyle.bmdSwitcherTransitionStyleMix); m_mixEffectBlock1.PerformAutoTransition(); } m_mixEffectBlock1.SetInt(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdPreviewInput, currentPreview); System.Threading.Thread.Sleep(100); m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionBackground); currentKey = 4; currentkeyBut = keyWordsBut; } else { keyWordsBut.IsChecked = false; currentkeyBut.IsChecked = true; if (currentKey == 4) { keyWordsBut.IsChecked = true; } } }
private void keyClearBut_Click(object sender, RoutedEventArgs e) { if (currentKey != -1) { keyFullBut.IsChecked = false; m_transition = (BMDSwitcherAPI.IBMDSwitcherTransitionParameters)m_mixEffectBlock1; _BMDSwitcherTransitionSelection transitionselection; m_transition.GetNextTransitionSelection(out transitionselection); string stringtransitionselection = transitionselection.ToString(); switch (currentKey) { case 1: m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionBackground + 1); keyGreenScreenBut.IsChecked = false; break; case 2: m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionKey2); keyLeftBut.IsChecked = false; break; case 3: m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionKey3); keyRightBut.IsChecked = false; break; case 4: m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionKey4); keyWordsBut.IsChecked = false; break; } if (m_mixEffectBlock1 != null) { m_mixEffectBlock1.PerformAutoTransition(); } if (stringtransitionselection != "bmdSwitcherTransitionSelectionBackground") { m_transition.GetNextTransitionStyle(out existing_style); m_transition.SetNextTransitionStyle(_BMDSwitcherTransitionStyle.bmdSwitcherTransitionStyleMix); m_mixEffectBlock1.PerformAutoTransition(); } if (currentKey == 6) { if (currentKey == 6) { Console.WriteLine(currentPreview + " " + currentProgram); switch (currentPreview) { case 2: currentPreview = 3; break; case 3: currentPreview = 2; break; } System.Threading.Thread.Sleep(300); m_mixEffectBlock1.SetInt(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdPreviewInput, currentPreview); } } else { m_mixEffectBlock1.SetInt(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdPreviewInput, currentPreview); System.Threading.Thread.Sleep(100); m_transition.SetNextTransitionSelection(_BMDSwitcherTransitionSelection.bmdSwitcherTransitionSelectionBackground); } currentKey = -1; //System.Threading.Thread.Sleep(200); //m_mixEffectBlock1.GetInt(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdPreviewInput, out currentPreview); //setCurrent Program ID //m_mixEffectBlock1.GetInt(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdProgramInput, out currentProgram); //updateProgPrevUI(currentPreview, false); //updateProgPrevUI(currentProgram, true); } }