diff --git a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo index a975915e..2604ef19 100644 Binary files a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo and b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo differ diff --git a/Essentials DM/Essentials_DM/Essentials_DM.projectinfo b/Essentials DM/Essentials_DM/Essentials_DM.projectinfo index 2369f4ee..e89d2869 100644 Binary files a/Essentials DM/Essentials_DM/Essentials_DM.projectinfo and b/Essentials DM/Essentials_DM/Essentials_DM.projectinfo differ diff --git a/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs b/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs index 2e1c01d4..06381aaf 100644 --- a/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs +++ b/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs @@ -24,6 +24,7 @@ namespace PepperDash.Essentials.Devices.Displays bool _PowerIsOn; + bool _PowerValueIncomingWaitingForCheck; bool _IsWarmingUp; bool _IsCoolingDown; ushort _VolumeLevelForSig; @@ -232,17 +233,18 @@ namespace PepperDash.Essentials.Devices.Displays /// void UpdatePowerFB(byte pb) { - var newVal = pb == 1; - Debug.Console(2, this, "*#* NEW POWER STATE={0}, CURRENT={1}", newVal, _PowerIsOn); - if (newVal != _PowerIsOn) + _PowerValueIncomingWaitingForCheck = pb == 1; + Debug.Console(2, this, "*#* NEW POWER STATE={0}, CURRENT={1}", + _PowerValueIncomingWaitingForCheck, _PowerIsOn); + if (_PowerValueIncomingWaitingForCheck != _PowerIsOn) { CrestronInvoke.BeginInvoke(o => { CrestronEnvironment.Sleep(2500); - Debug.Console(2, this, "*#* NEW POWER STATE AFTER PAUSE={0} CURRENT={1}", newVal, _PowerIsOn); - if (newVal != _PowerIsOn) + Debug.Console(2, this, "*#* NEW POWER STATE AFTER PAUSE={0} CURRENT={1}", _PowerValueIncomingWaitingForCheck, _PowerIsOn); + if (_PowerValueIncomingWaitingForCheck != _PowerIsOn) { - _PowerIsOn = newVal; + _PowerIsOn = _PowerValueIncomingWaitingForCheck; PowerIsOnFeedback.FireUpdate(); } }); diff --git a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo index d15e61d7..1da132a0 100644 Binary files a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo and b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo differ diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo b/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo index ae407e96..9a7023df 100644 Binary files a/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo and b/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo differ diff --git a/Essentials/PepperDashEssentials/Room/EssentialsRoomBase.cs b/Essentials/PepperDashEssentials/Room/EssentialsRoomBase.cs index 86cdaa44..aeb8ee42 100644 --- a/Essentials/PepperDashEssentials/Room/EssentialsRoomBase.cs +++ b/Essentials/PepperDashEssentials/Room/EssentialsRoomBase.cs @@ -45,6 +45,8 @@ namespace PepperDash.Essentials public int ShutdownVacancySeconds { get; set; } public ShutdownType ShutdownType { get; private set; } + public string LogoUrl { get; set; } + /// /// /// diff --git a/Essentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs b/Essentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs index c970f382..d70f5501 100644 --- a/Essentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs +++ b/Essentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs @@ -29,6 +29,7 @@ namespace PepperDash.Essentials var disp = DeviceManager.GetDeviceForKey(props.DefaultDisplayKey) as IRoutingSinkWithSwitching; var audio = DeviceManager.GetDeviceForKey(props.DefaultAudioKey) as IRoutingSinkNoSwitching; var huddle = new EssentialsHuddleSpaceRoom(Key, Name, disp, audio, props); + huddle.LogoUrl = props.Logo.GetUrl(); huddle.SourceListKey = props.SourceListKey; huddle.DefaultSourceItem = props.DefaultSourceItem; return huddle; @@ -48,7 +49,6 @@ namespace PepperDash.Essentials // Get the master volume control IBasicVolumeWithFeedback masterVolumeControlDev = props.Volumes.Master.GetDevice(); -#warning Will need to define audio routing somewhere as well var presRoom = new EssentialsPresentationRoom(Key, Name, displaysDict, masterVolumeControlDev, props); return presRoom; @@ -67,8 +67,28 @@ namespace PepperDash.Essentials public int ShutdownVacancySeconds { get; set; } public int ShutdownPromptSeconds { get; set; } public EssentialsRoomOccSensorConfig OccupancySensors { get; set; } + public EssentialsLogoPropertiesConfig Logo { get; set; } } + + public class EssentialsLogoPropertiesConfig + { + public string Type { get; set; } + public string Url { get; set; } + /// + /// Gets either the custom URL, a local-to-processor URL, or null if it's a default logo + /// + public string GetUrl() + { + if (Type == "url") + return Url; + if (Type == "system") + return string.Format("http://{0}:5646/logo", + CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0)); + return null; + } + } + /// /// Represents occupancy sensor(s) setup for a room /// diff --git a/Essentials/PepperDashEssentials/UI Drivers/EssentialsHuddlePanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UI Drivers/EssentialsHuddlePanelAvFunctionsDriver.cs index 8dcaf297..bff1725d 100644 --- a/Essentials/PepperDashEssentials/UI Drivers/EssentialsHuddlePanelAvFunctionsDriver.cs +++ b/Essentials/PepperDashEssentials/UI Drivers/EssentialsHuddlePanelAvFunctionsDriver.cs @@ -179,8 +179,6 @@ namespace PepperDash.Essentials TriList.StringInput[UIStringJoin.StartActivityText].StringValue = "Tap Share to begin"; - - TriList.BooleanInput[UIBoolJoin.LogoDefaultVisible].BoolValue = true; } /// @@ -677,8 +675,21 @@ namespace PepperDash.Essentials } SourcesSrl.Count = (ushort)(i - 1); } - + // Name and logo TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name; + if (_CurrentRoom.LogoUrl == null) + { + Debug.Console(2, _CurrentRoom, "Using default logo"); + TriList.BooleanInput[UIBoolJoin.LogoDefaultVisible].BoolValue = true; + TriList.BooleanInput[UIBoolJoin.LogoUrlVisible].BoolValue = false; + } + else + { + Debug.Console(2, _CurrentRoom, "Using logo at URL: {0}", _CurrentRoom.LogoUrl); + TriList.BooleanInput[UIBoolJoin.LogoDefaultVisible].BoolValue = false; + TriList.BooleanInput[UIBoolJoin.LogoUrlVisible].BoolValue = true; + TriList.StringInput[UIStringJoin.LogoUrl].StringValue = _CurrentRoom.LogoUrl; + } // Shutdown timer _CurrentRoom.ShutdownPromptTimer.HasStarted += ShutdownPromptTimer_HasStarted; diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz index 9eddf5e2..6832493f 100644 Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll index c066ff7c..3a391dfe 100644 Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ