Adds dummy source and room power on implementation

This commit is contained in:
Neil Dorin
2020-12-17 14:28:27 -07:00
parent 57ebd2b608
commit f0a3b27e3b
2 changed files with 18 additions and 11 deletions

View File

@@ -5,6 +5,9 @@ namespace PepperDash.Essentials.Room.Config
{ {
public class EssentialsTechRoomConfig public class EssentialsTechRoomConfig
{ {
[JsonProperty("dummySourceKey")]
public string DummySourceKey { get; set; }
[JsonProperty("displays")] [JsonProperty("displays")]
public List<string> Displays; public List<string> Displays;

View File

@@ -28,8 +28,6 @@ namespace PepperDash.Essentials
private Dictionary<string, string> _currentPresets; private Dictionary<string, string> _currentPresets;
private ScheduledEventGroup _roomScheduledEventGroup; private ScheduledEventGroup _roomScheduledEventGroup;
private GenericSource DummySource = new GenericSource("$off", "Dummy Source");
public EssentialsTechRoom(DeviceConfig config) : base(config) public EssentialsTechRoom(DeviceConfig config) : base(config)
{ {
_config = config.Properties.ToObject<EssentialsTechRoomConfig>(); _config = config.Properties.ToObject<EssentialsTechRoomConfig>();
@@ -243,9 +241,17 @@ namespace PepperDash.Essentials
public void RoomPowerOn() public void RoomPowerOn()
{ {
var dummySource = DeviceManager.GetDeviceForKey(_config.DummySourceKey) as IRoutingOutputs;
if (dummySource == null)
{
Debug.Console(1, this, "Unable to get source with key: {0}", _config.DummySourceKey);
return;
}
foreach (var display in _displays) foreach (var display in _displays)
{ {
RunDirectRoute(dummySource, display.Value);
} }
} }
@@ -388,7 +394,7 @@ namespace PepperDash.Essentials
return; return;
} }
if (source.Key.Equals("$off", StringComparison.OrdinalIgnoreCase)) if (source == null)
{ {
dest.ReleaseRoute(); dest.ReleaseRoute();
if (dest is IHasPowerControl) if (dest is IHasPowerControl)
@@ -396,11 +402,6 @@ namespace PepperDash.Essentials
} }
else else
{ {
if (source == null)
{
Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", source.Key, dest.Key);
return;
}
dest.ReleaseAndMakeRoute(source, eRoutingSignalType.Video); dest.ReleaseAndMakeRoute(source, eRoutingSignalType.Video);
} }
} }
@@ -418,11 +419,14 @@ namespace PepperDash.Essentials
var source = DeviceManager.GetDeviceForKey(sourceKey) as IRoutingOutputs; var source = DeviceManager.GetDeviceForKey(sourceKey) as IRoutingOutputs;
if (source == null || dest == null)
{
Debug.Console(1, this, "Cannot route unknown source or destination '{0}' to {1}", sourceKey, destinationKey);
return;
}
RunDirectRoute(source, dest); RunDirectRoute(source, dest);
} }
#endregion #endregion
} }