mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
Basics of presentation
This commit is contained in:
Binary file not shown.
@@ -154,8 +154,8 @@
|
||||
<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\SingleSubpageModalDriver.cs" />
|
||||
<Compile Include="UI Drivers\EssentialsPresentationPanelAvFunctionsDriver.cs" />
|
||||
<Compile Include="UI Drivers\SingleSubpageModalDriver.cs" />
|
||||
<Compile Include="UI Drivers\EssentialsPanelMainInterfaceDriver.cs" />
|
||||
<Compile Include="UI Drivers\enums and base.cs" />
|
||||
<Compile Include="UI Drivers\EssentialsHuddlePanelAvFunctionsDriver.cs" />
|
||||
|
||||
Binary file not shown.
@@ -16,15 +16,11 @@ namespace PepperDash.Essentials
|
||||
|
||||
public EssentialsPresentationRoomPropertiesConfig Config { get; private set; }
|
||||
|
||||
public Dictionary<int, IRoutingSinkWithSwitching> Displays { get; private set; }
|
||||
public Dictionary<uint, IRoutingSinkNoSwitching> Displays { get; private set; }
|
||||
|
||||
public IRoutingSinkWithSwitching Display1 { get; private set; }
|
||||
public IRoutingSinkWithSwitching Display2 { get; private set; }
|
||||
public IRoutingSinkNoSwitching DefaultAudioDevice { get; private set; }
|
||||
public IBasicVolumeControls DefaultVolumeControls { get; private set; }
|
||||
|
||||
public bool ExcludeFromGlobalFunctions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The config name of the source list
|
||||
/// </summary>
|
||||
@@ -36,6 +32,18 @@ namespace PepperDash.Essentials
|
||||
public bool EnablePowerOnToLastSource { get; set; }
|
||||
string LastSourceKey;
|
||||
|
||||
public enum eVideoRoutingMode
|
||||
{
|
||||
SelectSourceSelectDisplay, SourceToAllDisplays
|
||||
}
|
||||
|
||||
public eVideoRoutingMode VideoRoutingMode { get; set; }
|
||||
|
||||
public enum eAudioRoutingMode
|
||||
{
|
||||
AudioFollowsLastVideo, SelectAudioFromDisplay
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -103,13 +111,12 @@ namespace PepperDash.Essentials
|
||||
/// <param name="key"></param>
|
||||
/// <param name="name"></param>
|
||||
public EssentialsPresentationRoom(string key, string name,
|
||||
IRoutingSinkWithSwitching display1, IRoutingSinkWithSwitching display2,
|
||||
Dictionary<uint, IRoutingSinkNoSwitching> displays,
|
||||
IRoutingSinkNoSwitching defaultAudio, EssentialsPresentationRoomPropertiesConfig config)
|
||||
: base(key, name)
|
||||
{
|
||||
Config = config;
|
||||
Display1 = display1;
|
||||
Display2 = display2;
|
||||
Displays = displays;
|
||||
DefaultAudioDevice = defaultAudio;
|
||||
if (defaultAudio is IBasicVolumeControls)
|
||||
DefaultVolumeControls = defaultAudio as IBasicVolumeControls;
|
||||
@@ -123,6 +130,39 @@ namespace PepperDash.Essentials
|
||||
EnablePowerOnToLastSource = true;
|
||||
}
|
||||
|
||||
|
||||
public void DoSourceToAllDestinationsRoute(string sourceKey)
|
||||
{
|
||||
foreach (var display in Displays.Values)
|
||||
DoVideoRoute(sourceKey, display.Key);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Basic source -> destination routing
|
||||
/// </summary>
|
||||
void DoVideoRoute(string sourceKey, string destinationKey)
|
||||
{
|
||||
new CTimer(o =>
|
||||
{
|
||||
var source = DeviceManager.GetDeviceForKey(sourceKey) as IRoutingSource;
|
||||
if (source == null)
|
||||
{
|
||||
Debug.Console(1, this, "Cannot route. Source '{0}' not found", sourceKey);
|
||||
return;
|
||||
}
|
||||
var dest = DeviceManager.GetDeviceForKey(destinationKey) as IRoutingSinkNoSwitching;
|
||||
if (dest == null)
|
||||
{
|
||||
Debug.Console(1, this, "Cannot route. Destination '{0}' not found", destinationKey);
|
||||
return;
|
||||
}
|
||||
|
||||
dest.ReleaseAndMakeRoute(source, eRoutingSignalType.Video);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
|
||||
public void RunRouteAction(string routeKey)
|
||||
{
|
||||
RunRouteAction(routeKey, null);
|
||||
@@ -194,8 +234,8 @@ namespace PepperDash.Essentials
|
||||
if (string.IsNullOrEmpty(item.VolumeControlKey)
|
||||
|| item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase))
|
||||
volDev = DefaultVolumeControls;
|
||||
else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
||||
volDev = DefaultDisplay as IBasicVolumeControls;
|
||||
//else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
||||
// volDev = DefaultDisplay as IBasicVolumeControls;
|
||||
// Or a specific device, probably rarely used.
|
||||
else
|
||||
{
|
||||
@@ -242,8 +282,8 @@ namespace PepperDash.Essentials
|
||||
|
||||
if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase))
|
||||
dest = DefaultAudioDevice;
|
||||
else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
||||
dest = DefaultDisplay;
|
||||
//else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
||||
// dest = DefaultDisplay;
|
||||
else
|
||||
dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching;
|
||||
|
||||
@@ -271,16 +311,5 @@ namespace PepperDash.Essentials
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs "roomOff" action on all rooms not set to ExcludeFromGlobalFunctions
|
||||
/// </summary>
|
||||
public static void AllRoomsOff()
|
||||
{
|
||||
var allRooms = DeviceManager.AllDevices.Where(d =>
|
||||
d is EssentialsHuddleSpaceRoom && !(d as EssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions);
|
||||
foreach (var room in allRooms)
|
||||
(room as EssentialsHuddleSpaceRoom).RunRouteAction("roomOff");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,26 +20,32 @@ namespace PepperDash.Essentials
|
||||
public Device GetRoomObject()
|
||||
{
|
||||
var typeName = Type.ToLower();
|
||||
EssentialsHuddleSpaceRoom room = null;
|
||||
if (typeName == "huddle")
|
||||
{
|
||||
var props = JsonConvert.DeserializeObject<EssentialsHuddleRoomPropertiesConfig>
|
||||
(this.Properties.ToString());
|
||||
var disp = DeviceManager.GetDeviceForKey(props.DefaultDisplayKey) as IRoutingSinkWithSwitching;
|
||||
var audio = DeviceManager.GetDeviceForKey(props.DefaultAudioKey) as IRoutingSinkNoSwitching;
|
||||
room = new EssentialsHuddleSpaceRoom(Key, Name, disp, audio, props);
|
||||
room.SourceListKey = props.SourceListKey;
|
||||
var huddle = new EssentialsHuddleSpaceRoom(Key, Name, disp, audio, props);
|
||||
huddle.SourceListKey = props.SourceListKey;
|
||||
return huddle;
|
||||
}
|
||||
else if (typeName == "presentation")
|
||||
{
|
||||
var props = JsonConvert.DeserializeObject<EssentialsPresentationRoomPropertiesConfig>
|
||||
(this.Properties.ToString());
|
||||
// assign displays
|
||||
|
||||
// assign audio. How??????
|
||||
|
||||
var displaysDict = new Dictionary<uint, IRoutingSinkNoSwitching>();
|
||||
uint i = 1;
|
||||
foreach (var dispKey in props.DisplayKeys) // read in the ordered displays list
|
||||
{
|
||||
var disp = DeviceManager.GetDeviceForKey(dispKey) as IRoutingSinkWithSwitching;
|
||||
displaysDict.Add(i++, disp);
|
||||
}
|
||||
return room;
|
||||
|
||||
var presRoom = new EssentialsPresentationRoom(Key, Name, displaysDict, null, props);
|
||||
return presRoom;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
2/10/2017 10:07:37 AM, Info: Initializing SIMPLSharp Services...
|
||||
2/10/2017 10:07:37 AM, Info: ProjectInfo successfully initialized.
|
||||
2/10/2017 1:58:49 PM, Info: Saving project information...
|
||||
2/10/2017 1:58:49 PM, Info: Saving project information...
|
||||
2/10/2017 1:58:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:03:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:03:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:03:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:08:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:08:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:08:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:13:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:13:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:13:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:18:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:18:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:18:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:23:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:23:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:23:49 PM, Info: Saving project information...
|
||||
2/10/2017 2:28:46 PM, Info: Saving project information...
|
||||
2/10/2017 2:28:46 PM, Info: Saving project information...
|
||||
2/10/2017 2:28:46 PM, Info: Saving project information...
|
||||
2/10/2017 2:28:46 PM, Info: Saving project information...
|
||||
2/10/2017 2:28:46 PM, Info: Saving project information...
|
||||
2/10/2017 2:28:46 PM, Info: Saving project information...
|
||||
2/10/2017 2:29:51 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
|
||||
2/10/2017 2:29:52 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
|
||||
2/10/2017 2:29:52 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
|
||||
2/10/2017 2:29:54 PM, Info: Saving project information...
|
||||
2/10/2017 2:31:19 PM, Info: Terminating SIMPLSharp Services
|
||||
@@ -19,7 +19,7 @@ namespace PepperDash.Essentials
|
||||
|
||||
public enum UiDisplayMode
|
||||
{
|
||||
AudioSetup, AudioCallMode, PresentationMode
|
||||
PresentationMode, AudioSetup
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -78,6 +78,12 @@ namespace PepperDash.Essentials
|
||||
}
|
||||
EssentialsPresentationRoom _CurrentRoom;
|
||||
|
||||
/// <summary>
|
||||
/// For hitting feedback
|
||||
/// </summary>
|
||||
BoolInputSig ShareButtonSig;
|
||||
BoolInputSig EndMeetingButtonSig;
|
||||
|
||||
/// <summary>
|
||||
/// Controls the extended period that the volume gauge shows on-screen,
|
||||
/// as triggered by Volume up/down operations
|
||||
@@ -90,8 +96,16 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
BoolFeedbackPulseExtender VolumeButtonsPopupFeedback;
|
||||
|
||||
/// <summary>
|
||||
/// The parent driver for this
|
||||
/// </summary>
|
||||
PanelDriverBase Parent;
|
||||
|
||||
/// <summary>
|
||||
/// All children attached to this driver. For hiding and showing as a group.
|
||||
/// </summary>
|
||||
List<PanelDriverBase> ChildDrivers = new List<PanelDriverBase>();
|
||||
|
||||
List<BoolInputSig> CurrentDisplayModeSigsInUse = new List<BoolInputSig>();
|
||||
|
||||
//// Important smart objects
|
||||
@@ -129,7 +143,8 @@ namespace PepperDash.Essentials
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
public EssentialsPresentationPanelAvFunctionsDriver(PanelDriverBase parent, CrestronTouchpanelPropertiesConfig config)
|
||||
public EssentialsPresentationPanelAvFunctionsDriver(PanelDriverBase parent,
|
||||
CrestronTouchpanelPropertiesConfig config)
|
||||
: base(parent.TriList)
|
||||
{
|
||||
Config = config;
|
||||
@@ -158,7 +173,6 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
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.ActivityFooterVisible].BoolValue = true;
|
||||
|
||||
@@ -168,6 +182,28 @@ namespace PepperDash.Essentials
|
||||
// Attach actions
|
||||
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
|
||||
TriList.SetSigFalseAction(UIBoolJoin.GearHeaderButtonPress, () =>
|
||||
ShowInterlockedModal(UIBoolJoin.VolumesPageVisible));
|
||||
|
||||
// power-related functions
|
||||
// Note: some of these are not directly-related to the huddle space UI, but are held over
|
||||
// in case
|
||||
@@ -185,11 +221,6 @@ namespace PepperDash.Essentials
|
||||
EssentialsHuddleSpaceRoom.AllRoomsOff();
|
||||
CancelPowerOff();
|
||||
});
|
||||
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
|
||||
{
|
||||
if (CurrentRoom != null && CurrentRoom.DefaultDisplay is IPower)
|
||||
(CurrentRoom.DefaultDisplay as IPower).PowerToggle();
|
||||
});
|
||||
|
||||
base.Show();
|
||||
}
|
||||
@@ -199,6 +230,10 @@ namespace PepperDash.Essentials
|
||||
HideAndClearCurrentDisplayModeSigsInUse();
|
||||
TriList.BooleanInput[UIBoolJoin.TopBarVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].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;
|
||||
VolumeButtonsPopupFeedback.ClearNow();
|
||||
CancelPowerOff();
|
||||
|
||||
@@ -217,7 +252,19 @@ namespace PepperDash.Essentials
|
||||
switch (mode)
|
||||
{
|
||||
case UiDisplayMode.PresentationMode:
|
||||
CurrentDisplayModeSigsInUse.Add(TriList.BooleanInput[UIBoolJoin.StagingPageVisible]);
|
||||
// show start page or staging...
|
||||
if (CurrentRoom.OnFeedback.BoolValue)
|
||||
{
|
||||
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
|
||||
if (Config.ShowDate && Config.ShowTime)
|
||||
{
|
||||
@@ -244,11 +291,9 @@ namespace PepperDash.Essentials
|
||||
{
|
||||
ActivityFooterSrl.Clear();
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
|
||||
b => { if (!b) ShowMode(UiDisplayMode.PresentationMode); }));
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 0,
|
||||
b => { if (!b) ShowMode(UiDisplayMode.AudioCallMode); }));
|
||||
ActivityFooterSrl.Count = 2;
|
||||
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 1;
|
||||
b => { if (!b) ShareButtonPressed(); }));
|
||||
ActivityFooterSrl.Count = 1;
|
||||
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -257,16 +302,52 @@ namespace PepperDash.Essentials
|
||||
void SetupActivityFooterWhenRoomOn()
|
||||
{
|
||||
ActivityFooterSrl.Clear();
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
|
||||
b => { if (!b) ShowMode(UiDisplayMode.PresentationMode); }));
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 0,
|
||||
b => { if (!b) ShowMode(UiDisplayMode.AudioCallMode); }));
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl,
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl,
|
||||
0, null));
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl,
|
||||
3, b => { if (!b) PowerButtonPressed(); }));
|
||||
ActivityFooterSrl.Count = 3;
|
||||
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 2;
|
||||
ActivityFooterSrl.Count = 2;
|
||||
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 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>
|
||||
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
||||
/// </summary>
|
||||
@@ -315,19 +396,14 @@ namespace PepperDash.Essentials
|
||||
void ShowCurrentSource()
|
||||
{
|
||||
if (CurrentRoom.CurrentSourceInfo == null)
|
||||
{
|
||||
//var offPm = new DefaultPageManager(UIBoolJoin.SelectSourcePopupVisible, TriList);
|
||||
//PageManagers["OFF"] = offPm;
|
||||
//CurrentSourcePageManager = offPm;
|
||||
//offPm.Show();
|
||||
return;
|
||||
}
|
||||
|
||||
var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo;
|
||||
PageManager pm = null;
|
||||
// If we need a page manager, get an appropriate one
|
||||
if (uiDev != null)
|
||||
{
|
||||
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
||||
// Got an existing page manager, get it
|
||||
if (PageManagers.ContainsKey(uiDev))
|
||||
pm = PageManagers[uiDev];
|
||||
@@ -343,12 +419,6 @@ namespace PepperDash.Essentials
|
||||
CurrentSourcePageManager = pm;
|
||||
pm.Show();
|
||||
}
|
||||
else // show some default thing
|
||||
{
|
||||
CurrentDisplayModeSigsInUse.Add(TriList.BooleanInput[12345]);
|
||||
}
|
||||
|
||||
ShowCurrentDisplayModeSigsInUse();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -358,8 +428,7 @@ namespace PepperDash.Essentials
|
||||
/// <param name="key">The key name of the route to run</param>
|
||||
void UiSelectSource(string key)
|
||||
{
|
||||
// Run the route and when it calls back, show the source
|
||||
CurrentRoom.RunRouteAction(key, null);
|
||||
CurrentRoom.DoSourceToAllDestinationsRoute(key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -369,14 +438,23 @@ namespace PepperDash.Essentials
|
||||
{
|
||||
if (!CurrentRoom.OnFeedback.BoolValue)
|
||||
return;
|
||||
EndMeetingButtonSig.BoolValue = true;
|
||||
ShareButtonSig.BoolValue = false;
|
||||
// Timeout or button 1 press will shut down
|
||||
var modal = new ModalDialog(TriList);
|
||||
uint time = 60000;
|
||||
uint seconds = time / 1000;
|
||||
var message = string.Format("Meeting will end in {0} seconds", seconds);
|
||||
modal.PresentModalTimerDialog(2, "End Meeting", "Info", message,
|
||||
modal.PresentModalTimerDialog(2, "End Meeting", "Power", message,
|
||||
"End Meeting Now", "Cancel", time, true,
|
||||
but => { if (but != 2) CurrentRoom.RunRouteAction("roomOff"); });
|
||||
but =>
|
||||
{
|
||||
if (but != 2)
|
||||
CurrentRoom.RunRouteAction("roomOff");
|
||||
else
|
||||
ShareButtonSig.BoolValue = true; // restore Share fb
|
||||
EndMeetingButtonSig.BoolValue = false;
|
||||
});
|
||||
}
|
||||
|
||||
void CancelPowerOffTimer()
|
||||
@@ -491,11 +569,9 @@ namespace PepperDash.Essentials
|
||||
srcConfig.SourceKey);
|
||||
continue;
|
||||
}
|
||||
//Debug.Console(0, "Adding source '{0}'", srcConfig.SourceKey);
|
||||
//var s = srcConfig; // assign locals for scope in button lambda
|
||||
var routeKey = kvp.Key;
|
||||
var sourceKey = srcConfig.SourceKey;
|
||||
var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
|
||||
b => { if (!b) UiSelectSource(routeKey); });
|
||||
b => { if (!b) UiSelectSource(sourceKey); });
|
||||
SourcesSrl.AddItem(item); // add to the SRL
|
||||
item.RegisterForSourceChange(_CurrentRoom);
|
||||
}
|
||||
@@ -526,9 +602,15 @@ namespace PepperDash.Essentials
|
||||
var value = _CurrentRoom.OnFeedback.BoolValue;
|
||||
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
|
||||
if (value)
|
||||
{
|
||||
SetupActivityFooterWhenRoomOn();
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetupActivityFooterWhenRoomOff();
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -10,8 +10,8 @@
|
||||
<ArchiveName />
|
||||
</RequiredInfo>
|
||||
<OptionalInfo>
|
||||
<CompiledOn>2/9/2017 2:44:02 PM</CompiledOn>
|
||||
<CompilerRev>1.0.0.26519</CompilerRev>
|
||||
<CompiledOn>2/10/2017 2:29:52 PM</CompiledOn>
|
||||
<CompilerRev>1.0.0.26094</CompilerRev>
|
||||
</OptionalInfo>
|
||||
<Plugin>
|
||||
<Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MainAssembly=PepperDashEssentials.dll:7c8692784ef9f276843cfa635fe44e4b
|
||||
MainAssembly=PepperDashEssentials.dll:82beec10314644945c51c91d5582e167
|
||||
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