mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-17 13:45:01 +00:00
Merge branch 'feature/2.0.0-clean-architecture-sln' into feature/dev-2.0.0-clean-architecture
# Conflicts: # PepperDashEssentials.sln # src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj # src/PepperDash.Essentials.Devices.Common/PepperDash.Essentials.Devices.Common.csproj # src/PepperDash.Essentials.Devices.DM/PepperDash.Essentials.Devices.Dm.csproj # src/PepperDash.Essentials/PepperDash.Essentials.csproj
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
|||||||
[submodule "Essentials-Template-UI"]
|
|
||||||
path = Essentials-Template-UI
|
|
||||||
url = https://github.com/PepperDash/Essentials-Template-UI.git
|
|
||||||
|
|||||||
Submodule Essentials-Template-UI deleted from 8eaf88791b
@@ -1,30 +1,25 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||||
# Visual Studio 2008
|
# Visual Studio 2008
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDashEssentials", "PepperDashEssentials\PepperDashEssentials.csproj", "{1BED5BA9-88C4-4365-9362-6F4B128071D3}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash.Essentials", "Src/PepperDash.Essentials/PepperDash.Essentials.csproj", "{1BED5BA9-88C4-4365-9362-6F4B128071D3}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{892B761C-E479-44CE-BD74-243E9214AF13} = {892B761C-E479-44CE-BD74-243E9214AF13}
|
{892B761C-E479-44CE-BD74-243E9214AF13} = {892B761C-E479-44CE-BD74-243E9214AF13}
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F} = {9199CE8A-0C9F-4952-8672-3EED798B284F}
|
{9199CE8A-0C9F-4952-8672-3EED798B284F} = {9199CE8A-0C9F-4952-8672-3EED798B284F}
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}
|
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_Core", "essentials-framework\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj", "{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash.Essentials.Core", "Src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj", "{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{E51D7C84-4906-486C-B2BA-EEB3B4E9731B} = {E51D7C84-4906-486C-B2BA-EEB3B4E9731B}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials Devices Common", "essentials-framework\Essentials Devices Common\Essentials Devices Common\Essentials Devices Common.csproj", "{892B761C-E479-44CE-BD74-243E9214AF13}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash.Essentials.Devices.Common", "Src/PepperDash.Essentials.Devices.Common/PepperDash.Essentials.Devices.Common.csproj", "{892B761C-E479-44CE-BD74-243E9214AF13}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}
|
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_DM", "essentials-framework\Essentials DM\Essentials_DM\PepperDash_Essentials_DM.csproj", "{9199CE8A-0C9F-4952-8672-3EED798B284F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash.Essentials.Devices.Dm", "SRc/PepperDash.Essentials.Devices.DM/PepperDash.Essentials.Devices.Dm.csproj", "{9199CE8A-0C9F-4952-8672-3EED798B284F}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}
|
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5} = {A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_Interfaces", "essentials-framework\Essentials Interfaces\PepperDash_Essentials_Interfaces\PepperDash_Essentials_Interfaces.csproj", "{E51D7C84-4906-486C-B2BA-EEB3B4E9731B}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -47,10 +42,6 @@ Global
|
|||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.Build.0 = Release|Any CPU
|
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{E51D7C84-4906-486C-B2BA-EEB3B4E9731B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E51D7C84-4906-486C-B2BA-EEB3B4E9731B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E51D7C84-4906-486C-B2BA-EEB3B4E9731B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E51D7C84-4906-486C-B2BA-EEB3B4E9731B}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
namespace PepperDash.Essentials
|
|
||||||
{
|
|
||||||
public class CrestronTouchpanelPropertiesConfig
|
|
||||||
{
|
|
||||||
public string IpId { get; set; }
|
|
||||||
public string DefaultRoomKey { get; set; }
|
|
||||||
public string RoomListKey { get; set; }
|
|
||||||
public string SgdFile { get; set; }
|
|
||||||
public string ProjectName { get; set; }
|
|
||||||
public bool ShowVolumeGauge { get; set; }
|
|
||||||
public bool UsesSplashPage { get; set; }
|
|
||||||
public bool ShowDate { get; set; }
|
|
||||||
public bool ShowTime { get; set; }
|
|
||||||
public UiSetupPropertiesConfig Setup { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The count of sources that will trigger the "additional" arrows to show on the SRL.
|
|
||||||
/// Defaults to 5
|
|
||||||
/// </summary>
|
|
||||||
public int SourcesOverflowCount { get; set; }
|
|
||||||
|
|
||||||
public CrestronTouchpanelPropertiesConfig()
|
|
||||||
{
|
|
||||||
SourcesOverflowCount = 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class UiSetupPropertiesConfig
|
|
||||||
{
|
|
||||||
public bool IsVisible { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,221 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Crestron.SimplSharp.CrestronIO;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.DeviceSupport;
|
|
||||||
using Crestron.SimplSharpPro.UI;
|
|
||||||
using PepperDash.Core;
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Essentials.Core.PageManagers;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
|
||||||
{
|
|
||||||
public class EssentialsTouchpanelController : Device
|
|
||||||
{
|
|
||||||
public BasicTriListWithSmartObject Panel { get; private set; }
|
|
||||||
|
|
||||||
public PanelDriverBase PanelDriver { get; private set; }
|
|
||||||
|
|
||||||
CTimer BacklightTransitionedOnTimer;
|
|
||||||
|
|
||||||
public EssentialsTouchpanelController(string key, string name, Tswx52ButtonVoiceControl tsw,
|
|
||||||
string projectName, string sgdPath)
|
|
||||||
: base(key, name)
|
|
||||||
{
|
|
||||||
Panel = tsw;
|
|
||||||
tsw.LoadSmartObjects(sgdPath);
|
|
||||||
tsw.SigChange += new Crestron.SimplSharpPro.DeviceSupport.SigEventHandler(Tsw_SigChange);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Config constructor
|
|
||||||
/// </summary>
|
|
||||||
public EssentialsTouchpanelController(string key, string name, string type, CrestronTouchpanelPropertiesConfig props, uint id)
|
|
||||||
: base(key, name)
|
|
||||||
{
|
|
||||||
AddPostActivationAction(() =>
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "post-activation linking");
|
|
||||||
type = type.ToLower();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (type == "crestronapp")
|
|
||||||
{
|
|
||||||
var app = new CrestronApp(id, Global.ControlSystem);
|
|
||||||
app.ParameterProjectName.Value = props.ProjectName;
|
|
||||||
Panel = app;
|
|
||||||
}
|
|
||||||
else if (type == "tsw560")
|
|
||||||
Panel = new Tsw560(id, Global.ControlSystem);
|
|
||||||
else if (type == "tsw752")
|
|
||||||
Panel = new Tsw752(id, Global.ControlSystem);
|
|
||||||
else if (type == "tsw1052")
|
|
||||||
Panel = new Tsw1052(id, Global.ControlSystem);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "WARNING: Cannot create TSW controller with type '{0}'", type);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "WARNING: Cannot create TSW base class. Panel will not function: {0}", e.Message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reserved sigs
|
|
||||||
if (Panel is TswFt5ButtonSystem)
|
|
||||||
{
|
|
||||||
var tsw = Panel as TswFt5ButtonSystem;
|
|
||||||
tsw.ExtenderSystemReservedSigs.Use();
|
|
||||||
tsw.ExtenderSystemReservedSigs.DeviceExtenderSigChange
|
|
||||||
+= ExtenderSystemReservedSigs_DeviceExtenderSigChange;
|
|
||||||
}
|
|
||||||
|
|
||||||
new CTimer(o =>
|
|
||||||
{
|
|
||||||
var regSuccess = Panel.Register();
|
|
||||||
if (regSuccess != eDeviceRegistrationUnRegistrationResponse.Success)
|
|
||||||
Debug.Console(0, this, "WARNING: Registration failed. Continuing, but panel may not function: {0}", regSuccess);
|
|
||||||
|
|
||||||
// Give up cleanly if SGD is not present.
|
|
||||||
var sgdName = @"\NVRAM\Program" + InitialParametersClass.ApplicationNumber
|
|
||||||
+ @"\sgd\" + props.SgdFile;
|
|
||||||
if (!File.Exists(sgdName))
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "WARNING: Smart object file '{0}' not present. Exiting TSW load", sgdName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Panel.LoadSmartObjects(sgdName);
|
|
||||||
Panel.SigChange += Tsw_SigChange;
|
|
||||||
|
|
||||||
var mainDriver = new EssentialsPanelMainInterfaceDriver(Panel, props);
|
|
||||||
// Then the AV driver
|
|
||||||
|
|
||||||
// spin up different room drivers depending on room type
|
|
||||||
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 = room as EssentialsHuddleSpaceRoom;
|
|
||||||
avDriver.DefaultRoomKey = props.DefaultRoomKey;
|
|
||||||
mainDriver.AvDriver = avDriver;
|
|
||||||
LoadAndShowDriver(mainDriver); // This is a little convoluted.
|
|
||||||
|
|
||||||
if (Panel is TswFt5ButtonSystem)
|
|
||||||
{
|
|
||||||
var tsw = Panel as TswFt5ButtonSystem;
|
|
||||||
// Wire up hard keys
|
|
||||||
tsw.Power.UserObject = new Action<bool>(b => { if (!b) avDriver.PowerButtonPressed(); });
|
|
||||||
//tsw.Home.UserObject = new Action<bool>(b => { if (!b) HomePressed(); });
|
|
||||||
tsw.Up.UserObject = new Action<bool>(avDriver.VolumeUpPress);
|
|
||||||
tsw.Down.UserObject = new Action<bool>(avDriver.VolumeDownPress);
|
|
||||||
tsw.ButtonStateChange += new ButtonEventHandler(Tsw_ButtonStateChange);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (room is EssentialsPresentationRoom)
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "Adding presentation room driver");
|
|
||||||
var avDriver = new EssentialsPresentationPanelAvFunctionsDriver(mainDriver, props);
|
|
||||||
avDriver.CurrentRoom = room as EssentialsPresentationRoom;
|
|
||||||
avDriver.DefaultRoomKey = props.DefaultRoomKey;
|
|
||||||
mainDriver.AvDriver = avDriver;
|
|
||||||
LoadAndShowDriver(mainDriver);
|
|
||||||
|
|
||||||
if (Panel is TswFt5ButtonSystem)
|
|
||||||
{
|
|
||||||
var tsw = Panel as TswFt5ButtonSystem;
|
|
||||||
// Wire up hard keys
|
|
||||||
tsw.Power.UserObject = new Action<bool>(b => { if (!b) avDriver.PowerButtonPressed(); });
|
|
||||||
//tsw.Home.UserObject = new Action<bool>(b => { if (!b) HomePressed(); });
|
|
||||||
tsw.Up.UserObject = new Action<bool>(avDriver.VolumeUpPress);
|
|
||||||
tsw.Down.UserObject = new Action<bool>(avDriver.VolumeDownPress);
|
|
||||||
tsw.ButtonStateChange += new ButtonEventHandler(Tsw_ButtonStateChange);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "ERROR: Cannot load AvFunctionsDriver for room '{0}'", props.DefaultRoomKey);
|
|
||||||
}
|
|
||||||
}, 0);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadAndShowDriver(PanelDriverBase driver)
|
|
||||||
{
|
|
||||||
PanelDriver = driver;
|
|
||||||
driver.Show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void HomePressed()
|
|
||||||
{
|
|
||||||
if (BacklightTransitionedOnTimer == null)
|
|
||||||
PanelDriver.BackButtonPressed();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ExtenderSystemReservedSigs_DeviceExtenderSigChange(DeviceExtender currentDeviceExtender, SigEventArgs args)
|
|
||||||
{
|
|
||||||
// If the sig is transitioning on, mark it in case it was home button that transitioned it
|
|
||||||
var blOnSig = (Panel as TswFt5ButtonSystem).ExtenderSystemReservedSigs.BacklightOnFeedback;
|
|
||||||
if (args.Sig == blOnSig && blOnSig.BoolValue)
|
|
||||||
{
|
|
||||||
BacklightTransitionedOnTimer = new CTimer(o =>
|
|
||||||
{
|
|
||||||
BacklightTransitionedOnTimer = null;
|
|
||||||
}, 200);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PulseBool(uint join)
|
|
||||||
{
|
|
||||||
var act = Panel.BooleanInput[join].UserObject as Action<bool>;
|
|
||||||
if (act != null)
|
|
||||||
{
|
|
||||||
act(true);
|
|
||||||
act(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetBoolSig(uint join, bool value)
|
|
||||||
{
|
|
||||||
var act = Panel.BooleanInput[join].UserObject as Action<bool>;
|
|
||||||
if (act != null)
|
|
||||||
act(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetIntSig(uint join, ushort value)
|
|
||||||
{
|
|
||||||
var act = Panel.BooleanInput[join].UserObject as Action<ushort>;
|
|
||||||
if (act != null)
|
|
||||||
{
|
|
||||||
act(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Tsw_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args)
|
|
||||||
{
|
|
||||||
if (Debug.Level == 2)
|
|
||||||
Debug.Console(2, this, "Sig change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
|
|
||||||
var uo = args.Sig.UserObject;
|
|
||||||
if (uo is Action<bool>)
|
|
||||||
(uo as Action<bool>)(args.Sig.BoolValue);
|
|
||||||
else if (uo is Action<ushort>)
|
|
||||||
(uo as Action<ushort>)(args.Sig.UShortValue);
|
|
||||||
else if (uo is Action<string>)
|
|
||||||
(uo as Action<string>)(args.Sig.StringValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Tsw_ButtonStateChange(GenericBase device, ButtonEventArgs args)
|
|
||||||
{
|
|
||||||
var uo = args.Button.UserObject;
|
|
||||||
if(uo is Action<bool>)
|
|
||||||
(uo as Action<bool>)(args.Button.State == eButtonState.Pressed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.UI;
|
|
||||||
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
|
||||||
{
|
|
||||||
public class SubpageReferenceListSourceItem : SubpageReferenceListItem
|
|
||||||
{
|
|
||||||
public SourceListItem SourceItem { get; private set; }
|
|
||||||
|
|
||||||
public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner,
|
|
||||||
SourceListItem sourceItem, Action<bool> routeAction)
|
|
||||||
: base(index, owner)
|
|
||||||
{
|
|
||||||
SourceItem = sourceItem;
|
|
||||||
owner.GetBoolFeedbackSig(index, 1).UserObject = new Action<bool>(routeAction);
|
|
||||||
owner.StringInputSig(index, 1).StringValue = SourceItem.PreferredName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RegisterForSourceChange(IHasCurrentSourceInfoChange room)
|
|
||||||
{
|
|
||||||
room.CurrentSingleSourceChange -= room_CurrentSourceInfoChange;
|
|
||||||
room.CurrentSingleSourceChange += room_CurrentSourceInfoChange;
|
|
||||||
}
|
|
||||||
|
|
||||||
void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
|
|
||||||
{
|
|
||||||
if (type == ChangeType.WillChange && info == SourceItem)
|
|
||||||
ClearFeedback();
|
|
||||||
else if (type == ChangeType.DidChange && info == SourceItem)
|
|
||||||
SetFeedback();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Called by SRL to release all referenced objects
|
|
||||||
/// </summary>
|
|
||||||
public override void Clear()
|
|
||||||
{
|
|
||||||
Owner.BoolInputSig(Index, 1).UserObject = null;
|
|
||||||
Owner.StringInputSig(Index, 1).StringValue = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sets the selected feedback on the button
|
|
||||||
/// </summary>
|
|
||||||
public void SetFeedback()
|
|
||||||
{
|
|
||||||
Owner.BoolInputSig(Index, 1).BoolValue = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Clears the selected feedback on the button
|
|
||||||
/// </summary>
|
|
||||||
public void ClearFeedback()
|
|
||||||
{
|
|
||||||
Owner.BoolInputSig(Index, 1).BoolValue = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
//using System;
|
|
||||||
//using System.Collections.Generic;
|
|
||||||
//using System.Linq;
|
|
||||||
//using System.Text;
|
|
||||||
//using Crestron.SimplSharp;
|
|
||||||
//using Crestron.SimplSharpPro;
|
|
||||||
//using Crestron.SimplSharpPro.DeviceSupport;
|
|
||||||
//using Crestron.SimplSharpPro.UI;
|
|
||||||
|
|
||||||
//using PepperDash.Essentials.Core;
|
|
||||||
|
|
||||||
//namespace PepperDash.Essentials
|
|
||||||
//{
|
|
||||||
// public class DualDisplaySourceSRLController : SubpageReferenceList
|
|
||||||
// {
|
|
||||||
// public DualDisplaySourceSRLController(BasicTriListWithSmartObject triList,
|
|
||||||
// uint smartObjectId, EssentialsPresentationRoom room)
|
|
||||||
// : base(triList, smartObjectId, 3, 3, 3)
|
|
||||||
// {
|
|
||||||
// var srcList = room.s items.Values.ToList().OrderBy(s => s.Order);
|
|
||||||
// foreach (var item in srcList)
|
|
||||||
// {
|
|
||||||
// GetBoolFeedbackSig(index, 1).UserObject = new Action<bool>(routeAction);
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.UI;
|
|
||||||
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
Owner.GetBoolFeedbackSig(Index, 1).UserObject = pressAction;
|
|
||||||
Owner.UShortInputSig(Index, 1).UShortValue = buttonMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Called by SRL to release all referenced objects
|
|
||||||
/// </summary>
|
|
||||||
public override void Clear()
|
|
||||||
{
|
|
||||||
Owner.BoolInputSig(Index, 1).UserObject = null;
|
|
||||||
Owner.UShortInputSig(Index, 1).UShortValue = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Sample DirecTV List",
|
|
||||||
"channels": [
|
|
||||||
{
|
|
||||||
"name": "HBO",
|
|
||||||
"IconUrl": "HBO",
|
|
||||||
"Channel": "501"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "HBO",
|
|
||||||
"IconUrl": "HBO",
|
|
||||||
"Channel": "501"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "HBO",
|
|
||||||
"IconUrl": "HBO",
|
|
||||||
"Channel": "501"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "HBO",
|
|
||||||
"IconUrl": "HBO",
|
|
||||||
"Channel": "501"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "HBO",
|
|
||||||
"IconUrl": "HBO",
|
|
||||||
"Channel": "501"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "HBO",
|
|
||||||
"IconUrl": "HBO",
|
|
||||||
"Channel": "501"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
devjson:1 {"deviceKey":"display-1-comMonitor","methodName":"PrintStatus"}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"display-1-com","methodName":"SimulateReceive", "params": ["\\x05\\x06taco\\xAA"]}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"display-1","methodName":"InputHdmi1", "params": []}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"display-1","methodName":"PowerOff", "params": []}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"timer","methodName":"Start" }
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"timer","methodName":"Cancel" }
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"timer","methodName":"Reset" }
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"room1","methodName":"Shutdown" }
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"mockVc-1", "methodName":"TestIncomingVideoCall", "params": ["123-456-7890"]}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"mockVc-1", "methodName":"TestIncomingAudioCall", "params": ["111-111-1111"]}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"mockVc-1", "methodName":"TestIncomingVideoCall", "params": ["444-444-4444"]}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"mockVc-1", "methodName":"ListCalls"}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"room1-emergency", "methodName":"RunEmergencyBehavior"}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"microphonePrivacyController-1", "methodName":"TogglePrivacyMute"}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"room1.InCallFeedback","methodName":"SetTestValue", "params": [ true ]}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"room1.InCallFeedback","methodName":"ClearTestValue", "params": []}
|
|
||||||
|
|
||||||
devjson:3 {"deviceKey":"room1.RoomOccupancy.RoomIsOccupiedFeedback","methodName":"SetTestValue", "params": [ true ]}
|
|
||||||
|
|
||||||
devjson:2 {"deviceKey":"codec-comms-ssh", "methodName":"SendText", "params": ["xcommand dial number: 10.11.50.211\r"]}
|
|
||||||
|
|
||||||
devjson:2 {"deviceKey":"codec-comms-ssh", "methodName":"Connect", "params": []}
|
|
||||||
|
|
||||||
devjson:1 {"deviceKey":"commBridge", "methodName":"ExecuteJoinAction", "params":[ 301, "digital", true ]}
|
|
||||||
|
|
||||||
devjson:2 {"deviceKey":"display01Comm-com", "methodName":"SendText", "params": [ "I'M GETTING TIRED OF THIS" ]}
|
|
||||||
|
|
||||||
devjson:10 {"deviceKey":"dmLink-ssh", "methodName":"Connect", "params": []}
|
|
||||||
|
|
||||||
devjson:2 {"deviceKey":"roomCombiner", "methodName":"SetRoomCombinationScenario", "params": ["combined"]}
|
|
||||||
|
|
||||||
devjson:2 {"deviceKey":"roomCombiner", "methodName":"SetRoomCombinationScenario", "params": ["divided"]}
|
|
||||||
@@ -1,159 +0,0 @@
|
|||||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProductVersion>9.0.30729</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
<ProjectGuid>{9199CE8A-0C9F-4952-8672-3EED798B284F}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<RootNamespace>PepperDash.Essentials.DM</RootNamespace>
|
|
||||||
<AssemblyName>PepperDash_Essentials_DM</AssemblyName>
|
|
||||||
<ProjectTypeGuids>{0B4745B0-194B-4BB6-8E21-E9057CA92300};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
|
||||||
<PlatformFamilyName>WindowsCE</PlatformFamilyName>
|
|
||||||
<PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID>
|
|
||||||
<OSVersion>5.0</OSVersion>
|
|
||||||
<DeployDirSuffix>SmartDeviceProject1</DeployDirSuffix>
|
|
||||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
|
||||||
<NativePlatformName>Windows CE</NativePlatformName>
|
|
||||||
<FormFactorID>
|
|
||||||
</FormFactorID>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<NoStdLib>true</NoStdLib>
|
|
||||||
<NoConfig>true</NoConfig>
|
|
||||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
|
||||||
<DebugType>none</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\</OutputPath>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<NoStdLib>true</NoStdLib>
|
|
||||||
<NoConfig>true</NoConfig>
|
|
||||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.DeviceSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.DM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="mscorlib" />
|
|
||||||
<Reference Include="PepperDash_Core, Version=1.0.26.30384, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\pepperdashcore-builds\PepperDash_Core.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
|
|
||||||
<Private>False</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath>
|
|
||||||
<Private>False</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath>
|
|
||||||
<Private>False</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="AirMedia\AirMediaPropertiesConfig.cs" />
|
|
||||||
<Compile Include="AirMedia\AirMediaController.cs" />
|
|
||||||
<Compile Include="Chassis\DmBladeChassisController.cs" />
|
|
||||||
<Compile Include="Chassis\DmCardAudioOutput.cs" />
|
|
||||||
<Compile Include="Chassis\DmChassisController.cs" />
|
|
||||||
<Compile Include="Chassis\DmpsAudioOutputController.cs" />
|
|
||||||
<Compile Include="Chassis\DmpsInternalVirtualDmTxController.cs" />
|
|
||||||
<Compile Include="Chassis\DmpsRoutingController.cs" />
|
|
||||||
<Compile Include="Chassis\HdMdNxM4kEController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\TxInterfaces.cs" />
|
|
||||||
<Compile Include="IDmSwitch.cs" />
|
|
||||||
<Compile Include="Config\DmpsRoutingConfig.cs" />
|
|
||||||
<Compile Include="Config\DmRmcConfig.cs" />
|
|
||||||
<Compile Include="Config\DmTxConfig.cs" />
|
|
||||||
<Compile Include="Config\DMChassisConfig.cs" />
|
|
||||||
<Compile Include="Config\HdMdNxM4kEPropertiesConfig.cs" />
|
|
||||||
<Compile Include="Config\InputPropertiesConfig.cs" />
|
|
||||||
<Compile Include="DmPortName.cs" />
|
|
||||||
<Compile Include="Endpoints\DGEs\DgeController.cs" />
|
|
||||||
<Compile Include="Endpoints\DGEs\DgePropertiesConfig.cs" />
|
|
||||||
<Compile Include="DmLite\HdMdxxxCEController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmHdBaseTEndpointController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc100SController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc150SController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc200CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc200S2Controller.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc200SController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc4k100C1GController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc4KScalerCController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmc4kScalerCDspController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmcScalerCController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmcX100CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmcHelper.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmcScalerS2Controller.cs" />
|
|
||||||
<Compile Include="Endpoints\Receivers\DmRmcScalerSController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx200Controller.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx401CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx4k100Controller.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx4k202CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx4k302CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx201CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTx4kz302CController.cs" />
|
|
||||||
<Compile Include="Endpoints\Transmitters\DmTxHelpers.cs" />
|
|
||||||
<Compile Include="Extensions.cs" />
|
|
||||||
<Compile Include="Config\DeviceFactory.cs" />
|
|
||||||
<Compile Include="IDmHdmiInputExtensions.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
<Compile Include="VideoStatusHelpers.cs" />
|
|
||||||
<None Include="app.config" />
|
|
||||||
<None Include="Properties\ControlSystem.cfg" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj">
|
|
||||||
<Project>{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}</Project>
|
|
||||||
<Name>PepperDash_Essentials_Core</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
|
|
||||||
<ProjectExtensions>
|
|
||||||
<VisualStudio>
|
|
||||||
</VisualStudio>
|
|
||||||
</ProjectExtensions>
|
|
||||||
<PropertyGroup>
|
|
||||||
<PostBuildEvent>rem S# Pro preparation will execute after these operations</PostBuildEvent>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
|
||||||
# Visual Studio 2008
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PepperDash_Essentials_Core", ".\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj", "{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials_DM", ".\Essentials DM\Essentials_DM\Essentials_DM.csproj", "{9199CE8A-0C9F-4952-8672-3EED798B284F}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials Devices Common", ".\Essentials Devices Common\Essentials Devices Common\Essentials Devices Common.csproj", "{892B761C-E479-44CE-BD74-243E9214AF13}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{9199CE8A-0C9F-4952-8672-3EED798B284F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{892B761C-E479-44CE-BD74-243E9214AF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{892B761C-E479-44CE-BD74-243E9214AF13}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{892B761C-E479-44CE-BD74-243E9214AF13}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{892B761C-E479-44CE-BD74-243E9214AF13}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Essentials.Core.Config;
|
|
||||||
using PepperDash.Core;
|
|
||||||
using PepperDash.Essentials.Core.Routing;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.EthernetCommunication;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials {
|
|
||||||
public class BridgeFactory {
|
|
||||||
public static IKeyed GetDevice(PepperDash.Essentials.Core.Config.DeviceConfig dc) {
|
|
||||||
// ? why is this static JTA 2018-06-13?
|
|
||||||
|
|
||||||
var key = dc.Key;
|
|
||||||
var name = dc.Name;
|
|
||||||
var type = dc.Type;
|
|
||||||
var properties = dc.Properties;
|
|
||||||
var propAnon = new { };
|
|
||||||
JsonConvert.DeserializeAnonymousType(dc.Properties.ToString(), propAnon);
|
|
||||||
|
|
||||||
var typeName = dc.Type.ToLower();
|
|
||||||
var groupName = dc.Group.ToLower();
|
|
||||||
|
|
||||||
Debug.Console(0, "Name {0}, Key {1}, Type {2}, Properties {3}", name, key, type, properties.ToString());
|
|
||||||
if (typeName == "essentialdm") {
|
|
||||||
return new EssentialDM(key, name, properties);
|
|
||||||
} else if (typeName == "essentialcomm") {
|
|
||||||
|
|
||||||
Debug.Console(0, "Launch Essential Comm");
|
|
||||||
return new EssentialComm(key, name, properties);
|
|
||||||
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public class BridgeApiEisc {
|
|
||||||
public uint Ipid;
|
|
||||||
public ThreeSeriesTcpIpEthernetIntersystemCommunications Eisc;
|
|
||||||
public BridgeApiEisc(string ipid) {
|
|
||||||
Ipid = (UInt32)int.Parse(ipid, System.Globalization.NumberStyles.HexNumber);
|
|
||||||
Eisc = new ThreeSeriesTcpIpEthernetIntersystemCommunications(Ipid, "127.0.0.2", Global.ControlSystem);
|
|
||||||
Eisc.Register();
|
|
||||||
Eisc.SigChange += Eisc_SigChange;
|
|
||||||
Debug.Console(0, "BridgeApiEisc Created at Ipid {0}", ipid);
|
|
||||||
}
|
|
||||||
void Eisc_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args) {
|
|
||||||
if (Debug.Level >= 1)
|
|
||||||
Debug.Console(1, "DDVC EISC change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
|
|
||||||
var uo = args.Sig.UserObject;
|
|
||||||
if (uo is Action<bool>)
|
|
||||||
(uo as Action<bool>)(args.Sig.BoolValue);
|
|
||||||
else if (uo is Action<ushort>)
|
|
||||||
(uo as Action<ushort>)(args.Sig.UShortValue);
|
|
||||||
else if (uo is Action<string>)
|
|
||||||
(uo as Action<string>)(args.Sig.StringValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Essentials.Core.Config;
|
|
||||||
using PepperDash.Core;
|
|
||||||
using PepperDash.Essentials.Core.Routing;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.EthernetCommunication;
|
|
||||||
using Crestron.SimplSharpPro.CrestronThread;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials {
|
|
||||||
public class EssentialCommConfig {
|
|
||||||
public string[] EiscApiIpids;
|
|
||||||
public EssentialCommCommConnectionConfigs[] CommConnections;
|
|
||||||
}
|
|
||||||
public class EssentialCommCommConnectionConfigs {
|
|
||||||
public uint joinNumber {get; set; }
|
|
||||||
public EssentialsControlPropertiesConfig control { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class EssentialCommsPort {
|
|
||||||
public IBasicCommunication Comm;
|
|
||||||
public IntFeedback StatusFeedback;
|
|
||||||
public BoolFeedback ConnectedFeedback;
|
|
||||||
public List<EssentialComApiMap> Outputs = new List<EssentialComApiMap>();
|
|
||||||
public String RxBuffer;
|
|
||||||
public EssentialCommsPort(EssentialsControlPropertiesConfig config, string keyPrefix) {
|
|
||||||
Comm = CommFactory.CreateCommForConfig(config, keyPrefix);
|
|
||||||
// var PortGather = new CommunicationGather(Comm, config.EndOfLineChar);
|
|
||||||
Comm.TextReceived += new EventHandler<GenericCommMethodReceiveTextArgs>(Communication_TextReceived);
|
|
||||||
|
|
||||||
var socket = Comm as ISocketStatus;
|
|
||||||
StatusFeedback = new IntFeedback(() => { return (int)socket.ClientStatus; });
|
|
||||||
ConnectedFeedback = new BoolFeedback(() => { return Comm.IsConnected; });
|
|
||||||
|
|
||||||
if (socket != null) {
|
|
||||||
socket.ConnectionChange += new EventHandler<GenericSocketStatusChageEventArgs>(socket_ConnectionChange);
|
|
||||||
} else {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
void socket_ConnectionChange(object sender, GenericSocketStatusChageEventArgs e) {
|
|
||||||
StatusFeedback.FireUpdate();
|
|
||||||
ConnectedFeedback.FireUpdate();
|
|
||||||
if (e.Client.IsConnected) {
|
|
||||||
// Tasks on connect
|
|
||||||
} else {
|
|
||||||
// Cleanup items from this session
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void Communication_TextReceived(object sender, GenericCommMethodReceiveTextArgs args) {
|
|
||||||
try {
|
|
||||||
foreach (var Output in Outputs) {
|
|
||||||
Output.Api.Eisc.StringInput[Output.Join].StringValue = args.Text;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception) {
|
|
||||||
throw new FormatException(string.Format("ERROR:{0}"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class EssentialComm : Device {
|
|
||||||
public EssentialCommConfig Properties;
|
|
||||||
public String Key;
|
|
||||||
public CommunicationGather PortGather { get; private set; }
|
|
||||||
public List<BridgeApiEisc> Apis {get; set;}
|
|
||||||
public Dictionary<string, StringFeedback> CommFeedbacks {get; private set; }
|
|
||||||
public StatusMonitorBase CommunicationMonitor { get; private set; }
|
|
||||||
public Dictionary<uint, EssentialCommsPort> CommDictionary { get; private set; }
|
|
||||||
|
|
||||||
public EssentialComm(string key, string name, JToken properties) : base(key, name) {
|
|
||||||
Properties = JsonConvert.DeserializeObject<EssentialCommConfig>(properties.ToString());
|
|
||||||
CommFeedbacks = new Dictionary<string, StringFeedback>();
|
|
||||||
CommDictionary = new Dictionary<uint, EssentialCommsPort>();
|
|
||||||
Apis = new List<BridgeApiEisc>();
|
|
||||||
Key = key;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override bool CustomActivate()
|
|
||||||
{
|
|
||||||
int commNumber = 1;
|
|
||||||
foreach (var commConfig in Properties.CommConnections) {
|
|
||||||
var commPort = new EssentialCommsPort(commConfig.control, string.Format("{0}-{1}", Key, commConfig.joinNumber));
|
|
||||||
CommDictionary.Add(commConfig.joinNumber, commPort);
|
|
||||||
commNumber++;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var Ipid in Properties.EiscApiIpids) {
|
|
||||||
var ApiEisc = new BridgeApiEisc(Ipid);
|
|
||||||
Apis.Add(ApiEisc);
|
|
||||||
foreach (var commConnection in CommDictionary) {
|
|
||||||
Debug.Console(0, "Joining Api{0} to comm {1}", Ipid, commConnection.Key);
|
|
||||||
var tempComm = commConnection.Value;
|
|
||||||
var tempJoin = (uint)commConnection.Key;
|
|
||||||
EssentialComApiMap ApiMap = new EssentialComApiMap(ApiEisc, (uint)tempJoin);
|
|
||||||
|
|
||||||
tempComm.Outputs.Add(ApiMap);
|
|
||||||
// Check for ApiMap Overide Values here
|
|
||||||
|
|
||||||
ApiEisc.Eisc.SetBoolSigAction(tempJoin, b => {
|
|
||||||
if (b) { tempComm.Comm.Connect(); } else { tempComm.Comm.Disconnect(); }
|
|
||||||
});
|
|
||||||
ApiEisc.Eisc.SetStringSigAction(tempJoin, s => tempComm.Comm.SendText(s));
|
|
||||||
|
|
||||||
tempComm.StatusFeedback.LinkInputSig(ApiEisc.Eisc.UShortInput[tempJoin]);
|
|
||||||
tempComm.ConnectedFeedback.LinkInputSig(ApiEisc.Eisc.BooleanInput[tempJoin]);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
public class EssentialComApiMap {
|
|
||||||
public uint Join;
|
|
||||||
public BridgeApiEisc Api;
|
|
||||||
public uint connectJoin;
|
|
||||||
public EssentialComApiMap(BridgeApiEisc api, uint join) {
|
|
||||||
Join = join;
|
|
||||||
Api = api;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Essentials.Core.Config;
|
|
||||||
using PepperDash.Core;
|
|
||||||
using PepperDash.Essentials.Core.Routing;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.EthernetCommunication;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials {
|
|
||||||
public class EssentialDM : PepperDash.Core.Device {
|
|
||||||
public EssentialDMProperties Properties;
|
|
||||||
public List<BridgeApiEisc> BridgeApiEiscs;
|
|
||||||
private PepperDash.Essentials.DM.DmChassisController DmSwitch;
|
|
||||||
private EssentialDMApiMap ApiMap = new EssentialDMApiMap();
|
|
||||||
public EssentialDM(string key, string name, JToken properties)
|
|
||||||
: base(key, name) {
|
|
||||||
Properties = JsonConvert.DeserializeObject<EssentialDMProperties>(properties.ToString());
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
public override bool CustomActivate() {
|
|
||||||
// Create EiscApis
|
|
||||||
try {
|
|
||||||
foreach (var device in DeviceManager.AllDevices) {
|
|
||||||
if (device.Key == this.Properties.connectionDeviceKey) {
|
|
||||||
Debug.Console(0, "deviceKey {0} Matches", device.Key);
|
|
||||||
DmSwitch = DeviceManager.GetDeviceForKey(device.Key) as PepperDash.Essentials.DM.DmChassisController;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
Debug.Console(0, "deviceKey {0} doesn't match", device.Key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Properties.EiscApiIpids != null) {
|
|
||||||
foreach (string Ipid in Properties.EiscApiIpids) {
|
|
||||||
var ApiEisc = new BridgeApiEisc(Ipid);
|
|
||||||
// BridgeApiEiscs.Add(ApiEisc);
|
|
||||||
//Essentials.Core.CommFactory.CreateCommForConfig();
|
|
||||||
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[1], u => DmSwitch.ExecuteSwitch(u, 1, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[2], u => DmSwitch.ExecuteSwitch(u, 2, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[3], u => DmSwitch.ExecuteSwitch(u, 3, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[4], u => DmSwitch.ExecuteSwitch(u, 4, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[5], u => DmSwitch.ExecuteSwitch(u, 5, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[6], u => DmSwitch.ExecuteSwitch(u, 6, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[7], u => DmSwitch.ExecuteSwitch(u, 7, eRoutingSignalType.Video));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputVideoRoutes[8], u => DmSwitch.ExecuteSwitch(u, 8, eRoutingSignalType.Video));
|
|
||||||
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[1], u => DmSwitch.ExecuteSwitch(u, 1, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[2], u => DmSwitch.ExecuteSwitch(u, 2, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[3], u => DmSwitch.ExecuteSwitch(u, 3, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[4], u => DmSwitch.ExecuteSwitch(u, 4, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[5], u => DmSwitch.ExecuteSwitch(u, 5, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[6], u => DmSwitch.ExecuteSwitch(u, 6, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[7], u => DmSwitch.ExecuteSwitch(u, 7, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction(ApiMap.OutputAudioRoutes[8], u => DmSwitch.ExecuteSwitch(u, 8, eRoutingSignalType.Audio));
|
|
||||||
|
|
||||||
foreach (var output in DmSwitch.Chassis.Outputs) {
|
|
||||||
Debug.Console(0, "Creating EiscActions {0}", output.Number);
|
|
||||||
|
|
||||||
DmSwitch.InputEndpointOnlineFeedbacks[(ushort)output.Number].LinkInputSig(ApiEisc.Eisc.BooleanInput[(ushort)(output.Number + 300)]);
|
|
||||||
|
|
||||||
|
|
||||||
/* This wont work...routes to 8 every time i tried for loops, forweach. For some reason the test number keeps going to max value of the loop
|
|
||||||
* always routing testNum to MaxLoopValue, the above works though.*/
|
|
||||||
|
|
||||||
for (uint testNum = 1; testNum < 8; testNum++) {
|
|
||||||
uint num = testNum;
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction((ushort)(output.Number + 300), u => DmSwitch.ExecuteSwitch(u, num, eRoutingSignalType.Audio));
|
|
||||||
ApiEisc.Eisc.SetUShortSigAction((ushort)(output.Number + 100), u => DmSwitch.ExecuteSwitch(u, num, eRoutingSignalType.Video));
|
|
||||||
}
|
|
||||||
|
|
||||||
DmSwitch.OutputRouteFeedbacks[(ushort)output.Number].LinkInputSig(ApiEisc.Eisc.UShortInput[ApiMap.OutputVideoRoutes[(int)output.Number]]);
|
|
||||||
}
|
|
||||||
DmSwitch.IsOnline.LinkInputSig(ApiEisc.Eisc.BooleanInput[ApiMap.ChassisOnline]);
|
|
||||||
ApiEisc.Eisc.Register();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Debug.Console(0, "Name {0} Activated", this.Name);
|
|
||||||
return true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
Debug.Console(0, "BRidge {0}", e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public class EssentialDMProperties {
|
|
||||||
public string connectionDeviceKey;
|
|
||||||
public string[] EiscApiIpids;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class EssentialDMApiMap {
|
|
||||||
public ushort ChassisOnline = 11;
|
|
||||||
public Dictionary<int, ushort> OutputVideoRoutes;
|
|
||||||
public Dictionary<int, ushort> OutputAudioRoutes;
|
|
||||||
|
|
||||||
public EssentialDMApiMap() {
|
|
||||||
OutputVideoRoutes = new Dictionary<int, ushort>();
|
|
||||||
OutputAudioRoutes = new Dictionary<int, ushort>();
|
|
||||||
|
|
||||||
for (int x = 1; x <= 200; x++) {
|
|
||||||
// Debug.Console(0, "Init Value {0}", x);
|
|
||||||
OutputVideoRoutes[x] = (ushort)(x + 100);
|
|
||||||
OutputAudioRoutes[x] = (ushort)(x + 300);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.DM;
|
|
||||||
using Crestron.SimplSharpPro.DM.Endpoints.Receivers;
|
|
||||||
using Crestron.SimplSharpPro.DM.Endpoints.Transmitters;
|
|
||||||
|
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Essentials.Devices;
|
|
||||||
//using PepperDash.Essentials.Devices.Dm;
|
|
||||||
using PepperDash.Core;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
|
||||||
{
|
|
||||||
public class DmFactory
|
|
||||||
{
|
|
||||||
public static Device Create(JToken devToken)
|
|
||||||
{
|
|
||||||
Device dev = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var devType = devToken.Value<string>("type");
|
|
||||||
var devKey = devToken.Value<string>("key");
|
|
||||||
var devName = devToken.Value<string>("name");
|
|
||||||
// Catch all 200 series TX
|
|
||||||
var devprops = devToken["properties"];
|
|
||||||
var ipId = Convert.ToUInt32(devprops.Value<string>("ipId"), 16);
|
|
||||||
var parent = devprops.Value<string>("parent");
|
|
||||||
if (parent == null)
|
|
||||||
parent = "controlSystem";
|
|
||||||
|
|
||||||
if (devType.StartsWith("DmTx2", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
DmTx201C tx;
|
|
||||||
if (parent.Equals("controlSystem", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
tx = new DmTx201C(ipId, Global.ControlSystem);
|
|
||||||
//dev = new DmTx201SBasicController(devKey, devName, tx);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (devType.StartsWith("DmRmc", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
DmRmc100C rmc;
|
|
||||||
if (parent.Equals("controlSystem", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
rmc = new DmRmc100C(ipId, Global.ControlSystem);
|
|
||||||
//dev = new DmRmcBaseController(devKey, devName, rmc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
FactoryHelper.HandleUnknownType(devToken, devType);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
FactoryHelper.HandleDeviceCreationError(devToken, e);
|
|
||||||
}
|
|
||||||
return dev;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static Device CreateChassis(JToken devToken)
|
|
||||||
{
|
|
||||||
Device dev = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var devType = devToken.Value<string>("type");
|
|
||||||
var devKey = devToken.Value<string>("key");
|
|
||||||
var devName = devToken.Value<string>("name");
|
|
||||||
// Catch all 200 series TX
|
|
||||||
var devprops = devToken["properties"];
|
|
||||||
var ipId = Convert.ToUInt32(devprops.Value<string>("ipId"), 16);
|
|
||||||
var parent = devprops.Value<string>("parent");
|
|
||||||
if (parent == null)
|
|
||||||
parent = "controlSystem";
|
|
||||||
|
|
||||||
if (devType.Equals("dmmd8x8", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
var dm = new DmMd8x8(ipId, Global.ControlSystem);
|
|
||||||
//dev = new DmChassisController(devKey, devName, dm);
|
|
||||||
}
|
|
||||||
else if (devType.Equals("dmmd16x16", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
var dm = new DmMd16x16(ipId, Global.ControlSystem);
|
|
||||||
//dev = new DmChassisController(devKey, devName, dm);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
FactoryHelper.HandleDeviceCreationError(devToken, e);
|
|
||||||
}
|
|
||||||
return dev;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,309 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using Crestron.SimplSharp;
|
|
||||||
using Crestron.SimplSharp.CrestronIO;
|
|
||||||
using Crestron.SimplSharpPro;
|
|
||||||
using Crestron.SimplSharpPro.CrestronThread;
|
|
||||||
using PepperDash.Core;
|
|
||||||
// using PepperDash.Core.PortalSync;
|
|
||||||
using PepperDash.Essentials.Core;
|
|
||||||
using PepperDash.Essentials.Devices.Common;
|
|
||||||
using PepperDash.Essentials.DM;
|
|
||||||
using PepperDash.Essentials.Fusion;
|
|
||||||
using PepperDash.Essentials.Room.Cotija;
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials
|
|
||||||
{
|
|
||||||
public class ControlSystem : CrestronControlSystem
|
|
||||||
{
|
|
||||||
// PepperDashPortalSyncClient PortalSync;
|
|
||||||
HttpLogoServer LogoServer;
|
|
||||||
|
|
||||||
public ControlSystem()
|
|
||||||
: base()
|
|
||||||
{
|
|
||||||
Thread.MaxNumberOfUserThreads = 400;
|
|
||||||
Global.ControlSystem = this;
|
|
||||||
DeviceManager.Initialize(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Git 'er goin'
|
|
||||||
/// </summary>
|
|
||||||
public override void InitializeSystem()
|
|
||||||
{
|
|
||||||
CrestronConsole.AddNewConsoleCommand(s =>
|
|
||||||
{
|
|
||||||
foreach (var tl in TieLineCollection.Default)
|
|
||||||
CrestronConsole.ConsoleCommandResponse(" {0}\r", tl);
|
|
||||||
},
|
|
||||||
"listtielines", "Prints out all tie lines", ConsoleAccessLevelEnum.AccessOperator);
|
|
||||||
|
|
||||||
CrestronConsole.AddNewConsoleCommand(s =>
|
|
||||||
{
|
|
||||||
CrestronConsole.ConsoleCommandResponse
|
|
||||||
("Current running configuration. This is the merged system and template configuration");
|
|
||||||
CrestronConsole.ConsoleCommandResponse(Newtonsoft.Json.JsonConvert.SerializeObject
|
|
||||||
(ConfigReader.ConfigObject, Newtonsoft.Json.Formatting.Indented));
|
|
||||||
}, "showconfig", "Shows the current running merged config", ConsoleAccessLevelEnum.AccessOperator);
|
|
||||||
|
|
||||||
CrestronConsole.AddNewConsoleCommand(s =>
|
|
||||||
{
|
|
||||||
CrestronConsole.ConsoleCommandResponse("This system can be found at the following URLs:\r" +
|
|
||||||
"System URL: {0}\r" +
|
|
||||||
"Template URL: {1}", ConfigReader.ConfigObject.SystemUrl, ConfigReader.ConfigObject.TemplateUrl);
|
|
||||||
}, "portalinfo", "Shows portal URLS from configuration", ConsoleAccessLevelEnum.AccessOperator);
|
|
||||||
|
|
||||||
GoWithLoad();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Do it, yo
|
|
||||||
/// </summary>
|
|
||||||
public void GoWithLoad()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
CrestronConsole.AddNewConsoleCommand(EnablePortalSync, "portalsync", "Loads Portal Sync",
|
|
||||||
ConsoleAccessLevelEnum.AccessOperator);
|
|
||||||
|
|
||||||
//PortalSync = new PepperDashPortalSyncClient();
|
|
||||||
|
|
||||||
Debug.Console(0, "Starting Essentials load from configuration");
|
|
||||||
|
|
||||||
var filesReady = SetupFilesystem();
|
|
||||||
if (filesReady)
|
|
||||||
{
|
|
||||||
Debug.Console(0, "Folder structure verified. Loading config...");
|
|
||||||
if (!ConfigReader.LoadConfig2())
|
|
||||||
return;
|
|
||||||
|
|
||||||
Load();
|
|
||||||
Debug.Console(0, "Essentials load complete\r" +
|
|
||||||
"-------------------------------------------------------------");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Console(0,
|
|
||||||
"------------------------------------------------\r" +
|
|
||||||
"------------------------------------------------\r" +
|
|
||||||
"------------------------------------------------\r" +
|
|
||||||
"Essentials file structure setup completed.\r" +
|
|
||||||
"Please load config, sgd and ir files and\r" +
|
|
||||||
"restart program.\r" +
|
|
||||||
"------------------------------------------------\r" +
|
|
||||||
"------------------------------------------------\r" +
|
|
||||||
"------------------------------------------------");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Debug.Console(0, "FATAL INITIALIZE ERROR. System is in an inconsistent state:\r{0}", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Verifies filesystem is set up. IR, SGD, and program1 folders
|
|
||||||
/// </summary>
|
|
||||||
bool SetupFilesystem()
|
|
||||||
{
|
|
||||||
Debug.Console(0, "Verifying and/or creating folder structure");
|
|
||||||
var appNum = InitialParametersClass.ApplicationNumber;
|
|
||||||
var configDir = @"\NVRAM\Program" + appNum;
|
|
||||||
var configExists = Directory.Exists(configDir);
|
|
||||||
if (!configExists)
|
|
||||||
Directory.Create(configDir);
|
|
||||||
|
|
||||||
var irDir = string.Format(@"\NVRAM\Program{0}\ir", appNum);
|
|
||||||
if (!Directory.Exists(irDir))
|
|
||||||
Directory.Create(irDir);
|
|
||||||
|
|
||||||
var sgdDir = string.Format(@"\NVRAM\Program{0}\sgd", appNum);
|
|
||||||
if (!Directory.Exists(sgdDir))
|
|
||||||
Directory.Create(sgdDir);
|
|
||||||
|
|
||||||
return configExists;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EnablePortalSync(string s)
|
|
||||||
{
|
|
||||||
if (s.ToLower() == "enable")
|
|
||||||
{
|
|
||||||
CrestronConsole.ConsoleCommandResponse("Portal Sync features enabled");
|
|
||||||
// PortalSync = new PepperDashPortalSyncClient();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void TearDown()
|
|
||||||
{
|
|
||||||
Debug.Console(0, "Tearing down existing system");
|
|
||||||
DeviceManager.DeactivateAll();
|
|
||||||
|
|
||||||
TieLineCollection.Default.Clear();
|
|
||||||
|
|
||||||
foreach (var key in DeviceManager.GetDevices())
|
|
||||||
DeviceManager.RemoveDevice(key);
|
|
||||||
|
|
||||||
Debug.Console(0, "Tear down COMPLETE");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
void Load()
|
|
||||||
{
|
|
||||||
LoadDevices();
|
|
||||||
LoadTieLines();
|
|
||||||
LoadRooms();
|
|
||||||
LoadLogoServer();
|
|
||||||
|
|
||||||
DeviceManager.ActivateAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Reads all devices from config and adds them to DeviceManager
|
|
||||||
/// </summary>
|
|
||||||
public void LoadDevices()
|
|
||||||
{
|
|
||||||
foreach (var devConf in ConfigReader.ConfigObject.Devices)
|
|
||||||
{
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Debug.Console(0, "Creating device '{0}'", devConf.Key);
|
|
||||||
// Skip this to prevent unnecessary warnings
|
|
||||||
if (devConf.Key == "processor")
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Try local factory first
|
|
||||||
var newDev = DeviceFactory.GetDevice(devConf);
|
|
||||||
|
|
||||||
// Then associated library factories
|
|
||||||
if (newDev == null)
|
|
||||||
newDev = PepperDash.Essentials.Devices.Common.DeviceFactory.GetDevice(devConf);
|
|
||||||
if (newDev == null)
|
|
||||||
newDev = PepperDash.Essentials.DM.DeviceFactory.GetDevice(devConf);
|
|
||||||
if (newDev == null)
|
|
||||||
newDev = PepperDash.Essentials.Devices.Displays.DisplayDeviceFactory.GetDevice(devConf);
|
|
||||||
if (newDev == null)
|
|
||||||
newDev = PepperDash.Essentials.BridgeFactory.GetDevice(devConf);
|
|
||||||
|
|
||||||
if (newDev != null)
|
|
||||||
DeviceManager.AddDevice(newDev);
|
|
||||||
else
|
|
||||||
Debug.Console(0, "ERROR: Cannot load unknown device type '{0}', key '{1}'.", devConf.Type, devConf.Key);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Debug.Console(0, "ERROR: Creating device {0}. Skipping device. \r{1}", devConf.Key, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Helper method to load tie lines. This should run after devices have loaded
|
|
||||||
/// </summary>
|
|
||||||
public void LoadTieLines()
|
|
||||||
{
|
|
||||||
// In the future, we can't necessarily just clear here because devices
|
|
||||||
// might be making their own internal sources/tie lines
|
|
||||||
|
|
||||||
var tlc = TieLineCollection.Default;
|
|
||||||
//tlc.Clear();
|
|
||||||
if (ConfigReader.ConfigObject.TieLines == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var tieLineConfig in ConfigReader.ConfigObject.TieLines)
|
|
||||||
{
|
|
||||||
var newTL = tieLineConfig.GetTieLine();
|
|
||||||
if (newTL != null)
|
|
||||||
tlc.Add(newTL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Reads all rooms from config and adds them to DeviceManager
|
|
||||||
/// </summary>
|
|
||||||
public void LoadRooms()
|
|
||||||
{
|
|
||||||
if (ConfigReader.ConfigObject.Rooms == null)
|
|
||||||
{
|
|
||||||
Debug.Console(0, "WARNING: Configuration contains no rooms");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var roomConfig in ConfigReader.ConfigObject.Rooms)
|
|
||||||
{
|
|
||||||
var room = roomConfig.GetRoomObject();
|
|
||||||
if (room != null)
|
|
||||||
{
|
|
||||||
if (room is EssentialsHuddleSpaceRoom)
|
|
||||||
{
|
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
|
|
||||||
Debug.Console(1, "Room is EssentialsHuddleSpaceRoom, attempting to add to DeviceManager with Fusion");
|
|
||||||
DeviceManager.AddDevice(new EssentialsHuddleSpaceFusionSystemControllerBase((EssentialsHuddleSpaceRoom)room, 0xf1));
|
|
||||||
|
|
||||||
// Cotija bridge
|
|
||||||
var bridge = new CotijaEssentialsHuddleSpaceRoomBridge(room as EssentialsHuddleSpaceRoom);
|
|
||||||
AddBridgePostActivationHelper(bridge); // Lets things happen later when all devices are present
|
|
||||||
DeviceManager.AddDevice(bridge);
|
|
||||||
}
|
|
||||||
else if (room is EssentialsHuddleVtc1Room)
|
|
||||||
{
|
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
|
|
||||||
Debug.Console(1, "Room is EssentialsHuddleVtc1Room, attempting to add to DeviceManager with Fusion");
|
|
||||||
DeviceManager.AddDevice(new EssentialsHuddleVtc1FusionController((EssentialsHuddleVtc1Room)room, 0xf1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Console(1, "Room is NOT EssentialsHuddleSpaceRoom, attempting to add to DeviceManager w/o Fusion");
|
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
Debug.Console(0, "WARNING: Cannot create room from config, key '{0}'", roomConfig.Key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Helps add the post activation steps that link bridges to main controller
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="bridge"></param>
|
|
||||||
void AddBridgePostActivationHelper(CotijaBridgeBase bridge)
|
|
||||||
{
|
|
||||||
bridge.AddPostActivationAction(() =>
|
|
||||||
{
|
|
||||||
var parent = DeviceManager.AllDevices.FirstOrDefault(d => d.Key == "appServer") as CotijaSystemController;
|
|
||||||
if (parent == null)
|
|
||||||
{
|
|
||||||
Debug.Console(0, bridge, "ERROR: Cannot connect bridge. System controller not present");
|
|
||||||
}
|
|
||||||
Debug.Console(0, bridge, "Linking to parent controller");
|
|
||||||
bridge.AddParent(parent);
|
|
||||||
parent.AddBridge(bridge);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Fires up a logo server if not already running
|
|
||||||
/// </summary>
|
|
||||||
void LoadLogoServer()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
LogoServer = new HttpLogoServer(8080, @"\html\logo");
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
Debug.Console(0, "NOTICE: Logo server cannot be started. Likely already running in another program");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,224 +0,0 @@
|
|||||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProductVersion>9.0.30729</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
<ProjectGuid>{1BED5BA9-88C4-4365-9362-6F4B128071D3}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<RootNamespace>PepperDash.Essentials</RootNamespace>
|
|
||||||
<AssemblyName>PepperDashEssentials</AssemblyName>
|
|
||||||
<ProjectTypeGuids>{0B4745B0-194B-4BB6-8E21-E9057CA92230};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
|
||||||
<PlatformFamilyName>WindowsCE</PlatformFamilyName>
|
|
||||||
<PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID>
|
|
||||||
<OSVersion>5.0</OSVersion>
|
|
||||||
<DeployDirSuffix>SmartDeviceProject1</DeployDirSuffix>
|
|
||||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
|
||||||
<NativePlatformName>Windows CE</NativePlatformName>
|
|
||||||
<FormFactorID>
|
|
||||||
</FormFactorID>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<NoStdLib>true</NoStdLib>
|
|
||||||
<NoConfig>true</NoConfig>
|
|
||||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
|
|
||||||
<DebugType>none</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\</OutputPath>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<NoStdLib>true</NoStdLib>
|
|
||||||
<NoConfig>true</NoConfig>
|
|
||||||
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.DeviceSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.DM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.EthernetCommunications, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.EthernetCommunications.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.Fusion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Fusion.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.Remotes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Remotes.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="mscorlib" />
|
|
||||||
<Reference Include="PepperDash_Core, Version=1.0.3.27452, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\Release Package\PepperDash_Core.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="PepperDash_Essentials_DM, Version=1.0.0.19343, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\Essentials DM\Essentials_DM\bin\PepperDash_Essentials_DM.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Audio\EssentialsVolumeLevelConfig.cs" />
|
|
||||||
<Compile Include="Bridges\Bridges.BridgeFactory.cs" />
|
|
||||||
<Compile Include="Bridges\EssentialComms.cs" />
|
|
||||||
<Compile Include="Bridges\EssentialDM.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Builders\TPConfig.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Configuration.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\ConfigurationHelpers.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\ConfigTieLine.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\RemoteFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\DeviceMonitorFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\DmFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\TouchpanelFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\PcFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\REMOVE DiscPlayerFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\MAYBE SetTopBoxFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\DisplayFactory.cs" />
|
|
||||||
<Compile Include="Configuration ORIGINAL\Factories\FactoryHelper.cs" />
|
|
||||||
<Compile Include="Config\ConfigReader.cs" />
|
|
||||||
<Compile Include="Config\EssentialsConfig.cs" />
|
|
||||||
<Compile Include="Config\DeviceFactory.cs" />
|
|
||||||
<Compile Include="Devices\Amplifier.cs" />
|
|
||||||
<Compile Include="Devices\DiscPlayer\OppoExtendedBdp.cs" />
|
|
||||||
<Compile Include="Devices\NUMERIC AppleTV.cs" />
|
|
||||||
<Compile Include="ControlSystem.cs" />
|
|
||||||
<Compile Include="OTHER\Fusion\EssentialsHuddleVtc1FusionController.cs" />
|
|
||||||
<Compile Include="OTHER\Fusion\FusionEventHandlers.cs" />
|
|
||||||
<Compile Include="OTHER\Fusion\FusionProcessorQueries.cs" />
|
|
||||||
<Compile Include="OTHER\Fusion\FusionRviDataClasses.cs" />
|
|
||||||
<Compile Include="REMOVE EssentialsApp.cs" />
|
|
||||||
<Compile Include="OTHER\Fusion\EssentialsHuddleSpaceFusionSystemControllerBase.cs" />
|
|
||||||
<Compile Include="HttpApiHandler.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
<Compile Include="Room\Config\DDVC01RoomPropertiesConfig.cs" />
|
|
||||||
<Compile Include="Room\Config\EssentialsPresentationPropertiesConfig.cs" />
|
|
||||||
<Compile Include="Room\Config\EssentialsHuddleRoomPropertiesConfig.cs" />
|
|
||||||
<Compile Include="Room\Config\EssentialsHuddleVtc1PropertiesConfig.cs" />
|
|
||||||
<Compile Include="Room\Config\EssentialsRoomEmergencyConfig.cs" />
|
|
||||||
<Compile Include="Room\Cotija\CotijaConfig.cs" />
|
|
||||||
<Compile Include="Room\Cotija\CotijaDdvc01DeviceBridge.cs" />
|
|
||||||
<Compile Include="Room\Cotija\Interfaces.cs" />
|
|
||||||
<Compile Include="Room\Cotija\RoomBridges\CotijaBridgeBase.cs" />
|
|
||||||
<Compile Include="Room\Cotija\RoomBridges\CotijaDdvc01RoomBridge.cs" />
|
|
||||||
<Compile Include="Room\Cotija\RoomBridges\CotijaEssentialsHuddleSpaceRoomBridge.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\IChannelExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\IColorExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\IDPadExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\IDvrExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\INumericExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\IPowerExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\ISetTopBoxControlsExtensions.cs" />
|
|
||||||
<Compile Include="Room\Cotija\DeviceTypeInterfaces\ITransportExtensions.cs" />
|
|
||||||
<Compile Include="Room\Emergency\EsentialsRoomEmergencyContactClosure.cs" />
|
|
||||||
<Compile Include="Room\Types\EssentialsHuddleVtc1Room.cs" />
|
|
||||||
<Compile Include="Room\Types\EssentialsPresentationRoom.cs" />
|
|
||||||
<Compile Include="Room\Types\EssentialsRoomBase.cs" />
|
|
||||||
<Compile Include="Room\Config\EssentialsRoomConfig.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\PageControllers\DevicePageControllerBase.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\PageControllers\PageControllerLaptop.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\PageControllers\PageControllerLargeDvd.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\PageControllers\PageControllerLargeSetTopBoxGeneric.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\PageControllers\LargeTouchpanelControllerBase.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
|
||||||
<Compile Include="UIDrivers\SigInterlock.cs" />
|
|
||||||
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddlePresentationUiDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\EssentialsHuddle\EssentialsHuddleTechPageDriver.cs" />
|
|
||||||
<Compile Include="UI\HttpLogoServer.cs" />
|
|
||||||
<Compile Include="UI\SmartObjectHeaderButtonList.cs" />
|
|
||||||
<Compile Include="UI\SubpageReferenceListCallStagingItem.cs" />
|
|
||||||
<Compile Include="UIDrivers\VC\EssentialsVideoCodecUiDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\JoinedSigInterlock.cs" />
|
|
||||||
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddleVtc1PanelAvFunctionsDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\VolumeAndSourceChangeArgs.cs" />
|
|
||||||
<Compile Include="UI\JoinConstants\UISmartObjectJoin.cs" />
|
|
||||||
<Compile Include="UI\JoinConstants\UIStringlJoin.cs" />
|
|
||||||
<Compile Include="UI\JoinConstants\UIUshortJoin.cs" />
|
|
||||||
<Compile Include="UIDrivers\DualDisplayRouting REMOVE.cs" />
|
|
||||||
<Compile Include="UIDrivers\Essentials\EssentialsPresentationPanelAvFunctionsDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\Page Drivers\SingleSubpageModalDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\Essentials\EssentialsPanelMainInterfaceDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\enums and base.cs" />
|
|
||||||
<Compile Include="UIDrivers\EssentialsHuddle\EssentialsHuddlePanelAvFunctionsDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\Page Drivers\SingleSubpageModalAndBackDriver.cs" />
|
|
||||||
<Compile Include="UIDrivers\SmartObjectRoomsList.cs" />
|
|
||||||
<Compile Include="UI\JoinConstants\UIBoolJoin.cs" />
|
|
||||||
<Compile Include="Room\Cotija\CotijaSystemController.cs" />
|
|
||||||
<Compile Include="UI\DualDisplaySourceSRLController.cs" />
|
|
||||||
<Compile Include="UI\SubpageReferenceListActivityItem.cs" />
|
|
||||||
<Compile Include="UI\CrestronTouchpanelPropertiesConfig.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\Panels\REMOVE UiCue.cs" />
|
|
||||||
<Compile Include="FOR REFERENCE UI\SRL\SourceListSubpageReferenceList.cs" />
|
|
||||||
<Compile Include="Room\Types\EssentialsHuddleSpaceRoom.cs" />
|
|
||||||
<Compile Include="UI\EssentialsTouchpanelController.cs" />
|
|
||||||
<Compile Include="UI\SubpageReferenceListSourceItem.cs" />
|
|
||||||
<None Include="app.config" />
|
|
||||||
<None Include="Properties\ControlSystem.cfg" />
|
|
||||||
<EmbeddedResource Include="SGD\PepperDash Essentials iPad.sgd" />
|
|
||||||
<EmbeddedResource Include="SGD\PepperDash Essentials TSW-560.sgd" />
|
|
||||||
<EmbeddedResource Include="SGD\PepperDash Essentials TSW-760.sgd" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj">
|
|
||||||
<Project>{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}</Project>
|
|
||||||
<Name>PepperDash_Essentials_Core</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\Essentials Devices Common\Essentials Devices Common\Essentials Devices Common.csproj">
|
|
||||||
<Project>{892B761C-E479-44CE-BD74-243E9214AF13}</Project>
|
|
||||||
<Name>Essentials Devices Common</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
|
|
||||||
<ProjectExtensions>
|
|
||||||
<VisualStudio>
|
|
||||||
</VisualStudio>
|
|
||||||
</ProjectExtensions>
|
|
||||||
<PropertyGroup>
|
|
||||||
<PostBuildEvent>rem S# Pro preparation will execute after these operations</PostBuildEvent>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
//using System;
|
|
||||||
//using System.Collections.Generic;
|
|
||||||
//using System.Linq;
|
|
||||||
//using System.Text;
|
|
||||||
//using Crestron.SimplSharp;
|
|
||||||
//using Crestron.SimplSharpPro;
|
|
||||||
//using Crestron.SimplSharpPro.DeviceSupport;
|
|
||||||
//using PepperDash.Core;
|
|
||||||
//using PepperDash.Essentials.Core;
|
|
||||||
//using PepperDash.Essentials.Core.SmartObjects;
|
|
||||||
//using PepperDash.Essentials.Core.PageManagers;
|
|
||||||
|
|
||||||
//namespace PepperDash.Essentials
|
|
||||||
//{
|
|
||||||
// public class DualDisplaySimpleOrAdvancedRouting : PanelDriverBase
|
|
||||||
// {
|
|
||||||
// EssentialsPresentationPanelAvFunctionsDriver Parent;
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// /// Smart Object 3200
|
|
||||||
// /// </summary>
|
|
||||||
// SubpageReferenceList SourcesSrl;
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// /// For tracking feedback on last selected
|
|
||||||
// /// </summary>
|
|
||||||
// BoolInputSig LastSelectedSourceSig;
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// /// The source that has been selected and is awaiting assignment to a display
|
|
||||||
// /// </summary>
|
|
||||||
// SourceListItem PendingSource;
|
|
||||||
|
|
||||||
// bool IsSharingModeAdvanced;
|
|
||||||
|
|
||||||
// public DualDisplaySimpleOrAdvancedRouting(EssentialsPresentationPanelAvFunctionsDriver parent) : base(parent.TriList)
|
|
||||||
// {
|
|
||||||
// Parent = parent;
|
|
||||||
// SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3);
|
|
||||||
|
|
||||||
// TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed);
|
|
||||||
|
|
||||||
// TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress);
|
|
||||||
// TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress);
|
|
||||||
// TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPressAndFb, Display1Press);
|
|
||||||
|
|
||||||
// TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress);
|
|
||||||
// TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress);
|
|
||||||
// TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPressAndFb, Display2Press);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// ///
|
|
||||||
// /// </summary>
|
|
||||||
// public override void Show()
|
|
||||||
// {
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true;
|
|
||||||
// if(IsSharingModeAdvanced)
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = true;
|
|
||||||
// else
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true;
|
|
||||||
// base.Show();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// ///
|
|
||||||
// /// </summary>
|
|
||||||
// //public override void Hide()
|
|
||||||
// //{
|
|
||||||
// // TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false;
|
|
||||||
// // TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
|
|
||||||
// // if(IsSharingModeAdvanced)
|
|
||||||
// // TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = false;
|
|
||||||
// // else
|
|
||||||
// // TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
|
||||||
// // base.Hide();
|
|
||||||
// //}
|
|
||||||
|
|
||||||
// public void SetCurrentRoomFromParent()
|
|
||||||
// {
|
|
||||||
// if (IsSharingModeAdvanced)
|
|
||||||
// return; // add stuff here
|
|
||||||
// else
|
|
||||||
// SetupSourceListForSimpleRouting();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// ///
|
|
||||||
// /// </summary>
|
|
||||||
// void SetupSourceListForSimpleRouting()
|
|
||||||
// {
|
|
||||||
// // get the source list config and set up the source list
|
|
||||||
// var config = ConfigReader.ConfigObject.SourceLists;
|
|
||||||
// if (config.ContainsKey(Parent.CurrentRoom.SourceListKey))
|
|
||||||
// {
|
|
||||||
// var srcList = config[Parent.CurrentRoom.SourceListKey]
|
|
||||||
// .Values.ToList().OrderBy(s => s.Order);
|
|
||||||
// // Setup sources list
|
|
||||||
// uint i = 1; // counter for UI list
|
|
||||||
// foreach (var srcConfig in srcList)
|
|
||||||
// {
|
|
||||||
// if (!srcConfig.IncludeInSourceList) // Skip sources marked this way
|
|
||||||
// continue;
|
|
||||||
|
|
||||||
// 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 localSrcItem = srcConfig; // lambda scope below
|
|
||||||
// var localIndex = i;
|
|
||||||
// SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action<bool>(b =>
|
|
||||||
// {
|
|
||||||
// if (IsSharingModeAdvanced)
|
|
||||||
// {
|
|
||||||
// if (LastSelectedSourceSig != null)
|
|
||||||
// LastSelectedSourceSig.BoolValue = false;
|
|
||||||
// SourceListButtonPress(localSrcItem);
|
|
||||||
// LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1);
|
|
||||||
// LastSelectedSourceSig.BoolValue = true;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// Parent.CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem);
|
|
||||||
// });
|
|
||||||
// SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName;
|
|
||||||
// i++;
|
|
||||||
|
|
||||||
// //var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
|
|
||||||
// // b => { if (!b) UiSelectSource(localSrcConfig); });
|
|
||||||
// //SourcesSrl.AddItem(item); // add to the SRL
|
|
||||||
// //item.RegisterForSourceChange(Parent.CurrentRoom);
|
|
||||||
// }
|
|
||||||
// SourcesSrl.Count = (ushort)(i - 1);
|
|
||||||
// Parent.CurrentRoom.CurrentSingleSourceChange += CurrentRoom_CurrentSourceInfoChange;
|
|
||||||
// Parent.CurrentRoom.CurrentDisplay1SourceChange += CurrentRoom_CurrentDisplay1SourceChange;
|
|
||||||
// Parent.CurrentRoom.CurrentDisplay2SourceChange += CurrentRoom_CurrentDisplay2SourceChange;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void SetupSourceListForAdvancedRouting()
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void CurrentRoom_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void CurrentRoom_CurrentDisplay1SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
|
|
||||||
// {
|
|
||||||
// TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue = PendingSource.PreferredName;
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void CurrentRoom_CurrentDisplay2SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
|
|
||||||
// {
|
|
||||||
// TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue = PendingSource.PreferredName;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// /// <summary>
|
|
||||||
// ///
|
|
||||||
// /// </summary>
|
|
||||||
// void ToggleSharingModePressed()
|
|
||||||
// {
|
|
||||||
// Hide();
|
|
||||||
// IsSharingModeAdvanced = !IsSharingModeAdvanced;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced;
|
|
||||||
// Show();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public void SourceListButtonPress(SourceListItem item)
|
|
||||||
// {
|
|
||||||
// // start the timer
|
|
||||||
// // show FB on potential source
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = false;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = false;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = false;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = false;
|
|
||||||
// PendingSource = item;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void EnableAppropriateDisplayButtons()
|
|
||||||
// {
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = true;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = true;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = true;
|
|
||||||
// TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = true;
|
|
||||||
// if (LastSelectedSourceSig != null)
|
|
||||||
// LastSelectedSourceSig.BoolValue = false;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public void Display1Press()
|
|
||||||
// {
|
|
||||||
// EnableAppropriateDisplayButtons();
|
|
||||||
// Parent.CurrentRoom.SourceToDisplay1(PendingSource);
|
|
||||||
// // Enable end meeting
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public void Display1AudioPress()
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// public void Display1ControlPress()
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public void Display2Press()
|
|
||||||
// {
|
|
||||||
// EnableAppropriateDisplayButtons();
|
|
||||||
// Parent.CurrentRoom.SourceToDisplay2(PendingSource);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public void Display2AudioPress()
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public void Display2ControlPress()
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user