add dual display presentation driver

This commit is contained in:
Andrew Welker
2020-07-08 17:04:43 -06:00
parent 1a3e976b6c
commit 0192c50cf3
3 changed files with 64 additions and 16 deletions

View File

@@ -153,10 +153,10 @@
<Compile Include="UIDrivers\Environment Drivers\EssentialsEnvironmentDriver.cs" />
<Compile Include="UIDrivers\Environment Drivers\EssentialsLightingDriver.cs" />
<Compile Include="UIDrivers\Environment Drivers\EssentialsShadeDriver.cs" />
<Compile Include="UIDrivers\EssentialsDualDisplay\EssentialsDualDisplayPanelAvFunctionsDriver.cs" />
<Compile Include="UIDrivers\Essentials\EssentialsHeaderDriver.cs" />
<Compile Include="UIDrivers\JoinedSigInterlock.cs" />
<Compile Include="UIDrivers\SigInterlock.cs" />
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddlePresentationUiDriver.cs" />
<Compile Include="UIDrivers\EssentialsHuddle\EssentialsHuddleTechPageDriver.cs" />
<Compile Include="UI\HttpLogoServer.cs" />
<Compile Include="UI\SmartObjectHeaderButtonList.cs" />
@@ -214,9 +214,6 @@
<Name>Essentials Devices Common</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="UIDrivers\EssentialsDualDisplay\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>

View File

@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.PageManagers;
using PepperDash.Essentials.UIDrivers;
using PepperDash.Essentials.UIDrivers.VC;
namespace PepperDashEssentials.UIDrivers.EssentialsDualDisplay
{
public class EssentialsDualDisplayPanelAvFunctionsDriver:PanelDriverBase, IAVWithVCDriver
{
public enum UiDisplayMode
{
Presentation,
AudioSetup,
Call,
Start
}
private readonly SubpageReferenceList _activityFooterSrl;
private readonly BoolInputSig _callButtonSig;
private readonly List<BoolInputSig> _currentDisplayModeSigsInUse = new List<BoolInputSig>();
private readonly BoolInputSig _endMeetingButtonSig;
private readonly Dictionary<object, PageManager> _pageManagers = new Dictionary<object, PageManager>();
private readonly PanelDriverBase _parent;
private readonly BoolInputSig _shareButtonSig;
private readonly SubpageReferenceList _sourceStagingSrl;
private readonly CrestronTouchpanelPropertiesConfig _config;
private BoolFeedback _callSharingInfoVisibleFeedback;
private List<PanelDriverBase> _childDrivers = new List<PanelDriverBase>();
private UiDisplayMode _currentMode = UiDisplayMode.Start;
private PageManager _currentSourcePageManager;
private string _lastMeetingDismissedId;
private CTimer _nextMeetingTimer;
private CTimer _powerOffTimer;
private CTimer _ribbonTimer;
private ModalDialog _powerDownModal;
private EssentialsVideoCodecUiDriver _vcDriver;
private EssentialsHuddleTechPageDriver _techDriver;
public EssentialsDualDisplayPanelAvFunctionsDriver(PanelDriverBase parent, CrestronTouchpanelPropertiesConfig config) : base(parent.TriList)
{
}
}
}

View File

@@ -128,7 +128,7 @@ namespace PepperDash.Essentials
private EssentialsHuddleVtc1Room _currentRoom;
private EssentialsHuddleTechPageDriver _TechDriver;
private EssentialsHuddleTechPageDriver _techDriver;
/// <summary>
/// Constructor
@@ -186,7 +186,7 @@ namespace PepperDash.Essentials
{
get
{
return _TechDriver ?? (_TechDriver = new EssentialsHuddleTechPageDriver(TriList,
return _techDriver ?? (_techDriver = new EssentialsHuddleTechPageDriver(TriList,
CurrentRoom.PropertiesConfig.Tech));
}
}
@@ -530,15 +530,10 @@ namespace PepperDash.Essentials
var indexOfNext = meetings.IndexOf(meeting) + 1;
// indexOf = 3, 4 meetings :
if (indexOfNext < meetings.Count)
{
TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText,
meetings[indexOfNext].StartTime.ToShortTimeString());
}
else
{
TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText, "No more meetings today");
}
TriList.SetString(UIStringJoin.NextMeetingFollowingMeetingText,
indexOfNext < meetings.Count
? meetings[indexOfNext].StartTime.ToShortTimeString()
: "No more meetings today");
TriList.SetSigFalseAction(UIBoolJoin.NextMeetingModalClosePress, () =>
{
@@ -1421,7 +1416,7 @@ namespace PepperDash.Essentials
TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName;
TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank"
//code that was here was unreachable becuase if we get past the if statement, routeInfo is not null...no third option.
//code that was here was unreachable becuase if we get past the if statement, routeInfo is
// Connect controls
if (routeInfo.SourceDevice != null)