Several workflow features.

This commit is contained in:
Heath Volmer
2017-02-09 15:27:19 -07:00
parent f9225c4bd9
commit 227ce575fa
19 changed files with 165 additions and 111 deletions

View File

@@ -9,7 +9,7 @@ using PepperDash.Essentials.Core;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class EssentialsHuddleSpaceRoom : EssentialsRoomBase public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange
{ {
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange; public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public event SourceInfoChangeHandler CurrentSourceInfoChange; public event SourceInfoChangeHandler CurrentSourceInfoChange;

View File

@@ -9,7 +9,7 @@ using PepperDash.Essentials.Core;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class EssentialsPresentationRoom : EssentialsRoomBase public class EssentialsPresentationRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange
{ {
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange; public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public event SourceInfoChangeHandler CurrentSourceInfoChange; public event SourceInfoChangeHandler CurrentSourceInfoChange;

View File

@@ -8,6 +8,18 @@ using PepperDash.Essentials.Core;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
/// <summary>
///
/// </summary>
public interface IHasCurrentSourceInfoChange
{
event SourceInfoChangeHandler CurrentSourceInfoChange;
}
/// <summary>
///
/// </summary>
public class EssentialsRoomBase : Device public class EssentialsRoomBase : Device
{ {
public EssentialsRoomBase(string key, string name) : base(key, name) public EssentialsRoomBase(string key, string name) : base(key, name)

View File

@@ -0,0 +1,35 @@
2/9/2017 7:42:37 AM, Info: Initializing SIMPLSharp Services...
2/9/2017 7:42:37 AM, Info: ProjectInfo successfully initialized.
2/9/2017 8:56:31 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 8:56:32 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 8:56:32 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 8:56:34 AM, Info: Saving project information...
2/9/2017 10:01:00 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 10:01:00 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 10:01:00 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 10:01:02 AM, Info: Saving project information...
2/9/2017 10:35:15 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 10:35:16 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 10:35:16 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 10:35:18 AM, Info: Saving project information...
2/9/2017 10:35:57 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 10:35:57 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 10:35:57 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 10:35:59 AM, Info: Saving project information...
2/9/2017 10:53:38 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 10:53:39 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 10:53:39 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 10:53:40 AM, Info: Saving project information...
2/9/2017 11:00:03 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 11:00:04 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 11:00:04 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 11:00:05 AM, Info: Saving project information...
2/9/2017 11:37:00 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 11:37:01 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 11:37:01 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 11:37:02 AM, Info: Saving project information...
2/9/2017 11:37:39 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/9/2017 11:37:40 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/9/2017 11:37:40 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/9/2017 11:37:41 AM, Info: Saving project information...
2/9/2017 2:32:35 PM, Info: Terminating SIMPLSharp Services

View File

@@ -22,8 +22,6 @@ namespace PepperDash.Essentials
PresentationMode, AudioSetup PresentationMode, AudioSetup
} }
//public BoolFeedback SelectASourceVisibleFeedback { get; private set; }
/// <summary> /// <summary>
/// Whether volume ramping from this panel will show the volume /// Whether volume ramping from this panel will show the volume
/// gauge popup. /// gauge popup.
@@ -103,8 +101,6 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
PanelDriverBase Parent; PanelDriverBase Parent;
SingleSubpageModalDriver VolumesPageDriver;
/// <summary> /// <summary>
/// All children attached to this driver. For hiding and showing as a group. /// All children attached to this driver. For hiding and showing as a group.
/// </summary> /// </summary>
@@ -182,7 +178,6 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
public override void Show() public override void Show()
{ {
// We'll want to show the current state of AV, but for now, just show rooms
TriList.BooleanInput[UIBoolJoin.TopBarVisible].BoolValue = true; TriList.BooleanInput[UIBoolJoin.TopBarVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = true; TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = true;
@@ -192,14 +187,27 @@ namespace PepperDash.Essentials
// Attach actions // Attach actions
TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress); TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress);
//Interlocked modals
TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, HideCurrentInterlockedModal);
TriList.SetSigFalseAction(UIBoolJoin.HelpPress, () =>
{
string message = null;
var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey)
as EssentialsHuddleSpaceRoom;
if (room != null)
message = room.Config.HelpMessage;
else
message = "Sorry, no help message available. No room connected.";
TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message;
ShowInterlockedModal(UIBoolJoin.HelpPageVisible);
});
TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible));
#warning Add press and hold to gear button here #warning Add press and hold to gear button here
TriList.SetSigFalseAction(UIBoolJoin.GearHeaderButtonPress, () => TriList.SetSigFalseAction(UIBoolJoin.GearHeaderButtonPress, () =>
{ ShowInterlockedModal(UIBoolJoin.VolumesPageVisible));
if (VolumesPageDriver == null)
VolumesPageDriver =
new SingleSubpageModalDriver(this, UIBoolJoin.VolumesPageVisible, UIBoolJoin.VolumesPageClosePress);
VolumesPageDriver.Toggle();
});
// power-related functions // power-related functions
// Note: some of these are not directly-related to the huddle space UI, but are held over // Note: some of these are not directly-related to the huddle space UI, but are held over
@@ -233,6 +241,8 @@ namespace PepperDash.Essentials
TriList.BooleanInput[UIBoolJoin.TopBarVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.TopBarVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false; 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.StagingPageVisible].BoolValue = false;
VolumeButtonsPopupFeedback.ClearNow(); VolumeButtonsPopupFeedback.ClearNow();
CancelPowerOff(); CancelPowerOff();
@@ -253,10 +263,18 @@ namespace PepperDash.Essentials
{ {
case UiDisplayMode.PresentationMode: case UiDisplayMode.PresentationMode:
// show start page or staging... // show start page or staging...
if (!CurrentRoom.OnFeedback.BoolValue) if (CurrentRoom.OnFeedback.BoolValue)
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true; {
else
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true; TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
}
else
{
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
}
// Date/time // Date/time
if (Config.ShowDate && Config.ShowTime) if (Config.ShowDate && Config.ShowTime)
{ {
@@ -282,17 +300,8 @@ namespace PepperDash.Essentials
void SetupActivityFooterWhenRoomOff() void SetupActivityFooterWhenRoomOff()
{ {
ActivityFooterSrl.Clear(); ActivityFooterSrl.Clear();
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0, b => ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
{ b => { if (!b) ShareButtonPressed(); }));
if (b) return; // ignore press
ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1);
if (!_CurrentRoom.OnFeedback.BoolValue)
{
ShareButtonSig.BoolValue = true;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true;
}
}));
ActivityFooterSrl.Count = 1; ActivityFooterSrl.Count = 1;
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 0; TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 0;
} }
@@ -312,6 +321,43 @@ namespace PepperDash.Essentials
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1); EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1);
} }
/// <summary>
/// Attached to activity list share button
/// </summary>
void ShareButtonPressed()
{
ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1);
if (!_CurrentRoom.OnFeedback.BoolValue)
{
ShareButtonSig.BoolValue = true;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true;
}
}
uint CurrentInterlockedModalJoin;
void ShowInterlockedModal(uint join)
{
if (CurrentInterlockedModalJoin == join)
HideCurrentInterlockedModal();
else
{
TriList.BooleanInput[UIBoolJoin.HelpPageVisible].BoolValue = join == UIBoolJoin.HelpPageVisible;
TriList.BooleanInput[UIBoolJoin.RoomHeaderPageVisible].BoolValue = join == UIBoolJoin.RoomHeaderPageVisible;
TriList.BooleanInput[UIBoolJoin.VolumesPageVisible].BoolValue = join == UIBoolJoin.VolumesPageVisible;
CurrentInterlockedModalJoin = join;
}
}
void HideCurrentInterlockedModal()
{
TriList.BooleanInput[CurrentInterlockedModalJoin].BoolValue = false;
CurrentInterlockedModalJoin = 0;
}
/// <summary> /// <summary>
/// Shows all sigs that are in CurrentDisplayModeSigsInUse /// Shows all sigs that are in CurrentDisplayModeSigsInUse
/// </summary> /// </summary>
@@ -360,20 +406,14 @@ namespace PepperDash.Essentials
void ShowCurrentSource() void ShowCurrentSource()
{ {
if (CurrentRoom.CurrentSourceInfo == null) if (CurrentRoom.CurrentSourceInfo == null)
{
#warning When system is "off" show start screen and hide staging.
//var offPm = new DefaultPageManager(UIBoolJoin.SelectSourcePopupVisible, TriList);
//PageManagers["OFF"] = offPm;
//CurrentSourcePageManager = offPm;
//offPm.Show();
return; return;
}
var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo; var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo;
PageManager pm = null; 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;
// 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];
@@ -389,12 +429,6 @@ namespace PepperDash.Essentials
CurrentSourcePageManager = pm; CurrentSourcePageManager = pm;
pm.Show(); pm.Show();
} }
//else // show some default thing
//{
// CurrentDisplayModeSigsInUse.Add(TriList.BooleanInput[12345]);
//}
//ShowCurrentDisplayModeSigsInUse();
} }
/// <summary> /// <summary>
@@ -425,9 +459,11 @@ namespace PepperDash.Essentials
modal.PresentModalTimerDialog(2, "End Meeting", "Power", message, modal.PresentModalTimerDialog(2, "End Meeting", "Power", message,
"End Meeting Now", "Cancel", time, true, "End Meeting Now", "Cancel", time, true,
but => but =>
{ {
if (but != 2) if (but != 2)
CurrentRoom.RunRouteAction("roomOff"); CurrentRoom.RunRouteAction("roomOff");
else
ShareButtonSig.BoolValue = true; // restore Share fb
EndMeetingButtonSig.BoolValue = false; EndMeetingButtonSig.BoolValue = false;
}); });
} }
@@ -544,12 +580,11 @@ namespace PepperDash.Essentials
srcConfig.SourceKey); srcConfig.SourceKey);
continue; continue;
} }
//Debug.Console(0, "Adding source '{0}'", srcConfig.SourceKey);
//var s = srcConfig; // assign locals for scope in button lambda
var routeKey = kvp.Key; var routeKey = kvp.Key;
var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig.PreferredName, var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
b => { if (!b) UiSelectSource(routeKey); }); b => { if (!b) UiSelectSource(routeKey); });
SourcesSrl.AddItem(item); // add to the SRL SourcesSrl.AddItem(item); // add to the SRL
item.RegisterForSourceChange(_CurrentRoom);
} }
SourcesSrl.Count = (ushort)(i - 1); SourcesSrl.Count = (ushort)(i - 1);
} }

View File

@@ -1,7 +1,6 @@
using System; using System;
using Crestron.SimplSharpPro.DeviceSupport; using Crestron.SimplSharpPro.DeviceSupport;
using Crestron.SimplSharpPro.UI; using Crestron.SimplSharpPro.UI;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.SmartObjects; using PepperDash.Essentials.Core.SmartObjects;
@@ -18,59 +17,21 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
public PanelDriverBase AvDriver { get; set; } public PanelDriverBase AvDriver { get; set; }
SingleSubpageModalDriver HelpDriver;
public PanelDriverBase CurrentChildDriver { get; private set; } public PanelDriverBase CurrentChildDriver { get; private set; }
CrestronTouchpanelPropertiesConfig Config; CrestronTouchpanelPropertiesConfig Config;
SubpageReferenceList ActivityFooterList;
public EssentialsPanelMainInterfaceDriver(BasicTriListWithSmartObject trilist, public EssentialsPanelMainInterfaceDriver(BasicTriListWithSmartObject trilist,
CrestronTouchpanelPropertiesConfig config) CrestronTouchpanelPropertiesConfig config)
: base(trilist) : base(trilist)
{ {
Config = config; Config = config;
trilist.SetSigFalseAction(UIBoolJoin.StartPagePress, () => ShowSubDriver(AvDriver));
// Need this?
trilist.SetSigFalseAction(UIBoolJoin.ShowPanelSetupPress, () =>
ShowSubDriver(new SingleSubpageModalAndBackDriver(this, UIBoolJoin.PanelSetupVisible)));
ActivityFooterList = new SubpageReferenceList(trilist, 1234, 3, 3, 3);
} }
public override void Show() public override void Show()
{ {
CurrentChildDriver = null; CurrentChildDriver = null;
//if (Config.UsesSplashPage)
// TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
//else
ShowSubDriver(AvDriver); ShowSubDriver(AvDriver);
TriList.SetSigFalseAction(UIBoolJoin.HelpPress, () =>
{
string message = null;
var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey)
as EssentialsHuddleSpaceRoom;
if (room != null)
message = room.Config.HelpMessage;
else
message = "Sorry, no help message available. No room connected.";
TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message;
if (HelpDriver == null)
HelpDriver = new SingleSubpageModalDriver(this, UIBoolJoin.HelpPageVisible, UIBoolJoin.HelpClosePress);
HelpDriver.Toggle();
});
TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
{
});
base.Show(); base.Show();
} }

View File

@@ -494,9 +494,10 @@ namespace PepperDash.Essentials
//Debug.Console(0, "Adding source '{0}'", srcConfig.SourceKey); //Debug.Console(0, "Adding source '{0}'", srcConfig.SourceKey);
//var s = srcConfig; // assign locals for scope in button lambda //var s = srcConfig; // assign locals for scope in button lambda
var routeKey = kvp.Key; var routeKey = kvp.Key;
var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig.PreferredName, var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
b => { if (!b) UiSelectSource(routeKey); }); b => { if (!b) UiSelectSource(routeKey); });
SourcesSrl.AddItem(item); // add to the SRL SourcesSrl.AddItem(item); // add to the SRL
item.RegisterForSourceChange(_CurrentRoom);
} }
SourcesSrl.Count = (ushort)(i - 1); SourcesSrl.Count = (ushort)(i - 1);
} }

View File

@@ -21,8 +21,6 @@ namespace PepperDash.Essentials
{ {
public const uint VolumeUpPress = 901; public const uint VolumeUpPress = 901;
public const uint VolumeDownPress = 902; public const uint VolumeDownPress = 902;
//public const uint MuteTogglePress = 3813;
//public const uint MutedFeedback = 3813;
public const uint VolumeSingleMute1Visible = 3811; public const uint VolumeSingleMute1Visible = 3811;
public const uint VolumeSlider1Press = 3812; public const uint VolumeSlider1Press = 3812;
@@ -51,22 +49,17 @@ namespace PepperDash.Essentials
/// 3870 /// 3870
/// </summary> /// </summary>
public const uint VolumesPageVisible = 3870; public const uint VolumesPageVisible = 3870;
/// <summary>
/// 3871
/// </summary>
public const uint VolumesPageClosePress = 3871;
public const uint GenericModalVisible = 3999; public const uint GenericModalVisible = 3999;
public const uint AvNoControlsSubVisible = 12345; public const uint AvNoControlsSubVisible = 12345;
public const uint HomeVisible = 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 StartPageVisible = 15002; public const uint TapToBeginVisible = 15002;
public const uint StartPagePress = 15003; // REMOVE ------------------------------------------------- public const uint SelectASourceVisible = 15003;
public const uint RoomIsOn = 15004; public const uint RoomIsOn = 15004;
//public const uint SelectSourcePopupVisible = 15005;
/// <summary> /// <summary>
/// 15005 Shows always-on volume control subpage with only audio mute /// 15005 Shows always-on volume control subpage with only audio mute
/// </summary> /// </summary>
@@ -99,6 +92,9 @@ namespace PepperDash.Essentials
/// 15029 the room button in header /// 15029 the room button in header
/// </summary> /// </summary>
public const uint RoomHeaderButtonPress = 15029; public const uint RoomHeaderButtonPress = 15029;
/// <summary>
/// 15030 Visibility for room data popup
/// </summary>
public const uint RoomHeaderPageVisible = 15030; public const uint RoomHeaderPageVisible = 15030;
public const uint AllRoomsOffPress = 15031; public const uint AllRoomsOffPress = 15031;
public const uint DisplayPowerTogglePress = 15032; public const uint DisplayPowerTogglePress = 15032;
@@ -109,6 +105,10 @@ namespace PepperDash.Essentials
public const uint VolumeGaugePopupVisbible = 15036; public const uint VolumeGaugePopupVisbible = 15036;
public const uint CallStatusPageVisible = 15040; public const uint CallStatusPageVisible = 15040;
public const uint LightsPageVisbible = 15041; public const uint LightsPageVisbible = 15041;
/// <summary>
/// 15042 Closes whichever interlocked modal is open
/// </summary>
public const uint InterlockedModalClosePress = 15042;
/// <summary> /// <summary>
/// 15085 Visibility join for help subpage /// 15085 Visibility join for help subpage
@@ -118,10 +118,7 @@ namespace PepperDash.Essentials
/// 15086 Press for help header button /// 15086 Press for help header button
/// </summary> /// </summary>
public const uint HelpPress = 15086; public const uint HelpPress = 15086;
/// <summary>
/// 15087 Press to close help page
/// </summary>
public const uint HelpClosePress = 15087;
public const uint DateOnlyVisible = 15088; public const uint DateOnlyVisible = 15088;
public const uint TimeOnlyVisible = 15089; public const uint TimeOnlyVisible = 15089;
public const uint DateAndTimeVisible = 15090; public const uint DateAndTimeVisible = 15090;
@@ -160,6 +157,7 @@ namespace PepperDash.Essentials
public const uint CurrentSourceName = 3902; public const uint CurrentSourceName = 3902;
public const uint CurrentSourceIcon = 3903; public const uint CurrentSourceIcon = 3903;
public const uint PowerOffMessage = 3911; public const uint PowerOffMessage = 3911;
public const uint StartPageMessage = 3912;
public const uint HelpMessage = 3922; public const uint HelpMessage = 3922;
} }
} }

View File

@@ -12,12 +12,29 @@ namespace PepperDash.Essentials
{ {
public class SubpageReferenceListSourceItem : SubpageReferenceListItem public class SubpageReferenceListSourceItem : SubpageReferenceListItem
{ {
public SourceListItem SourceItem { get; private set; }
public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner, public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner,
string name, Action<bool> routeAction) SourceListItem sourceItem, Action<bool> routeAction)
: base(index, owner) : base(index, owner)
{ {
SourceItem = sourceItem;
owner.GetBoolFeedbackSig(index, 1).UserObject = new Action<bool>(routeAction); owner.GetBoolFeedbackSig(index, 1).UserObject = new Action<bool>(routeAction);
owner.StringInputSig(index, 1).StringValue = name; owner.StringInputSig(index, 1).StringValue = SourceItem.PreferredName;
}
public void RegisterForSourceChange(IHasCurrentSourceInfoChange room)
{
room.CurrentSourceInfoChange -= room_CurrentSourceInfoChange;
room.CurrentSourceInfoChange += room_CurrentSourceInfoChange;
}
void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
if (type == ChangeType.WillChange && info == SourceItem)
Owner.BoolInputSig(Index, 1).BoolValue = false;
else if (type == ChangeType.DidChange && info == SourceItem)
Owner.BoolInputSig(Index, 1).BoolValue = true;
} }
/// <summary> /// <summary>
@@ -28,10 +45,5 @@ namespace PepperDash.Essentials
Owner.BoolInputSig(Index, 1).UserObject = null; Owner.BoolInputSig(Index, 1).UserObject = null;
Owner.StringInputSig(Index, 1).StringValue = ""; Owner.StringInputSig(Index, 1).StringValue = "";
} }
//public override void Refresh()
//{
//}
} }
} }

View File

@@ -10,8 +10,8 @@
<ArchiveName /> <ArchiveName />
</RequiredInfo> </RequiredInfo>
<OptionalInfo> <OptionalInfo>
<CompiledOn>2/8/2017 3:16:22 PM</CompiledOn> <CompiledOn>2/9/2017 2:44:02 PM</CompiledOn>
<CompilerRev>1.0.0.27489</CompilerRev> <CompilerRev>1.0.0.26519</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:2da047fb96fb025c52a872139c06d7c2 MainAssembly=PepperDashEssentials.dll:7c8692784ef9f276843cfa635fe44e4b
MainAssemblyMinFirmwareVersion=1.009.0029 MainAssemblyMinFirmwareVersion=1.009.0029
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
ü ü