mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
Even more basic dual-display workflow
This commit is contained in:
Binary file not shown.
@@ -154,6 +154,7 @@
|
||||
<Compile Include="FOR REFERENCE UI\PageControllers\LargeTouchpanelControllerBase.cs" />
|
||||
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
||||
<Compile Include="Room\VolumeAndSourceChangeArgs.cs" />
|
||||
<Compile Include="UI Drivers\DualDisplayRouting.cs" />
|
||||
<Compile Include="UI Drivers\EssentialsPresentationPanelAvFunctionsDriver.cs" />
|
||||
<Compile Include="UI Drivers\SingleSubpageModalDriver.cs" />
|
||||
<Compile Include="UI Drivers\EssentialsPanelMainInterfaceDriver.cs" />
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,124 @@
|
||||
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 DualDisplayRouting : PanelDriverBase
|
||||
{
|
||||
//public BoolFeedback Display1AudioButtonEnable { get; private set; }
|
||||
//bool _Display1AudioButtonEnable;
|
||||
//public BoolFeedback Display1AudioButtonFeedback { get; private set; }
|
||||
//bool _Display1AudioButtonFeedback;
|
||||
//public BoolFeedback Display1ControlButtonEnable { get; private set; }
|
||||
//bool _Display1ControlButtonEnable;
|
||||
//public BoolFeedback Display2AudioButtonEnable { get; private set; }
|
||||
//bool _Display2AudioButtonEnable;
|
||||
//public BoolFeedback Display2AudioButtonFeedback { get; private set; }
|
||||
//bool _Display2AudioButtonFeedback;
|
||||
//public BoolFeedback Display2ControlButtonEnable { get; private set; }
|
||||
//bool _Display2ControlButtonEnable;
|
||||
//public BoolFeedback DualDisplayRoutingVisible { get; private set; }
|
||||
//bool _DualDisplayRoutingVisible;
|
||||
|
||||
CTimer SourceSelectedTimer;
|
||||
|
||||
public DualDisplayRouting(BasicTriListWithSmartObject trilist) : base(trilist)
|
||||
{
|
||||
//Display1AudioButtonEnable = new BoolFeedback(() => _Display1AudioButtonEnable);
|
||||
//Display1AudioButtonFeedback = new BoolFeedback(() => _Display1AudioButtonFeedback);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress);
|
||||
|
||||
//Display1ControlButtonEnable = new BoolFeedback(() => _Display1ControlButtonEnable);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress);
|
||||
|
||||
TriList.SetSigFalseAction(UIBoolJoin.Display1SelectPress, Display1Press);
|
||||
|
||||
//Display2AudioButtonEnable = new BoolFeedback(() => _Display2AudioButtonEnable);
|
||||
//Display2AudioButtonFeedback = new BoolFeedback(() => _Display2AudioButtonFeedback);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress);
|
||||
|
||||
//Display2ControlButtonEnable = new BoolFeedback(() => _Display2ControlButtonEnable);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress);
|
||||
|
||||
TriList.SetSigFalseAction(UIBoolJoin.Display2SelectPress, Display2Press);
|
||||
|
||||
//DualDisplayRoutingVisible = new BoolFeedback(() => _DualDisplayRoutingVisible);
|
||||
}
|
||||
|
||||
public void Enable()
|
||||
{
|
||||
// attach to the source list SRL
|
||||
}
|
||||
|
||||
public override void Show()
|
||||
{
|
||||
TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = true;
|
||||
base.Show();
|
||||
}
|
||||
|
||||
public override void Hide()
|
||||
{
|
||||
TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = false;
|
||||
|
||||
base.Hide();
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public void Display1Press()
|
||||
{
|
||||
EnableAppropriateDisplayButtons();
|
||||
}
|
||||
|
||||
public void Display1AudioPress()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Display1ControlPress()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Display2Press()
|
||||
{
|
||||
EnableAppropriateDisplayButtons();
|
||||
}
|
||||
|
||||
public void Display2AudioPress()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Display2ControlPress()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -164,11 +164,11 @@ namespace PepperDash.Essentials
|
||||
// One-second pulse extender for volume gauge
|
||||
VolumeGaugeFeedback = new BoolFeedbackPulseExtender(1500);
|
||||
VolumeGaugeFeedback.Feedback
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeGaugePopupVisbible]);
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeGaugePopupVisible]);
|
||||
|
||||
VolumeButtonsPopupFeedback = new BoolFeedbackPulseExtender(4000);
|
||||
VolumeButtonsPopupFeedback.Feedback
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisbible]);
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisible]);
|
||||
|
||||
PowerOffTimeout = 30000;
|
||||
}
|
||||
|
||||
@@ -102,6 +102,11 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
PanelDriverBase Parent;
|
||||
|
||||
/// <summary>
|
||||
/// Driver that manages advanced sharing features
|
||||
/// </summary>
|
||||
DualDisplayRouting DualDisplayUiDriver;
|
||||
|
||||
/// <summary>
|
||||
/// All children attached to this driver. For hiding and showing as a group.
|
||||
/// </summary>
|
||||
@@ -141,6 +146,8 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
CTimer PowerOffTimer;
|
||||
|
||||
bool IsSharingModeAdvanced;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
@@ -160,11 +167,11 @@ namespace PepperDash.Essentials
|
||||
// One-second pulse extender for volume gauge
|
||||
VolumeGaugeFeedback = new BoolFeedbackPulseExtender(1500);
|
||||
VolumeGaugeFeedback.Feedback
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeGaugePopupVisbible]);
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeGaugePopupVisible]);
|
||||
|
||||
VolumeButtonsPopupFeedback = new BoolFeedbackPulseExtender(4000);
|
||||
VolumeButtonsPopupFeedback.Feedback
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisbible]);
|
||||
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisible]);
|
||||
|
||||
PowerOffTimeout = 30000;
|
||||
}
|
||||
@@ -235,6 +242,7 @@ namespace PepperDash.Essentials
|
||||
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false;
|
||||
VolumeButtonsPopupFeedback.ClearNow();
|
||||
CancelPowerOff();
|
||||
|
||||
@@ -280,11 +288,59 @@ namespace PepperDash.Essentials
|
||||
TriList.BooleanInput[UIBoolJoin.TimeOnlyVisible].BoolValue = Config.ShowTime;
|
||||
}
|
||||
|
||||
TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed);
|
||||
|
||||
ShowCurrentDisplayModeSigsInUse();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void ToggleSharingModePressed()
|
||||
{
|
||||
HideSharingMode();
|
||||
IsSharingModeAdvanced = !IsSharingModeAdvanced;
|
||||
TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced;
|
||||
RevealSharingMode();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void HideSharingMode()
|
||||
{
|
||||
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
|
||||
if (IsSharingModeAdvanced)
|
||||
{
|
||||
if (DualDisplayUiDriver != null)
|
||||
DualDisplayUiDriver.Hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// When the room is off, set the footer SRL
|
||||
/// </summary>
|
||||
@@ -326,8 +382,8 @@ namespace PepperDash.Essentials
|
||||
{
|
||||
ShareButtonSig.BoolValue = true;
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true;
|
||||
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true;
|
||||
TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true;
|
||||
RevealSharingMode();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -433,6 +489,11 @@ namespace PepperDash.Essentials
|
||||
/// <param name="key">The key name of the route to run</param>
|
||||
void UiSelectSource(SourceListItem sourceItem)
|
||||
{
|
||||
if (IsSharingModeAdvanced)
|
||||
{
|
||||
DualDisplayUiDriver.SourceListButtonPress(sourceItem);
|
||||
}
|
||||
else
|
||||
CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem);
|
||||
}
|
||||
|
||||
|
||||
@@ -101,15 +101,35 @@ namespace PepperDash.Essentials
|
||||
public const uint PowerOffCancelPress = 15033;
|
||||
public const uint PowerOffConfirmPress = 15034;
|
||||
public const uint VolumeButtonPopupPress = 15035;
|
||||
public const uint VolumeButtonPopupVisbible = 15035;
|
||||
public const uint VolumeGaugePopupVisbible = 15036;
|
||||
public const uint VolumeButtonPopupVisible = 15035;
|
||||
public const uint VolumeGaugePopupVisible = 15036;
|
||||
public const uint CallStatusPageVisible = 15040;
|
||||
public const uint LightsPageVisbible = 15041;
|
||||
public const uint LightsPageVisible = 15041;
|
||||
/// <summary>
|
||||
/// 15042 Closes whichever interlocked modal is open
|
||||
/// </summary>
|
||||
public const uint InterlockedModalClosePress = 15042;
|
||||
|
||||
public const uint Display1SelectPress = 15051;
|
||||
public const uint Display1ControlButtonEnable = 15052;
|
||||
public const uint Display1ControlButtonPress = 15053;
|
||||
public const uint Display1AudioButtonEnable = 15054;
|
||||
public const uint Display1AudioButtonPressAndFb = 15055;
|
||||
public const uint Display2SelectPress = 15056;
|
||||
public const uint Display2ControlButtonEnable = 15057;
|
||||
public const uint Display2ControlButtonPress = 15058;
|
||||
public const uint Display2AudioButtonEnable = 15059;
|
||||
public const uint Display2AudioButtonPressAndFb = 15060;
|
||||
|
||||
/// <summary>
|
||||
/// 15061 Reveals the dual-display subpage
|
||||
/// </summary>
|
||||
public const uint DualDisplayPageVisible = 15061;
|
||||
public const uint ToggleSharingModeVisible = 15062;
|
||||
public const uint ToggleSharingModePress = 15063;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 15085 Visibility join for help subpage
|
||||
/// </summary>
|
||||
@@ -159,5 +179,22 @@ namespace PepperDash.Essentials
|
||||
public const uint PowerOffMessage = 3911;
|
||||
public const uint StartPageMessage = 3912;
|
||||
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;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -10,8 +10,8 @@
|
||||
<ArchiveName />
|
||||
</RequiredInfo>
|
||||
<OptionalInfo>
|
||||
<CompiledOn>2/13/2017 5:26:41 PM</CompiledOn>
|
||||
<CompilerRev>1.0.0.31399</CompilerRev>
|
||||
<CompiledOn>2/14/2017 11:24:21 AM</CompiledOn>
|
||||
<CompilerRev>1.0.0.20529</CompilerRev>
|
||||
</OptionalInfo>
|
||||
<Plugin>
|
||||
<Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MainAssembly=PepperDashEssentials.dll:7af4e6d55a20dd121757619674d8ae00
|
||||
MainAssembly=PepperDashEssentials.dll:0ec9394c958b83119e9ba457828c9bd0
|
||||
MainAssemblyMinFirmwareVersion=1.009.0029
|
||||
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
|
||||
ü
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user