示例#1
0
        IBMDSwitcherKey GetSwitcherKey1(IBMDSwitcherMixEffectBlock block)
        {
            IBMDSwitcherKeyIterator meIterator = null;
            IntPtr meIteratorPtr;
            Guid   meIteratorIID = typeof(IBMDSwitcherKeyIterator).GUID;

            block.CreateIterator(ref meIteratorIID, out meIteratorPtr);
            if (meIteratorPtr != null)
            {
                meIterator = (IBMDSwitcherKeyIterator)Marshal.GetObjectForIUnknown(meIteratorPtr);
            }

            if (meIterator == null)
            {
                return(null);
            }

            IBMDSwitcherKey temp = null;

            if (meIterator != null)
            {
                meIterator.Next(out temp);
            }

            return(temp);
        }
示例#2
0
        private IBMDSwitcherKey GetKey1()
        {
            IntPtr keyIteratorPtr;
            Guid   keyIteratorIID = typeof(IBMDSwitcherKeyIterator).GUID;

            Switcher.m_mixEffectBlock1.CreateIterator(ref keyIteratorIID, out keyIteratorPtr);
            IBMDSwitcherKeyIterator keyIterator = (IBMDSwitcherKeyIterator)Marshal.GetObjectForIUnknown(keyIteratorPtr);
            IBMDSwitcherKey         key;

            keyIterator.Next(out key);
            return(key);
        }
示例#3
0
        public void Connect()
        {
            this.BMDSwitcherInfo = new SwitcherInfo(this);

            #region Switcher
            this.BMDSwitcher = new SwitcherCallback(this.m_switcher);
            this.m_switcher.AddCallback(this.BMDSwitcher);
            #endregion

            #region SwitcherMediaPool
            this.m_switcherMediaPool  = (IBMDSwitcherMediaPool)this.m_switcher;
            this.BMDSwitcherMediaPool = new SwitcherMediaPoolCallback(this.m_switcherMediaPool);
            this.m_switcherMediaPool.AddCallback(this.BMDSwitcherMediaPool);
            #endregion

            #region SwitcherStills
            this.m_switcherMediaPool.GetStills(out this.m_switcherStills);
            this.BMDSwitcherStills = new SwitcherStillsCallback(this.m_switcherStills);
            this.m_switcherStills.GetCount(out uint totalStills);
            for (this.BMDSwitcherInfo.TotalSwitcherStills = 0; this.BMDSwitcherInfo.TotalSwitcherStills < totalStills; this.BMDSwitcherInfo.TotalSwitcherStills++)
            {
                this.BMDSwitcherStill.Add(new SwitcherStill(this.m_switcherStills, (int)this.BMDSwitcherInfo.TotalSwitcherStills));
            }
            #endregion

            #region SwitcherClips
            this.m_switcherMediaPool.GetClipCount(out uint totalClips);
            for (this.BMDSwitcherInfo.TotalSwitcherClip = 0; this.BMDSwitcherInfo.TotalSwitcherClip < totalClips; this.BMDSwitcherInfo.TotalSwitcherClip++)
            {
                this.m_switcherMediaPool.GetClip(this.BMDSwitcherInfo.TotalSwitcherClip, out this.m_switcherClip);
                this.BMDSwitcherClip.Add(new SwitcherClipCallback(this.m_switcherClip, (int)this.BMDSwitcherInfo.TotalSwitcherClip));
            }
            #endregion

            #region SwitcherMacroPool
            this.m_switcherMacroPool  = (IBMDSwitcherMacroPool)this.m_switcher;
            this.BMDSwitcherMacroPool = new SwitcherMacroPoolCallback(this.m_switcherMacroPool);
            this.m_switcherMacroPool.AddCallback(this.BMDSwitcherMacroPool);
            this.m_switcherMacroPool.GetMaxCount(out uint totalMacros);
            for (this.BMDSwitcherInfo.TotalSwitcherMacros = 0; this.BMDSwitcherInfo.TotalSwitcherMacros < totalMacros; this.BMDSwitcherInfo.TotalSwitcherMacros++)
            {
                this.BMDSwitcherMacro.Add(new SwitcherMacro(this.m_switcherMacroPool, (int)this.BMDSwitcherInfo.TotalSwitcherMacros));
            }
            #endregion

            #region SwitcherAudioMixer
            this.m_switcherAudioMixer  = (IBMDSwitcherAudioMixer)this.m_switcher;
            this.BMDSwitcherAudioMixer = new SwitcherAudioMixerCallback(this.m_switcherAudioMixer);
            this.m_switcherAudioMixer.AddCallback(this.BMDSwitcherAudioMixer);
            #endregion

            #region SwitcherMixMinusOutput
            try
            {
                this.m_switcherMixMinusOutput  = (IBMDSwitcherMixMinusOutput)this.m_switcher;
                this.BMDSwitcherMixMinusOutput = new SwitcherMixMinusOutputCallback(this.m_switcherMixMinusOutput);
                this.m_switcherMixMinusOutput.AddCallback(this.BMDSwitcherMixMinusOutput);
            }
            catch
            {
                // Not Supported bij switcher
            }
            #endregion

            #region SwitcherInput
            IBMDSwitcherInputIterator SwitcherInputIterator = null;
            Guid SwitcherInputIteratorIID = typeof(IBMDSwitcherInputIterator).GUID;
            this.m_switcher.CreateIterator(ref SwitcherInputIteratorIID, out IntPtr SwitcherInputIteratorintPtr);
            SwitcherInputIterator = (IBMDSwitcherInputIterator)Marshal.GetObjectForIUnknown(SwitcherInputIteratorintPtr);

            if (SwitcherInputIterator != null)
            {
                SwitcherInputIterator.Next(out this.m_switcherInput);
                while (this.m_switcherInput != null)
                {
                    SwitcherInputCallback switcherInputCallback = new SwitcherInputCallback(this.m_switcherInput, this.BMDSwitcherInfo.TotalSwitcherInput);
                    this.m_switcherInput.AddCallback(switcherInputCallback);
                    this.BMDSwitcherInput.Add(switcherInputCallback);

                    switch (switcherInputCallback.PortType)
                    {
                        #region bmdSwitcherPortTypeBlack
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeBlack:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeBlack++;
                        break;
                        #endregion

                        #region SwitcherPortTypeColorBars
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeColorBars:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeColorBars++;
                        break;
                        #endregion

                        #region SwitcherPortTypeExternal
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeExternal:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeExternal++;
                        break;
                        #endregion

                        #region SwitcherPortTypeKeyCutOutput
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeKeyCutOutput:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeKeyCutOutput++;
                        break;
                        #endregion

                        #region SwitcherPortTypeMediaPlayerCut
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeMediaPlayerCut:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeMediaPlayerCut++;
                        break;
                        #endregion

                        #region SwitcherPortTypeMediaPlayerFill
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeMediaPlayerFill:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeMediaPlayerFill++;
                        break;
                        #endregion

                        #region SwitcherPortTypeMixEffectBlockOutput
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeMixEffectBlockOutput:
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeMixEffectBlockOutput++;
                        break;
                        #endregion

                        #region SwitcherPortTypeAuxOutput
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeAuxOutput:
                        this.m_switcherInputAux = (IBMDSwitcherInputAux)this.m_switcherInput;
                        SwitcherInputAuxCallback switcherInputAuxCallback = new SwitcherInputAuxCallback(this.m_switcherInputAux, this.BMDSwitcherInfo.TotalSwitcherPortTypeAuxOutput);
                        this.BMDSwitcherInputAux.Add(switcherInputAuxCallback);
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeAuxOutput++;
                        break;
                        #endregion

                        #region SwitcherPortTypeColorGenerator
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeColorGenerator:
                        this.m_switcherInputColor = (IBMDSwitcherInputColor)this.m_switcherInput;
                        SwitcherInputColorCallback switcherInputColorCallback = new SwitcherInputColorCallback(this.m_switcherInputColor, this.BMDSwitcherInfo.TotalSwitcherPortTypeColorGenerator);
                        this.BMDSwitcherInputColor.Add(switcherInputColorCallback);
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeColorGenerator++;
                        break;
                        #endregion

                        #region SwitcherPortTypeSuperSource
                    case _BMDSwitcherPortType.bmdSwitcherPortTypeSuperSource:
                        this.m_switcherInputSuperSource_v7_5_2 = (IBMDSwitcherInputSuperSource_v7_5_2)this.m_switcherInput;
                        SwitcherInputSuperSourceCallback_v7_5_2 switcherInputSuperSourceCallback_v7_5_2 = new SwitcherInputSuperSourceCallback_v7_5_2(this.m_switcherInputSuperSource_v7_5_2, this.BMDSwitcherInfo.TotalSwitcherPortTypeSuperSource_v7_5_2);
                        this.BMDSwitcherInputSuperSource_v7_5_2.Add(switcherInputSuperSourceCallback_v7_5_2);
                        this.BMDSwitcherInfo.TotalSwitcherPortTypeSuperSource_v7_5_2++;
                        break;
                        #endregion
                    }
                    SwitcherInputIterator.Next(out this.m_switcherInput);
                    this.BMDSwitcherInfo.TotalSwitcherInput++;
                }
            }
            #endregion

            #region SwitcherMixEffectBlock
            IBMDSwitcherMixEffectBlockIterator_v7_5 SwitcherMixEffectBlockIterator_v7_5 = null;
            Guid SwitcherMixEffectBlockIteratorIID_v7_5 = typeof(IBMDSwitcherMixEffectBlockIterator_v7_5).GUID;

            IBMDSwitcherKeyIterator SwitcherKeyIterator = null;
            Guid SwitcherKeyIteratorIID = typeof(IBMDSwitcherKeyIterator).GUID;

            this.m_switcher.CreateIterator(ref SwitcherMixEffectBlockIteratorIID_v7_5, out IntPtr SwitcherMixEffectBlockIteratorintPtr);
            SwitcherMixEffectBlockIterator_v7_5 = (IBMDSwitcherMixEffectBlockIterator_v7_5)Marshal.GetObjectForIUnknown(SwitcherMixEffectBlockIteratorintPtr);

            if (SwitcherMixEffectBlockIterator_v7_5 != null)
            {
                SwitcherMixEffectBlockIterator_v7_5.Next(out this.m_switcherMixEffectBlock_v7_5);

                while (this.m_switcherMixEffectBlock_v7_5 != null)
                {
                    #region SwitcherTransitionParameters
                    this.m_switcherTransitionParameters  = (IBMDSwitcherTransitionParameters)this.m_switcherMixEffectBlock_v7_5;
                    this.BMDSwitcherTransitionParameters = new SwitcherTransitionParametersCallback(this.m_switcherTransitionParameters);
                    this.m_switcherTransitionParameters.AddCallback(this.BMDSwitcherTransitionParameters);
                    #endregion

                    #region SwitcherTransitionDipParameters
                    this.m_switcherTransitionDipParameters  = (IBMDSwitcherTransitionDipParameters)this.m_switcherMixEffectBlock_v7_5;
                    this.BMDSwitcherTransitionDipParameters = new SwitcherTransitionDipParametersCallback(this.m_switcherTransitionDipParameters);
                    this.m_switcherTransitionDipParameters.AddCallback(this.BMDSwitcherTransitionDipParameters);
                    #endregion

                    #region SwitcherTransitionDVEParameters
                    try
                    {
                        this.m_switcherTransitionDVEParameters  = (IBMDSwitcherTransitionDVEParameters)this.m_switcherMixEffectBlock_v7_5;
                        this.BMDSwitcherTransitionDVEParameters = new SwitcherTransitionDVEParametersCallback(this.m_switcherTransitionDVEParameters);
                        this.m_switcherTransitionDVEParameters.AddCallback(this.BMDSwitcherTransitionDVEParameters);
                    }
                    catch { }
                    #endregion

                    #region SwitcherTransitionMixParameters
                    this.m_switcherTransitionMixParameters  = (IBMDSwitcherTransitionMixParameters)this.m_switcherMixEffectBlock_v7_5;
                    this.BMDSwitcherTransitionMixParameters = new SwitcherTransitionMixParametersCallback(this.m_switcherTransitionMixParameters);
                    this.m_switcherTransitionMixParameters.AddCallback(this.BMDSwitcherTransitionMixParameters);
                    #endregion

                    #region SwitcherTransitionStingerParameters
                    try
                    {
                        this.m_switcherTransitionStingerParameters  = (IBMDSwitcherTransitionStingerParameters)this.m_switcherMixEffectBlock_v7_5;
                        this.BMDSwitcherTransitionStingerParameters = new SwitcherTransitionStingerParametersCallback(this.m_switcherTransitionStingerParameters);
                        this.m_switcherTransitionStingerParameters.AddCallback(this.BMDSwitcherTransitionStingerParameters);
                    }
                    catch { }
                    #endregion

                    #region SwitcherTransitionWipeParameters
                    this.m_switcherTransitionWipeParameters  = (IBMDSwitcherTransitionWipeParameters)this.m_switcherMixEffectBlock_v7_5;
                    this.BMDSwitcherTransitionWipeParameters = new SwitcherTransitionWipeParametersCallback(this.m_switcherTransitionWipeParameters);
                    this.m_switcherTransitionWipeParameters.AddCallback(this.BMDSwitcherTransitionWipeParameters);
                    #endregion

                    SwitcherMixEffectBlockCallback_v7_5 switcherMixEffectBlockCallback_v7_5 = new SwitcherMixEffectBlockCallback_v7_5(this.m_switcherMixEffectBlock_v7_5, this.BMDSwitcherInfo.TotalSwitcherMixEffectBlock_v7_5);
                    this.m_switcherMixEffectBlock_v7_5.AddCallback(switcherMixEffectBlockCallback_v7_5);
                    this.BMDSwitcherMixEffectBlock_7_5.Add(switcherMixEffectBlockCallback_v7_5);

                    this.m_switcherMixEffectBlock_v7_5.CreateIterator(ref SwitcherKeyIteratorIID, out IntPtr SwitcherKeyIteratorintPtr);
                    SwitcherKeyIterator = (IBMDSwitcherKeyIterator)Marshal.GetObjectForIUnknown(SwitcherKeyIteratorintPtr);
                    if (SwitcherKeyIterator != null)
                    {
                        SwitcherKeyIterator.Next(out this.m_switcherKey);

                        while (this.m_switcherKey != null)
                        {
                            #region SwitcherKey
                            SwitcherKeyCallback switcherKeyCallback = new SwitcherKeyCallback(this.m_switcherKey, this.BMDSwitcherInfo.TotalSwitcherKey);
                            this.m_switcherKey.AddCallback(switcherKeyCallback);
                            this.BMDSwitcherKey.Add(switcherKeyCallback);
                            #endregion

                            #region SwitcherKeyChromaParameters
                            this.m_switcherKeyChromaParameters = (IBMDSwitcherKeyChromaParameters)this.m_switcherKey;
                            SwitcherKeyChromaParametersCallback switcherKeyChromaParametersCallback = new SwitcherKeyChromaParametersCallback(this.m_switcherKeyChromaParameters, this.BMDSwitcherInfo.TotalSwitcherKey);
                            this.m_switcherKeyChromaParameters.AddCallback(switcherKeyChromaParametersCallback);
                            this.BMDSwitcherKeyChromaParameters.Add(switcherKeyChromaParametersCallback);
                            #endregion

                            #region SwitcherKeyLumaParameters
                            this.m_switcherKeyLumaParameters = (IBMDSwitcherKeyLumaParameters)this.m_switcherKey;
                            SwitcherKeyLumaParametersCallback switcherKeyLumaParametersCallback = new SwitcherKeyLumaParametersCallback(this.m_switcherKeyLumaParameters, this.BMDSwitcherInfo.TotalSwitcherKey);
                            this.m_switcherKeyLumaParameters.AddCallback(switcherKeyLumaParametersCallback);
                            this.BMDSwitcherKeyLumaParameters.Add(switcherKeyLumaParametersCallback);
                            #endregion

                            #region SwitcherKeyPatternParameters
                            this.m_switcherKeyPatternParameters = (IBMDSwitcherKeyPatternParameters)this.m_switcherKey;
                            SwitcherKeyPatternParametersCallback switcherKeyPatternParametersCallback = new SwitcherKeyPatternParametersCallback(this.m_switcherKeyPatternParameters, this.BMDSwitcherInfo.TotalSwitcherKey);
                            this.m_switcherKeyPatternParameters.AddCallback(switcherKeyPatternParametersCallback);
                            this.BMDSwitcherKeyPatternParameters.Add(switcherKeyPatternParametersCallback);
                            #endregion

                            #region SwitcherKeyDVEParameters
                            try
                            {
                                this.m_switcherKeyDVEParameters = (IBMDSwitcherKeyDVEParameters)this.m_switcherKey;
                                SwitcherKeyDVEParametersCallback switcherKeyDVEParametersCallback = new SwitcherKeyDVEParametersCallback(this.m_switcherKeyDVEParameters, this.BMDSwitcherInfo.TotalSwitcherKey);
                                this.m_switcherKeyDVEParameters.AddCallback(switcherKeyDVEParametersCallback);
                                this.BMDSwitcherKeyDVEParameters.Add(switcherKeyDVEParametersCallback);
                            }
                            catch { }
                            #endregion

                            #region SwitcherKeyFlyParameters
                            this.m_switcherKeyFlyParameters = (IBMDSwitcherKeyFlyParameters)this.m_switcherKey;
                            SwitcherKeyFlyParametersCallback switcherKeyFlyParametersCallback = new SwitcherKeyFlyParametersCallback(this.m_switcherKeyFlyParameters, this.BMDSwitcherInfo.TotalSwitcherKey);
                            this.m_switcherKeyFlyParameters.AddCallback(switcherKeyFlyParametersCallback);
                            this.BMDSwitcherKeyFlyParameters.Add(switcherKeyFlyParametersCallback);
                            #endregion

                            #region SwitcherKeyFlyKeyFrameParameters (Not sure if i handle it the right way.
                            this.m_switcherKeyFlyKeyFrameParameters = (IBMDSwitcherKeyFlyKeyFrameParameters)switcherKeyFlyParametersCallback.KeyFrameParameters(_BMDSwitcherFlyKeyFrame.bmdSwitcherFlyKeyFrameA);
                            SwitcherKeyFlyKeyFrameParametersCallback switcherKeyFlyKeyFrameParametersCallback = new SwitcherKeyFlyKeyFrameParametersCallback(this.m_switcherKeyFlyKeyFrameParameters, this.BMDSwitcherInfo.TotalSwitcherKey);
                            this.m_switcherKeyFlyKeyFrameParameters.AddCallback(switcherKeyFlyKeyFrameParametersCallback);
                            this.BMDSwitcherKeyFlyKeyFrameParameters.Add(switcherKeyFlyKeyFrameParametersCallback);
                            #endregion

                            SwitcherKeyIterator.Next(out this.m_switcherKey);
                            this.BMDSwitcherInfo.TotalSwitcherKey++;
                        }
                    }
                    SwitcherMixEffectBlockIterator_v7_5.Next(out this.m_switcherMixEffectBlock_v7_5);
                    this.BMDSwitcherInfo.TotalSwitcherMixEffectBlock_v7_5++;
                }
            }
            #endregion

            #region SwitcherDownstreamKey
            IBMDSwitcherDownstreamKeyIterator SwitcherDownstreamKeyIterator = null;
            Guid SwitcherDownstreamKeyIteratorIID = typeof(IBMDSwitcherDownstreamKeyIterator).GUID;
            this.m_switcher.CreateIterator(ref SwitcherDownstreamKeyIteratorIID, out IntPtr SwitcherDownstreamKeyIteratorintPtr);
            SwitcherDownstreamKeyIterator = (IBMDSwitcherDownstreamKeyIterator)Marshal.GetObjectForIUnknown(SwitcherDownstreamKeyIteratorintPtr);

            if (SwitcherDownstreamKeyIterator != null)
            {
                SwitcherDownstreamKeyIterator.Next(out this.m_switcherDownstreamKey);
                while (this.m_switcherDownstreamKey != null)
                {
                    SwitcherDownstreamKeyCallback switcherDownstreamKeyCallback = new SwitcherDownstreamKeyCallback(this.m_switcherDownstreamKey, this.BMDSwitcherInfo.TotalSwitcherDownstreamKey);
                    this.m_switcherDownstreamKey.AddCallback(switcherDownstreamKeyCallback);
                    this.BMDSwitcherDownstreamKey.Add(switcherDownstreamKeyCallback);
                    SwitcherDownstreamKeyIterator.Next(out this.m_switcherDownstreamKey);
                    this.BMDSwitcherInfo.TotalSwitcherDownstreamKey++;
                }
            }
            #endregion

            #region SwitcherAudioInput
            IBMDSwitcherAudioInputIterator SwitcherAudioInputIterator = null;
            Guid SwitcherAudioInputIteratorIID = typeof(IBMDSwitcherAudioInputIterator).GUID;
            this.m_switcherAudioMixer.CreateIterator(ref SwitcherAudioInputIteratorIID, out IntPtr SwitcherAudioInputIteratorintPtr);
            SwitcherAudioInputIterator = (IBMDSwitcherAudioInputIterator)Marshal.GetObjectForIUnknown(SwitcherAudioInputIteratorintPtr);

            if (SwitcherAudioInputIterator != null)
            {
                SwitcherAudioInputIterator.Next(out this.m_switcherAudioInput);
                while (this.m_switcherAudioInput != null)
                {
                    SwitcherAudioInputCallback switcherAudioInputCallback = new SwitcherAudioInputCallback(this.m_switcherAudioInput, this.BMDSwitcherInfo.TotalSwitcherAudioInput);
                    this.m_switcherAudioInput.AddCallback(switcherAudioInputCallback);
                    this.BMDSwitcherAudioInput.Add(switcherAudioInputCallback);
                    SwitcherAudioInputIterator.Next(out this.m_switcherAudioInput);
                    this.BMDSwitcherInfo.TotalSwitcherAudioInput++;
                }
            }
            #endregion

            #region SwitcherAudioMonitorOutput
            IBMDSwitcherAudioMonitorOutputIterator SwitcherAudioMonitorOutputIterator = null;
            Guid SwitcherAudioMonitorOutputIteratorIID = typeof(IBMDSwitcherAudioMonitorOutputIterator).GUID;
            this.m_switcherAudioMixer.CreateIterator(ref SwitcherAudioMonitorOutputIteratorIID, out IntPtr SwitcherAudioMonitorOutputIteratorintPtr);
            SwitcherAudioMonitorOutputIterator = (IBMDSwitcherAudioMonitorOutputIterator)Marshal.GetObjectForIUnknown(SwitcherAudioMonitorOutputIteratorintPtr);

            if (SwitcherAudioMonitorOutputIterator != null)
            {
                SwitcherAudioMonitorOutputIterator.Next(out this.m_switcherAudioMonitorOutput);
                while (this.m_switcherAudioMonitorOutput != null)
                {
                    SwitcherAudioMonitorOutputCallback switcherAudioMonitorOutputCallback = new SwitcherAudioMonitorOutputCallback(this.m_switcherAudioMonitorOutput, this.BMDSwitcherInfo.TotalSwitcherAudioMonitorOutput);
                    this.m_switcherAudioMonitorOutput.AddCallback(switcherAudioMonitorOutputCallback);
                    this.BMDSwitcherAudioMonitorOutput.Add(switcherAudioMonitorOutputCallback);
                    SwitcherAudioMonitorOutputIterator.Next(out this.m_switcherAudioMonitorOutput);
                    this.BMDSwitcherInfo.TotalSwitcherAudioMonitorOutput++;
                }
            }
            #endregion

            #region SwitcherMediaPlayer
            IBMDSwitcherMediaPlayerIterator SwitcherMediaPlayerIterator = null;
            Guid SwitcherMediaPlayerIteratorIID = typeof(IBMDSwitcherMediaPlayerIterator).GUID;
            this.m_switcher.CreateIterator(ref SwitcherMediaPlayerIteratorIID, out IntPtr SwitcherMediaPlayerIteratorintPtr);
            SwitcherMediaPlayerIterator = (IBMDSwitcherMediaPlayerIterator)Marshal.GetObjectForIUnknown(SwitcherMediaPlayerIteratorintPtr);

            if (SwitcherMediaPlayerIterator != null)
            {
                SwitcherMediaPlayerIterator.Next(out m_switcherMediaPlayer);
                while (this.m_switcherMediaPlayer != null)
                {
                    SwitcherMediaPlayerCallback switcherMediaPlayerCallback = new SwitcherMediaPlayerCallback(this.m_switcherMediaPlayer, this.BMDSwitcherInfo.TotalSwitcherMediaPlayer);
                    this.m_switcherMediaPlayer.AddCallback(switcherMediaPlayerCallback);
                    this.BMDSwitcherMediaPlayer.Add(switcherMediaPlayerCallback);
                    SwitcherMediaPlayerIterator.Next(out m_switcherMediaPlayer);
                    this.BMDSwitcherInfo.TotalSwitcherMediaPlayer++;
                }
            }
            #endregion

            #region SwitcherMultiView
            IBMDSwitcherMultiViewIterator_v7_5_2 SwitcherMultiViewIterator_v7_5_2 = null;
            Guid SwitcherMultiViewIteratorIID_v7_5_2 = typeof(IBMDSwitcherMultiViewIterator_v7_5_2).GUID;
            this.m_switcher.CreateIterator(ref SwitcherMultiViewIteratorIID_v7_5_2, out IntPtr SwitcherMultiViewIteratorintPtr_v7_5_2);
            SwitcherMultiViewIterator_v7_5_2 = (IBMDSwitcherMultiViewIterator_v7_5_2)Marshal.GetObjectForIUnknown(SwitcherMultiViewIteratorintPtr_v7_5_2);

            if (SwitcherMultiViewIterator_v7_5_2 != null)
            {
                SwitcherMultiViewIterator_v7_5_2.Next(out m_switcherMultiView_v7_5_2);
                while (this.m_switcherMultiView_v7_5_2 != null)
                {
                    SwitcherMultiViewCallback switcherMultiViewCallback = new SwitcherMultiViewCallback(this.m_switcherMultiView_v7_5_2, this.BMDSwitcherInfo.TotalSwitcherMultiView);
                    this.m_switcherMultiView_v7_5_2.AddCallback(switcherMultiViewCallback);
                    this.BMDSwitcherMultiView.Add(switcherMultiViewCallback);
                    SwitcherMultiViewIterator_v7_5_2.Next(out m_switcherMultiView_v7_5_2);
                    this.BMDSwitcherInfo.TotalSwitcherMultiView++;
                }
            }
            #endregion
        }