mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
ecs-542, 545, 547, 548
This commit is contained in:
79
Essentials Core/PepperDashEssentialsBase/Global/JobTimer.cs
Normal file
79
Essentials Core/PepperDashEssentialsBase/Global/JobTimer.cs
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core
|
||||||
|
{
|
||||||
|
public static class JobTimer
|
||||||
|
{
|
||||||
|
static CTimer MinuteTimer;
|
||||||
|
|
||||||
|
static List<JobTimerItem> Items = new List<JobTimerItem>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="act"></param>
|
||||||
|
public static void AddAction(Action act)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="act"></param>
|
||||||
|
public static void AddJobTimerItem(JobTimerItem item)
|
||||||
|
{
|
||||||
|
var existing = Items.FirstOrDefault(i => i.Key == item.Key);
|
||||||
|
if (existing != null)
|
||||||
|
{
|
||||||
|
Items.Remove(existing);
|
||||||
|
}
|
||||||
|
Items.Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void CheckAndRunTimer()
|
||||||
|
{
|
||||||
|
if (Items.Count > 0 && MinuteTimer == null)
|
||||||
|
{
|
||||||
|
MinuteTimer = new CTimer(o => MinuteTimerCallback(), null, 60000, 60000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void MinuteTimerCallback()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public class JobTimerItem
|
||||||
|
{
|
||||||
|
public string Key { get; private set; }
|
||||||
|
public Action JobAction { get; private set; }
|
||||||
|
public eJobTimerCycleTypes CycleType { get; private set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public DateTime RunNextAt { get; set; }
|
||||||
|
|
||||||
|
public JobTimerItem(string key, eJobTimerCycleTypes cycle, Action act)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum eJobTimerCycleTypes
|
||||||
|
{
|
||||||
|
RunEveryHour,
|
||||||
|
RunEveryHalfHour,
|
||||||
|
RunEveryMinute
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -105,6 +105,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Devices\CodecInterfaces.cs" />
|
<Compile Include="Devices\CodecInterfaces.cs" />
|
||||||
<Compile Include="Devices\IHasSharing.cs" />
|
<Compile Include="Devices\IHasSharing.cs" />
|
||||||
|
<Compile Include="Global\JobTimer.cs" />
|
||||||
<Compile Include="Ramps and Increments\ActionIncrementer.cs" />
|
<Compile Include="Ramps and Increments\ActionIncrementer.cs" />
|
||||||
<Compile Include="Comm and IR\CommFactory.cs" />
|
<Compile Include="Comm and IR\CommFactory.cs" />
|
||||||
<Compile Include="Comm and IR\CommunicationExtras.cs" />
|
<Compile Include="Comm and IR\CommunicationExtras.cs" />
|
||||||
@@ -163,7 +164,7 @@
|
|||||||
<Compile Include="Display\MockDisplay.cs" />
|
<Compile Include="Display\MockDisplay.cs" />
|
||||||
<Compile Include="Ethernet\EthernetStatistics.cs" />
|
<Compile Include="Ethernet\EthernetStatistics.cs" />
|
||||||
<Compile Include="Fusion\MOVED FusionSystemController.cs" />
|
<Compile Include="Fusion\MOVED FusionSystemController.cs" />
|
||||||
<Compile Include="Global.cs" />
|
<Compile Include="Global\Global.cs" />
|
||||||
<Compile Include="License\EssentialsLicenseManager.cs" />
|
<Compile Include="License\EssentialsLicenseManager.cs" />
|
||||||
<Compile Include="Feedbacks\BoolOutputLogicals.cs" />
|
<Compile Include="Feedbacks\BoolOutputLogicals.cs" />
|
||||||
<Compile Include="Presets\Interfaces.cs" />
|
<Compile Include="Presets\Interfaces.cs" />
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
|||||||
{
|
{
|
||||||
return !(Status == eCodecCallStatus.Disconnected
|
return !(Status == eCodecCallStatus.Disconnected
|
||||||
|| Status == eCodecCallStatus.Disconnecting
|
|| Status == eCodecCallStatus.Disconnecting
|
||||||
|
|| Status == eCodecCallStatus.Idle
|
||||||
|| Status == eCodecCallStatus.Unknown);
|
|| Status == eCodecCallStatus.Unknown);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,13 +43,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
VolumeLevelFeedback.OutputChange += (o, a) => Debug.Console(1, this, "Volume={0}", _VolumeLevel);
|
VolumeLevelFeedback.OutputChange += (o, a) => Debug.Console(1, this, "Volume={0}", _VolumeLevel);
|
||||||
|
|
||||||
CodecOsdIn = new RoutingInputPort(RoutingPortNames.CodecOsd, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, 0, this);
|
CodecOsdIn = new RoutingInputPort(RoutingPortNames.CodecOsd, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, 0, this);
|
||||||
HdmiIn1 = new RoutingInputPort(RoutingPortNames.HdmiIn1, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, 1, this);
|
|
||||||
HdmiIn2 = new RoutingInputPort(RoutingPortNames.HdmiIn2, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, 2, this);
|
|
||||||
HdmiOut = new RoutingOutputPort(RoutingPortNames.HdmiOut, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, null, this);
|
|
||||||
|
|
||||||
InputPorts.Add(CodecOsdIn);
|
InputPorts.Add(CodecOsdIn);
|
||||||
|
HdmiIn1 = new RoutingInputPort(RoutingPortNames.HdmiIn1, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, 1, this);
|
||||||
InputPorts.Add(HdmiIn1);
|
InputPorts.Add(HdmiIn1);
|
||||||
|
HdmiIn2 = new RoutingInputPort(RoutingPortNames.HdmiIn2, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, 2, this);
|
||||||
InputPorts.Add(HdmiIn2);
|
InputPorts.Add(HdmiIn2);
|
||||||
|
HdmiOut = new RoutingOutputPort(RoutingPortNames.HdmiOut, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, null, this);
|
||||||
OutputPorts.Add(HdmiOut);
|
OutputPorts.Add(HdmiOut);
|
||||||
|
|
||||||
CallHistory = new CodecCallHistory();
|
CallHistory = new CodecCallHistory();
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
public bool ShowDate { get; set; }
|
public bool ShowDate { get; set; }
|
||||||
public bool ShowTime { get; set; }
|
public bool ShowTime { get; set; }
|
||||||
public UiSetupPropertiesConfig Setup { get; set; }
|
public UiSetupPropertiesConfig Setup { get; set; }
|
||||||
public UiHeaderStyle HeaderStyle { get; set; }
|
public string HeaderStyle { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The count of sources that will trigger the "additional" arrows to show on the SRL.
|
/// The count of sources that will trigger the "additional" arrows to show on the SRL.
|
||||||
@@ -23,8 +23,17 @@
|
|||||||
public CrestronTouchpanelPropertiesConfig()
|
public CrestronTouchpanelPropertiesConfig()
|
||||||
{
|
{
|
||||||
SourcesOverflowCount = 5;
|
SourcesOverflowCount = 5;
|
||||||
HeaderStyle = UiHeaderStyle.Habanero;
|
HeaderStyle = CrestronTouchpanelPropertiesConfig.Habanero;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// "habanero"
|
||||||
|
/// </summary>
|
||||||
|
public const string Habanero = "habanero";
|
||||||
|
/// <summary>
|
||||||
|
/// "verbose"
|
||||||
|
/// </summary>
|
||||||
|
public const string Verbose = "verbose";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -34,14 +43,4 @@
|
|||||||
{
|
{
|
||||||
public bool IsVisible { get; set; }
|
public bool IsVisible { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
public enum UiHeaderStyle
|
|
||||||
{
|
|
||||||
Habanero = 0,
|
|
||||||
Verbose
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -234,25 +234,25 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
var roomConf = CurrentRoom.Config;
|
var roomConf = CurrentRoom.Config;
|
||||||
|
|
||||||
if (Config.HeaderStyle == UiHeaderStyle.Habanero)
|
TriList.SetString(UIStringJoin.CurrentRoomName, CurrentRoom.Name);
|
||||||
|
|
||||||
|
if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Habanero)
|
||||||
{
|
{
|
||||||
TriList.SetString(UIStringJoin.CurrentRoomName, CurrentRoom.Name);
|
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () =>
|
TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () =>
|
||||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderPageVisible));
|
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderPageVisible));
|
||||||
}
|
}
|
||||||
else if (Config.HeaderStyle == UiHeaderStyle.Verbose)
|
else if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Verbose)
|
||||||
{
|
{
|
||||||
// room name on join 1, concat phone and sip on join 2, no button method
|
// room name on join 1, concat phone and sip on join 2, no button method
|
||||||
TriList.SetString(UIStringJoin.CurrentRoomName, CurrentRoom.Name);
|
//var addr = roomConf.Addresses;
|
||||||
var addr = roomConf.Addresses;
|
//if (addr == null) // protect from missing values by using default empties
|
||||||
if (addr == null) // protect from missing values by using default empties
|
// addr = new EssentialsRoomAddressPropertiesConfig();
|
||||||
addr = new EssentialsRoomAddressPropertiesConfig();
|
//// empty string when either missing, pipe when both showing
|
||||||
// empty string when either missing, pipe when both showing
|
//TriList.SetString(UIStringJoin.RoomAddressPipeText,
|
||||||
TriList.SetString(UIStringJoin.RoomAddressPipeText,
|
// (string.IsNullOrEmpty(addr.PhoneNumber.Trim())
|
||||||
(string.IsNullOrEmpty(addr.PhoneNumber.Trim())
|
// || string.IsNullOrEmpty(addr.SipAddress.Trim())) ? "" : " | ");
|
||||||
|| string.IsNullOrEmpty(addr.SipAddress.Trim())) ? "" : " | ");
|
//TriList.SetString(UIStringJoin.RoomPhoneText, addr.PhoneNumber);
|
||||||
TriList.SetString(UIStringJoin.RoomPhoneText, addr.PhoneNumber);
|
//TriList.SetString(UIStringJoin.RoomSipText, addr.SipAddress);
|
||||||
TriList.SetString(UIStringJoin.RoomSipText, addr.SipAddress);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TriList.SetBool(UIBoolJoin.DateAndTimeVisible, Config.ShowDate && Config.ShowTime);
|
TriList.SetBool(UIBoolJoin.DateAndTimeVisible, Config.ShowDate && Config.ShowTime);
|
||||||
@@ -621,16 +621,22 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void ShowCurrentSource()
|
void ShowCurrentSource()
|
||||||
{
|
{
|
||||||
if (CurrentRoom.CurrentSourceInfo == null)
|
if (CurrentRoom.CurrentSourceInfo == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (CurrentRoom.CurrentSourceInfo.SourceDevice == null)
|
||||||
|
{
|
||||||
|
TriList.SetBool(UIBoolJoin.SelectASourceVisible, true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo;
|
var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo;
|
||||||
PageManager pm = null;
|
PageManager pm = null;
|
||||||
// If we need a page manager, get an appropriate one
|
// If we need a page manager, get an appropriate one
|
||||||
if (uiDev != null)
|
if (uiDev != null)
|
||||||
{
|
{
|
||||||
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
TriList.SetBool(UIBoolJoin.SelectASourceVisible, false);
|
||||||
// Got an existing page manager, get it
|
// Got an existing page manager, get it
|
||||||
if (PageManagers.ContainsKey(uiDev))
|
if (PageManagers.ContainsKey(uiDev))
|
||||||
pm = PageManagers[uiDev];
|
pm = PageManagers[uiDev];
|
||||||
// Otherwise make an apporiate one
|
// Otherwise make an apporiate one
|
||||||
@@ -1192,12 +1198,12 @@ namespace PepperDash.Essentials
|
|||||||
Parent.Show();
|
Parent.Show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (CurrentRoom.CurrentSourceInfo != null)
|
else if (routeInfo != null)
|
||||||
{
|
{
|
||||||
TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName;
|
TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName;
|
||||||
TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank"
|
TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank"
|
||||||
}
|
}
|
||||||
else
|
else // This never gets hit???!!!
|
||||||
{
|
{
|
||||||
TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "---";
|
TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = "---";
|
||||||
TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Blank";
|
TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = "Blank";
|
||||||
|
|||||||
@@ -419,6 +419,8 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
string timeText = null;
|
string timeText = null;
|
||||||
if (c.StartTime.Date == DateTime.Now.Date)
|
if (c.StartTime.Date == DateTime.Now.Date)
|
||||||
timeText = c.StartTime.ToShortTimeString();
|
timeText = c.StartTime.ToShortTimeString();
|
||||||
|
else if (c.StartTime == DateTime.MinValue)
|
||||||
|
timeText = "";
|
||||||
else
|
else
|
||||||
timeText = c.StartTime.ToString();
|
timeText = c.StartTime.ToString();
|
||||||
TriList.SetString(timeTextOffset + i, timeText);
|
TriList.SetString(timeTextOffset + i, timeText);
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user