diff --git a/PepperDashEssentials/PepperDashEssentials.suo b/PepperDashEssentials/PepperDashEssentials.suo index d6cfff14..6889b25e 100644 Binary files a/PepperDashEssentials/PepperDashEssentials.suo and b/PepperDashEssentials/PepperDashEssentials.suo differ diff --git a/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo b/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo index 89a80142..4f16f056 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo and b/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo differ diff --git a/PepperDashEssentials/PepperDashEssentials/UI Drivers/DualDisplayRouting.cs b/PepperDashEssentials/PepperDashEssentials/UI Drivers/DualDisplayRouting.cs index 15be5f75..f1961e29 100644 --- a/PepperDashEssentials/PepperDashEssentials/UI Drivers/DualDisplayRouting.cs +++ b/PepperDashEssentials/PepperDashEssentials/UI Drivers/DualDisplayRouting.cs @@ -12,12 +12,26 @@ using PepperDash.Essentials.Core.PageManagers; namespace PepperDash.Essentials { - public class DualDisplayRouting : PanelDriverBase + public class DualDisplaySimpleOrAdvancedRouting : PanelDriverBase { + EssentialsPresentationPanelAvFunctionsDriver Parent; + CTimer SourceSelectedTimer; - public DualDisplayRouting(BasicTriListWithSmartObject trilist) : base(trilist) + /// + /// Smart Object 3200 + /// + SubpageReferenceList SourcesSrl; + + 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.Display1SelectPress, Display1Press); @@ -27,23 +41,102 @@ namespace PepperDash.Essentials TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPress, Display2Press); } - public void Enable() - { - // attach to the source list SRL - } - + /// + /// + /// public override void Show() { - TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = true; + 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.DualDisplayPageVisible].BoolValue = false; + 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 + SetupSourcesForSimpleRouting(); + } + + /// + /// + /// + void SetupSourcesForSimpleRouting() + { + // 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 localSrcConfig = srcConfig; // lambda scope below + 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); + } + } + /// + /// + /// + void ToggleSharingModePressed() + { + Hide(); + IsSharingModeAdvanced = !IsSharingModeAdvanced; + TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; + Show(); + } + + /// + /// Called from button presses on source, where We can assume we want + /// to change to the proper screen. + /// + /// The key name of the route to run + void UiSelectSource(SourceListItem sourceItem) + { + if (IsSharingModeAdvanced) + { + SourceListButtonPress(sourceItem); + } + else + Parent.CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem); + } public void SourceListButtonPress(SourceListItem item) { diff --git a/PepperDashEssentials/PepperDashEssentials/UI Drivers/EssentialsPresentationPanelAvFunctionsDriver.cs b/PepperDashEssentials/PepperDashEssentials/UI Drivers/EssentialsPresentationPanelAvFunctionsDriver.cs index 2608833e..153ea8cd 100644 --- a/PepperDashEssentials/PepperDashEssentials/UI Drivers/EssentialsPresentationPanelAvFunctionsDriver.cs +++ b/PepperDashEssentials/PepperDashEssentials/UI Drivers/EssentialsPresentationPanelAvFunctionsDriver.cs @@ -105,7 +105,7 @@ namespace PepperDash.Essentials /// /// Driver that manages advanced sharing features /// - DualDisplayRouting DualDisplayUiDriver; + DualDisplaySimpleOrAdvancedRouting DualDisplayUiDriver; /// /// All children attached to this driver. For hiding and showing as a group. @@ -116,10 +116,10 @@ namespace PepperDash.Essentials //// Important smart objects - /// - /// Smart Object 3200 - /// - SubpageReferenceList SourcesSrl; + ///// + ///// Smart Object 3200 + ///// + //SubpageReferenceList SourcesSrl; /// /// Smart Object 15022 @@ -146,7 +146,7 @@ namespace PepperDash.Essentials /// CTimer PowerOffTimer; - bool IsSharingModeAdvanced; + //bool IsSharingModeAdvanced; /// /// Constructor @@ -158,8 +158,10 @@ namespace PepperDash.Essentials Config = config; Parent = parent; - SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3); + + //SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3); ActivityFooterSrl = new SubpageReferenceList(TriList, 15022, 3, 3, 3); + DualDisplayUiDriver = new DualDisplaySimpleOrAdvancedRouting(this); SetupActivityFooterWhenRoomOff(); ShowVolumeGauge = true; @@ -241,8 +243,7 @@ namespace PepperDash.Essentials TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false; + //TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; VolumeButtonsPopupFeedback.ClearNow(); CancelPowerOff(); @@ -264,7 +265,7 @@ namespace PepperDash.Essentials // show start page or staging... if (CurrentRoom.OnFeedback.BoolValue) { - TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; + //TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; } @@ -288,58 +289,58 @@ namespace PepperDash.Essentials TriList.BooleanInput[UIBoolJoin.TimeOnlyVisible].BoolValue = Config.ShowTime; } - TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed); + //TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed); ShowCurrentDisplayModeSigsInUse(); break; } } - /// - /// - /// - void ToggleSharingModePressed() - { - HideSharingMode(); - IsSharingModeAdvanced = !IsSharingModeAdvanced; - TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; - RevealSharingMode(); - } + ///// + ///// + ///// + //void ToggleSharingModePressed() + //{ + // HideSharingMode(); + // IsSharingModeAdvanced = !IsSharingModeAdvanced; + // TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; + // RevealSharingMode(); + //} - /// - /// - /// - void HideSharingMode() - { - TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; - if (IsSharingModeAdvanced) - { - if (DualDisplayUiDriver != null) - DualDisplayUiDriver.Hide(); - } - else - { - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; - } - } + ///// + ///// + ///// + //void HideSharingMode() + //{ + // TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false; + // if (IsSharingModeAdvanced) + // { + // if (DualDisplayUiDriver != null) + // DualDisplayUiDriver.Hide(); + // } + // else + // { + // TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; + // } + //} - /// - /// - /// - void RevealSharingMode() - { - TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; - if (IsSharingModeAdvanced) - { - if(DualDisplayUiDriver == null) - DualDisplayUiDriver = new DualDisplayRouting(TriList); - DualDisplayUiDriver.Show(); - } - else - { - TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true; - } - } + ///// + ///// + ///// + //void RevealSharingMode() + //{ + // TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; + // if (IsSharingModeAdvanced) + // { + // if(DualDisplayUiDriver == null) + // DualDisplayUiDriver = new DualDisplaySimpleOrAdvancedRouting(this); + // DualDisplayUiDriver.Show(); + // } + // else + // { + // TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true; + // } + //} /// /// When the room is off, set the footer SRL @@ -352,7 +353,7 @@ namespace PepperDash.Essentials ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 1, b => { })); ActivityFooterSrl.Count = 2; - TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 0; + TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 1; } /// @@ -368,7 +369,7 @@ namespace PepperDash.Essentials ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl, 3, b => { if (!b) PowerButtonPressed(); })); ActivityFooterSrl.Count = 3; - TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 1; + TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 2; EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1); } @@ -382,8 +383,9 @@ namespace PepperDash.Essentials { ShareButtonSig.BoolValue = true; TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false; - TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true; - RevealSharingMode(); + DualDisplayUiDriver.Show(); + //TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true; + //RevealSharingMode(); } } @@ -408,7 +410,6 @@ namespace PepperDash.Essentials CurrentInterlockedModalJoin = 0; } - /// /// Shows all sigs that are in CurrentDisplayModeSigsInUse /// @@ -482,20 +483,20 @@ namespace PepperDash.Essentials } } - /// - /// Called from button presses on source, where We can assume we want - /// to change to the proper screen. - /// - /// The key name of the route to run - void UiSelectSource(SourceListItem sourceItem) - { - if (IsSharingModeAdvanced) - { - DualDisplayUiDriver.SourceListButtonPress(sourceItem); - } - else - CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem); - } + ///// + ///// Called from button presses on source, where We can assume we want + ///// to change to the proper screen. + ///// + ///// The key name of the route to run + //void UiSelectSource(SourceListItem sourceItem) + //{ + // if (IsSharingModeAdvanced) + // { + // DualDisplayUiDriver.SourceListButtonPress(sourceItem); + // } + // else + // CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem); + //} /// /// @@ -615,7 +616,8 @@ namespace PepperDash.Essentials if (_CurrentRoom != null) { - SetupSourcesForSimpleRouting(); + DualDisplayUiDriver.SetCurrentRoomFromParent(); + //SetupSourcesForSimpleRouting(); TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name; // Link up all the change events from the room @@ -646,43 +648,44 @@ namespace PepperDash.Essentials } else { + DualDisplayUiDriver.Hide(); SetupActivityFooterWhenRoomOff(); TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true; } } - void SetupSourcesForSimpleRouting() - { - // get the source list config and set up the source list - var config = ConfigReader.ConfigObject.SourceLists; - if (config.ContainsKey(_CurrentRoom.SourceListKey)) - { - var srcList = config[_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; + //void SetupSourcesForSimpleRouting() + //{ + // // get the source list config and set up the source list + // var config = ConfigReader.ConfigObject.SourceLists; + // if (config.ContainsKey(_CurrentRoom.SourceListKey)) + // { + // var srcList = config[_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 localSrcConfig = srcConfig; // lambda scope below - var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig, - b => { if (!b) UiSelectSource(localSrcConfig); }); - SourcesSrl.AddItem(item); // add to the SRL - item.RegisterForSourceChange(_CurrentRoom); - } - SourcesSrl.Count = (ushort)(i - 1); - } - } + // 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 localSrcConfig = srcConfig; // lambda scope below + // var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig, + // b => { if (!b) UiSelectSource(localSrcConfig); }); + // SourcesSrl.AddItem(item); // add to the SRL + // item.RegisterForSourceChange(_CurrentRoom); + // } + // SourcesSrl.Count = (ushort)(i - 1); + // } + //} /// /// Hides source for provided source info diff --git a/PepperDashEssentials/PepperDashEssentials/UI Drivers/enums and base.cs b/PepperDashEssentials/PepperDashEssentials/UI Drivers/enums and base.cs index fd609c97..7bfa14de 100644 --- a/PepperDashEssentials/PepperDashEssentials/UI Drivers/enums and base.cs +++ b/PepperDashEssentials/PepperDashEssentials/UI Drivers/enums and base.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; - +using Crestron.SimplSharpPro.DeviceSupport; using PepperDash.Essentials.Core; namespace PepperDash.Essentials @@ -100,7 +100,7 @@ namespace PepperDash.Essentials { } - public PanelDriverBase(Crestron.SimplSharpPro.DeviceSupport.BasicTriListWithSmartObject triList) + public PanelDriverBase(BasicTriListWithSmartObject triList) { TriList = triList; } @@ -128,7 +128,7 @@ namespace PepperDash.Essentials /// /// The trilist object for the Crestron TP device /// - public Crestron.SimplSharpPro.DeviceSupport.BasicTriListWithSmartObject TriList { get; private set; } + public BasicTriListWithSmartObject TriList { get; private set; } /// /// diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz index df7f93bd..a009fb4c 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll index 3678a8bc..f9c0a3f9 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb index bbd9497e..74165953 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config b/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config index c8a1117c..866392af 100644 --- a/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config +++ b/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config @@ -10,8 +10,8 @@ - 2/14/2017 11:24:21 AM - 1.0.0.20529 + 2/15/2017 10:47:23 AM + 1.0.0.19420 Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10 diff --git a/PepperDashEssentials/PepperDashEssentials/bin/manifest.info b/PepperDashEssentials/PepperDashEssentials/bin/manifest.info index 555fc5a0..7e12f8cd 100644 --- a/PepperDashEssentials/PepperDashEssentials/bin/manifest.info +++ b/PepperDashEssentials/PepperDashEssentials/bin/manifest.info @@ -1,4 +1,4 @@ -MainAssembly=PepperDashEssentials.dll:0ec9394c958b83119e9ba457828c9bd0 +MainAssembly=PepperDashEssentials.dll:60c91f66dea9040efb0f42a2e016ea2d MainAssemblyMinFirmwareVersion=1.009.0029 MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e ü diff --git a/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser b/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser index ce187141..a263bbb5 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser and b/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser differ diff --git a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll index 7285fc20..56630a3f 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll and b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll differ diff --git a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb index 85d944c1..cb783fed 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb and b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb differ