diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs
index e66dd56b..82256f40 100644
--- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs
+++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs
@@ -11,7 +11,7 @@ using PepperDash.Essentials.Devices.Common.Codec;
namespace PepperDash.Essentials.Devices.Common.VideoCodec
{
- public class MockVC : VideoCodecBase, IRoutingSource, IHasCallHistory
+ public class MockVC : VideoCodecBase, IRoutingSource, IHasCallHistory, IHasScheduleAwareness
{
public RoutingInputPort CodecOsdIn { get; private set; }
public RoutingInputPort HdmiIn1 { get; private set; }
@@ -323,7 +323,28 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
}
#endregion
- }
+
+ #region IHasScheduleAwareness Members
+
+ public CodecScheduleAwareness CodecSchedule
+ {
+ get {
+ var sch = new CodecScheduleAwareness();
+ for(int i = 0; i < 5; i++)
+ {
+ var m = new Meeting();
+ m.StartTime = DateTime.Now.AddHours(1 + i);
+ m.EndTime = DateTime.Now.AddHours(1 + i).AddMinutes(30);
+ m.Title = "Meeting " + i;
+ m.ConferenceNumberToDial = i + "meeting@fake.com";
+ sch.Meetings.Add(m);
+ }
+ return sch;
+ }
+ }
+
+ #endregion
+ }
///
/// Implementation for the mock VC
diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
index 831d7fc7..693224e8 100644
--- a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
+++ b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
@@ -170,6 +170,7 @@
+
diff --git a/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs b/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
index 3697004c..36adf58c 100644
--- a/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
+++ b/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
@@ -182,7 +182,13 @@ namespace PepperDash.Essentials
///
/// "codecOsd"
///
- public string DefaultCodecRouteString { get { return "codecOsd"; } }
+ public string DefaultCodecRouteString { get { return "codecOsd"; } }
+
+ ///
+ /// Temporary implementation. Returns the schedule-ready object or null if none. Fow now,
+ /// always returns the VideoCodec if it is capable
+ ///
+ public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } }
///
///
diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
index 9045335b..fef87f57 100644
--- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
+++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
@@ -405,6 +405,10 @@ namespace PepperDash.Essentials
/// 15017
///
public const uint StagingPageAdditionalArrowsVisible = 15017;
+ ///
+ /// 15018 The Header with dynamic buttons
+ ///
+ public const uint TopBarHabaneroDynamicVisible = 15018;
///
/// 15020
///
@@ -420,31 +424,31 @@ namespace PepperDash.Essentials
///
/// 15023
///
- public const uint LightsHeaderButtonVisible = 15023;
+ public const uint HeaderLightsButtonVisible = 15023;
///
/// 15024
///
- public const uint CallRightHeaderButtonVisible = 15024;
+ public const uint HeaderCallRightButtonVisible = 15024;
///
/// 15025
///
- public const uint CallLeftHeaderButtonVisible = 15025;
+ public const uint HeaderCallLeftButtonVisible = 15025;
///
/// 15026
///
- public const uint LightsHeaderButtonPress = 15026;
+ public const uint HeaderLightsButtonPress = 15026;
/// [-
/// 15027
///
- public const uint CallHeaderButtonPress = 15027;
+ public const uint HeaderCallButtonPress = 15027;
///
/// 15028 The gear button in header
///
- public const uint GearHeaderButtonPress = 15028;
+ public const uint HeaderGearButtonPress = 15028;
///
/// 15029 the room button in header
///
- public const uint RoomHeaderButtonPress = 15029;
+ public const uint HeaderRoomButtonPress = 15029;
///
/// 15030 Visibility for room data popup
///
diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs
index 3ea7c07d..e7c02ab1 100644
--- a/Essentials/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs
+++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs
@@ -38,10 +38,6 @@
///
public const uint SourceStagingSRL = 3200;
///
- /// 15022 The main activity footer
- ///
- public const uint ActivityFooterSRL = 15022;
- ///
/// 3901 The Tech page menu list
///
public const uint TechMenuList = 3901;
@@ -57,6 +53,13 @@
/// 3904 - Display controls on the tech page
///
public const uint TechDisplayControlsList = 3904;
-
+ ///
+ /// 15018
+ ///
+ public const uint HeaderButtonList = 15018;
+ ///
+ /// 15022 The main activity footer
+ ///
+ public const uint ActivityFooterSRL = 15022;
}
}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
index e337b37b..d517c6d4 100644
--- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
+++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
@@ -111,6 +111,10 @@ namespace PepperDash.Essentials
/// 3915
///
public const uint NotificationRibbonText = 3915;
+ ///
+ /// 3916 The "active call" label
+ ///
+ public const uint HeaderCallLabel = 3916;
///
/// 3922
diff --git a/Essentials/PepperDashEssentials/UI/SmartObjectHeaderButtonList.cs b/Essentials/PepperDashEssentials/UI/SmartObjectHeaderButtonList.cs
new file mode 100644
index 00000000..ebeb5593
--- /dev/null
+++ b/Essentials/PepperDashEssentials/UI/SmartObjectHeaderButtonList.cs
@@ -0,0 +1,63 @@
+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.Core;
+using PepperDash.Essentials.Core.SmartObjects;
+
+namespace PepperDash.Essentials
+{
+ public class SmartObjectHeaderButtonList : SmartObjectHelperBase
+ {
+
+ public SmartObjectHeaderButtonList(SmartObject so)
+ : base(so, true)
+ {
+
+ }
+ }
+
+ public class HeaderListButton
+ {
+ public BoolInputSig SelectedSig { get; private set; }
+ public BoolInputSig VisibleSig { get; private set; }
+ BoolOutputSig OutputSig;
+ StringInputSig IconSig;
+
+ public HeaderListButton(SmartObjectHeaderButtonList list, uint index)
+ {
+ var so = list.SmartObject;
+ OutputSig = so.BooleanOutput["Item " + index + " Pressed"];
+ SelectedSig = so.BooleanInput["Item " + index + " Selected"];
+ VisibleSig = so.BooleanInput["Item " + index + " Visible"];
+ IconSig = so.StringInput["Set Item " + index + " Icon Serial"];
+ }
+
+ public void SetBoolFalseAction(Action a)
+ {
+ OutputSig.SetSigFalseAction(a);
+ }
+
+ public void SetIcon(string i)
+ {
+ IconSig.StringValue = i;
+ }
+
+ public void ClearIcon()
+ {
+ IconSig.StringValue = "Blank";
+ }
+
+ public static string Calendar = "Calendar";
+ public static string Camera = "Camera";
+ public static string Gear = "Gear";
+ public static string Lights = "Lights";
+ public static string Help = "Help";
+ public static string OnHook = "Phone Down";
+ public static string Phone = "Phone";
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs
index ecd4fb04..1e8a67be 100644
--- a/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs
+++ b/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs
@@ -218,7 +218,7 @@ namespace PepperDash.Essentials
// ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible));
// Setup button
- TriList.SetSigHeldAction(UIBoolJoin.GearHeaderButtonPress, 2000,
+ TriList.SetSigHeldAction(UIBoolJoin.HeaderGearButtonPress, 2000,
() => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.TechPanelSetupVisible));// ShowInterlockedModal(UIBoolJoin.TechPanelSetupVisible));
TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
PopupInterlock.HideAndClear()); // HideCurrentInterlockedModal());
diff --git a/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs
index f94913c4..341a2458 100644
--- a/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs
+++ b/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsPresentationPanelAvFunctionsDriver.cs
@@ -229,10 +229,10 @@ namespace PepperDash.Essentials
ShowInterlockedModal(UIBoolJoin.HelpPageVisible);
});
- TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
+ TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () =>
ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible));
- TriList.SetSigFalseAction(UIBoolJoin.GearHeaderButtonPress, () =>
+ TriList.SetSigFalseAction(UIBoolJoin.HeaderGearButtonPress, () =>
ShowInterlockedModal(UIBoolJoin.VolumesPageVisible));
// power-related functions
diff --git a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
index e62ddbbf..2d5fa7ad 100644
--- a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
+++ b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
@@ -85,6 +85,11 @@ namespace PepperDash.Essentials
///
SubpageReferenceList ActivityFooterSrl;
+ ///
+ /// The list of buttons on the header. Managed with visibility only
+ ///
+ SmartObjectHeaderButtonList HeaderButtonsList;
+
///
/// The AV page mangagers that have been used, to keep them alive for later
///
@@ -183,6 +188,9 @@ namespace PepperDash.Essentials
ShareButtonSig = ActivityFooterSrl.BoolInputSig(1, 1);
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1);
+ // buttons are added in SetCurrentRoom
+ HeaderButtonsList = new SmartObjectHeaderButtonList(TriList.SmartObjects[UISmartObjectJoin.HeaderButtonList]);
+
SetupActivityFooterWhenRoomOff();
ShowVolumeGauge = true;
@@ -214,7 +222,7 @@ namespace PepperDash.Essentials
if (Config.HeaderStyle == UiHeaderStyle.Habanero)
{
TriList.SetString(UIStringJoin.CurrentRoomName, CurrentRoom.Name);
- TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
+ TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () =>
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderPageVisible));
}
else if (Config.HeaderStyle == UiHeaderStyle.Verbose)
@@ -235,7 +243,9 @@ namespace PepperDash.Essentials
TriList.SetBool(UIBoolJoin.DateAndTimeVisible, Config.ShowDate && Config.ShowTime);
TriList.SetBool(UIBoolJoin.DateOnlyVisible, Config.ShowDate && !Config.ShowTime);
TriList.SetBool(UIBoolJoin.TimeOnlyVisible, !Config.ShowDate && Config.ShowTime);
- TriList.SetBool(UIBoolJoin.TopBarHabaneroVisible, true);
+
+ TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true);
+
TriList.SetBool(UIBoolJoin.ActivityFooterVisible, true);
// Privacy mute button
@@ -259,60 +269,47 @@ namespace PepperDash.Essentials
// Generic "close" button for these modals
TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear);
- // Help button and popup
- if (CurrentRoom.Config.Help != null)
- {
- TriList.SetString(UIStringJoin.HelpMessage, roomConf.Help.Message);
- TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, roomConf.Help.ShowCallButton);
- TriList.SetString(UIStringJoin.HelpPageCallButtonText, roomConf.Help.CallButtonText);
- if(roomConf.Help.ShowCallButton)
- TriList.SetSigFalseAction(UIBoolJoin.HelpPageShowCallButtonPress, () => { }); // ************ FILL IN
- else
- TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
- }
- else // older config
- {
- TriList.SetString(UIStringJoin.HelpMessage, CurrentRoom.Config.HelpMessage);
- TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, false);
- TriList.SetString(UIStringJoin.HelpPageCallButtonText, null);
- TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
- }
- 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;
- PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible);
- });
+ //// Help button and popup
+ //if (CurrentRoom.Config.Help != null)
+ //{
+ // TriList.SetString(UIStringJoin.HelpMessage, roomConf.Help.Message);
+ // TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, roomConf.Help.ShowCallButton);
+ // TriList.SetString(UIStringJoin.HelpPageCallButtonText, roomConf.Help.CallButtonText);
+ // if(roomConf.Help.ShowCallButton)
+ // TriList.SetSigFalseAction(UIBoolJoin.HelpPageShowCallButtonPress, () => { }); // ************ FILL IN
+ // else
+ // TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
+ //}
+ //else // older config
+ //{
+ // TriList.SetString(UIStringJoin.HelpMessage, CurrentRoom.Config.HelpMessage);
+ // TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, false);
+ // TriList.SetString(UIStringJoin.HelpPageCallButtonText, null);
+ // TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
+ //}
+ //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;
+ // PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible);
+ //});
- // Lights button
- TriList.SetSigFalseAction(UIBoolJoin.LightsHeaderButtonPress, () => // ******************** FILL IN
- { });
+ //// Lights button
+ //TriList.SetSigFalseAction(UIBoolJoin.HeaderLightsButtonPress, () => // ******************** FILL IN
+ // { });
- // Call header button
- if(roomConf.OneButtonMeeting != null && roomConf.OneButtonMeeting.Enable)
- {
- TriList.SetBool(UIBoolJoin.CalendarHeaderButtonVisible, true);
- TriList.SetBool(UIBoolJoin.CallLeftHeaderButtonVisible, true);
- }
- else
- TriList.SetBool(UIBoolJoin.CallRightHeaderButtonVisible, true);
-
- TriList.SetSigFalseAction(UIBoolJoin.CallHeaderButtonPress, () =>
- PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HeaderActiveCallsListVisible));
-
-
- // Setup button - shows volumes with default button OR hold for tech page
- TriList.SetSigHeldAction(UIBoolJoin.GearHeaderButtonPress, 2000,
- ShowTech,
- () => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPageVisible));
- TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
- PopupInterlock.HideAndClear());
+ //// Setup button - shows volumes with default button OR hold for tech page
+ //TriList.SetSigHeldAction(UIBoolJoin.HeaderGearButtonPress, 2000,
+ // ShowTech,
+ // () => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPageVisible));
+ //TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
+ // PopupInterlock.HideAndClear());
// Volume related things
TriList.SetSigFalseAction(UIBoolJoin.VolumeDefaultPress, () => CurrentRoom.SetDefaultLevels());
@@ -370,7 +367,7 @@ namespace PepperDash.Essentials
public override void Hide()
{
HideAndClearCurrentDisplayModeSigsInUse();
- TriList.BooleanInput[UIBoolJoin.TopBarHabaneroVisible].BoolValue = false;
+ TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, false);
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
@@ -775,7 +772,7 @@ namespace PepperDash.Essentials
_CurrentRoom.ShutdownPromptTimer.HasFinished += ShutdownPromptTimer_HasFinished;
_CurrentRoom.ShutdownPromptTimer.WasCancelled += ShutdownPromptTimer_WasCancelled;
- // Link up all the change events from the room
+ // Link up all the change events from the room
_CurrentRoom.OnFeedback.OutputChange += CurrentRoom_OnFeedback_OutputChange;
CurrentRoom_SyncOnFeedback();
_CurrentRoom.IsWarmingUpFeedback.OutputChange += CurrentRoom_IsWarmingFeedback_OutputChange;
@@ -785,6 +782,8 @@ namespace PepperDash.Essentials
RefreshAudioDeviceConnections();
_CurrentRoom.CurrentSingleSourceChange += CurrentRoom_SourceInfoChange;
RefreshSourceInfo();
+
+ SetupHeaderButtons();
}
else
{
@@ -793,10 +792,97 @@ namespace PepperDash.Essentials
}
}
- ///
- /// For room on/off changes
- ///
- void CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e)
+ ///
+ ///
+ ///
+ void SetupHeaderButtons()
+ {
+ TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true);
+
+ var roomConf = CurrentRoom.Config;
+ //
+ var setupButton = new HeaderListButton(HeaderButtonsList, 5);
+ setupButton.SetIcon(HeaderListButton.Gear);
+ setupButton.SetBoolFalseAction(() => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPageVisible));
+#warning Add held action - and add press/hold to SIG helper
+ //// Setup button - shows volumes with default button OR hold for tech page
+ //TriList.SetSigHeldAction(UIBoolJoin.HeaderGearButtonPress, 2000,
+ // ShowTech,
+ // () => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPageVisible));
+
+ TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
+ PopupInterlock.HideAndClear());
+
+ // Help button and popup
+ if (CurrentRoom.Config.Help != null)
+ {
+ TriList.SetString(UIStringJoin.HelpMessage, roomConf.Help.Message);
+ TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, roomConf.Help.ShowCallButton);
+ TriList.SetString(UIStringJoin.HelpPageCallButtonText, roomConf.Help.CallButtonText);
+ if (roomConf.Help.ShowCallButton)
+ TriList.SetSigFalseAction(UIBoolJoin.HelpPageShowCallButtonPress, () => { }); // ************ FILL IN
+ else
+ TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
+ }
+ else // older config
+ {
+ TriList.SetString(UIStringJoin.HelpMessage, CurrentRoom.Config.HelpMessage);
+ TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, false);
+ TriList.SetString(UIStringJoin.HelpPageCallButtonText, null);
+ TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
+ }
+ var helpButton = new HeaderListButton(HeaderButtonsList, 4);
+ helpButton.SetIcon(HeaderListButton.Help);
+ helpButton.SetBoolFalseAction(() =>
+ {
+ 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;
+ PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible);
+ });
+ uint nextIndex = 3;
+
+ // Lights button
+ //if (WHATEVER MAKES LIGHTS WORK)
+ //{
+ // // do lights
+ // nextIndex--;
+ //}
+
+ // Calendar button
+ if (_CurrentRoom.ScheduleSource != null) // ******************* Do we need a config option here as well?
+ {
+ var calBut = new HeaderListButton(HeaderButtonsList, nextIndex);
+ calBut.SetIcon(HeaderListButton.Calendar);
+ calBut.SetBoolFalseAction(() => { });
+ nextIndex--;
+ }
+
+ // Call button
+ var callBut = new HeaderListButton(HeaderButtonsList, nextIndex);
+ callBut.SetIcon(HeaderListButton.OnHook);
+ callBut.SetBoolFalseAction(() =>
+ PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HeaderActiveCallsListVisible));
+ nextIndex--;
+
+ // blank any that remain
+ for (var i = nextIndex; i > 0; i--)
+ {
+ var blankBut = new HeaderListButton(HeaderButtonsList, i);
+ blankBut.ClearIcon();
+ blankBut.SetBoolFalseAction(() => { });
+ }
+ }
+
+ ///
+ /// For room on/off changes
+ ///
+ void CurrentRoom_OnFeedback_OutputChange(object sender, EventArgs e)
{
CurrentRoom_SyncOnFeedback();
}
diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz
index b5ec6443..240f00a7 100644
Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ
diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll
index 17dcdff2..57b45d18 100644
Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ