mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
add logic for branding
This commit is contained in:
@@ -12,10 +12,12 @@ using Newtonsoft.Json.Linq;
|
|||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.Config;
|
using PepperDash.Essentials.Core.Config;
|
||||||
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using PepperDash.Essentials.Core.Routing;
|
using PepperDash.Essentials.Core.Routing;
|
||||||
using PepperDash.Essentials.Devices.Common.Cameras;
|
using PepperDash.Essentials.Devices.Common.Cameras;
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
using PepperDash.Essentials.Devices.Common.VideoCodec;
|
using PepperDash.Essentials.Devices.Common.VideoCodec;
|
||||||
|
using PepperDash_Essentials_Core.DeviceTypeInterfaces;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||||
{
|
{
|
||||||
@@ -25,10 +27,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
public class CiscoSparkCodec : VideoCodecBase, IHasCallHistory, IHasCallFavorites, IHasDirectory,
|
public class CiscoSparkCodec : VideoCodecBase, IHasCallHistory, IHasCallFavorites, IHasDirectory,
|
||||||
IHasScheduleAwareness, IOccupancyStatusProvider, IHasCodecLayouts, IHasCodecSelfView,
|
IHasScheduleAwareness, IOccupancyStatusProvider, IHasCodecLayouts, IHasCodecSelfView,
|
||||||
ICommunicationMonitor, IRouting, IHasCodecCameras, IHasCameraAutoMode, IHasCodecRoomPresets, IHasExternalSourceSwitching
|
ICommunicationMonitor, IRouting, IHasCodecCameras, IHasCameraAutoMode, IHasCodecRoomPresets, IHasExternalSourceSwitching, IHasBranding
|
||||||
{
|
{
|
||||||
public event EventHandler<DirectoryEventArgs> DirectoryResultReturned;
|
public event EventHandler<DirectoryEventArgs> DirectoryResultReturned;
|
||||||
|
|
||||||
|
private CTimer _brandingTimer;
|
||||||
|
|
||||||
public CommunicationGather PortGather { get; private set; }
|
public CommunicationGather PortGather { get; private set; }
|
||||||
|
|
||||||
public StatusMonitorBase CommunicationMonitor { get; private set; }
|
public StatusMonitorBase CommunicationMonitor { get; private set; }
|
||||||
@@ -401,10 +405,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
CreateOsdSource();
|
CreateOsdSource();
|
||||||
|
|
||||||
if (props.ExternalSourceListEnabled != null)
|
ExternalSourceListEnabled = props.ExternalSourceListEnabled;
|
||||||
{
|
|
||||||
ExternalSourceListEnabled = props.ExternalSourceListEnabled;
|
if (props.UiBranding == null)
|
||||||
}
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
BrandingEnabled = props.UiBranding.Enable;
|
||||||
|
_brandingUrl = props.UiBranding.BrandingUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -443,6 +452,70 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
TieLineCollection.Default.Add(tl);
|
TieLineCollection.Default.Add(tl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void InitializeBranding(string roomKey)
|
||||||
|
{
|
||||||
|
if (!BrandingEnabled)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var mcBridgeKey = String.Format("mobileControlBridge-{0}", roomKey);
|
||||||
|
|
||||||
|
var mcBridge = DeviceManager.GetDeviceForKey(mcBridgeKey) as IMobileControlRoomBridge;
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(_brandingUrl))
|
||||||
|
{
|
||||||
|
if (_brandingTimer != null)
|
||||||
|
{
|
||||||
|
_brandingTimer.Stop();
|
||||||
|
_brandingTimer.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
_brandingTimer = new CTimer((o) =>
|
||||||
|
{
|
||||||
|
if (_sendMcUrl)
|
||||||
|
{
|
||||||
|
SendMcBrandingUrl(mcBridge);
|
||||||
|
_sendMcUrl = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendBrandingUrl();
|
||||||
|
_sendMcUrl = true;
|
||||||
|
}
|
||||||
|
}, 0, 15000);
|
||||||
|
} else if (String.IsNullOrEmpty(_brandingUrl))
|
||||||
|
{
|
||||||
|
if (mcBridge == null) return;
|
||||||
|
|
||||||
|
mcBridge.UserCodeChanged += (o, a) => SendMcBrandingUrl(mcBridge);
|
||||||
|
|
||||||
|
SendMcBrandingUrl(mcBridge);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SendMcBrandingUrl(IMobileControlRoomBridge mcBridge)
|
||||||
|
{
|
||||||
|
if (mcBridge == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SendText(String.Format(
|
||||||
|
"xcommand userinterface branding fetch type: branding url: {0}",
|
||||||
|
mcBridge.QrCodeUrl));
|
||||||
|
SendText(String.Format(
|
||||||
|
"xcommand userinterface branding fetch type: halfwakebranding url: {0}",
|
||||||
|
mcBridge.QrCodeUrl));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SendBrandingUrl()
|
||||||
|
{
|
||||||
|
SendText(String.Format("xcommand userinterface branding fetch type: branding url: {0}",
|
||||||
|
_brandingUrl));
|
||||||
|
SendText(String.Format("xcommand userinterface branding fetch type: halfwakebranding url: {0}",
|
||||||
|
_brandingUrl));
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Starts the HTTP feedback server and syncronizes state of codec
|
/// Starts the HTTP feedback server and syncronizes state of codec
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1835,6 +1908,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
private set;
|
private set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool BrandingEnabled { get; private set; }
|
||||||
|
private string _brandingUrl;
|
||||||
|
private bool _sendMcUrl;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds an external source to the Cisco
|
/// Adds an external source to the Cisco
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user