Grinding through details on ecs-213

This commit is contained in:
Heath Volmer
2017-02-23 12:01:58 -07:00
parent 0862a5db43
commit b682e46c73
21 changed files with 886 additions and 357 deletions

View File

@@ -154,6 +154,9 @@
<Compile Include="FOR REFERENCE UI\PageControllers\LargeTouchpanelControllerBase.cs" /> <Compile Include="FOR REFERENCE UI\PageControllers\LargeTouchpanelControllerBase.cs" />
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" /> <Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
<Compile Include="Room\VolumeAndSourceChangeArgs.cs" /> <Compile Include="Room\VolumeAndSourceChangeArgs.cs" />
<Compile Include="UI Drivers\UISmartObjectJoin.cs" />
<Compile Include="UI Drivers\UIStringlJoin.cs" />
<Compile Include="UI Drivers\UIUshortJoin.cs" />
<Compile Include="UI Drivers\DualDisplayRouting.cs" /> <Compile Include="UI Drivers\DualDisplayRouting.cs" />
<Compile Include="UI Drivers\EssentialsPresentationPanelAvFunctionsDriver.cs" /> <Compile Include="UI Drivers\EssentialsPresentationPanelAvFunctionsDriver.cs" />
<Compile Include="UI Drivers\SingleSubpageModalDriver.cs" /> <Compile Include="UI Drivers\SingleSubpageModalDriver.cs" />
@@ -162,7 +165,7 @@
<Compile Include="UI Drivers\EssentialsHuddlePanelAvFunctionsDriver.cs" /> <Compile Include="UI Drivers\EssentialsHuddlePanelAvFunctionsDriver.cs" />
<Compile Include="UI Drivers\SingleSubpageModalAndBackDriver.cs" /> <Compile Include="UI Drivers\SingleSubpageModalAndBackDriver.cs" />
<Compile Include="UI Drivers\SmartObjectRoomsList.cs" /> <Compile Include="UI Drivers\SmartObjectRoomsList.cs" />
<Compile Include="UI Drivers\UIJoins.cs" /> <Compile Include="UI Drivers\UIBoolJoin.cs" />
<Compile Include="UI\DualDisplaySourceSRLController.cs" /> <Compile Include="UI\DualDisplaySourceSRLController.cs" />
<Compile Include="UI\SubpageReferenceListActivityItem.cs" /> <Compile Include="UI\SubpageReferenceListActivityItem.cs" />
<Compile Include="UI\CrestronTouchpanelPropertiesConfig.cs" /> <Compile Include="UI\CrestronTouchpanelPropertiesConfig.cs" />

View File

@@ -0,0 +1,126 @@
2/22/2017 9:20:03 AM, Info: Initializing SIMPLSharp Services...
2/22/2017 9:20:03 AM, Info: ProjectInfo successfully initialized.
2/22/2017 1:08:29 PM, Info: Saving project information...
2/22/2017 1:08:29 PM, Info: Saving project information...
2/22/2017 1:08:29 PM, Info: Saving project information...
2/22/2017 1:13:29 PM, Info: Saving project information...
2/22/2017 1:13:29 PM, Info: Saving project information...
2/22/2017 1:13:29 PM, Info: Saving project information...
2/22/2017 1:18:29 PM, Info: Saving project information...
2/22/2017 1:18:29 PM, Info: Saving project information...
2/22/2017 1:18:29 PM, Info: Saving project information...
2/22/2017 1:23:29 PM, Info: Saving project information...
2/22/2017 1:23:29 PM, Info: Saving project information...
2/22/2017 1:23:29 PM, Info: Saving project information...
2/22/2017 1:28:29 PM, Info: Saving project information...
2/22/2017 1:28:29 PM, Info: Saving project information...
2/22/2017 1:28:29 PM, Info: Saving project information...
2/22/2017 1:33:29 PM, Info: Saving project information...
2/22/2017 1:33:29 PM, Info: Saving project information...
2/22/2017 1:33:29 PM, Info: Saving project information...
2/22/2017 1:38:29 PM, Info: Saving project information...
2/22/2017 1:38:29 PM, Info: Saving project information...
2/22/2017 1:38:29 PM, Info: Saving project information...
2/22/2017 1:43:29 PM, Info: Saving project information...
2/22/2017 1:43:29 PM, Info: Saving project information...
2/22/2017 1:43:29 PM, Info: Saving project information...
2/22/2017 1:48:29 PM, Info: Saving project information...
2/22/2017 1:48:29 PM, Info: Saving project information...
2/22/2017 1:48:29 PM, Info: Saving project information...
2/22/2017 1:53:29 PM, Info: Saving project information...
2/22/2017 1:53:29 PM, Info: Saving project information...
2/22/2017 1:53:29 PM, Info: Saving project information...
2/22/2017 1:58:29 PM, Info: Saving project information...
2/22/2017 1:58:29 PM, Info: Saving project information...
2/22/2017 1:58:29 PM, Info: Saving project information...
2/22/2017 2:03:29 PM, Info: Saving project information...
2/22/2017 2:03:29 PM, Info: Saving project information...
2/22/2017 2:03:29 PM, Info: Saving project information...
2/22/2017 2:08:29 PM, Info: Saving project information...
2/22/2017 2:08:29 PM, Info: Saving project information...
2/22/2017 2:08:29 PM, Info: Saving project information...
2/22/2017 2:13:29 PM, Info: Saving project information...
2/22/2017 2:13:29 PM, Info: Saving project information...
2/22/2017 2:13:29 PM, Info: Saving project information...
2/22/2017 2:18:29 PM, Info: Saving project information...
2/22/2017 2:18:29 PM, Info: Saving project information...
2/22/2017 2:18:29 PM, Info: Saving project information...
2/22/2017 2:23:29 PM, Info: Saving project information...
2/22/2017 2:23:29 PM, Info: Saving project information...
2/22/2017 2:23:29 PM, Info: Saving project information...
2/22/2017 2:28:29 PM, Info: Saving project information...
2/22/2017 2:28:29 PM, Info: Saving project information...
2/22/2017 2:28:29 PM, Info: Saving project information...
2/22/2017 2:33:29 PM, Info: Saving project information...
2/22/2017 2:33:29 PM, Info: Saving project information...
2/22/2017 2:33:29 PM, Info: Saving project information...
2/22/2017 2:38:29 PM, Info: Saving project information...
2/22/2017 2:38:29 PM, Info: Saving project information...
2/22/2017 2:38:29 PM, Info: Saving project information...
2/22/2017 2:43:29 PM, Info: Saving project information...
2/22/2017 2:43:29 PM, Info: Saving project information...
2/22/2017 2:43:29 PM, Info: Saving project information...
2/22/2017 2:48:29 PM, Info: Saving project information...
2/22/2017 2:48:29 PM, Info: Saving project information...
2/22/2017 2:48:29 PM, Info: Saving project information...
2/22/2017 2:53:29 PM, Info: Saving project information...
2/22/2017 2:53:29 PM, Info: Saving project information...
2/22/2017 2:53:29 PM, Info: Saving project information...
2/22/2017 2:58:29 PM, Info: Saving project information...
2/22/2017 2:58:29 PM, Info: Saving project information...
2/22/2017 2:58:29 PM, Info: Saving project information...
2/22/2017 3:03:29 PM, Info: Saving project information...
2/22/2017 3:03:29 PM, Info: Saving project information...
2/22/2017 3:03:29 PM, Info: Saving project information...
2/22/2017 3:08:29 PM, Info: Saving project information...
2/22/2017 3:08:29 PM, Info: Saving project information...
2/22/2017 3:08:29 PM, Info: Saving project information...
2/22/2017 3:13:29 PM, Info: Saving project information...
2/22/2017 3:13:29 PM, Info: Saving project information...
2/22/2017 3:13:29 PM, Info: Saving project information...
2/22/2017 3:18:29 PM, Info: Saving project information...
2/22/2017 3:18:29 PM, Info: Saving project information...
2/22/2017 3:18:29 PM, Info: Saving project information...
2/22/2017 3:23:29 PM, Info: Saving project information...
2/22/2017 3:23:29 PM, Info: Saving project information...
2/22/2017 3:23:29 PM, Info: Saving project information...
2/22/2017 3:28:29 PM, Info: Saving project information...
2/22/2017 3:28:29 PM, Info: Saving project information...
2/22/2017 3:28:29 PM, Info: Saving project information...
2/22/2017 3:33:29 PM, Info: Saving project information...
2/22/2017 3:33:29 PM, Info: Saving project information...
2/22/2017 3:33:29 PM, Info: Saving project information...
2/22/2017 3:38:29 PM, Info: Saving project information...
2/22/2017 3:38:29 PM, Info: Saving project information...
2/22/2017 3:38:29 PM, Info: Saving project information...
2/22/2017 3:43:29 PM, Info: Saving project information...
2/22/2017 3:43:29 PM, Info: Saving project information...
2/22/2017 3:43:29 PM, Info: Saving project information...
2/22/2017 3:48:29 PM, Info: Saving project information...
2/22/2017 3:48:29 PM, Info: Saving project information...
2/22/2017 3:48:29 PM, Info: Saving project information...
2/22/2017 3:53:29 PM, Info: Saving project information...
2/22/2017 3:53:29 PM, Info: Saving project information...
2/22/2017 3:53:29 PM, Info: Saving project information...
2/22/2017 3:58:29 PM, Info: Saving project information...
2/22/2017 3:58:29 PM, Info: Saving project information...
2/22/2017 3:58:29 PM, Info: Saving project information...
2/22/2017 4:01:29 PM, Info: Saving project information...
2/22/2017 4:01:29 PM, Info: Saving project information...
2/22/2017 4:01:29 PM, Info: Saving project information...
2/22/2017 4:01:29 PM, Info: Saving project information...
2/22/2017 4:01:29 PM, Info: Saving project information...
2/22/2017 4:01:29 PM, Info: Saving project information...
2/22/2017 4:01:33 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/22/2017 4:01:34 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/22/2017 4:01:35 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/22/2017 4:01:36 PM, Info: Saving project information...
2/22/2017 4:10:42 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/22/2017 4:10:43 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/22/2017 4:10:43 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/22/2017 4:10:44 PM, Info: Saving project information...
2/22/2017 4:13:18 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/22/2017 4:13:18 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/22/2017 4:13:18 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/22/2017 4:13:20 PM, Info: Saving project information...
2/22/2017 5:37:25 PM, Info: Terminating SIMPLSharp Services

View File

@@ -0,0 +1,68 @@
2/23/2017 8:42:27 AM, Info: Initializing SIMPLSharp Services...
2/23/2017 8:42:27 AM, Info: ProjectInfo successfully initialized.
2/23/2017 8:49:33 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 8:49:34 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 8:49:34 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 8:49:36 AM, Info: Saving project information...
2/23/2017 8:55:41 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 8:55:42 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 8:55:42 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 8:55:43 AM, Info: Saving project information...
2/23/2017 8:57:56 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 8:57:56 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 8:57:56 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 8:57:58 AM, Info: Saving project information...
2/23/2017 9:12:05 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 9:12:06 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 9:12:06 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 9:12:08 AM, Info: Saving project information...
2/23/2017 9:28:52 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 9:28:53 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 9:28:53 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 9:28:54 AM, Exception: The process cannot access the file 'C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.Delete(String path)
at Crestron.Tools.SIMPLSharp.Services.Utilities.Zipper.Zip(String zipFileName, Folder folderToZip)
at h.a(String A_0, IList`1 A_1, String A_2)
2/23/2017 9:32:21 AM, Info: Saving project information...
2/23/2017 9:32:21 AM, Info: Saving project information...
2/23/2017 9:32:21 AM, Info: Saving project information...
2/23/2017 9:35:44 AM, Info: Saving project information...
2/23/2017 9:35:44 AM, Info: Saving project information...
2/23/2017 9:35:44 AM, Info: Saving project information...
2/23/2017 9:35:44 AM, Info: Saving project information...
2/23/2017 9:35:44 AM, Info: Saving project information...
2/23/2017 9:35:44 AM, Info: Saving project information...
2/23/2017 9:35:46 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 9:35:47 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 9:35:47 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 9:35:48 AM, Info: Saving project information...
2/23/2017 10:32:33 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 10:32:34 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 10:32:34 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 10:32:35 AM, Info: Saving project information...
2/23/2017 10:35:50 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 10:35:51 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 10:35:51 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 10:35:53 AM, Info: Saving project information...
2/23/2017 10:53:11 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 10:53:12 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 10:53:12 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 10:53:13 AM, Info: Saving project information...
2/23/2017 10:54:13 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 10:54:14 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 10:54:14 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 10:54:15 AM, Info: Saving project information...
2/23/2017 11:00:55 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 11:00:56 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 11:00:56 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 11:00:57 AM, Info: Saving project information...
2/23/2017 11:12:54 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 11:12:55 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 11:12:55 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 11:12:57 AM, Info: Saving project information...
2/23/2017 11:24:45 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/23/2017 11:24:45 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/23/2017 11:24:46 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/23/2017 11:24:47 AM, Info: Saving project information...
2/23/2017 11:56:58 AM, Info: Terminating SIMPLSharp Services

View File

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

View File

@@ -193,11 +193,11 @@ namespace PepperDash.Essentials
TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress); TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress);
TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress); TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress);
TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPress, Display1Press); TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPressAndFb, Display1Press);
TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress); TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress);
TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress); TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress);
TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPress, Display2Press); TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPressAndFb, Display2Press);
} }
/// <summary> /// <summary>
@@ -391,16 +391,19 @@ namespace PepperDash.Essentials
var localIndex = i; var localIndex = i;
SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action<bool>(b => SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action<bool>(b =>
{ {
if (b) return;
if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false;
LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1);
LastSelectedSourceSig.BoolValue = true;
if (IsSharingModeAdvanced) if (IsSharingModeAdvanced)
{ {
if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false;
PendingSource = localSrcItem; PendingSource = localSrcItem;
LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1);
LastSelectedSourceSig.BoolValue = true;
} }
else else
{
CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem); CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem);
}
}); });
SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName; SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName;
i++; i++;
@@ -420,26 +423,26 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
void ToggleSharingModePressed() void ToggleSharingModePressed()
{ {
if (CurrentSourcePageManager != null)
CurrentSourcePageManager.Hide();
HideCurrentSharingMode(); HideCurrentSharingMode();
IsSharingModeAdvanced = !IsSharingModeAdvanced; IsSharingModeAdvanced = !IsSharingModeAdvanced;
TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced; TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced;
ShowCurrentSharingMode(); ShowCurrentSharingMode();
} }
/// <summary> ///// <summary>
/// /////
/// </summary> ///// </summary>
void EnableAppropriateDisplayButtons() //void EnableAppropriateDisplayButtons()
{ //{
if (LastSelectedSourceSig != null) // if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false; // LastSelectedSourceSig.BoolValue = false;
} //}
public void Display1Press() public void Display1Press()
{ {
EnableAppropriateDisplayButtons();
CurrentRoom.SourceToDisplay1(PendingSource); CurrentRoom.SourceToDisplay1(PendingSource);
// Enable end meeting
} }
public void Display1AudioPress() public void Display1AudioPress()
@@ -450,12 +453,12 @@ namespace PepperDash.Essentials
public void Display1ControlPress() public void Display1ControlPress()
{ {
var uiDev = CurrentRoom.Display1SourceInfo.SourceDevice as IUiDisplayInfo;
ShowSource(uiDev);
} }
public void Display2Press() public void Display2Press()
{ {
EnableAppropriateDisplayButtons();
CurrentRoom.SourceToDisplay2(PendingSource); CurrentRoom.SourceToDisplay2(PendingSource);
} }
@@ -466,7 +469,8 @@ namespace PepperDash.Essentials
public void Display2ControlPress() public void Display2ControlPress()
{ {
var uiDev = CurrentRoom.Display2SourceInfo.SourceDevice as IUiDisplayInfo;
ShowSource(uiDev);
} }
/// <summary> /// <summary>
@@ -597,19 +601,34 @@ namespace PepperDash.Essentials
{ {
if (CurrentRoom.CurrentSingleSourceInfo == null) if (CurrentRoom.CurrentSingleSourceInfo == null)
return; return;
var uiDev = CurrentRoom.CurrentSingleSourceInfo.SourceDevice as IUiDisplayInfo; var uiDev = CurrentRoom.CurrentSingleSourceInfo.SourceDevice as IUiDisplayInfo;
PageManager pm = null; ShowSource(uiDev);
}
void ShowSource(IUiDisplayInfo uiDev)
{
PageManager pm = null;
// If we need a page manager, get an appropriate one // If we need a page manager, get an appropriate one
if (uiDev != null) if (uiDev != null)
{ {
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
if (IsSharingModeAdvanced)
{
TriList.BooleanInput[UIBoolJoin.SourceBackgroundOverlayVisible].BoolValue = true;
TriList.SetSigFalseAction(UIBoolJoin.SourceBackgroundOverlayClosePress, new Action(() =>
{
TriList.BooleanInput[UIBoolJoin.SourceBackgroundOverlayVisible].BoolValue = false;
if (CurrentSourcePageManager != null)
CurrentSourcePageManager.Hide();
}));
}
// Got an existing page manager, get it // Got an existing page manager, get it
if (PageManagers.ContainsKey(uiDev)) if (PageManagers.ContainsKey(uiDev))
pm = PageManagers[uiDev]; pm = PageManagers[uiDev];
// Otherwise make an apporiate one // Otherwise make an apporiate one
else if (uiDev is ISetTopBoxControls) else if (uiDev is ISetTopBoxControls)
//pm = new SetTopBoxMediumPageManager(uiDev as ISetTopBoxControls, TriList);
pm = new SetTopBoxThreePanelPageManager(uiDev as ISetTopBoxControls, TriList); pm = new SetTopBoxThreePanelPageManager(uiDev as ISetTopBoxControls, TriList);
else if (uiDev is IDiscPlayerControls) else if (uiDev is IDiscPlayerControls)
pm = new DiscPlayerMediumPageManager(uiDev as IDiscPlayerControls, TriList); pm = new DiscPlayerMediumPageManager(uiDev as IDiscPlayerControls, TriList);
@@ -619,7 +638,7 @@ namespace PepperDash.Essentials
CurrentSourcePageManager = pm; CurrentSourcePageManager = pm;
pm.Show(); pm.Show();
} }
} }
/// <summary> /// <summary>
/// ///
@@ -639,13 +658,13 @@ namespace PepperDash.Essentials
"End Meeting Now", "Cancel", time, true, "End Meeting Now", "Cancel", time, true,
but => but =>
{ {
EndMeetingButtonSig.BoolValue = false;
if (but != 2) if (but != 2)
{ {
CurrentRoom.DoSourceToAllDestinationsRoute(null); CurrentRoom.DoSourceToAllDestinationsRoute(null);
} }
else else
ShareButtonSig.BoolValue = true; // restore Share fb ShareButtonSig.BoolValue = true; // restore Share fb
EndMeetingButtonSig.BoolValue = false;
}); });
} }
@@ -745,7 +764,6 @@ namespace PepperDash.Essentials
{} // add stuff here {} // add stuff here
else else
SetupSourceList(); SetupSourceList();
TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name; TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name;
// Link up all the change events from the room // Link up all the change events from the room
@@ -762,70 +780,6 @@ namespace PepperDash.Essentials
} }
} }
/// <summary>
/// For room on/off changes
/// </summary>
void _CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e)
{
var value = _CurrentRoom.OnFeedback.BoolValue;
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
if (value)
{
SetupActivityFooterWhenRoomOn();
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
}
else
{
HideCurrentSharingMode();
SetupActivityFooterWhenRoomOff();
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
}
}
/// <summary>
///
/// </summary>
void _CurrentRoom_CurrentDisplay1SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
var isSource = info != null;
TriList.BooleanInput[UIBoolJoin.Display1SelectPress].BoolValue = isSource;
if (type == ChangeType.DidChange)
{
TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue =
isSource ? info.PreferredName : "";
if (!isSource)
return;
// enable audio and control buttons
var devConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key == info.SourceKey);
TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasAudio(devConfig);
TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasControls(devConfig);
}
}
/// <summary>
///
/// </summary>
void _CurrentRoom_CurrentDisplay2SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
var isSource = info != null;
TriList.BooleanInput[UIBoolJoin.Display2SelectPress].BoolValue = isSource;
if (type == ChangeType.DidChange)
{
TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue =
isSource ? info.PreferredName : "";
if (!isSource)
return;
// enable audio and control buttons
var devConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key == info.SourceKey);
TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasAudio(devConfig);
TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasControls(devConfig);
}
}
/// <summary> /// <summary>
/// Hides source for provided source info /// Hides source for provided source info
/// </summary> /// </summary>
@@ -990,6 +944,43 @@ namespace PepperDash.Essentials
RefreshAudioDeviceConnections(); RefreshAudioDeviceConnections();
} }
/// <summary>
/// For room on/off changes
/// </summary>
void _CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e)
{
var value = _CurrentRoom.OnFeedback.BoolValue;
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
if (value)
{
SetupActivityFooterWhenRoomOn();
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
}
else
{
HideCurrentSharingMode();
SetupActivityFooterWhenRoomOff();
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
if (LastSelectedSourceSig != null)
{
LastSelectedSourceSig.BoolValue = false;
LastSelectedSourceSig = null;
}
PendingSource = null;
}
if (_CurrentRoom.HasAudioDialer)
{
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = value;
TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = false;
}
else
{
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = value;
}
}
/// <summary> /// <summary>
/// Handles source change /// Handles source change
/// </summary> /// </summary>
@@ -1001,5 +992,50 @@ namespace PepperDash.Essentials
else else
RefreshSourceInfo(); RefreshSourceInfo();
} }
/// <summary>
///
/// </summary>
void _CurrentRoom_CurrentDisplay1SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
if (type == ChangeType.DidChange)
{
var isSource = info != null;
TriList.BooleanInput[UIBoolJoin.Display1SelectPressAndFb].BoolValue = isSource;
TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue =
isSource ? info.PreferredName : "";
if (!isSource)
return;
// enable audio and control buttons
var devConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key == info.SourceKey);
TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasAudio(devConfig);
TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasControls(devConfig);
}
}
/// <summary>
///
/// </summary>
void _CurrentRoom_CurrentDisplay2SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
if (type == ChangeType.DidChange)
{
var isSource = info != null;
TriList.BooleanInput[UIBoolJoin.Display2SelectPressAndFb].BoolValue = isSource;
TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue =
isSource ? info.PreferredName : "";
if (!isSource)
return;
// enable audio and control buttons
var devConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(d => d.Key == info.SourceKey);
TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasAudio(devConfig);
TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue =
ConfigPropertiesHelpers.GetHasControls(devConfig);
}
}
} }
} }

View File

@@ -8,57 +8,133 @@ using Crestron.SimplSharpPro.DeviceSupport;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class UISmartObjectJoin
{
public const uint StagingListSRL = 3200;
public const uint ActivityFooterSRL = 15022;
}
/// <summary> /// <summary>
/// /// Where all UI element common joins are defined
/// </summary> /// </summary>
public class UIBoolJoin public class UIBoolJoin
{ {
/// <summary>
/// 901
/// </summary>
public const uint VolumeUpPress = 901; public const uint VolumeUpPress = 901;
/// <summary>
/// 902
/// </summary>
public const uint VolumeDownPress = 902; public const uint VolumeDownPress = 902;
/// <summary>
/// 3811
/// </summary>
public const uint VolumeSingleMute1Visible = 3811; public const uint VolumeSingleMute1Visible = 3811;
/// <summary>
/// 3812
/// </summary>
public const uint VolumeSlider1Press = 3812; public const uint VolumeSlider1Press = 3812;
/// <summary>
/// 3813
/// </summary>
public const uint Volume1ProgramMutePressAndFB = 3813; public const uint Volume1ProgramMutePressAndFB = 3813;
/// <summary>
/// 3871
/// </summary>
public const uint VolumeDualMute1Visible = 3871; public const uint VolumeDualMute1Visible = 3871;
/// <summary>
/// 3874
/// </summary>
public const uint Volume1SpeechMutePressAndFB = 3874; public const uint Volume1SpeechMutePressAndFB = 3874;
/// <summary>
/// 3875
/// </summary>
public const uint Volume1BackerVisibility = 3875; public const uint Volume1BackerVisibility = 3875;
/// <summary>
/// 3821
/// </summary>
public const uint Volume2Visible = 3821; public const uint Volume2Visible = 3821;
/// <summary>
/// 3822
/// </summary>
public const uint VolumeSlider2Press = 3822; public const uint VolumeSlider2Press = 3822;
/// <summary>
/// 3823
/// </summary>
public const uint Volume2MutePressAndFB = 3823; public const uint Volume2MutePressAndFB = 3823;
/// <summary>
/// 3831
/// </summary>
public const uint Volume3Visible = 3831; public const uint Volume3Visible = 3831;
/// <summary>
/// 3832
/// </summary>
public const uint VolumeSlider3Press = 3832; public const uint VolumeSlider3Press = 3832;
/// <summary>
/// 3833
/// </summary>
public const uint Volume3MutePressAndFB = 3833; public const uint Volume3MutePressAndFB = 3833;
/// <summary>
/// 3841
/// </summary>
public const uint Volume4Visible = 3841; public const uint Volume4Visible = 3841;
/// <summary>
/// 3842
/// </summary>
public const uint VolumeSlider4Press = 3842; public const uint VolumeSlider4Press = 3842;
/// <summary>
/// 3843
/// </summary>
public const uint Volume4MutePressAndFB = 3843; public const uint Volume4MutePressAndFB = 3843;
/// <summary>
/// 3851
/// </summary>
public const uint Volume5Visible = 3851; public const uint Volume5Visible = 3851;
/// <summary>
/// 3852
/// </summary>
public const uint VolumeSlider5Press = 3852; public const uint VolumeSlider5Press = 3852;
/// <summary>
/// 3853
/// </summary>
public const uint Volume5MutePressAndFB = 3853; public const uint Volume5MutePressAndFB = 3853;
/// <summary>
/// 3861
/// </summary>
public const uint Volume6Visible = 3861; public const uint Volume6Visible = 3861;
/// <summary>
/// 3862
/// </summary>
public const uint VolumeSlider6Press = 3862; public const uint VolumeSlider6Press = 3862;
/// <summary>
/// 3863
/// </summary>
public const uint Volume6MutePressAndFB = 3863; public const uint Volume6MutePressAndFB = 3863;
/// <summary> /// <summary>
/// 3870 /// 3870
/// </summary> /// </summary>
public const uint VolumesPageVisible = 3870; public const uint VolumesPageVisible = 3870;
/// <summary>
/// 3999
/// </summary>
public const uint GenericModalVisible = 3999; public const uint GenericModalVisible = 3999;
/// <summary>
/// 12345
/// </summary>
public const uint AvNoControlsSubVisible = 12345; public const uint AvNoControlsSubVisible = 12345;
/// <summary>
/// 15001
/// </summary>
public const uint StartPageVisible = 15001; public const uint StartPageVisible = 15001;
/// <summary> /// <summary>
/// 15002 Shows the start page in the source controls area of the screen /// 15002 Shows the start page in the source controls area of the screen
/// </summary> /// </summary>
public const uint TapToBeginVisible = 15002; public const uint TapToBeginVisible = 15002;
/// <summary>
/// 15003 Message text when no source is showing
/// </summary>
public const uint SelectASourceVisible = 15003; public const uint SelectASourceVisible = 15003;
/// <summary>
/// 15004
/// </summary>
public const uint RoomIsOn = 15004; public const uint RoomIsOn = 15004;
/// <summary> /// <summary>
/// 15005 Shows always-on volume control subpage with only audio mute /// 15005 Shows always-on volume control subpage with only audio mute
@@ -68,21 +144,69 @@ namespace PepperDash.Essentials
/// 15006 Shows always-on volume control subpage with mic and audio mutes /// 15006 Shows always-on volume control subpage with mic and audio mutes
/// </summary> /// </summary>
public const uint VolumeControlsDualMuteVisible = 15006; public const uint VolumeControlsDualMuteVisible = 15006;
/// <summary>
/// 15010
/// </summary>
public const uint ShowPanelSetupPress = 15010; public const uint ShowPanelSetupPress = 15010;
/// <summary>
/// 15011
/// </summary>
public const uint TopBarVisible = 15011; public const uint TopBarVisible = 15011;
/// <summary>
/// 15012
/// </summary>
public const uint StagingPageVisible = 15012; public const uint StagingPageVisible = 15012;
/// <summary>
/// 15013
/// </summary>
public const uint PowerOffStep1Visible = 15013; public const uint PowerOffStep1Visible = 15013;
/// <summary>
/// 15014
/// </summary>
public const uint PowerOffStep2Visible = 15014; public const uint PowerOffStep2Visible = 15014;
/// <summary>
/// 15015
/// </summary>
public const uint ShowPowerOffPress = 15015; public const uint ShowPowerOffPress = 15015;
/// <summary>
/// 15016
/// </summary>
public const uint PowerOffMorePress = 15016; public const uint PowerOffMorePress = 15016;
/// <summary>
/// 15017
/// </summary>
public const uint StagingPageAdditionalArrowsVisible = 15017; public const uint StagingPageAdditionalArrowsVisible = 15017;
/// <summary>
/// 15020
/// </summary>
public const uint PanelSetupVisible = 15020; public const uint PanelSetupVisible = 15020;
/// <summary>
/// 15021
/// </summary>
public const uint SourceWaitOverlayVisible = 15021; public const uint SourceWaitOverlayVisible = 15021;
/// <summary>
/// 15022
/// </summary>
public const uint ActivityFooterVisible = 15022; public const uint ActivityFooterVisible = 15022;
/// <summary>
/// 15023
/// </summary>
public const uint LightsHeaderButtonVisible = 15023; public const uint LightsHeaderButtonVisible = 15023;
/// <summary>
/// 15024
/// </summary>
public const uint CallRightHeaderButtonVisible = 15024; public const uint CallRightHeaderButtonVisible = 15024;
/// <summary>
/// 15025
/// </summary>
public const uint CallLeftHeaderButtonVisible = 15025; public const uint CallLeftHeaderButtonVisible = 15025;
/// <summary>
/// 15026
/// </summary>
public const uint LightsHeaderButtonPress = 15026; public const uint LightsHeaderButtonPress = 15026;
/// <summary>
/// 15027
/// </summary>
public const uint CallHeaderButtonPress = 15027; public const uint CallHeaderButtonPress = 15027;
/// <summary> /// <summary>
/// 15028 The gear button in header /// 15028 The gear button in header
@@ -96,40 +220,110 @@ namespace PepperDash.Essentials
/// 15030 Visibility for room data popup /// 15030 Visibility for room data popup
/// </summary> /// </summary>
public const uint RoomHeaderPageVisible = 15030; public const uint RoomHeaderPageVisible = 15030;
/// <summary>
/// 15031
/// </summary>
public const uint AllRoomsOffPress = 15031; public const uint AllRoomsOffPress = 15031;
/// <summary>
/// 15032
/// </summary>
public const uint DisplayPowerTogglePress = 15032; public const uint DisplayPowerTogglePress = 15032;
/// <summary>
/// 15033
/// </summary>
public const uint PowerOffCancelPress = 15033; public const uint PowerOffCancelPress = 15033;
/// <summary>
/// 15034
/// </summary>
public const uint PowerOffConfirmPress = 15034; public const uint PowerOffConfirmPress = 15034;
/// <summary>
/// 15035
/// </summary>
public const uint VolumeButtonPopupPress = 15035; public const uint VolumeButtonPopupPress = 15035;
/// <summary>
/// 15035
/// </summary>
public const uint VolumeButtonPopupVisible = 15035; public const uint VolumeButtonPopupVisible = 15035;
/// <summary>
/// 15036
/// </summary>
public const uint VolumeGaugePopupVisible = 15036; public const uint VolumeGaugePopupVisible = 15036;
/// <summary>
/// 15040
/// </summary>
public const uint CallStatusPageVisible = 15040; public const uint CallStatusPageVisible = 15040;
/// <summary>
/// 15041
/// </summary>
public const uint LightsPageVisible = 15041; public const uint LightsPageVisible = 15041;
/// <summary> /// <summary>
/// 15042 Closes whichever interlocked modal is open /// 15042 Closes whichever interlocked modal is open
/// </summary> /// </summary>
public const uint InterlockedModalClosePress = 15042; public const uint InterlockedModalClosePress = 15042;
/// <summary>
/// 15043 Vis for modal backer for full-screen source
/// </summary>
public const uint SourceBackgroundOverlayVisible = 15043;
/// <summary>
/// 15044 Close button for source modal overlay
/// </summary>
public const uint SourceBackgroundOverlayClosePress = 15044;
public const uint Display1SelectPress = 15051;
/// <summary>
/// 15051
/// </summary>
public const uint Display1SelectPressAndFb = 15051;
/// <summary>
/// 15052
/// </summary>
public const uint Display1ControlButtonEnable = 15052; public const uint Display1ControlButtonEnable = 15052;
/// <summary>
/// 15053
/// </summary>
public const uint Display1ControlButtonPress = 15053; public const uint Display1ControlButtonPress = 15053;
/// <summary>
/// 15054
/// </summary>
public const uint Display1AudioButtonEnable = 15054; public const uint Display1AudioButtonEnable = 15054;
/// <summary>
/// 15055
/// </summary>
public const uint Display1AudioButtonPressAndFb = 15055; public const uint Display1AudioButtonPressAndFb = 15055;
public const uint Display2SelectPress = 15056; /// <summary>
/// 15056
/// </summary>
public const uint Display2SelectPressAndFb = 15056;
/// <summary>
/// 15057
/// </summary>
public const uint Display2ControlButtonEnable = 15057; public const uint Display2ControlButtonEnable = 15057;
/// <summary>
/// 15058
/// </summary>
public const uint Display2ControlButtonPress = 15058; public const uint Display2ControlButtonPress = 15058;
/// <summary>
/// 15059
/// </summary>
public const uint Display2AudioButtonEnable = 15059; public const uint Display2AudioButtonEnable = 15059;
/// <summary>
/// 15060
/// </summary>
public const uint Display2AudioButtonPressAndFb = 15060; public const uint Display2AudioButtonPressAndFb = 15060;
/// <summary> /// <summary>
/// 15061 Reveals the dual-display subpage /// 15061 Reveals the dual-display subpage
/// </summary> /// </summary>
public const uint DualDisplayPageVisible = 15061; public const uint DualDisplayPageVisible = 15061;
/// <summary>
/// 15062 Reveals the toggle switch for the sharing mode
/// </summary>
public const uint ToggleSharingModeVisible = 15062; public const uint ToggleSharingModeVisible = 15062;
/// <summary>
/// 15063 Press for the toggle mode switch
/// </summary>
public const uint ToggleSharingModePress = 15063; public const uint ToggleSharingModePress = 15063;
/// <summary> /// <summary>
/// 15085 Visibility join for help subpage /// 15085 Visibility join for help subpage
/// </summary> /// </summary>
@@ -139,63 +333,21 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
public const uint HelpPress = 15086; public const uint HelpPress = 15086;
/// <summary>
/// 15088
/// </summary>
public const uint DateOnlyVisible = 15088; public const uint DateOnlyVisible = 15088;
/// <summary>
/// 15089
/// </summary>
public const uint TimeOnlyVisible = 15089; public const uint TimeOnlyVisible = 15089;
/// <summary>
/// 15090
/// </summary>
public const uint DateAndTimeVisible = 15090; public const uint DateAndTimeVisible = 15090;
/// <summary>
/// 15091
/// </summary>
public const uint SetupFullDistrib = 15091; public const uint SetupFullDistrib = 15091;
} }
/// <summary>
///
/// </summary>
public class UIUshortJoin
{
//public const uint VolumeLevel = 3812;
public const uint VolumeSlider1Value = 3812;
public const uint VolumeSlider2Value = 3822;
public const uint VolumeSlider3Value = 3832;
public const uint VolumeSlider4Value = 3842;
public const uint VolumeSlider5Value = 3852;
public const uint VolumeSlider6Value = 3862;
public const uint PresentationListCaretMode = 3922;
}
/// <summary>
///
/// </summary>
public class UIStringJoin
{
public const uint AdvancedVolumeSlider1Text = 3812;
public const uint AdvancedVolumeSlider2Text = 3822;
public const uint AdvancedVolumeSlider3Text = 3832;
public const uint AdvancedVolumeSlider4Text = 3842;
public const uint AdvancedVolumeSlider5Text = 3852;
public const uint AdvancedVolumeSlider6Text = 3862;
public const uint CurrentRoomName = 3901;
public const uint CurrentSourceName = 3902;
public const uint CurrentSourceIcon = 3903;
public const uint PowerOffMessage = 3911;
public const uint StartPageMessage = 3912;
public const uint StartActivityText = 3913;
public const uint HelpMessage = 3922;
/// <summary>
/// 3961 Name of source on display 1
/// </summary>
public const uint Display1SourceLabel = 3961;
/// <summary>
/// 3962 Title above display 1
/// </summary>
public const uint Display1TitleLabel = 3962;
/// <summary>
/// 3964 Name of source on display 2
/// </summary>
public const uint Display2SourceLabel = 3964;
/// <summary>
/// 3965 Title above display 2
/// </summary>
public const uint Display2TitleLabel = 3965;
}
} }

View File

@@ -0,0 +1,14 @@
namespace PepperDash.Essentials
{
public class UISmartObjectJoin
{
/// <summary>
/// 3200 The staging, source-select list
/// </summary>
public const uint StagingListSRL = 3200;
/// <summary>
/// 15022 The main activity footer
/// </summary>
public const uint ActivityFooterSRL = 15022;
}
}

View File

@@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
namespace PepperDash.Essentials
{
/// <summary>
///
/// </summary>
public class UIStringJoin
{
/// <summary>
/// 3812
/// </summary>
public const uint AdvancedVolumeSlider1Text = 3812;
/// <summary>
/// 3822
/// </summary>
public const uint AdvancedVolumeSlider2Text = 3822;
/// <summary>
/// 3832
/// </summary>
public const uint AdvancedVolumeSlider3Text = 3832;
/// <summary>
/// 3842
/// </summary>
public const uint AdvancedVolumeSlider4Text = 3842;
/// <summary>
/// 3852
/// </summary>
public const uint AdvancedVolumeSlider5Text = 3852;
/// <summary>
/// 3862
/// </summary>
public const uint AdvancedVolumeSlider6Text = 3862;
/// <summary>
/// 3901
/// </summary>
public const uint CurrentRoomName = 3901;
/// <summary>
/// 3902
/// </summary>
public const uint CurrentSourceName = 3902;
/// <summary>
/// 3903
/// </summary>
public const uint CurrentSourceIcon = 3903;
/// <summary>
/// 3911
/// </summary>
public const uint PowerOffMessage = 3911;
/// <summary>
/// 3912
/// </summary>
public const uint StartPageMessage = 3912;
/// <summary>
/// 3913
/// </summary>
public const uint StartActivityText = 3913;
/// <summary>
/// 3914 Title bar label for source overlay
/// </summary>
public const uint SourceBackgroundOverlayTitle = 3914;
/// <summary>
/// 3922
/// </summary>
public const uint HelpMessage = 3922;
/// <summary>
/// 3961 Name of source on display 1
/// </summary>
public const uint Display1SourceLabel = 3961;
/// <summary>
/// 3962 Title above display 1
/// </summary>
public const uint Display1TitleLabel = 3962;
/// <summary>
/// 3964 Name of source on display 2
/// </summary>
public const uint Display2SourceLabel = 3964;
/// <summary>
/// 3965 Title above display 2
/// </summary>
public const uint Display2TitleLabel = 3965;
}
}

View File

@@ -0,0 +1,38 @@
namespace PepperDash.Essentials
{
/// <summary>
///
/// </summary>
public class UIUshortJoin
{
/// <summary>
/// 3812
/// </summary>
public const uint VolumeSlider1Value = 3812;
/// <summary>
/// 3822
/// </summary>
public const uint VolumeSlider2Value = 3822;
/// <summary>
/// 3832
/// </summary>
public const uint VolumeSlider3Value = 3832;
/// <summary>
/// 3842
/// </summary>
public const uint VolumeSlider4Value = 3842;
/// <summary>
/// 3852
/// </summary>
public const uint VolumeSlider5Value = 3852;
/// <summary>
/// 3862
/// </summary>
public const uint VolumeSlider6Value = 3862;
/// <summary>
/// 3922
/// </summary>
public const uint PresentationListCaretMode = 3922;
}
}

View File

@@ -10,8 +10,8 @@
<ArchiveName /> <ArchiveName />
</RequiredInfo> </RequiredInfo>
<OptionalInfo> <OptionalInfo>
<CompiledOn>2/21/2017 4:26:38 PM</CompiledOn> <CompiledOn>2/23/2017 11:24:45 AM</CompiledOn>
<CompilerRev>1.0.0.29597</CompilerRev> <CompilerRev>1.0.0.20541</CompilerRev>
</OptionalInfo> </OptionalInfo>
<Plugin> <Plugin>
<Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version> <Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>

View File

@@ -1,4 +1,4 @@
MainAssembly=PepperDashEssentials.dll:b4fc9364cff33bfd2015356e1d0ff2f8 MainAssembly=PepperDashEssentials.dll:0d60b85cbb6551a8c8fe5c704ca1a92c
MainAssemblyMinFirmwareVersion=1.009.0029 MainAssemblyMinFirmwareVersion=1.009.0029
MainAssemblyResource=SimplSharpData.dat:820b61c48c8a2cace82957eed4cc377c MainAssemblyResource=SimplSharpData.dat:820b61c48c8a2cace82957eed4cc377c
ü ü
@@ -46,9 +46,9 @@ DependencySource=PepperDash_Core.dll:f8093aacbe4fa6cef78b7af4d978e897
DependencyPath=PepperDashEssentials.cpz:PepperDash_Core.dll DependencyPath=PepperDashEssentials.cpz:PepperDash_Core.dll
DependencyMainAssembly=PepperDash_Core.dll:f8093aacbe4fa6cef78b7af4d978e897 DependencyMainAssembly=PepperDash_Core.dll:f8093aacbe4fa6cef78b7af4d978e897
ü ü
DependencySource=PepperDash_Essentials_Core.dll:256362de10256ebe743008bc9415648e DependencySource=PepperDash_Essentials_Core.dll:34edba3e9b5cccd09cff7384b96d4aba
DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Core.dll DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Core.dll
DependencyMainAssembly=PepperDash_Essentials_Core.dll:256362de10256ebe743008bc9415648e DependencyMainAssembly=PepperDash_Essentials_Core.dll:34edba3e9b5cccd09cff7384b96d4aba
ü ü
DependencySource=PepperDash_Essentials_Displays.dll:3135ef6b8f66b5b1bc5223aad3ef66e0 DependencySource=PepperDash_Essentials_Displays.dll:3135ef6b8f66b5b1bc5223aad3ef66e0
DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Displays.dll DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Displays.dll