//using System; //using System.Collections.Generic; //using System.Linq; //using System.Text; //using Crestron.SimplSharp; //using Crestron.SimplSharpPro; //using Crestron.SimplSharpPro.DeviceSupport; //using PepperDash.Core; //using PepperDash.Essentials.Core; //using PepperDash.Essentials.Core.SmartObjects; //using PepperDash.Essentials.Core.PageManagers; //namespace PepperDash.Essentials //{ // public class DualDisplaySimpleOrAdvancedRouting : PanelDriverBase // { // EssentialsPresentationPanelAvFunctionsDriver Parent; // /// // /// Smart Object 3200 // /// // SubpageReferenceList SourcesSrl; // /// // /// For tracking feedback on last selected // /// // BoolInputSig LastSelectedSourceSig; // /// // /// The source that has been selected and is awaiting assignment to a display // /// // SourceListItem PendingSource; // bool IsSharingModeAdvanced; // public DualDisplaySimpleOrAdvancedRouting(EssentialsPresentationPanelAvFunctionsDriver parent) : base(parent.TriList) // { // Parent = parent; // SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3); // TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed); // TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress); // TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress); // TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPressAndFb, Display1Press); // TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress); // TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress); // TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPressAndFb, Display2Press); // } // /// // /// // /// // public override void Show() // { // TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true; // TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; // if(IsSharingModeAdvanced) // TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = true; // else // TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true; // base.Show(); // } // /// // /// // /// // //public override void Hide() // //{ // // TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false; // // TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; // // if(IsSharingModeAdvanced) // // TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = false; // // else // // TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; // // base.Hide(); // //} // public void SetCurrentRoomFromParent() // { // if (IsSharingModeAdvanced) // return; // add stuff here // else // SetupSourceListForSimpleRouting(); // } // /// // /// // /// // void SetupSourceListForSimpleRouting() // { // // get the source list config and set up the source list // var config = ConfigReader.ConfigObject.SourceLists; // if (config.ContainsKey(Parent.CurrentRoom.SourceListKey)) // { // var srcList = config[Parent.CurrentRoom.SourceListKey] // .Values.ToList().OrderBy(s => s.Order); // // Setup sources list // uint i = 1; // counter for UI list // foreach (var srcConfig in srcList) // { // if (!srcConfig.IncludeInSourceList) // Skip sources marked this way // continue; // var sourceKey = srcConfig.SourceKey; // var actualSource = DeviceManager.GetDeviceForKey(sourceKey) as Device; // if (actualSource == null) // { // Debug.Console(0, "Cannot assign missing source '{0}' to source UI list", // srcConfig.SourceKey); // continue; // } // var localSrcItem = srcConfig; // lambda scope below // var localIndex = i; // SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action(b => // { // if (IsSharingModeAdvanced) // { // if (LastSelectedSourceSig != null) // LastSelectedSourceSig.BoolValue = false; // SourceListButtonPress(localSrcItem); // LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1); // LastSelectedSourceSig.BoolValue = true; // } // else // Parent.CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem); // }); // SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName; // i++; // //var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig, // // b => { if (!b) UiSelectSource(localSrcConfig); }); // //SourcesSrl.AddItem(item); // add to the SRL // //item.RegisterForSourceChange(Parent.CurrentRoom); // } // SourcesSrl.Count = (ushort)(i - 1); // Parent.CurrentRoom.CurrentSingleSourceChange += CurrentRoom_CurrentSourceInfoChange; // Parent.CurrentRoom.CurrentDisplay1SourceChange += CurrentRoom_CurrentDisplay1SourceChange; // Parent.CurrentRoom.CurrentDisplay2SourceChange += CurrentRoom_CurrentDisplay2SourceChange; // } // } // void SetupSourceListForAdvancedRouting() // { // } // void CurrentRoom_CurrentSourceInfoChange(IEssentialsRoom room, SourceListItem info, ChangeType type) // { // } // void CurrentRoom_CurrentDisplay1SourceChange(IEssentialsRoom room, SourceListItem info, ChangeType type) // { // TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue = PendingSource.PreferredName; // } // void CurrentRoom_CurrentDisplay2SourceChange(IEssentialsRoom room, SourceListItem info, ChangeType type) // { // TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue = PendingSource.PreferredName; // } // /// // /// // /// // void ToggleSharingModePressed() // { // Hide(); // IsSharingModeAdvanced = !IsSharingModeAdvanced; // TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; // Show(); // } // public void SourceListButtonPress(SourceListItem item) // { // // start the timer // // show FB on potential source // TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = false; // TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = false; // TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = false; // TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = false; // PendingSource = item; // } // void EnableAppropriateDisplayButtons() // { // TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = true; // TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = true; // TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = true; // TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = true; // if (LastSelectedSourceSig != null) // LastSelectedSourceSig.BoolValue = false; // } // public void Display1Press() // { // EnableAppropriateDisplayButtons(); // Parent.CurrentRoom.SourceToDisplay1(PendingSource); // // Enable end meeting // } // public void Display1AudioPress() // { // } // public void Display1ControlPress() // { // } // public void Display2Press() // { // EnableAppropriateDisplayButtons(); // Parent.CurrentRoom.SourceToDisplay2(PendingSource); // } // public void Display2AudioPress() // { // } // public void Display2ControlPress() // { // } // } //}