Esempio n. 1
0
        public RoomInputValues AddSlot(uint sendingRoomID, uint receivingRoomID, RoomInputValues inputValues, uint slotNumber)
        {
            RoomInputValues _inputValues;

            _inputValues = new RoomInputValues(SendingSlots[(int)slotNumber].AddSlot(sendingRoomID, receivingRoomID, inputValues));
            UpdateOutputs();
            return(_inputValues);
        }
Esempio n. 2
0
 public RoomInputValues(RoomInputValues obj)
 {
     AudioValue = obj.AudioValue;
     Displays   = new List <VideoSource>();
     Cameras    = new List <VideoSource>();
     for (int i = 0; i < 4; i++)
     {
         Displays.Add(new VideoSource(obj.Displays[i]));
         Cameras.Add(new VideoSource(obj.Cameras[i]));
     }
 }
Esempio n. 3
0
 public SwitcherSlot(uint startingOutput, uint startingInput)
 {
     SendingRoomID    = 0;
     ReceivingRoomIDs = new List <uint>();
     Outputs          = new List <uint>();
     Inputs           = new List <uint>();
     Available        = true;
     RouteValues      = new RoomInputValues();
     for (uint i = 0; i < 4; i++)
     {
         Outputs.Add((startingOutput + i));
         Inputs.Add((startingInput + i));
     }
 }
Esempio n. 4
0
        public RoomInputValues AddSlot(uint sendingRoomID, uint receivingRoomID, RoomInputValues inputValues)
        {
            RoomInputValues _inputValues;

            foreach (SwitcherSlot slot in SendingSlots)
            {
                if (slot.Available || slot.SendingRoomID == sendingRoomID)
                {
                    //CrestronConsole.PrintLine("Slot available or room is already sending");
                    _inputValues = new RoomInputValues(slot.AddSlot(sendingRoomID, receivingRoomID, inputValues));
                    UpdateOutputs();
                    return(_inputValues);
                }
            }
            CrestronConsole.PrintLine("Error!!! No Room attached in Switcher AddSlot");
            return(new RoomInputValues());
        }
Esempio n. 5
0
        public RoomInputValues AddSlot(uint sendingRoomID, uint receivingRoomID, RoomInputValues inputValues)
        {
            //CrestronConsole.PrintLine("Adding Sending Room {0} an Receiving Room {1} to slot", sendingRoomID, receivingRoomID);
            SendingRoomID = sendingRoomID;
            RouteValues   = new RoomInputValues(inputValues);
            RoomInputValues _inputValues;

            _inputValues = new RoomInputValues(inputValues);
            bool IDFound = false;

            foreach (uint RoomID in ReceivingRoomIDs)
            {
                if (receivingRoomID == RoomID)
                {
                    IDFound = true;
                }
            }
            if (!IDFound)
            {
                ReceivingRoomIDs.Add(receivingRoomID);
            }
            Available = false;

            _inputValues.Displays[0].InputValue = Inputs[0];
            _inputValues.Displays[1].InputValue = Inputs[1];
            _inputValues.Displays[2].enabled    = false;
            _inputValues.Displays[3].enabled    = false;
            _inputValues.Cameras[0].InputValue  = Inputs[2];
            _inputValues.Cameras[1].InputValue  = Inputs[3];
            _inputValues.Cameras[2].enabled     = false;
            CrestronConsole.Print("Sending Room ID: {0} || ", SendingRoomID);
            foreach (uint receivingRoom in ReceivingRoomIDs)
            {
                CrestronConsole.Print("Receiving Room ID: {0} || ", receivingRoom);
            }
            CrestronConsole.PrintLine("=================");
            return(_inputValues);
        }
Esempio n. 6
0
        public RoomInputValues AttachSendingRoom(uint sendingRoomID, uint sendingSwitcher, uint receivingRoomID, uint receivingSwitcher, RoomInputValues roomValues)
        {
            //CrestronConsole.PrintLine("Sending Room ID {0} Called AttacheSendingRoom, Sending Switcher {1}, Receiving Room ID {2}, ReceivingSwitcher {3}", sendingRoomID, sendingSwitcher, receivingRoomID, receivingSwitcher);
            RoomInputValues roomInputVals;

            #region Single Switcher Logic
            if ((((int)sendingSwitcher - (int)receivingSwitcher) == 1) && sendingSwitcher != 2)
            {
                //CrestronConsole.PrintLine("Sending Switcher - Receiving Switcher = 1 and Switcher != 2");
                return(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues));
            }
            else if ((((int)sendingSwitcher - (int)receivingSwitcher) == -1) && sendingSwitcher != 2)
            {
                //CrestronConsole.PrintLine("Sending Switcher - Receiving Switcher = -1 and Switcher != 2");
                return(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues));
            }

            else if (((((int)sendingSwitcher - (int)receivingSwitcher) == 1) || (((int)sendingSwitcher - (int)receivingSwitcher) == -1)) && sendingSwitcher == 2)
            {
                //CrestronConsole.PrintLine("Sending Switcher - Receiving Switcher = -1 or 1 and Sending Switcher == 2");
                if (sendingSwitcher == 2 && receivingSwitcher == 3)
                {
                    //CrestronConsole.PrintLine("Sending Switcher = 2 and Receiving Switcher = 3 and Sending Switcher == 2");
                    if (Switchers[(int)sendingSwitcher - 1].SendingSlots[0].Available || Switchers[(int)sendingSwitcher - 1].SendingSlots[0].SendingRoomID == sendingRoomID)
                    {
                        //CrestronConsole.PrintLine("Sending switcher Slot 0 is available or Sending Room ID Already in SendingSlot");
                        return(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues, 0));
                    }
                    else if (Switchers[(int)sendingSwitcher - 1].SendingSlots[1].Available || Switchers[(int)sendingSwitcher - 1].SendingSlots[1].SendingRoomID == sendingRoomID)
                    {
                        //CrestronConsole.PrintLine("Sending switcher Slot 1 is available or Sending Room ID Already in SendingSlot");
                        return(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues, 1));
                    }
                }
                else if (sendingSwitcher == 2 && receivingSwitcher == 1)
                {
                    //CrestronConsole.PrintLine("Sending Switcher = 2 and Receiving Switcher = 1 and Sending Switcher == 2");
                    if (Switchers[(int)sendingSwitcher - 1].SendingSlots[2].Available || Switchers[(int)sendingSwitcher - 1].SendingSlots[2].SendingRoomID == sendingRoomID)
                    {
                        //CrestronConsole.PrintLine("Sending switcher Slot 2 is available or Sending Room ID Already in SendingSlot");
                        return(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues, 2));
                    }
                    else if (Switchers[(int)sendingSwitcher - 1].SendingSlots[3].Available || Switchers[(int)sendingSwitcher - 1].SendingSlots[3].SendingRoomID == sendingRoomID)
                    {
                        //CrestronConsole.PrintLine("Sending switcher Slot 3 is available or Sending Room ID Already in SendingSlot");
                        return(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues, 3));
                    }
                }
            }
            #endregion
            #region Mutiple Switcher Logic
            else if (((int)sendingSwitcher - (int)receivingSwitcher) == -2)
            {
                roomInputVals = new RoomInputValues(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues));
                if (Switchers[1].SendingSlots[0].Available || Switchers[1].SendingSlots[0].SendingRoomID == sendingRoomID)
                {
                    return(Switchers[1].AddSlot(sendingRoomID, receivingRoomID, roomInputVals, 0));
                }
                else if (Switchers[1].SendingSlots[1].Available || Switchers[1].SendingSlots[1].SendingRoomID == sendingRoomID)
                {
                    return(Switchers[1].AddSlot(sendingRoomID, receivingRoomID, roomInputVals, 1));
                }
            }
            else
            {
                roomInputVals = new RoomInputValues(Switchers[(int)sendingSwitcher - 1].AddSlot(sendingRoomID, receivingRoomID, roomValues));
                if (Switchers[1].SendingSlots[2].Available || Switchers[1].SendingSlots[2].SendingRoomID == sendingRoomID)
                {
                    return(Switchers[1].AddSlot(sendingRoomID, receivingRoomID, roomInputVals, 2));
                }
                else if (Switchers[1].SendingSlots[3].Available || Switchers[1].SendingSlots[3].SendingRoomID == sendingRoomID)
                {
                    return(Switchers[1].AddSlot(sendingRoomID, receivingRoomID, roomInputVals, 3));
                }
            }
            #endregion
            //CrestronConsole.PrintLine("Error!!! No Room attached in SwitcherManager AttachSendingRoom");
            return(new RoomInputValues());
        }