/// <summary>
        ///  Make a Crestron RMC and put it in here
        /// </summary>
        public DmRmc150SController(string key, string name, DmRmc150S rmc)
            : base(key, name, rmc)
        {
            _rmc = rmc;
            DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
                                        eRoutingPortConnectionType.DmCat, 0, this);
            HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
                                            eRoutingPortConnectionType.Hdmi, null, this);

            EdidManufacturerFeedback    = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
            EdidNameFeedback            = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
            EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
            EdidSerialNumberFeedback    = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);

            InputPorts = new RoutingPortCollection <RoutingInputPort> {
                DmIn
            };
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut
            };

            _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;

            // Set Ports for CEC
            HdmiOut.Port = _rmc.HdmiOutput;
        }
        public DmRmc4kZScalerCController(string key, string name, DmRmc4kzScalerC rmc)
            : base(key, name, rmc)
        {
            _rmc = rmc;
            DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
                                        eRoutingPortConnectionType.DmCat, 0, this);
            HdmiIn = new RoutingInputPort(DmPortName.HdmiIn, eRoutingSignalType.AudioVideo,
                                          eRoutingPortConnectionType.Hdmi, 0, this);
            HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
                                            eRoutingPortConnectionType.Hdmi, null, this);

            EdidManufacturerFeedback    = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
            EdidNameFeedback            = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
            EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
            EdidSerialNumberFeedback    = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);

            VideoOutputResolutionFeedback = new StringFeedback(() => _rmc.HdmiOutput.GetVideoResolutionString());

            InputPorts = new RoutingPortCollection <RoutingInputPort> {
                DmIn, HdmiIn
            };
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut
            };

            _rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange;
            _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;

            // Set Ports for CEC
            HdmiOut.Port = _rmc.HdmiOutput;

            AudioVideoSourceNumericFeedback = new IntFeedback(() => (ushort)(_rmc.SelectedSourceFeedback));
        }
Example #3
0
        public IRSetTopBoxBase(string key, string name, IrOutputPortController portCont,
                               SetTopBoxPropertiesConfig props)
            : base(key, name)
        {
            IrPort = portCont;
            DeviceManager.AddDevice(portCont);

            HasPresets = props.HasPresets;
            HasDvr     = props.HasDvr;
            HasDpad    = props.HasDpad;
            HasNumeric = props.HasNumeric;

            HasKeypadAccessoryButton1     = true;
            KeypadAccessoryButton1Command = "Dash";
            KeypadAccessoryButton1Label   = "-";

            HasKeypadAccessoryButton2     = true;
            KeypadAccessoryButton2Command = "NumericEnter";
            KeypadAccessoryButton2Label   = "Enter";

            AnyVideoOut = new RoutingOutputPort(RoutingPortNames.AnyVideoOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                eRoutingPortConnectionType.Hdmi, null, this);
            AnyAudioOut = new RoutingOutputPort(RoutingPortNames.AnyAudioOut, eRoutingSignalType.Audio,
                                                eRoutingPortConnectionType.DigitalAudio, null, this);
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                AnyVideoOut, AnyAudioOut
            };
        }
Example #4
0
        protected CameraBase(string key, string name) :
            base(key, name)
        {
            OutputPorts = new RoutingPortCollection <RoutingOutputPort>();

            ControlMode = eCameraControlMode.Manual;
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="name"></param>
        /// <param name="chassis"></param>
        public DmpsRoutingController(string key, string name, ISystemControl systemControl)
            : base(key, name)
        {
            Dmps          = Global.ControlSystem;
            SystemControl = systemControl;

            InputPorts     = new RoutingPortCollection <RoutingInputPort>();
            OutputPorts    = new RoutingPortCollection <RoutingOutputPort>();
            VolumeControls = new Dictionary <uint, DmCardAudioOutputController>();
            TxDictionary   = new Dictionary <uint, string>();
            RxDictionary   = new Dictionary <uint, string>();

            VideoOutputFeedbacks          = new Dictionary <uint, IntFeedback>();
            AudioOutputFeedbacks          = new Dictionary <uint, IntFeedback>();
            VideoInputSyncFeedbacks       = new Dictionary <uint, BoolFeedback>();
            InputNameFeedbacks            = new Dictionary <uint, StringFeedback>();
            OutputNameFeedbacks           = new Dictionary <uint, StringFeedback>();
            OutputVideoRouteNameFeedbacks = new Dictionary <uint, StringFeedback>();
            OutputAudioRouteNameFeedbacks = new Dictionary <uint, StringFeedback>();
            InputEndpointOnlineFeedbacks  = new Dictionary <uint, BoolFeedback>();
            OutputEndpointOnlineFeedbacks = new Dictionary <uint, BoolFeedback>();

            Debug.Console(1, this, "{0} Switcher Inputs Present.", Dmps.SwitcherInputs.Count);
            Debug.Console(1, this, "{0} Switcher Outputs Present.", Dmps.SwitcherOutputs.Count);

            SetupOutputCards();

            SetupInputCards();
        }
Example #6
0
 public GenericSource(string key, string name)
     : base(key, name)
 {
     AnyOut = new RoutingOutputPort(RoutingPortNames.AnyOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                    eRoutingPortConnectionType.Hdmi, null, this);
     OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
         AnyOut
     };
 }
Example #7
0
 public Amplifier(string key, string name)
     : base(key, name)
 {
     AudioIn = new RoutingInputPort(RoutingPortNames.AnyAudioIn, eRoutingSignalType.Audio,
                                    eRoutingPortConnectionType.None, null, this);
     InputPorts = new RoutingPortCollection <RoutingInputPort> {
         AudioIn
     };
 }
Example #8
0
 public Laptop(string key, string name)
     : base(key, name)
 {
     IconName           = "Laptop";
     HasPowerOnFeedback = new BoolFeedback("HasPowerFeedback",
                                           () => this.GetVideoStatuses() != VideoStatusOutputs.NoStatus);
     OutputPorts = new RoutingPortCollection <RoutingOutputPort>();
     OutputPorts.Add(AnyVideoOut = new RoutingOutputPort(RoutingPortNames.AnyOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                         eRoutingPortConnectionType.None, 0, this));
 }
Example #9
0
        public Roku2(string key, string name, IrOutputPortController portCont)
            : base(key, name)
        {
            IrPort = portCont;
            DeviceManager.AddDevice(portCont);;

            HdmiOut = new RoutingOutputPort(RoutingPortNames.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                            eRoutingPortConnectionType.Hdmi, null, this);
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut
            };
        }
Example #10
0
        public AirMediaController(string key, string name, AmX00 device, DeviceConfig dc, AirMediaPropertiesConfig props)
            : base(key, name, device)
        {
            AirMedia = device;

            DeviceConfig = dc;

            PropertiesConfig = props;

            InputPorts  = new RoutingPortCollection <RoutingInputPort>();
            OutputPorts = new RoutingPortCollection <RoutingOutputPort>();

            InputPorts.Add(new RoutingInputPort(DmPortName.Osd, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                eRoutingPortConnectionType.None, new Action(SelectPinPointUxLandingPage), this));

            InputPorts.Add(new RoutingInputPort(DmPortName.AirMediaIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                eRoutingPortConnectionType.Streaming, new Action(SelectAirMedia), this));

            InputPorts.Add(new RoutingInputPort(DmPortName.HdmiIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                eRoutingPortConnectionType.Hdmi, new Action(SelectHdmiIn), this));

            InputPorts.Add(new RoutingInputPort(DmPortName.AirBoardIn, eRoutingSignalType.Video,
                                                eRoutingPortConnectionType.None, new Action(SelectAirboardIn), this));

            if (AirMedia is Am300)
            {
                InputPorts.Add(new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                    eRoutingPortConnectionType.DmCat, new Action(SelectDmIn), this));
            }

            AirMedia.AirMedia.AirMediaChange += new Crestron.SimplSharpPro.DeviceSupport.GenericEventHandler(AirMedia_AirMediaChange);

            IsInSessionFeedback            = new BoolFeedback(new Func <bool>(() => AirMedia.AirMedia.StatusFeedback.UShortValue == 0));
            ErrorFeedback                  = new IntFeedback(new Func <int>(() => AirMedia.AirMedia.ErrorFeedback.UShortValue));
            NumberOfUsersConnectedFeedback = new IntFeedback(new Func <int>(() => AirMedia.AirMedia.NumberOfUsersConnectedFeedback.UShortValue));
            LoginCodeFeedback              = new IntFeedback(new Func <int>(() => AirMedia.AirMedia.LoginCodeFeedback.UShortValue));
            ConnectionAddressFeedback      = new StringFeedback(new Func <string>(() => AirMedia.AirMedia.ConnectionAddressFeedback.StringValue));
            HostnameFeedback               = new StringFeedback(new Func <string>(() => AirMedia.AirMedia.HostNameFeedback.StringValue));

            // TODO: Figure out if we can actually get the TSID/Serial
            SerialNumberFeedback = new StringFeedback(new Func <string>(() => "unknown"));

            AirMedia.DisplayControl.DisplayControlChange += new Crestron.SimplSharpPro.DeviceSupport.GenericEventHandler(DisplayControl_DisplayControlChange);

            VideoOutFeedback = new IntFeedback(new Func <int>(() => Convert.ToInt16(AirMedia.DisplayControl.VideoOutFeedback)));
            AutomaticInputRoutingEnabledFeedback = new BoolFeedback(new Func <bool>(() => AirMedia.DisplayControl.EnableAutomaticRoutingFeedback.BoolValue));

            AirMedia.HdmiIn.StreamChange += new Crestron.SimplSharpPro.DeviceSupport.StreamEventHandler(HdmiIn_StreamChange);

            HdmiVideoSyncDetectedFeedback = new BoolFeedback(new Func <bool>(() => AirMedia.HdmiIn.SyncDetectedFeedback.BoolValue));
        }
Example #11
0
        public VideoCodecBase(DeviceConfig config)
            : base(config)
        {
            StandbyIsOnFeedback        = new BoolFeedback(StandbyIsOnFeedbackFunc);
            PrivacyModeIsOnFeedback    = new BoolFeedback(PrivacyModeIsOnFeedbackFunc);
            VolumeLevelFeedback        = new IntFeedback(VolumeLevelFeedbackFunc);
            MuteFeedback               = new BoolFeedback(MuteFeedbackFunc);
            SharingSourceFeedback      = new StringFeedback(SharingSourceFeedbackFunc);
            SharingContentIsOnFeedback = new BoolFeedback(SharingContentIsOnFeedbackFunc);

            InputPorts  = new RoutingPortCollection <RoutingInputPort>();
            OutputPorts = new RoutingPortCollection <RoutingOutputPort>();

            ActiveCalls = new List <CodecActiveCallItem>();
        }
Example #12
0
        /// <summary>
        /// Constructor for Tesira Dsp Switcher Component
        /// </summary>
        /// <param name="key">Unique Key</param>
        /// <param name="config">Sqitcher Config Object</param>
        /// <param name="parent">Parent Object</param>
        public TesiraDspSwitcher(string key, TesiraSwitcherControlBlockConfig config, TesiraDsp parent)
            : base(config.SwitcherInstanceTag, String.Empty, config.Index1, 0, parent, string.Format(KeyFormatter, parent.Key, key), config.Label, config.BridgeIndex)
        {
            SourceIndexFeedback = new IntFeedback(Key + "-SourceIndexFeedback", () => SourceIndex);

            InputPorts  = new RoutingPortCollection <RoutingInputPort>();
            OutputPorts = new RoutingPortCollection <RoutingOutputPort>();

            Feedbacks.Add(SourceIndexFeedback);
            Feedbacks.Add(NameFeedback);

            parent.Feedbacks.AddRange(Feedbacks);

            Initialize(config);
        }
        public HDBaseTRxController(string key, string name, HDRx3CB rmc)
            : base(key, name, rmc)
        {
            DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
                                        eRoutingPortConnectionType.DmCat, 0, this);
            HDBaseTSink = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
                                                eRoutingPortConnectionType.Hdmi, null, this)
            {
                Port = Rmc
            };

            InputPorts = new RoutingPortCollection <RoutingInputPort> {
                DmIn
            };
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HDBaseTSink
            };
        }
Example #14
0
        /// <summary>
        ///  Make a Crestron RMC and put it in here
        /// </summary>
        public DmRmcX100CController(string key, string name, DmRmc100C rmc)
            : base(key, name, rmc)
        {
            _rmc = rmc;
            DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
                                        eRoutingPortConnectionType.DmCat, 0, this);
            HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
                                            eRoutingPortConnectionType.Hdmi, null, this)
            {
                Port = _rmc
            };

            InputPorts = new RoutingPortCollection <RoutingInputPort> {
                DmIn
            };
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut
            };
        }
Example #15
0
        public DmDge200CController(string key, string name, DmDge200C device, DeviceConfig dc, CrestronTouchpanelPropertiesConfig props)
            : base(key, name, device, dc, props)
        {
            _dge = device;

            DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
                                        eRoutingPortConnectionType.DmCat, 0, this);
            HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
                                            eRoutingPortConnectionType.Hdmi, null, this);


            InputPorts = new RoutingPortCollection <RoutingInputPort> {
                DmIn
            };
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut
            };

            // Set Ports for CEC
            HdmiOut.Port = _dge.HdmiOut;;
        }
Example #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="name"></param>
        /// <param name="chassis"></param>
        public HdMdNxM4kEController(string key, string name, HdMdNxM chassis,
                                    HdMdNxM4kEPropertiesConfig props)
            : base(key, name)
        {
            Chassis = chassis;

            // logical ports
            InputPorts = new RoutingPortCollection <RoutingInputPort>();
            for (uint i = 1; i <= 4; i++)
            {
                InputPorts.Add(new RoutingInputPort("hdmiIn" + i, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                    eRoutingPortConnectionType.Hdmi, i, this));
            }
            OutputPorts = new RoutingPortCollection <RoutingOutputPort>();
            OutputPorts.Add(new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                  eRoutingPortConnectionType.Hdmi, null, this));

            // physical settings
            if (props != null && props.Inputs != null)
            {
                foreach (var kvp in props.Inputs)
                {
                    // strip "hdmiIn"
                    var inputNum = Convert.ToUInt32(kvp.Key.Substring(6));

                    var port = chassis.HdmiInputs[inputNum].HdmiInputPort;
                    // set hdcp disables
                    if (kvp.Value.DisableHdcp)
                    {
                        Debug.Console(0, this, "Configuration disables HDCP support on {0}", kvp.Key);
                        port.HdcpSupportOff();
                    }
                    else
                    {
                        port.HdcpSupportOn();
                    }
                }
            }
        }
Example #17
0
        /// <summary>
        ///  Make a Crestron RMC and put it in here
        /// </summary>
        public DmRmc4kScalerCController(string key, string name, DmRmc4kScalerC rmc)
            : base(key, name, rmc)
        {
            _rmc = rmc;

            DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
                                        eRoutingPortConnectionType.DmCat, 0, this);
            HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
                                            eRoutingPortConnectionType.Hdmi, null, this);
            BalancedAudioOut = new RoutingOutputPort(DmPortName.BalancedAudioOut, eRoutingSignalType.Audio,
                                                     eRoutingPortConnectionType.LineAudio, null, this);

            MuteFeedback = new BoolFeedback(() => false);

            VolumeLevelFeedback = new IntFeedback("MainVolumeLevelFeedback", () =>
                                                  rmc.AudioOutput.VolumeFeedback.UShortValue);

            EdidManufacturerFeedback    = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
            EdidNameFeedback            = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
            EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
            EdidSerialNumberFeedback    = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);

            InputPorts = new RoutingPortCollection <RoutingInputPort> {
                DmIn
            };
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut, BalancedAudioOut
            };

            VideoOutputResolutionFeedback = new StringFeedback(() => _rmc.HdmiOutput.GetVideoResolutionString());

            _rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange;
            _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;

            // Set Ports for CEC
            HdmiOut.Port = _rmc.HdmiOutput;
        }
Example #18
0
        public IRBlurayBase(string key, string name, IrOutputPortController portCont)
            : base(key, name)
        {
            IrPort = portCont;
            DeviceManager.AddDevice(portCont);

            HasKeypadAccessoryButton1     = true;
            KeypadAccessoryButton1Command = "Clear";
            KeypadAccessoryButton1Label   = "Clear";

            HasKeypadAccessoryButton2     = true;
            KeypadAccessoryButton2Command = "NumericEnter";
            KeypadAccessoryButton2Label   = "Enter";

            PowerIsOnFeedback = new BoolFeedback(() => _PowerIsOn);

            HdmiOut = new RoutingOutputPort(RoutingPortNames.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                            eRoutingPortConnectionType.Hdmi, null, this);
            AnyAudioOut = new RoutingOutputPort(RoutingPortNames.AnyAudioOut, eRoutingSignalType.Audio,
                                                eRoutingPortConnectionType.DigitalAudio, null, this);
            OutputPorts = new RoutingPortCollection <RoutingOutputPort> {
                HdmiOut, AnyAudioOut
            };
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="name"></param>
        /// <param name="chassis"></param>
        public DmChassisController(string key, string name, DmMDMnxn chassis)
            : base(key, name, chassis)
        {
            Chassis                       = chassis;
            InputPorts                    = new RoutingPortCollection <RoutingInputPort>();
            OutputPorts                   = new RoutingPortCollection <RoutingOutputPort>();
            VolumeControls                = new Dictionary <uint, DmCardAudioOutputController>();
            TxDictionary                  = new Dictionary <uint, string>();
            RxDictionary                  = new Dictionary <uint, string>();
            IsOnline.OutputChange        += new EventHandler <FeedbackEventArgs>(IsOnline_OutputChange);
            Chassis.DMInputChange        += new DMInputEventHandler(Chassis_DMInputChange);
            Chassis.DMSystemChange       += new DMSystemEventHandler(Chassis_DMSystemChange);
            Chassis.DMOutputChange       += new DMOutputEventHandler(Chassis_DMOutputChange);
            VideoOutputFeedbacks          = new Dictionary <uint, IntFeedback>();
            AudioOutputFeedbacks          = new Dictionary <uint, IntFeedback>();
            UsbOutputRoutedToFeebacks     = new Dictionary <uint, IntFeedback>();
            UsbInputRoutedToFeebacks      = new Dictionary <uint, IntFeedback>();
            OutputDisabledByHdcpFeedbacks = new Dictionary <uint, BoolFeedback>();
            VideoInputSyncFeedbacks       = new Dictionary <uint, BoolFeedback>();
            InputNameFeedbacks            = new Dictionary <uint, StringFeedback>();
            OutputNameFeedbacks           = new Dictionary <uint, StringFeedback>();
            OutputVideoRouteNameFeedbacks = new Dictionary <uint, StringFeedback>();
            OutputAudioRouteNameFeedbacks = new Dictionary <uint, StringFeedback>();
            InputEndpointOnlineFeedbacks  = new Dictionary <uint, BoolFeedback>();
            OutputEndpointOnlineFeedbacks = new Dictionary <uint, BoolFeedback>();

            SystemIdFeebdack                 = new IntFeedback(() => { return((Chassis as DmMDMnxn).SystemIdFeedback.UShortValue); });
            SystemIdBusyFeedback             = new BoolFeedback(() => { return((Chassis as DmMDMnxn).SystemIdBusy.BoolValue); });
            InputCardHdcpCapabilityFeedbacks = new Dictionary <uint, IntFeedback>();
            InputCardHdcpCapabilityTypes     = new Dictionary <uint, eHdcpCapabilityType>();

            for (uint x = 1; x <= Chassis.NumberOfOutputs; x++)
            {
                var tempX = x;

                if (Chassis.Outputs[tempX] != null)
                {
                    VideoOutputFeedbacks[tempX] = new IntFeedback(() => {
                        if (Chassis.Outputs[tempX].VideoOutFeedback != null)
                        {
                            return((ushort)Chassis.Outputs[tempX].VideoOutFeedback.Number);
                        }

                        return(0);
                    });
                    AudioOutputFeedbacks[tempX] = new IntFeedback(() => {
                        if (Chassis.Outputs[tempX].AudioOutFeedback != null)
                        {
                            return((ushort)Chassis.Outputs[tempX].AudioOutFeedback.Number);
                        }

                        return(0);
                    });
                    UsbOutputRoutedToFeebacks[tempX] = new IntFeedback(() => {
                        if (Chassis.Outputs[tempX].USBRoutedToFeedback != null)
                        {
                            return((ushort)Chassis.Outputs[tempX].USBRoutedToFeedback.Number);
                        }

                        return(0);
                    });

                    OutputNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Outputs[tempX].NameFeedback != null)
                        {
                            return(Chassis.Outputs[tempX].NameFeedback.StringValue);
                        }

                        return("");
                    });
                    OutputVideoRouteNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Outputs[tempX].VideoOutFeedback != null)
                        {
                            return(Chassis.Outputs[tempX].VideoOutFeedback.NameFeedback.StringValue);
                        }

                        return(NoRouteText);
                    });
                    OutputAudioRouteNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Outputs[tempX].AudioOutFeedback != null)
                        {
                            return(Chassis.Outputs[tempX].AudioOutFeedback.NameFeedback.StringValue);
                        }

                        return(NoRouteText);
                    });
                    OutputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => Chassis.Outputs[tempX].EndpointOnlineFeedback);

                    OutputDisabledByHdcpFeedbacks[tempX] = new BoolFeedback(() => {
                        var output = Chassis.Outputs[tempX];

                        var hdmiTxOutput = output as Card.HdmiTx;
                        if (hdmiTxOutput != null)
                        {
                            return(hdmiTxOutput.HdmiOutput.DisabledByHdcp.BoolValue);
                        }

                        var dmHdmiOutput = output as Card.DmHdmiOutput;
                        if (dmHdmiOutput != null)
                        {
                            return(dmHdmiOutput.DisabledByHdcpFeedback.BoolValue);
                        }

                        var dmsDmOutAdvanced = output as Card.DmsDmOutAdvanced;
                        if (dmsDmOutAdvanced != null)
                        {
                            return(dmsDmOutAdvanced.DisabledByHdcpFeedback.BoolValue);
                        }

                        var dmps3HdmiAudioOutput = output as Card.Dmps3HdmiAudioOutput;
                        if (dmps3HdmiAudioOutput != null)
                        {
                            return(dmps3HdmiAudioOutput.HdmiOutputPort.DisabledByHdcpFeedback.BoolValue);
                        }

                        var dmps3HdmiOutput = output as Card.Dmps3HdmiOutput;
                        if (dmps3HdmiOutput != null)
                        {
                            return(dmps3HdmiOutput.HdmiOutputPort.DisabledByHdcpFeedback.BoolValue);
                        }

                        var dmps3HdmiOutputBackend = output as Card.Dmps3HdmiOutputBackend;
                        if (dmps3HdmiOutputBackend != null)
                        {
                            return(dmps3HdmiOutputBackend.HdmiOutputPort.DisabledByHdcpFeedback.BoolValue);
                        }

                        // var hdRx4kX10HdmiOutput = output as HdRx4kX10HdmiOutput;
                        // if (hdRx4kX10HdmiOutput != null)
                        //     return hdRx4kX10HdmiOutput.HdmiOutputPort.DisabledByHdcpFeedback.BoolValue;

                        // var hdMdNxMHdmiOutput = output as HdMdNxMHdmiOutput;
                        // if (hdMdNxMHdmiOutput != null)
                        //     return hdMdNxMHdmiOutput.HdmiOutputPort.DisabledByHdcpFeedback.BoolValue;

                        return(false);
                    });
                }

                if (Chassis.Inputs[tempX] != null)
                {
                    UsbInputRoutedToFeebacks[tempX] = new IntFeedback(() => {
                        if (Chassis.Inputs[tempX].USBRoutedToFeedback != null)
                        {
                            return((ushort)Chassis.Inputs[tempX].USBRoutedToFeedback.Number);
                        }

                        return(0);
                    });
                    VideoInputSyncFeedbacks[tempX] = new BoolFeedback(() => {
                        if (Chassis.Inputs[tempX].VideoDetectedFeedback != null)
                        {
                            return(Chassis.Inputs[tempX].VideoDetectedFeedback.BoolValue);
                        }

                        return(false);
                    });
                    InputNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Inputs[tempX].NameFeedback != null)
                        {
                            return(Chassis.Inputs[tempX].NameFeedback.StringValue);
                        }

                        return("");
                    });

                    InputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => { return(Chassis.Inputs[tempX].EndpointOnlineFeedback); });

                    InputCardHdcpCapabilityFeedbacks[tempX] = new IntFeedback(() => {
                        var inputCard = Chassis.Inputs[tempX];

                        if (inputCard.Card is DmcHd)
                        {
                            InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.HdcpAutoSupport;

                            if ((inputCard.Card as DmcHd).HdmiInput.HdcpSupportOnFeedback.BoolValue)
                            {
                                return(1);
                            }
                            return(0);
                        }

                        if (inputCard.Card is DmcHdDsp)
                        {
                            InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.HdcpAutoSupport;

                            if ((inputCard.Card as DmcHdDsp).HdmiInput.HdcpSupportOnFeedback.BoolValue)
                            {
                                return(1);
                            }
                            return(0);
                        }
                        if (inputCard.Card is Dmc4kHdBase)
                        {
                            InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.Hdcp2_2Support;
                            return((int)(inputCard.Card as Dmc4kHdBase).HdmiInput.HdcpReceiveCapability);
                        }
                        if (inputCard.Card is Dmc4kCBase)
                        {
                            if (PropertiesConfig.InputSlotSupportsHdcp2[tempX])
                            {
                                InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.HdcpAutoSupport;
                                return((int)(inputCard.Card as Dmc4kCBase).DmInput.HdcpReceiveCapability);
                            }

                            if ((inputCard.Card as Dmc4kCBase).DmInput.HdcpSupportOnFeedback.BoolValue)
                            {
                                return(1);
                            }
                            return(0);
                        }
                        if (inputCard.Card is Dmc4kCDspBase)
                        {
                            if (PropertiesConfig.InputSlotSupportsHdcp2[tempX])
                            {
                                InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.HdcpAutoSupport;
                                return((int)(inputCard.Card as Dmc4kCDspBase).DmInput.HdcpReceiveCapability);
                            }

                            if ((inputCard.Card as Dmc4kCDspBase).DmInput.HdcpSupportOnFeedback.BoolValue)
                            {
                                return(1);
                            }

                            return(0);
                        }
                        return(0);
                    });
                }
            }
        }
Example #20
0
        public HdMdxxxCEController(string key, string name, HdMdxxxCE txRxPair)
            : base(key, name, txRxPair)
        {
            TxRxPair = txRxPair;

            RemoteEndDetectedFeedback = new BoolFeedback(() => TxRxPair.RemoteEndDetectedOnFeedback.BoolValue);

            AutoRouteOnFeedback = new BoolFeedback(() => TxRxPair.TransmitterAutoModeOnFeedback.BoolValue);

            PriorityRoutingOnFeedback = new BoolFeedback(() => TxRxPair.PriorityRoutingOnFeedback.BoolValue);

            InputOnScreenDisplayEnabledFeedback = new BoolFeedback(() => TxRxPair.OnScreenDisplayEnabledFeedback.BoolValue);

            InputPorts = new RoutingPortCollection <RoutingInputPort>();

            SyncDetectedFeedbacks = new Dictionary <uint, BoolFeedback>();

            // Add the HDMI input port on the receiver
            InputPorts.Add(new RoutingInputPort(DmPortName.Hdmi, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                eRoutingPortConnectionType.Hdmi, 1, this));

            SyncDetectedFeedbacks.Add(1, new BoolFeedback(() => TxRxPair.HdmiInputs[1].VideoDetectedFeedback.BoolValue));

            if (txRxPair is HdMd400CE)
            {
                InputPorts.Add(new RoutingInputPort(DmPortName.HdmiIn1, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                    eRoutingPortConnectionType.Hdmi, 2, this));
                SyncDetectedFeedbacks.Add(2, new BoolFeedback(() => TxRxPair.HdmiInputs[2].VideoDetectedFeedback.BoolValue));

                InputPorts.Add(new RoutingInputPort(DmPortName.HdmiIn2, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                    eRoutingPortConnectionType.Hdmi, 3, this));
                SyncDetectedFeedbacks.Add(3, new BoolFeedback(() => TxRxPair.HdmiInputs[3].VideoDetectedFeedback.BoolValue));

                InputPorts.Add(new RoutingInputPort(DmPortName.VgaIn, eRoutingSignalType.Video | eRoutingSignalType.Audio,
                                                    eRoutingPortConnectionType.Vga, 4, this));
                SyncDetectedFeedbacks.Add(4, new BoolFeedback(() => TxRxPair.VgaInputs[1].VideoDetectedFeedback.BoolValue));

                // Set Ports for CEC
                InputPorts[DmPortName.HdmiIn1].Port = TxRxPair.HdmiInputs[1];
                InputPorts[DmPortName.HdmiIn2].Port = TxRxPair.HdmiInputs[2];
            }
            else if (txRxPair is HdMd300CE)
            {
                InputPorts.Add(new RoutingInputPort(DmPortName.HdmiIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                    eRoutingPortConnectionType.Hdmi, 2, this));
                SyncDetectedFeedbacks.Add(2, new BoolFeedback(() => TxRxPair.HdmiInputs[2].VideoDetectedFeedback.BoolValue));

                InputPorts.Add(new RoutingInputPort(DmPortName.VgaIn, eRoutingSignalType.Video | eRoutingSignalType.Audio,
                                                    eRoutingPortConnectionType.Vga, 3, this));
                SyncDetectedFeedbacks.Add(3, new BoolFeedback(() => TxRxPair.VgaInputs[1].VideoDetectedFeedback.BoolValue));

                // Set Ports for CEC
                InputPorts[DmPortName.HdmiIn].Port = TxRxPair.HdmiInputs[1];
            }
            else if (txRxPair is HdMd200CE || txRxPair is HdMd200C1GE)
            {
                InputPorts.Add(new RoutingInputPort(DmPortName.HdmiIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                                    eRoutingPortConnectionType.Hdmi, 2, this));
                SyncDetectedFeedbacks.Add(2, new BoolFeedback(() => TxRxPair.HdmiInputs[2].VideoDetectedFeedback.BoolValue));

                // Set Ports for CEC
                InputPorts[DmPortName.HdmiIn].Port = TxRxPair.HdmiInputs[1];
            }

            //ToRx = new RoutingOutputPort(DmPortName.ToTx, eRoutingSignalType.Audio | eRoutingSignalType.Video,
            //    eRoutingPortConnectionType.DmCat, null, this);

            //FromTx = new RoutingInputPort(DmPortName.FromTx, eRoutingSignalType.Audio | eRoutingSignalType.Video,
            //    eRoutingPortConnectionType.DmCat, null, this);

            HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
                                            eRoutingPortConnectionType.Hdmi, null, this);

            OutputPorts[DmPortName.HdmiOut].Port = TxRxPair.HdmiOutputs[1];

            TxRxPair.DMInputChange  += new DMInputEventHandler(TxRxPair_DMInputChange);
            TxRxPair.DMOutputChange += new DMOutputEventHandler(TxRxPair_DMOutputChange);
            TxRxPair.DMSystemChange += new DMSystemEventHandler(TxRxPair_DMSystemChange);

            VideoSourceFeedback = new IntFeedback(() => (int)TxRxPair.HdmiOutputs[1].VideoOutFeedback.Number);
        }
Example #21
0
 public BlueJeansPc(string key, string name)
     : base(key, name)
 {
     InputPorts = new RoutingPortCollection <RoutingInputPort>();
     InputPorts.Add(AnyVideoIn = new RoutingInputPort(RoutingPortNames.AnyVideoIn, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.None, 0, this));
 }
Example #22
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="key"></param>
        /// <param name="name"></param>
        /// <param name="chassis"></param>
        public DmBladeChassisController(string key, string name, BladeSwitch chassis)
            : base(key, name, chassis)
        {
            Chassis                       = chassis;
            InputPorts                    = new RoutingPortCollection <RoutingInputPort>();
            OutputPorts                   = new RoutingPortCollection <RoutingOutputPort>();
            VolumeControls                = new Dictionary <uint, DmCardAudioOutputController>();
            TxDictionary                  = new Dictionary <uint, string>();
            RxDictionary                  = new Dictionary <uint, string>();
            IsOnline.OutputChange        += new EventHandler <FeedbackEventArgs>(IsOnline_OutputChange);
            Chassis.DMInputChange        += new DMInputEventHandler(Chassis_DMInputChange);
            Chassis.DMOutputChange       += new DMOutputEventHandler(Chassis_DMOutputChange);
            VideoOutputFeedbacks          = new Dictionary <uint, IntFeedback>();
            UsbOutputRoutedToFeebacks     = new Dictionary <uint, IntFeedback>();
            UsbInputRoutedToFeebacks      = new Dictionary <uint, IntFeedback>();
            VideoInputSyncFeedbacks       = new Dictionary <uint, BoolFeedback>();
            InputNameFeedbacks            = new Dictionary <uint, StringFeedback>();
            OutputNameFeedbacks           = new Dictionary <uint, StringFeedback>();
            OutputVideoRouteNameFeedbacks = new Dictionary <uint, StringFeedback>();
            OutputAudioRouteNameFeedbacks = new Dictionary <uint, StringFeedback>();
            InputEndpointOnlineFeedbacks  = new Dictionary <uint, BoolFeedback>();
            OutputEndpointOnlineFeedbacks = new Dictionary <uint, BoolFeedback>();

            InputCardHdcpCapabilityFeedbacks = new Dictionary <uint, IntFeedback>();
            InputCardHdcpCapabilityTypes     = new Dictionary <uint, eHdcpCapabilityType>();

            for (uint x = 1; x <= Chassis.NumberOfOutputs; x++)
            {
                var tempX = x;

                if (Chassis.Outputs[tempX] != null)
                {
                    VideoOutputFeedbacks[tempX] = new IntFeedback(() => {
                        if (Chassis.Outputs[tempX].VideoOutFeedback != null)
                        {
                            return((ushort)Chassis.Outputs[tempX].VideoOutFeedback.Number);
                        }
                        else
                        {
                            return(0);
                        };
                    });

                    OutputNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Outputs[tempX].NameFeedback != null)
                        {
                            return(Chassis.Outputs[tempX].NameFeedback.StringValue);
                        }
                        else
                        {
                            return("");
                        }
                    });
                    OutputVideoRouteNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Outputs[tempX].VideoOutFeedback != null)
                        {
                            return(Chassis.Outputs[tempX].VideoOutFeedback.NameFeedback.StringValue);
                        }
                        else
                        {
                            return("");
                        }
                    });

                    OutputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => {
                        //if (Chassis.Outputs[tempX].Endpoint != null)
                        //    return Chassis.Outputs[tempX].Endpoint.IsOnline;
                        //else
                        return(Chassis.Outputs[tempX].EndpointOnlineFeedback);
                    });
                }

                if (Chassis.Inputs[tempX] != null)
                {
                    UsbInputRoutedToFeebacks[tempX] = new IntFeedback(() => {
                        if (Chassis.Inputs[tempX].USBRoutedToFeedback != null)
                        {
                            return((ushort)Chassis.Inputs[tempX].USBRoutedToFeedback.Number);
                        }
                        else
                        {
                            return(0);
                        };
                    });
                    VideoInputSyncFeedbacks[tempX] = new BoolFeedback(() => {
                        if (Chassis.Inputs[tempX].VideoDetectedFeedback != null)
                        {
                            return(Chassis.Inputs[tempX].VideoDetectedFeedback.BoolValue);
                        }
                        else
                        {
                            return(false);
                        }
                    });
                    InputNameFeedbacks[tempX] = new StringFeedback(() => {
                        if (Chassis.Inputs[tempX].NameFeedback != null)
                        {
                            return(Chassis.Inputs[tempX].NameFeedback.StringValue);
                        }
                        else
                        {
                            return("");
                        }
                    });

                    InputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => {
                        return(Chassis.Inputs[tempX].EndpointOnlineFeedback);
                    });

                    InputCardHdcpCapabilityFeedbacks[tempX] = new IntFeedback(() => {
                        var inputCard = Chassis.Inputs[tempX];

                        if (inputCard.Card is DmHdmi4kInputBladeCard)
                        {
                            InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.Hdcp2_2Support;

                            if ((inputCard.Card as DmHdmi4kInputBladeCard).Hdmi4kInput.HdcpSupportOnFeedback.BoolValue)
                            {
                                return(1);
                            }
                            else
                            {
                                return(0);
                            }
                        }

                        if (inputCard.Card is DmC4kInputBladeCard)
                        {
                            InputCardHdcpCapabilityTypes[tempX] = eHdcpCapabilityType.Hdcp2_2Support;

                            if ((inputCard.Card as DmC4kInputBladeCard).DmInput.HdcpCapabilityFeedback.Equals(eHdcpCapabilityType.HdcpSupportOff))
                            {
                                return(0);
                            }
                            else
                            {
                                return(1);
                            }
                        }

                        else
                        {
                            return(0);
                        }
                    });
                }
            }
        }