mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 21:24:54 +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\PageControllers\LargeTouchpanelControllerBase.cs" />
|
||||||
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
||||||
<Compile Include="Room\VolumeAndSourceChangeArgs.cs" />
|
<Compile Include="Room\VolumeAndSourceChangeArgs.cs" />
|
||||||
<Compile Include="UI Drivers\SingleSubpageModalDriver.cs" />
|
|
||||||
<Compile Include="UI Drivers\EssentialsPresentationPanelAvFunctionsDriver.cs" />
|
<Compile Include="UI Drivers\EssentialsPresentationPanelAvFunctionsDriver.cs" />
|
||||||
|
<Compile Include="UI Drivers\SingleSubpageModalDriver.cs" />
|
||||||
<Compile Include="UI Drivers\EssentialsPanelMainInterfaceDriver.cs" />
|
<Compile Include="UI Drivers\EssentialsPanelMainInterfaceDriver.cs" />
|
||||||
<Compile Include="UI Drivers\enums and base.cs" />
|
<Compile Include="UI Drivers\enums and base.cs" />
|
||||||
<Compile Include="UI Drivers\EssentialsHuddlePanelAvFunctionsDriver.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 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 IRoutingSinkNoSwitching DefaultAudioDevice { get; private set; }
|
||||||
public IBasicVolumeControls DefaultVolumeControls { get; private set; }
|
public IBasicVolumeControls DefaultVolumeControls { get; private set; }
|
||||||
|
|
||||||
public bool ExcludeFromGlobalFunctions { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The config name of the source list
|
/// The config name of the source list
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -36,6 +32,18 @@ namespace PepperDash.Essentials
|
|||||||
public bool EnablePowerOnToLastSource { get; set; }
|
public bool EnablePowerOnToLastSource { get; set; }
|
||||||
string LastSourceKey;
|
string LastSourceKey;
|
||||||
|
|
||||||
|
public enum eVideoRoutingMode
|
||||||
|
{
|
||||||
|
SelectSourceSelectDisplay, SourceToAllDisplays
|
||||||
|
}
|
||||||
|
|
||||||
|
public eVideoRoutingMode VideoRoutingMode { get; set; }
|
||||||
|
|
||||||
|
public enum eAudioRoutingMode
|
||||||
|
{
|
||||||
|
AudioFollowsLastVideo, SelectAudioFromDisplay
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -103,13 +111,12 @@ namespace PepperDash.Essentials
|
|||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <param name="name"></param>
|
/// <param name="name"></param>
|
||||||
public EssentialsPresentationRoom(string key, string name,
|
public EssentialsPresentationRoom(string key, string name,
|
||||||
IRoutingSinkWithSwitching display1, IRoutingSinkWithSwitching display2,
|
Dictionary<uint, IRoutingSinkNoSwitching> displays,
|
||||||
IRoutingSinkNoSwitching defaultAudio, EssentialsPresentationRoomPropertiesConfig config)
|
IRoutingSinkNoSwitching defaultAudio, EssentialsPresentationRoomPropertiesConfig config)
|
||||||
: base(key, name)
|
: base(key, name)
|
||||||
{
|
{
|
||||||
Config = config;
|
Config = config;
|
||||||
Display1 = display1;
|
Displays = displays;
|
||||||
Display2 = display2;
|
|
||||||
DefaultAudioDevice = defaultAudio;
|
DefaultAudioDevice = defaultAudio;
|
||||||
if (defaultAudio is IBasicVolumeControls)
|
if (defaultAudio is IBasicVolumeControls)
|
||||||
DefaultVolumeControls = defaultAudio as IBasicVolumeControls;
|
DefaultVolumeControls = defaultAudio as IBasicVolumeControls;
|
||||||
@@ -123,6 +130,39 @@ namespace PepperDash.Essentials
|
|||||||
EnablePowerOnToLastSource = true;
|
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)
|
public void RunRouteAction(string routeKey)
|
||||||
{
|
{
|
||||||
RunRouteAction(routeKey, null);
|
RunRouteAction(routeKey, null);
|
||||||
@@ -194,8 +234,8 @@ namespace PepperDash.Essentials
|
|||||||
if (string.IsNullOrEmpty(item.VolumeControlKey)
|
if (string.IsNullOrEmpty(item.VolumeControlKey)
|
||||||
|| item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase))
|
|| item.VolumeControlKey.Equals("$defaultAudio", StringComparison.OrdinalIgnoreCase))
|
||||||
volDev = DefaultVolumeControls;
|
volDev = DefaultVolumeControls;
|
||||||
else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
//else if (item.VolumeControlKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
||||||
volDev = DefaultDisplay as IBasicVolumeControls;
|
// volDev = DefaultDisplay as IBasicVolumeControls;
|
||||||
// Or a specific device, probably rarely used.
|
// Or a specific device, probably rarely used.
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -242,8 +282,8 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase))
|
if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase))
|
||||||
dest = DefaultAudioDevice;
|
dest = DefaultAudioDevice;
|
||||||
else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
//else if (route.DestinationKey.Equals("$defaultDisplay", StringComparison.OrdinalIgnoreCase))
|
||||||
dest = DefaultDisplay;
|
// dest = DefaultDisplay;
|
||||||
else
|
else
|
||||||
dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching;
|
dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching;
|
||||||
|
|
||||||
@@ -271,16 +311,5 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
return true;
|
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()
|
public Device GetRoomObject()
|
||||||
{
|
{
|
||||||
var typeName = Type.ToLower();
|
var typeName = Type.ToLower();
|
||||||
EssentialsHuddleSpaceRoom room = null;
|
|
||||||
if (typeName == "huddle")
|
if (typeName == "huddle")
|
||||||
{
|
{
|
||||||
var props = JsonConvert.DeserializeObject<EssentialsHuddleRoomPropertiesConfig>
|
var props = JsonConvert.DeserializeObject<EssentialsHuddleRoomPropertiesConfig>
|
||||||
(this.Properties.ToString());
|
(this.Properties.ToString());
|
||||||
var disp = DeviceManager.GetDeviceForKey(props.DefaultDisplayKey) as IRoutingSinkWithSwitching;
|
var disp = DeviceManager.GetDeviceForKey(props.DefaultDisplayKey) as IRoutingSinkWithSwitching;
|
||||||
var audio = DeviceManager.GetDeviceForKey(props.DefaultAudioKey) as IRoutingSinkNoSwitching;
|
var audio = DeviceManager.GetDeviceForKey(props.DefaultAudioKey) as IRoutingSinkNoSwitching;
|
||||||
room = new EssentialsHuddleSpaceRoom(Key, Name, disp, audio, props);
|
var huddle = new EssentialsHuddleSpaceRoom(Key, Name, disp, audio, props);
|
||||||
room.SourceListKey = props.SourceListKey;
|
huddle.SourceListKey = props.SourceListKey;
|
||||||
|
return huddle;
|
||||||
}
|
}
|
||||||
else if (typeName == "presentation")
|
else if (typeName == "presentation")
|
||||||
{
|
{
|
||||||
var props = JsonConvert.DeserializeObject<EssentialsPresentationRoomPropertiesConfig>
|
var props = JsonConvert.DeserializeObject<EssentialsPresentationRoomPropertiesConfig>
|
||||||
(this.Properties.ToString());
|
(this.Properties.ToString());
|
||||||
// assign displays
|
var displaysDict = new Dictionary<uint, IRoutingSinkNoSwitching>();
|
||||||
|
uint i = 1;
|
||||||
// assign audio. How??????
|
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
|
public enum UiDisplayMode
|
||||||
{
|
{
|
||||||
AudioSetup, AudioCallMode, PresentationMode
|
PresentationMode, AudioSetup
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -78,6 +78,12 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
EssentialsPresentationRoom _CurrentRoom;
|
EssentialsPresentationRoom _CurrentRoom;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For hitting feedback
|
||||||
|
/// </summary>
|
||||||
|
BoolInputSig ShareButtonSig;
|
||||||
|
BoolInputSig EndMeetingButtonSig;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Controls the extended period that the volume gauge shows on-screen,
|
/// Controls the extended period that the volume gauge shows on-screen,
|
||||||
/// as triggered by Volume up/down operations
|
/// as triggered by Volume up/down operations
|
||||||
@@ -90,8 +96,16 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
BoolFeedbackPulseExtender VolumeButtonsPopupFeedback;
|
BoolFeedbackPulseExtender VolumeButtonsPopupFeedback;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The parent driver for this
|
||||||
|
/// </summary>
|
||||||
PanelDriverBase Parent;
|
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>();
|
List<BoolInputSig> CurrentDisplayModeSigsInUse = new List<BoolInputSig>();
|
||||||
|
|
||||||
//// Important smart objects
|
//// Important smart objects
|
||||||
@@ -129,7 +143,8 @@ namespace PepperDash.Essentials
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public EssentialsPresentationPanelAvFunctionsDriver(PanelDriverBase parent, CrestronTouchpanelPropertiesConfig config)
|
public EssentialsPresentationPanelAvFunctionsDriver(PanelDriverBase parent,
|
||||||
|
CrestronTouchpanelPropertiesConfig config)
|
||||||
: base(parent.TriList)
|
: base(parent.TriList)
|
||||||
{
|
{
|
||||||
Config = config;
|
Config = config;
|
||||||
@@ -158,7 +173,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;
|
||||||
|
|
||||||
@@ -168,6 +182,28 @@ 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
|
||||||
|
TriList.SetSigFalseAction(UIBoolJoin.GearHeaderButtonPress, () =>
|
||||||
|
ShowInterlockedModal(UIBoolJoin.VolumesPageVisible));
|
||||||
|
|
||||||
// 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
|
||||||
// in case
|
// in case
|
||||||
@@ -185,11 +221,6 @@ namespace PepperDash.Essentials
|
|||||||
EssentialsHuddleSpaceRoom.AllRoomsOff();
|
EssentialsHuddleSpaceRoom.AllRoomsOff();
|
||||||
CancelPowerOff();
|
CancelPowerOff();
|
||||||
});
|
});
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
|
|
||||||
{
|
|
||||||
if (CurrentRoom != null && CurrentRoom.DefaultDisplay is IPower)
|
|
||||||
(CurrentRoom.DefaultDisplay as IPower).PowerToggle();
|
|
||||||
});
|
|
||||||
|
|
||||||
base.Show();
|
base.Show();
|
||||||
}
|
}
|
||||||
@@ -199,6 +230,10 @@ namespace PepperDash.Essentials
|
|||||||
HideAndClearCurrentDisplayModeSigsInUse();
|
HideAndClearCurrentDisplayModeSigsInUse();
|
||||||
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.TapToBeginVisible].BoolValue = false;
|
||||||
|
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
||||||
|
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
|
||||||
VolumeButtonsPopupFeedback.ClearNow();
|
VolumeButtonsPopupFeedback.ClearNow();
|
||||||
CancelPowerOff();
|
CancelPowerOff();
|
||||||
|
|
||||||
@@ -217,7 +252,19 @@ namespace PepperDash.Essentials
|
|||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case UiDisplayMode.PresentationMode:
|
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
|
// Date/time
|
||||||
if (Config.ShowDate && Config.ShowTime)
|
if (Config.ShowDate && Config.ShowTime)
|
||||||
{
|
{
|
||||||
@@ -244,11 +291,9 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
ActivityFooterSrl.Clear();
|
ActivityFooterSrl.Clear();
|
||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
|
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
|
||||||
b => { if (!b) ShowMode(UiDisplayMode.PresentationMode); }));
|
b => { if (!b) ShareButtonPressed(); }));
|
||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 0,
|
ActivityFooterSrl.Count = 1;
|
||||||
b => { if (!b) ShowMode(UiDisplayMode.AudioCallMode); }));
|
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 0;
|
||||||
ActivityFooterSrl.Count = 2;
|
|
||||||
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -257,16 +302,52 @@ namespace PepperDash.Essentials
|
|||||||
void SetupActivityFooterWhenRoomOn()
|
void SetupActivityFooterWhenRoomOn()
|
||||||
{
|
{
|
||||||
ActivityFooterSrl.Clear();
|
ActivityFooterSrl.Clear();
|
||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
|
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl,
|
||||||
b => { if (!b) ShowMode(UiDisplayMode.PresentationMode); }));
|
0, null));
|
||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 0,
|
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl,
|
||||||
b => { if (!b) ShowMode(UiDisplayMode.AudioCallMode); }));
|
|
||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl,
|
|
||||||
3, b => { if (!b) PowerButtonPressed(); }));
|
3, b => { if (!b) PowerButtonPressed(); }));
|
||||||
ActivityFooterSrl.Count = 3;
|
ActivityFooterSrl.Count = 2;
|
||||||
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 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>
|
/// <summary>
|
||||||
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -315,19 +396,14 @@ namespace PepperDash.Essentials
|
|||||||
void ShowCurrentSource()
|
void ShowCurrentSource()
|
||||||
{
|
{
|
||||||
if (CurrentRoom.CurrentSourceInfo == null)
|
if (CurrentRoom.CurrentSourceInfo == null)
|
||||||
{
|
|
||||||
//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];
|
||||||
@@ -343,12 +419,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>
|
||||||
@@ -358,8 +428,7 @@ namespace PepperDash.Essentials
|
|||||||
/// <param name="key">The key name of the route to run</param>
|
/// <param name="key">The key name of the route to run</param>
|
||||||
void UiSelectSource(string key)
|
void UiSelectSource(string key)
|
||||||
{
|
{
|
||||||
// Run the route and when it calls back, show the source
|
CurrentRoom.DoSourceToAllDestinationsRoute(key);
|
||||||
CurrentRoom.RunRouteAction(key, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -369,14 +438,23 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
if (!CurrentRoom.OnFeedback.BoolValue)
|
if (!CurrentRoom.OnFeedback.BoolValue)
|
||||||
return;
|
return;
|
||||||
|
EndMeetingButtonSig.BoolValue = true;
|
||||||
|
ShareButtonSig.BoolValue = false;
|
||||||
// Timeout or button 1 press will shut down
|
// Timeout or button 1 press will shut down
|
||||||
var modal = new ModalDialog(TriList);
|
var modal = new ModalDialog(TriList);
|
||||||
uint time = 60000;
|
uint time = 60000;
|
||||||
uint seconds = time / 1000;
|
uint seconds = time / 1000;
|
||||||
var message = string.Format("Meeting will end in {0} seconds", seconds);
|
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,
|
"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()
|
void CancelPowerOffTimer()
|
||||||
@@ -491,11 +569,9 @@ namespace PepperDash.Essentials
|
|||||||
srcConfig.SourceKey);
|
srcConfig.SourceKey);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//Debug.Console(0, "Adding source '{0}'", srcConfig.SourceKey);
|
var sourceKey = srcConfig.SourceKey;
|
||||||
//var s = srcConfig; // assign locals for scope in button lambda
|
|
||||||
var routeKey = kvp.Key;
|
|
||||||
var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
|
var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
|
||||||
b => { if (!b) UiSelectSource(routeKey); });
|
b => { if (!b) UiSelectSource(sourceKey); });
|
||||||
SourcesSrl.AddItem(item); // add to the SRL
|
SourcesSrl.AddItem(item); // add to the SRL
|
||||||
item.RegisterForSourceChange(_CurrentRoom);
|
item.RegisterForSourceChange(_CurrentRoom);
|
||||||
}
|
}
|
||||||
@@ -526,9 +602,15 @@ namespace PepperDash.Essentials
|
|||||||
var value = _CurrentRoom.OnFeedback.BoolValue;
|
var value = _CurrentRoom.OnFeedback.BoolValue;
|
||||||
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
|
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
|
||||||
if (value)
|
if (value)
|
||||||
|
{
|
||||||
SetupActivityFooterWhenRoomOn();
|
SetupActivityFooterWhenRoomOn();
|
||||||
|
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
SetupActivityFooterWhenRoomOff();
|
SetupActivityFooterWhenRoomOff();
|
||||||
|
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -10,8 +10,8 @@
|
|||||||
<ArchiveName />
|
<ArchiveName />
|
||||||
</RequiredInfo>
|
</RequiredInfo>
|
||||||
<OptionalInfo>
|
<OptionalInfo>
|
||||||
<CompiledOn>2/9/2017 2:44:02 PM</CompiledOn>
|
<CompiledOn>2/10/2017 2:29:52 PM</CompiledOn>
|
||||||
<CompilerRev>1.0.0.26519</CompilerRev>
|
<CompilerRev>1.0.0.26094</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>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
MainAssembly=PepperDashEssentials.dll:7c8692784ef9f276843cfa635fe44e4b
|
MainAssembly=PepperDashEssentials.dll:82beec10314644945c51c91d5582e167
|
||||||
MainAssemblyMinFirmwareVersion=1.009.0029
|
MainAssemblyMinFirmwareVersion=1.009.0029
|
||||||
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
|
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
|
||||||
ü
|
ü
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user