Getting basic presentation room routing going!

This commit is contained in:
Heath Volmer
2017-02-13 17:30:18 -07:00
parent 13dd7a3914
commit 2d30a89f93
21 changed files with 119 additions and 37 deletions

View File

@@ -88,9 +88,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll</HintPath>
</Reference>
<Reference Include="PepperDash_Essentials_Core, Version=1.0.0.24312, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="PepperDash_Essentials_Core, Version=1.0.0.30070, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\essentials-ssp-base\PepperDashEssentialsBase\PepperDashEssentialsBase\bin\PepperDash_Essentials_Core.dll</HintPath>
<HintPath>..\..\..\essentials-core\PepperDashEssentialsBase\PepperDashEssentialsBase\bin\PepperDash_Essentials_Core.dll</HintPath>
</Reference>
<Reference Include="PepperDash_Essentials_DM, Version=1.0.0.17590, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -130,12 +130,22 @@ namespace PepperDash.Essentials
EnablePowerOnToLastSource = true;
}
public void DoSourceToAllDestinationsRoute(string sourceKey)
/// <summary>
/// Run the same source to all destinations
/// </summary>
/// <param name="sourceItem"></param>
public void DoSourceToAllDestinationsRoute(SourceListItem sourceItem)
{
foreach (var display in Displays.Values)
DoVideoRoute(sourceKey, display.Key);
{
if (sourceItem != null)
DoVideoRoute(sourceItem.SourceKey, display.Key);
else
DoVideoRoute("$off", display.Key);
}
CurrentSourceInfo = sourceItem;
OnFeedback.FireUpdate();
}
/// <summary>
@@ -145,19 +155,27 @@ namespace PepperDash.Essentials
{
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;
}
// off is special case
if (sourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase))
{
dest.ReleaseRoute();
if (dest is IPower)
(dest as IPower).PowerOff();
return;
}
var source = DeviceManager.GetDeviceForKey(sourceKey) as IRoutingOutputs;
if (source == null)
{
Debug.Console(1, this, "Cannot route. Source '{0}' not found", sourceKey);
return;
}
dest.ReleaseAndMakeRoute(source, eRoutingSignalType.Video);
}, 0);
}

View File

@@ -62,7 +62,7 @@ namespace PepperDash.Essentials
public string SourceListKey { get; set; }
}
public class EssentialsPresentationRoomPropertiesConfig
public class EssentialsPresentationRoomPropertiesConfig : EssentialsRoomPropertiesConfig
{
public string DefaultAudioBehavior { get; set; }
public string DefaultAudioKey { get; set; }

View File

@@ -0,0 +1,50 @@
2/13/2017 2:51:26 PM, Info: Initializing SIMPLSharp Services...
2/13/2017 2:51:26 PM, Info: ProjectInfo successfully initialized.
2/13/2017 3:00:26 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 3:00:27 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 3:00:27 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 3:00:28 PM, Info: Saving project information...
2/13/2017 3:40:21 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 3:40:21 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 3:40:21 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 3:40:23 PM, Info: Saving project information...
2/13/2017 3:47:17 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 3:47:17 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 3:47:17 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 3:47:19 PM, Info: Saving project information...
2/13/2017 4:05:25 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 4:05:25 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 4:05:25 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 4:05:27 PM, Info: Saving project information...
2/13/2017 4:21:21 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 4:21:21 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 4:21:22 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 4:21:23 PM, Info: Saving project information...
2/13/2017 4:43:04 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials-core\PepperDashEssentialsBase\PepperDashEssentialsBase\bin\PepperDash_Essentials_Core.dll...
2/13/2017 4:43:16 PM, Info: Saving project information...
2/13/2017 4:43:16 PM, Info: Saving project information...
2/13/2017 4:43:16 PM, Info: Saving project information...
2/13/2017 4:43:16 PM, Info: Saving project information...
2/13/2017 4:43:16 PM, Info: Saving project information...
2/13/2017 4:43:16 PM, Info: Saving project information...
2/13/2017 4:43:19 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 4:43:19 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 4:43:19 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 4:43:21 PM, Info: Saving project information...
2/13/2017 4:44:06 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 4:44:07 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 4:44:07 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 4:44:08 PM, Info: Saving project information...
2/13/2017 4:50:55 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 4:50:55 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 4:50:55 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 4:50:57 PM, Info: Saving project information...
2/13/2017 5:19:48 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 5:19:49 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 5:19:49 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 5:19:50 PM, Info: Saving project information...
2/13/2017 5:26:40 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/13/2017 5:26:41 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/13/2017 5:26:41 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/13/2017 5:26:43 PM, Info: Saving project information...
2/13/2017 5:29:13 PM, Info: Terminating SIMPLSharp Services

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
@@ -188,7 +189,7 @@ namespace PepperDash.Essentials
{
string message = null;
var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey)
as EssentialsHuddleSpaceRoom;
as EssentialsPresentationRoom;
if (room != null)
message = room.Config.HelpMessage;
else
@@ -292,7 +293,9 @@ namespace PepperDash.Essentials
ActivityFooterSrl.Clear();
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl, 0,
b => { if (!b) ShareButtonPressed(); }));
ActivityFooterSrl.Count = 1;
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 1,
b => { }));
ActivityFooterSrl.Count = 2;
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 0;
}
@@ -305,8 +308,10 @@ namespace PepperDash.Essentials
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl,
0, null));
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl,
1, b => { if (!b) ShareButtonPressed(); }));
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl,
3, b => { if (!b) PowerButtonPressed(); }));
ActivityFooterSrl.Count = 2;
ActivityFooterSrl.Count = 3;
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 1;
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1);
}
@@ -426,9 +431,9 @@ namespace PepperDash.Essentials
/// to change to the proper screen.
/// </summary>
/// <param name="key">The key name of the route to run</param>
void UiSelectSource(string key)
void UiSelectSource(SourceListItem sourceItem)
{
CurrentRoom.DoSourceToAllDestinationsRoute(key);
CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem);
}
/// <summary>
@@ -450,7 +455,7 @@ namespace PepperDash.Essentials
but =>
{
if (but != 2)
CurrentRoom.RunRouteAction("roomOff");
CurrentRoom.DoSourceToAllDestinationsRoute(null);
else
ShareButtonSig.BoolValue = true; // restore Share fb
EndMeetingButtonSig.BoolValue = false;
@@ -553,25 +558,26 @@ namespace PepperDash.Essentials
var config = ConfigReader.ConfigObject.SourceLists;
if (config.ContainsKey(_CurrentRoom.SourceListKey))
{
var srcList = config[_CurrentRoom.SourceListKey];
var srcList = config[_CurrentRoom.SourceListKey]
.Values.ToList().OrderBy(s => s.Order);
// Setup sources list
uint i = 1; // counter for UI list
foreach (var kvp in srcList)
foreach (var srcConfig in srcList)
{
var srcConfig = kvp.Value;
if (!srcConfig.IncludeInSourceList) // Skip sources marked this way
continue;
var actualSource = DeviceManager.GetDeviceForKey(srcConfig.SourceKey) as Device;
var sourceKey = srcConfig.SourceKey;
var actualSource = DeviceManager.GetDeviceForKey(sourceKey) as Device;
if (actualSource == null)
{
Debug.Console(0, "Cannot assign missing source '{0}' to source UI list",
srcConfig.SourceKey);
continue;
}
var sourceKey = srcConfig.SourceKey;
var localSrcConfig = srcConfig; // lambda scope below
var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
b => { if (!b) UiSelectSource(sourceKey); });
b => { if (!b) UiSelectSource(localSrcConfig); });
SourcesSrl.AddItem(item); // add to the SRL
item.RegisterForSourceChange(_CurrentRoom);
}

View File

@@ -98,9 +98,9 @@ namespace PepperDash.Essentials
var room = DeviceManager.GetDeviceForKey(props.DefaultRoomKey);
if (room is EssentialsHuddleSpaceRoom)
{
Debug.Console(0, this, "Adding huddle space driver");
var avDriver = new EssentialsHuddlePanelAvFunctionsDriver(mainDriver, props);
avDriver.CurrentRoom = DeviceManager.GetDeviceForKey(props.DefaultRoomKey)
as EssentialsHuddleSpaceRoom;
avDriver.CurrentRoom = room as EssentialsHuddleSpaceRoom;
avDriver.DefaultRoomKey = props.DefaultRoomKey;
mainDriver.AvDriver = avDriver;
LoadAndShowDriver(mainDriver); // This is a little convoluted.
@@ -118,9 +118,9 @@ namespace PepperDash.Essentials
}
else if (room is EssentialsPresentationRoom)
{
Debug.Console(0, this, "Adding presentation room driver");
var avDriver = new EssentialsPresentationPanelAvFunctionsDriver(mainDriver, props);
avDriver.CurrentRoom = DeviceManager.GetDeviceForKey(props.DefaultRoomKey)
as EssentialsPresentationRoom;
avDriver.CurrentRoom = room as EssentialsPresentationRoom;
avDriver.DefaultRoomKey = props.DefaultRoomKey;
mainDriver.AvDriver = avDriver;
LoadAndShowDriver(mainDriver);

View File

@@ -12,6 +12,13 @@ namespace PepperDash.Essentials
{
public class SubpageReferenceListActivityItem : SubpageReferenceListItem
{
/// <summary>
///
/// </summary>
/// <param name="index"></param>
/// <param name="owner"></param>
/// <param name="buttonMode">0=Share, 1=Phone Call, 2=Video Call, 3=End Meeting</param>
/// <param name="pressAction"></param>
public SubpageReferenceListActivityItem(uint index, SubpageReferenceList owner,
ushort buttonMode, Action<bool> pressAction)
: base(index, owner)

View File

@@ -10,8 +10,8 @@
<ArchiveName />
</RequiredInfo>
<OptionalInfo>
<CompiledOn>2/10/2017 2:29:52 PM</CompiledOn>
<CompilerRev>1.0.0.26094</CompilerRev>
<CompiledOn>2/13/2017 5:26:41 PM</CompiledOn>
<CompilerRev>1.0.0.31399</CompilerRev>
</OptionalInfo>
<Plugin>
<Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>

View File

@@ -1,4 +1,4 @@
MainAssembly=PepperDashEssentials.dll:82beec10314644945c51c91d5582e167
MainAssembly=PepperDashEssentials.dll:7af4e6d55a20dd121757619674d8ae00
MainAssemblyMinFirmwareVersion=1.009.0029
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
ü
@@ -46,13 +46,13 @@ DependencySource=PepperDashCorePortalSync.dll:80cb079012e59e1a1805c7e5bbe07e76
DependencyPath=PepperDashEssentials.cpz:PepperDashCorePortalSync.dll
DependencyMainAssembly=PepperDashCorePortalSync.dll:80cb079012e59e1a1805c7e5bbe07e76
ü
DependencySource=PepperDash_Core.dll:2ce705d0617973f5c800064ef6bd32cd
DependencySource=PepperDash_Core.dll:376f0c0b11f57cee97fbee77c6d5579f
DependencyPath=PepperDashEssentials.cpz:PepperDash_Core.dll
DependencyMainAssembly=PepperDash_Core.dll:2ce705d0617973f5c800064ef6bd32cd
DependencyMainAssembly=PepperDash_Core.dll:376f0c0b11f57cee97fbee77c6d5579f
ü
DependencySource=PepperDash_Essentials_Core.dll:3681d811c2088b5a70962bce0435d2cc
DependencySource=PepperDash_Essentials_Core.dll:f7a721fec365c6060bc860c9e095cee7
DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Core.dll
DependencyMainAssembly=PepperDash_Essentials_Core.dll:3681d811c2088b5a70962bce0435d2cc
DependencyMainAssembly=PepperDash_Essentials_Core.dll:f7a721fec365c6060bc860c9e095cee7
ü
DependencySource=PepperDash_Essentials_Displays.dll:3135ef6b8f66b5b1bc5223aad3ef66e0
DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Displays.dll

View File

@@ -109,3 +109,4 @@ C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssen
C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\SimplSharpReflectionInterface.dll
C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\Newtonsoft.Json.Compact.dll
C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\obj\Debug\PepperDashEssentials.pdb
C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDash_Essentials_Core.dll