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); }
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])); } }
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)); } }
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()); }
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); }
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()); }