mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-08 09:15:06 +00:00
docs: complete XML documentation for all projects with inheritdoc tags
Co-authored-by: andrew-welker <1765622+andrew-welker@users.noreply.github.com>
This commit is contained in:
@@ -45,6 +45,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
}
|
||||
SourceListItem _CurrentSourceInfo;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyAudioIn
|
||||
/// </summary>
|
||||
public RoutingInputPort AnyAudioIn { get; private set; }
|
||||
|
||||
public GenericAudioOut(string key, string name)
|
||||
@@ -65,11 +68,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Allows a zone-device's audio control to be attached to the endpoint, for easy routing and
|
||||
/// control switching. Will also set the zone name on attached devices, like SWAMP or other
|
||||
/// hardware with names built in.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a GenericAudioOutWithVolume
|
||||
/// </summary>
|
||||
public class GenericAudioOutWithVolume : GenericAudioOut, IHasVolumeDevice
|
||||
{
|
||||
public string VolumeDeviceKey { get; private set; }
|
||||
@@ -109,6 +110,10 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
TypeNames = new List<string>() { "genericaudiooutwithvolume" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new GenericAudioOutWithVolumeFactory Device");
|
||||
|
||||
@@ -15,13 +15,15 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
|
||||
public event EventHandler<CodecCallStatusItemChangeEventArgs> CallStatusChange;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CodecInfo
|
||||
/// </summary>
|
||||
public AudioCodecInfo CodecInfo { get; protected set; }
|
||||
|
||||
#region IUsageTracking Members
|
||||
|
||||
/// <summary>
|
||||
/// This object can be added by outside users of this class to provide usage tracking
|
||||
/// for various services
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
@@ -45,6 +47,9 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
}
|
||||
|
||||
// In most cases only a single call can be active
|
||||
/// <summary>
|
||||
/// Gets or sets the ActiveCalls
|
||||
/// </summary>
|
||||
public List<CodecActiveCallItem> ActiveCalls { get; set; }
|
||||
|
||||
public AudioCodecBase(string key, string name)
|
||||
|
||||
@@ -12,6 +12,9 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockAC
|
||||
/// </summary>
|
||||
public class MockAC : AudioCodecBase
|
||||
{
|
||||
public MockAC(string key, string name, MockAcPropertiesConfig props)
|
||||
@@ -22,6 +25,10 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
CodecInfo.PhoneNumber = props.PhoneNumber;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dial method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void Dial(string number)
|
||||
{
|
||||
if (!IsInCall)
|
||||
@@ -47,6 +54,10 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// EndCall method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void EndCall(CodecActiveCallItem call)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "EndCall");
|
||||
@@ -54,6 +65,10 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Disconnected, call);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// EndAllCalls method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void EndAllCalls()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "EndAllCalls");
|
||||
@@ -65,12 +80,19 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AcceptCall method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void AcceptCall(CodecActiveCallItem call)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "AcceptCall");
|
||||
SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Connecting, call);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// RejectCall method
|
||||
/// </summary>
|
||||
public override void RejectCall(CodecActiveCallItem call)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "RejectCall");
|
||||
@@ -78,6 +100,10 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Disconnected, call);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SendDtmf method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void SendDtmf(string s)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "BEEP BOOP SendDTMF: {0}", s);
|
||||
@@ -87,6 +113,9 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <summary>
|
||||
/// TestIncomingAudioCall method
|
||||
/// </summary>
|
||||
public void TestIncomingAudioCall(string number)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "TestIncomingAudioCall from {0}", number);
|
||||
@@ -97,6 +126,9 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MockAudioCodecInfo
|
||||
/// </summary>
|
||||
public class MockAudioCodecInfo : AudioCodecInfo
|
||||
{
|
||||
string _phoneNumber;
|
||||
@@ -114,6 +146,9 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MockACFactory
|
||||
/// </summary>
|
||||
public class MockACFactory : EssentialsDeviceFactory<MockAC>
|
||||
{
|
||||
public MockACFactory()
|
||||
@@ -121,6 +156,10 @@ namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
TypeNames = new List<string>() { "mockac" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new MockAc Device");
|
||||
|
||||
@@ -10,9 +10,15 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.AudioCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockAcPropertiesConfig
|
||||
/// </summary>
|
||||
public class MockAcPropertiesConfig
|
||||
{
|
||||
[JsonProperty("phoneNumber")]
|
||||
/// <summary>
|
||||
/// Gets or sets the PhoneNumber
|
||||
/// </summary>
|
||||
public string PhoneNumber { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,9 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eCameraCapabilities values
|
||||
/// </summary>
|
||||
public enum eCameraCapabilities
|
||||
{
|
||||
None = 0,
|
||||
@@ -33,11 +36,17 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
public abstract class CameraBase : ReconfigurableDevice, IRoutingOutputs
|
||||
{
|
||||
[JsonProperty("controlMode", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the ControlMode
|
||||
/// </summary>
|
||||
public eCameraControlMode ControlMode { get; protected set; }
|
||||
|
||||
#region IRoutingOutputs Members
|
||||
|
||||
[JsonIgnore]
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; protected set; }
|
||||
|
||||
#endregion
|
||||
@@ -271,6 +280,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CameraPreset
|
||||
/// </summary>
|
||||
public class CameraPreset : PresetBase
|
||||
{
|
||||
public CameraPreset(int id, string description, bool isDefined, bool isDefinable)
|
||||
@@ -281,19 +293,37 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CameraPropertiesConfig
|
||||
/// </summary>
|
||||
public class CameraPropertiesConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the CommunicationMonitorProperties
|
||||
/// </summary>
|
||||
public CommunicationMonitorConfig CommunicationMonitorProperties { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Control
|
||||
/// </summary>
|
||||
public ControlPropertiesConfig Control { get; set; }
|
||||
|
||||
[JsonProperty("supportsAutoMode")]
|
||||
/// <summary>
|
||||
/// Gets or sets the SupportsAutoMode
|
||||
/// </summary>
|
||||
public bool SupportsAutoMode { get; set; }
|
||||
|
||||
[JsonProperty("supportsOffMode")]
|
||||
/// <summary>
|
||||
/// Gets or sets the SupportsOffMode
|
||||
/// </summary>
|
||||
public bool SupportsOffMode { get; set; }
|
||||
|
||||
[JsonProperty("presets")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Presets
|
||||
/// </summary>
|
||||
public List<CameraPreset> Presets { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,9 @@ using PepperDash.Essentials.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eCameraControlMode values
|
||||
/// </summary>
|
||||
public enum eCameraControlMode
|
||||
{
|
||||
Manual = 0,
|
||||
@@ -16,6 +19,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasCameras
|
||||
/// </summary>
|
||||
public interface IHasCameras
|
||||
{
|
||||
event EventHandler<CameraSelectedEventArgs> CameraSelected;
|
||||
@@ -30,7 +36,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggregates far end cameras with near end cameras
|
||||
/// Defines the contract for IHasCodecCameras
|
||||
/// </summary>
|
||||
public interface IHasCodecCameras : IHasCameras, IHasFarEndCameraControl
|
||||
{
|
||||
@@ -62,8 +68,14 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
event EventHandler VideoUnmuteRequested;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CameraSelectedEventArgs
|
||||
/// </summary>
|
||||
public class CameraSelectedEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the SelectedCamera
|
||||
/// </summary>
|
||||
public CameraBase SelectedCamera { get; private set; }
|
||||
|
||||
public CameraSelectedEventArgs(CameraBase camera)
|
||||
@@ -72,6 +84,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasFarEndCameraControl
|
||||
/// </summary>
|
||||
public interface IHasFarEndCameraControl
|
||||
{
|
||||
CameraBase FarEndCamera { get; }
|
||||
@@ -81,7 +96,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used to decorate a camera as a far end
|
||||
/// Defines the contract for IAmFarEndCamera
|
||||
/// </summary>
|
||||
public interface IAmFarEndCamera
|
||||
{
|
||||
@@ -93,7 +108,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggregates the pan, tilt and zoom interfaces
|
||||
/// Defines the contract for IHasCameraPtzControl
|
||||
/// </summary>
|
||||
public interface IHasCameraPtzControl : IHasCameraPanControl, IHasCameraTiltControl, IHasCameraZoomControl
|
||||
{
|
||||
@@ -114,7 +129,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Interface for camera tilt control
|
||||
/// Defines the contract for IHasCameraTiltControl
|
||||
/// </summary>
|
||||
public interface IHasCameraTiltControl : IHasCameraControls
|
||||
{
|
||||
@@ -124,7 +139,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Interface for camera zoom control
|
||||
/// Defines the contract for IHasCameraZoomControl
|
||||
/// </summary>
|
||||
public interface IHasCameraZoomControl : IHasCameraControls
|
||||
{
|
||||
@@ -134,7 +149,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Interface for camera focus control
|
||||
/// Defines the contract for IHasCameraFocusControl
|
||||
/// </summary>
|
||||
public interface IHasCameraFocusControl : IHasCameraControls
|
||||
{
|
||||
@@ -152,6 +167,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
void ToggleFocusMode();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasCameraAutoMode
|
||||
/// </summary>
|
||||
public interface IHasCameraAutoMode : IHasCameraControls
|
||||
{
|
||||
void CameraAutoModeOn();
|
||||
|
||||
@@ -19,12 +19,21 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a CameraVisca
|
||||
/// </summary>
|
||||
public class CameraVisca : CameraBase, IHasCameraPtzControl, ICommunicationMonitor, IHasCameraPresets, IHasPowerControlWithFeedback, IBridgeAdvanced, IHasCameraFocusControl, IHasAutoFocusMode
|
||||
{
|
||||
private readonly CameraViscaPropertiesConfig PropertiesConfig;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Communication
|
||||
/// </summary>
|
||||
public IBasicCommunication Communication { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CommunicationMonitor
|
||||
/// </summary>
|
||||
public StatusMonitorBase CommunicationMonitor { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -156,6 +165,10 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CustomActivate method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override bool CustomActivate()
|
||||
{
|
||||
Communication.Connect();
|
||||
@@ -169,6 +182,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
|
||||
@@ -408,6 +424,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
InquiryResponseQueue.Enqueue(HandlePowerResponse);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerOn method
|
||||
/// </summary>
|
||||
public void PowerOn()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x00, 0x02, 0xFF });
|
||||
@@ -431,12 +450,18 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerOff method
|
||||
/// </summary>
|
||||
public void PowerOff()
|
||||
{
|
||||
SendBytes(new byte[] {ID, 0x01, 0x04, 0x00, 0x03, 0xFF});
|
||||
SendPowerQuery();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerToggle method
|
||||
/// </summary>
|
||||
public void PowerToggle()
|
||||
{
|
||||
if (PowerIsOnFeedback.BoolValue)
|
||||
@@ -445,30 +470,48 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
PowerOn();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PanLeft method
|
||||
/// </summary>
|
||||
public void PanLeft()
|
||||
{
|
||||
SendPanTiltCommand(new byte[] {0x01, 0x03}, false);
|
||||
// IsMoving = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// PanRight method
|
||||
/// </summary>
|
||||
public void PanRight()
|
||||
{
|
||||
SendPanTiltCommand(new byte[] { 0x02, 0x03 }, false);
|
||||
// IsMoving = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// PanStop method
|
||||
/// </summary>
|
||||
public void PanStop()
|
||||
{
|
||||
Stop();
|
||||
}
|
||||
/// <summary>
|
||||
/// TiltDown method
|
||||
/// </summary>
|
||||
public void TiltDown()
|
||||
{
|
||||
SendPanTiltCommand(new byte[] { 0x03, 0x02 }, false);
|
||||
// IsMoving = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// TiltUp method
|
||||
/// </summary>
|
||||
public void TiltUp()
|
||||
{
|
||||
SendPanTiltCommand(new byte[] { 0x03, 0x01 }, false);
|
||||
// IsMoving = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// TiltStop method
|
||||
/// </summary>
|
||||
public void TiltStop()
|
||||
{
|
||||
Stop();
|
||||
@@ -480,21 +523,33 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ZoomIn method
|
||||
/// </summary>
|
||||
public void ZoomIn()
|
||||
{
|
||||
SendZoomCommand(ZoomInCmd);
|
||||
IsZooming = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// ZoomOut method
|
||||
/// </summary>
|
||||
public void ZoomOut()
|
||||
{
|
||||
SendZoomCommand(ZoomOutCmd);
|
||||
IsZooming = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// ZoomStop method
|
||||
/// </summary>
|
||||
public void ZoomStop()
|
||||
{
|
||||
Stop();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stop method
|
||||
/// </summary>
|
||||
public void Stop()
|
||||
{
|
||||
if (IsZooming)
|
||||
@@ -509,15 +564,24 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
// IsMoving = false;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// PositionHome method
|
||||
/// </summary>
|
||||
public void PositionHome()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x06, 0x02, PanSpeedFast, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF });
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x47, 0x00, 0x00, 0x00, 0x00, 0xFF });
|
||||
}
|
||||
/// <summary>
|
||||
/// RecallPreset method
|
||||
/// </summary>
|
||||
public void RecallPreset(int presetNumber)
|
||||
{
|
||||
SendBytes(new byte[] {ID, 0x01, 0x04, 0x3F, 0x02, (byte)presetNumber, 0xFF} );
|
||||
}
|
||||
/// <summary>
|
||||
/// SavePreset method
|
||||
/// </summary>
|
||||
public void SavePreset(int presetNumber)
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x3F, 0x01, (byte)presetNumber, 0xFF });
|
||||
@@ -536,13 +600,22 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
handler.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Presets
|
||||
/// </summary>
|
||||
public List<CameraPreset> Presets { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// PresetSelect method
|
||||
/// </summary>
|
||||
public void PresetSelect(int preset)
|
||||
{
|
||||
RecallPreset(preset);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PresetStore method
|
||||
/// </summary>
|
||||
public void PresetStore(int preset, string description)
|
||||
{
|
||||
SavePreset(preset);
|
||||
@@ -553,21 +626,33 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraFocusControl Members
|
||||
|
||||
/// <summary>
|
||||
/// FocusNear method
|
||||
/// </summary>
|
||||
public void FocusNear()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x08, 0x03, 0xFF });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FocusFar method
|
||||
/// </summary>
|
||||
public void FocusFar()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x08, 0x02, 0xFF });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FocusStop method
|
||||
/// </summary>
|
||||
public void FocusStop()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x08, 0x00, 0xFF });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TriggerAutoFocus method
|
||||
/// </summary>
|
||||
public void TriggerAutoFocus()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x18, 0x01, 0xFF });
|
||||
@@ -578,18 +663,27 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasAutoFocus Members
|
||||
|
||||
/// <summary>
|
||||
/// SetFocusModeAuto method
|
||||
/// </summary>
|
||||
public void SetFocusModeAuto()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x38, 0x02, 0xFF });
|
||||
SendAutoFocusQuery();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetFocusModeManual method
|
||||
/// </summary>
|
||||
public void SetFocusModeManual()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x38, 0x03, 0xFF });
|
||||
SendAutoFocusQuery();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ToggleFocusMode method
|
||||
/// </summary>
|
||||
public void ToggleFocusMode()
|
||||
{
|
||||
SendBytes(new byte[] { ID, 0x01, 0x04, 0x38, 0x10, 0xFF });
|
||||
@@ -625,9 +719,15 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraOff Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CameraIsOffFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback CameraIsOffFeedback { get; private set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CameraOff method
|
||||
/// </summary>
|
||||
public void CameraOff()
|
||||
{
|
||||
PowerOff();
|
||||
@@ -636,6 +736,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CameraViscaFactory
|
||||
/// </summary>
|
||||
public class CameraViscaFactory : EssentialsDeviceFactory<CameraVisca>
|
||||
{
|
||||
public CameraViscaFactory()
|
||||
@@ -643,6 +746,10 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
TypeNames = new List<string>() { "cameravisca" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new CameraVisca Device");
|
||||
@@ -654,12 +761,18 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CameraViscaPropertiesConfig
|
||||
/// </summary>
|
||||
public class CameraViscaPropertiesConfig : CameraPropertiesConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Control ID of the camera (1-7)
|
||||
/// </summary>
|
||||
[JsonProperty("id")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Id
|
||||
/// </summary>
|
||||
public uint Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -12,33 +12,60 @@ using Newtonsoft.Json.Converters;
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a CodecActiveCallItem
|
||||
/// </summary>
|
||||
public class CodecActiveCallItem
|
||||
{
|
||||
[JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the Name
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty("number", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the Number
|
||||
/// </summary>
|
||||
public string Number { get; set; }
|
||||
|
||||
[JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the Type
|
||||
/// </summary>
|
||||
public eCodecCallType Type { get; set; }
|
||||
|
||||
[JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the Status
|
||||
/// </summary>
|
||||
public eCodecCallStatus Status { get; set; }
|
||||
|
||||
[JsonProperty("direction", NullValueHandling = NullValueHandling.Ignore)]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the Direction
|
||||
/// </summary>
|
||||
public eCodecCallDirection Direction { get; set; }
|
||||
|
||||
[JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the Id
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonProperty("isOnHold", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsOnHold
|
||||
/// </summary>
|
||||
public bool IsOnHold { get; set; }
|
||||
|
||||
[JsonProperty("duration", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the Duration
|
||||
/// </summary>
|
||||
public TimeSpan Duration { get; set; }
|
||||
|
||||
//public object CallMetaData { get; set; }
|
||||
@@ -61,10 +88,13 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// Represents a CodecCallStatusItemChangeEventArgs
|
||||
/// </summary>
|
||||
public class CodecCallStatusItemChangeEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the CallItem
|
||||
/// </summary>
|
||||
public CodecActiveCallItem CallItem { get; private set; }
|
||||
|
||||
public CodecCallStatusItemChangeEventArgs(CodecActiveCallItem item)
|
||||
|
||||
@@ -6,6 +6,9 @@ using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasCallHold
|
||||
/// </summary>
|
||||
public interface IHasCallHold
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -8,6 +8,9 @@ using PepperDash.Essentials.Devices.Common.VideoCodec.Cisco;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasExternalSourceSwitching
|
||||
/// </summary>
|
||||
public interface IHasExternalSourceSwitching
|
||||
{
|
||||
bool ExternalSourceListEnabled { get; }
|
||||
|
||||
@@ -7,11 +7,17 @@ using Crestron.SimplSharp;
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eCodecCallDirection values
|
||||
/// </summary>
|
||||
public enum eCodecCallDirection
|
||||
{
|
||||
Unknown = 0, Incoming, Outgoing
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CodecCallDirection
|
||||
/// </summary>
|
||||
public class CodecCallDirection
|
||||
{
|
||||
/// <summary>
|
||||
@@ -19,6 +25,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// ConvertToDirectionEnum method
|
||||
/// </summary>
|
||||
public static eCodecCallDirection ConvertToDirectionEnum(string s)
|
||||
{
|
||||
switch (s.ToLower())
|
||||
|
||||
@@ -6,6 +6,9 @@ using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eCodecCallStatus values
|
||||
/// </summary>
|
||||
public enum eCodecCallStatus
|
||||
{
|
||||
Unknown = 0,
|
||||
@@ -23,6 +26,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CodecCallStatus
|
||||
/// </summary>
|
||||
public class CodecCallStatus
|
||||
{
|
||||
|
||||
@@ -31,6 +37,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// ConvertToStatusEnum method
|
||||
/// </summary>
|
||||
public static eCodecCallStatus ConvertToStatusEnum(string s)
|
||||
{
|
||||
switch (s)
|
||||
|
||||
@@ -7,6 +7,9 @@ using Crestron.SimplSharp;
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eCodecCallType values
|
||||
/// </summary>
|
||||
public enum eCodecCallType
|
||||
{
|
||||
Unknown = 0,
|
||||
@@ -16,6 +19,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
ForwardAllCall
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CodecCallType
|
||||
/// </summary>
|
||||
public class CodecCallType
|
||||
{
|
||||
|
||||
@@ -24,6 +30,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// ConvertToTypeEnum method
|
||||
/// </summary>
|
||||
public static eCodecCallType ConvertToTypeEnum(string s)
|
||||
{
|
||||
switch (s)
|
||||
|
||||
@@ -6,6 +6,9 @@ using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eMeetingPrivacy values
|
||||
/// </summary>
|
||||
public enum eMeetingPrivacy
|
||||
{
|
||||
Unknown = 0,
|
||||
@@ -13,6 +16,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
Private
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CodecCallPrivacy
|
||||
/// </summary>
|
||||
public class CodecCallPrivacy
|
||||
{
|
||||
/// <summary>
|
||||
@@ -20,6 +26,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// ConvertToDirectionEnum method
|
||||
/// </summary>
|
||||
public static eMeetingPrivacy ConvertToDirectionEnum(string s)
|
||||
{
|
||||
switch (s.ToLower())
|
||||
|
||||
@@ -6,16 +6,22 @@ using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasCallFavorites
|
||||
/// </summary>
|
||||
public interface IHasCallFavorites
|
||||
{
|
||||
CodecCallFavorites CallFavorites { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents favorites entries for a codec device
|
||||
/// Represents a CodecCallFavorites
|
||||
/// </summary>
|
||||
public class CodecCallFavorites
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Favorites
|
||||
/// </summary>
|
||||
public List<CodecActiveCallItem> Favorites { get; set; }
|
||||
|
||||
public CodecCallFavorites()
|
||||
|
||||
@@ -10,6 +10,9 @@ using Newtonsoft.Json.Converters;
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasCallHistory
|
||||
/// </summary>
|
||||
public interface IHasCallHistory
|
||||
{
|
||||
CodecCallHistory CallHistory { get; }
|
||||
@@ -17,6 +20,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
void RemoveCallHistoryEntry(CodecCallHistory.CallHistoryEntry entry);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enumeration of eCodecOccurrenceType values
|
||||
/// </summary>
|
||||
public enum eCodecOccurrenceType
|
||||
{
|
||||
Unknown = 0,
|
||||
@@ -26,12 +32,15 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents the recent call history for a codec device
|
||||
/// Represents a CodecCallHistory
|
||||
/// </summary>
|
||||
public class CodecCallHistory
|
||||
{
|
||||
public event EventHandler<EventArgs> RecentCallsListHasChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the RecentCalls
|
||||
/// </summary>
|
||||
public List<CallHistoryEntry> RecentCalls { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -57,6 +66,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// RemoveEntry method
|
||||
/// </summary>
|
||||
public void RemoveEntry(CallHistoryEntry entry)
|
||||
{
|
||||
RecentCalls.Remove(entry);
|
||||
@@ -64,12 +76,15 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generic call history entry, not device specific
|
||||
/// Represents a CallHistoryEntry
|
||||
/// </summary>
|
||||
public class CallHistoryEntry : CodecActiveCallItem
|
||||
{
|
||||
[JsonConverter(typeof(IsoDateTimeConverter))]
|
||||
[JsonProperty("startTime")]
|
||||
/// <summary>
|
||||
/// Gets or sets the StartTime
|
||||
/// </summary>
|
||||
public DateTime StartTime { get; set; }
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
[JsonProperty("occurrenceType")]
|
||||
@@ -83,6 +98,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// </summary>
|
||||
/// <param name="entries"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// ConvertCiscoCallHistoryToGeneric method
|
||||
/// </summary>
|
||||
public void ConvertCiscoCallHistoryToGeneric(List<CiscoCallHistory.Entry> entries)
|
||||
{
|
||||
var genericEntries = new List<CallHistoryEntry>();
|
||||
@@ -112,6 +130,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// Takes the Cisco occurence type and converts it to the matching enum
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <summary>
|
||||
/// ConvertToOccurenceTypeEnum method
|
||||
/// </summary>
|
||||
public eCodecOccurrenceType ConvertToOccurenceTypeEnum(string s)
|
||||
{
|
||||
switch (s)
|
||||
|
||||
@@ -10,6 +10,9 @@ using PepperDash.Essentials.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasContentSharing
|
||||
/// </summary>
|
||||
public interface IHasContentSharing
|
||||
{
|
||||
BoolFeedback SharingContentIsOnFeedback { get; }
|
||||
|
||||
@@ -40,18 +40,27 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
BoolFeedback CurrentDirectoryResultIsNotDirectoryRoot { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasDirectoryHistoryStack
|
||||
/// </summary>
|
||||
public interface IHasDirectoryHistoryStack : IHasDirectory
|
||||
{
|
||||
Stack<CodecDirectory> DirectoryBrowseHistoryStack { get; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a DirectoryEventArgs
|
||||
/// </summary>
|
||||
public class DirectoryEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Directory
|
||||
/// </summary>
|
||||
public CodecDirectory Directory { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the DirectoryIsOnRoot
|
||||
/// </summary>
|
||||
public bool DirectoryIsOnRoot { get; set; }
|
||||
}
|
||||
|
||||
@@ -89,6 +98,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// Used to store the ID of the current folder for CurrentDirectoryResults
|
||||
/// </summary>
|
||||
[JsonProperty("resultsFolderId")]
|
||||
/// <summary>
|
||||
/// Gets or sets the ResultsFolderId
|
||||
/// </summary>
|
||||
public string ResultsFolderId { get; set; }
|
||||
|
||||
public CodecDirectory()
|
||||
@@ -100,6 +112,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// Adds folders to the directory
|
||||
/// </summary>
|
||||
/// <param name="folders"></param>
|
||||
/// <summary>
|
||||
/// AddFoldersToDirectory method
|
||||
/// </summary>
|
||||
public void AddFoldersToDirectory(List<DirectoryItem> folders)
|
||||
{
|
||||
if(folders != null)
|
||||
@@ -112,6 +127,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// Adds contacts to the directory
|
||||
/// </summary>
|
||||
/// <param name="contacts"></param>
|
||||
/// <summary>
|
||||
/// AddContactsToDirectory method
|
||||
/// </summary>
|
||||
public void AddContactsToDirectory(List<DirectoryItem> contacts)
|
||||
{
|
||||
if(contacts != null)
|
||||
@@ -124,6 +142,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// Filters the CurrentDirectoryResults by the predicate
|
||||
/// </summary>
|
||||
/// <param name="predicate"></param>
|
||||
/// <summary>
|
||||
/// FilterContacts method
|
||||
/// </summary>
|
||||
public void FilterContacts(Func<DirectoryItem, bool> predicate)
|
||||
{
|
||||
CurrentDirectoryResults = CurrentDirectoryResults.Where(predicate).ToList();
|
||||
@@ -156,7 +177,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used to decorate a contact to indicate it can be invided to a meeting
|
||||
/// Defines the contract for IInvitableContact
|
||||
/// </summary>
|
||||
public interface IInvitableContact
|
||||
{
|
||||
@@ -175,11 +196,14 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents an item in the directory
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a DirectoryItem
|
||||
/// </summary>
|
||||
public class DirectoryItem : ICloneable
|
||||
{
|
||||
/// <summary>
|
||||
/// Clone method
|
||||
/// </summary>
|
||||
public object Clone()
|
||||
{
|
||||
return this.MemberwiseClone();
|
||||
@@ -189,18 +213,27 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
public string FolderId { get; set; }
|
||||
|
||||
[JsonProperty("name")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Name
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty("parentFolderId")]
|
||||
/// <summary>
|
||||
/// Gets or sets the ParentFolderId
|
||||
/// </summary>
|
||||
public string ParentFolderId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a folder type DirectoryItem
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a DirectoryFolder
|
||||
/// </summary>
|
||||
public class DirectoryFolder : DirectoryItem
|
||||
{
|
||||
[JsonProperty("contacts")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Contacts
|
||||
/// </summary>
|
||||
public List<DirectoryContact> Contacts { get; set; }
|
||||
|
||||
|
||||
@@ -210,12 +243,15 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a contact type DirectoryItem
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a DirectoryContact
|
||||
/// </summary>
|
||||
public class DirectoryContact : DirectoryItem
|
||||
{
|
||||
[JsonProperty("contactId")]
|
||||
/// <summary>
|
||||
/// Gets or sets the ContactId
|
||||
/// </summary>
|
||||
public string ContactId { get; set; }
|
||||
|
||||
[JsonProperty("title")]
|
||||
@@ -230,12 +266,15 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a method of contact for a contact
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a ContactMethod
|
||||
/// </summary>
|
||||
public class ContactMethod
|
||||
{
|
||||
[JsonProperty("contactMethodId")]
|
||||
/// <summary>
|
||||
/// Gets or sets the ContactMethodId
|
||||
/// </summary>
|
||||
public string ContactMethodId { get; set; }
|
||||
|
||||
[JsonProperty("number")]
|
||||
@@ -243,16 +282,22 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
[JsonProperty("device")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the Device
|
||||
/// </summary>
|
||||
public eContactMethodDevice Device { get; set; }
|
||||
|
||||
[JsonProperty("callType")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the CallType
|
||||
/// </summary>
|
||||
public eContactMethodCallType CallType { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Enumeration of eContactMethodDevice values
|
||||
/// </summary>
|
||||
public enum eContactMethodDevice
|
||||
{
|
||||
Unknown = 0,
|
||||
@@ -262,9 +307,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
Video
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Enumeration of eContactMethodCallType values
|
||||
/// </summary>
|
||||
public enum eContactMethodCallType
|
||||
{
|
||||
Unknown = 0,
|
||||
|
||||
@@ -14,6 +14,9 @@ using Serilog.Events;
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
[Flags]
|
||||
/// <summary>
|
||||
/// Enumeration of eMeetingEventChangeType values
|
||||
/// </summary>
|
||||
public enum eMeetingEventChangeType
|
||||
{
|
||||
Unknown = 0,
|
||||
@@ -23,6 +26,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
MeetingEnd = 8
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasScheduleAwareness
|
||||
/// </summary>
|
||||
public interface IHasScheduleAwareness
|
||||
{
|
||||
CodecScheduleAwareness CodecSchedule { get; }
|
||||
@@ -30,6 +36,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
void GetSchedule();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CodecScheduleAwareness
|
||||
/// </summary>
|
||||
public class CodecScheduleAwareness
|
||||
{
|
||||
List<Meeting> _meetings;
|
||||
@@ -147,7 +156,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generic class to represent a meeting (Cisco or Polycom OBTP or Fusion)
|
||||
/// Represents a Meeting
|
||||
/// </summary>
|
||||
public class Meeting
|
||||
{
|
||||
@@ -159,8 +168,14 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
[JsonProperty("organizer")]
|
||||
public string Organizer { get; set; }
|
||||
[JsonProperty("title")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Title
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
[JsonProperty("agenda")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Agenda
|
||||
/// </summary>
|
||||
public string Agenda { get; set; }
|
||||
|
||||
[JsonProperty("meetingWarningMinutes")]
|
||||
@@ -185,8 +200,14 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
}
|
||||
[JsonProperty("startTime")]
|
||||
/// <summary>
|
||||
/// Gets or sets the StartTime
|
||||
/// </summary>
|
||||
public DateTime StartTime { get; set; }
|
||||
[JsonProperty("endTime")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EndTime
|
||||
/// </summary>
|
||||
public DateTime EndTime { get; set; }
|
||||
[JsonProperty("duration")]
|
||||
public TimeSpan Duration
|
||||
@@ -197,6 +218,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
}
|
||||
[JsonProperty("privacy")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Privacy
|
||||
/// </summary>
|
||||
public eMeetingPrivacy Privacy { get; set; }
|
||||
[JsonProperty("joinable")]
|
||||
public bool Joinable
|
||||
@@ -211,21 +235,36 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
}
|
||||
|
||||
[JsonProperty("dialable")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Dialable
|
||||
/// </summary>
|
||||
public bool Dialable { get; set; }
|
||||
|
||||
//public string ConferenceNumberToDial { get; set; }
|
||||
[JsonProperty("conferencePassword")]
|
||||
/// <summary>
|
||||
/// Gets or sets the ConferencePassword
|
||||
/// </summary>
|
||||
public string ConferencePassword { get; set; }
|
||||
[JsonProperty("isOneButtonToPushMeeting")]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsOneButtonToPushMeeting
|
||||
/// </summary>
|
||||
public bool IsOneButtonToPushMeeting { get; set; }
|
||||
|
||||
[JsonProperty("calls")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Calls
|
||||
/// </summary>
|
||||
public List<Call> Calls { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Tracks the change types that have already been notified for
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
/// <summary>
|
||||
/// Gets or sets the NotifiedChangeTypes
|
||||
/// </summary>
|
||||
public eMeetingEventChangeType NotifiedChangeTypes { get; set; }
|
||||
|
||||
[JsonIgnore] private readonly int _joinableCooldownSeconds;
|
||||
@@ -247,6 +286,10 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
#region Overrides of Object
|
||||
|
||||
/// <summary>
|
||||
/// ToString method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
return String.Format("{0}:{1}: {2}-{3}", Title, Agenda, StartTime, EndTime);
|
||||
@@ -255,17 +298,41 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Call
|
||||
/// </summary>
|
||||
public class Call
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Number
|
||||
/// </summary>
|
||||
public string Number { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Protocol
|
||||
/// </summary>
|
||||
public string Protocol { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the CallRate
|
||||
/// </summary>
|
||||
public string CallRate { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the CallType
|
||||
/// </summary>
|
||||
public string CallType { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MeetingEventArgs
|
||||
/// </summary>
|
||||
public class MeetingEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the ChangeType
|
||||
/// </summary>
|
||||
public eMeetingEventChangeType ChangeType { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Meeting
|
||||
/// </summary>
|
||||
public Meeting Meeting { get; set; }
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,9 @@ namespace PepperDash.Essentials.Devices.Common.DSP
|
||||
|
||||
public abstract class DspControlPoint :IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Key
|
||||
/// </summary>
|
||||
public string Key { get; }
|
||||
|
||||
protected DspControlPoint(string key) => Key = key;
|
||||
@@ -54,7 +57,13 @@ namespace PepperDash.Essentials.Devices.Common.DSP
|
||||
|
||||
public abstract class DspLevelControlPoint :DspControlPoint, IBasicVolumeWithFeedback
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the MuteFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback MuteFeedback { get; }
|
||||
/// <summary>
|
||||
/// Gets or sets the VolumeLevelFeedback
|
||||
/// </summary>
|
||||
public IntFeedback VolumeLevelFeedback { get; }
|
||||
|
||||
protected DspLevelControlPoint(string key, Func<bool> muteFeedbackFunc, Func<int> volumeLevelFeedbackFunc) : base(key)
|
||||
|
||||
@@ -9,6 +9,9 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a DeviceFactory
|
||||
/// </summary>
|
||||
public class DeviceFactory
|
||||
{
|
||||
|
||||
|
||||
@@ -11,9 +11,18 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a BasicIrDisplay
|
||||
/// </summary>
|
||||
public class BasicIrDisplay : DisplayBase, IBasicVolumeControls, IBridgeAdvanced
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPort
|
||||
/// </summary>
|
||||
public IrOutputPortController IrPort { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPulseTime
|
||||
/// </summary>
|
||||
public ushort IrPulseTime { get; set; }
|
||||
|
||||
protected Func<bool> PowerIsOnFeedbackFunc
|
||||
@@ -61,36 +70,57 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hdmi1 method
|
||||
/// </summary>
|
||||
public void Hdmi1()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_HDMI_1, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hdmi2 method
|
||||
/// </summary>
|
||||
public void Hdmi2()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_HDMI_2, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hdmi3 method
|
||||
/// </summary>
|
||||
public void Hdmi3()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_HDMI_3, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hdmi4 method
|
||||
/// </summary>
|
||||
public void Hdmi4()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_HDMI_4, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Component1 method
|
||||
/// </summary>
|
||||
public void Component1()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_COMPONENT_1, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Video1 method
|
||||
/// </summary>
|
||||
public void Video1()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_VIDEO_1, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Antenna method
|
||||
/// </summary>
|
||||
public void Antenna()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_ANTENNA, IrPulseTime);
|
||||
@@ -98,18 +128,28 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
|
||||
#region IPower Members
|
||||
|
||||
/// <summary>
|
||||
/// PowerOn method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void PowerOn()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_POWER_ON, IrPulseTime);
|
||||
_PowerIsOn = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerOff method
|
||||
/// </summary>
|
||||
public override void PowerOff()
|
||||
{
|
||||
_PowerIsOn = false;
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_POWER_OFF, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerToggle method
|
||||
/// </summary>
|
||||
public override void PowerToggle()
|
||||
{
|
||||
_PowerIsOn = false;
|
||||
@@ -120,16 +160,25 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
|
||||
#region IBasicVolumeControls Members
|
||||
|
||||
/// <summary>
|
||||
/// VolumeUp method
|
||||
/// </summary>
|
||||
public void VolumeUp(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_VOL_PLUS, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// VolumeDown method
|
||||
/// </summary>
|
||||
public void VolumeDown(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_VOL_MINUS, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MuteToggle method
|
||||
/// </summary>
|
||||
public void MuteToggle()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_MUTE, 200);
|
||||
@@ -164,6 +213,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
/// Typically called by the discovery routing algorithm.
|
||||
/// </summary>
|
||||
/// <param name="inputSelector">A delegate containing the input selector method to call</param>
|
||||
/// <summary>
|
||||
/// ExecuteSwitch method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void ExecuteSwitch(object inputSelector)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Verbose, this, "Switching to input '{0}'", (inputSelector as Action).ToString());
|
||||
@@ -193,12 +246,18 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a BasicIrDisplayFactory
|
||||
/// </summary>
|
||||
public class BasicIrDisplayFactory : EssentialsDeviceFactory<BasicIrDisplay>
|
||||
{
|
||||
public BasicIrDisplayFactory()
|
||||
@@ -206,6 +265,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
TypeNames = new List<string>() { "basicirdisplay" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new BasicIrDisplay Device");
|
||||
|
||||
@@ -52,9 +52,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
/// </summary>
|
||||
public event SourceInfoChangeHandler CurrentSourceChange;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the key of the current source information.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentSourceInfoKey
|
||||
/// </summary>
|
||||
public string CurrentSourceInfoKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -94,24 +94,24 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
/// </summary>
|
||||
public BoolFeedback IsCoolingDownFeedback { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets feedback indicating whether the display is currently warming up after being powered on.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the IsWarmingUpFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback IsWarmingUpFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the usage tracking instance for monitoring display usage statistics.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the warmup time in milliseconds for the display to become ready after power on.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the WarmupTime
|
||||
/// </summary>
|
||||
public uint WarmupTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the cooldown time in milliseconds for the display to fully power down.
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the CooldownTime
|
||||
/// </summary>
|
||||
public uint CooldownTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -189,6 +189,7 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
/// <summary>
|
||||
/// Gets the collection of feedback objects for this display device.
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public virtual FeedbackCollection<Feedback> Feedbacks
|
||||
{
|
||||
get
|
||||
|
||||
@@ -6,12 +6,33 @@ using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Displays
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputHdmi1
|
||||
/// </summary>
|
||||
public interface IInputHdmi1 { void InputHdmi1(); }
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputHdmi2
|
||||
/// </summary>
|
||||
public interface IInputHdmi2 { void InputHdmi2(); }
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputHdmi3
|
||||
/// </summary>
|
||||
public interface IInputHdmi3 { void InputHdmi3(); }
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputHdmi4
|
||||
/// </summary>
|
||||
public interface IInputHdmi4 { void InputHdmi4(); }
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputDisplayPort1
|
||||
/// </summary>
|
||||
public interface IInputDisplayPort1 { void InputDisplayPort1(); }
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputDisplayPort2
|
||||
/// </summary>
|
||||
public interface IInputDisplayPort2 { void InputDisplayPort2(); }
|
||||
/// <summary>
|
||||
/// Defines the contract for IInputVga1
|
||||
/// </summary>
|
||||
public interface IInputVga1 { void InputVga1(); }
|
||||
|
||||
}
|
||||
@@ -12,8 +12,14 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockDisplay
|
||||
/// </summary>
|
||||
public class MockDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, IBridgeAdvanced, IHasInputs<string>, IRoutingSinkWithSwitchingWithInputPort, IHasPowerControlWithFeedback
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Inputs
|
||||
/// </summary>
|
||||
public ISelectableItems<string> Inputs { get; private set; }
|
||||
|
||||
bool _PowerIsOn;
|
||||
@@ -92,6 +98,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
CooldownTime = 10000;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerOn method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void PowerOn()
|
||||
{
|
||||
if (!PowerIsOnFeedback.BoolValue && !_IsWarmingUp && !_IsCoolingDown)
|
||||
@@ -109,6 +119,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerOff method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void PowerOff()
|
||||
{
|
||||
// If a display has unreliable-power off feedback, just override this and
|
||||
@@ -129,6 +143,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerToggle method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void PowerToggle()
|
||||
{
|
||||
if (PowerIsOnFeedback.BoolValue && !IsWarmingUpFeedback.BoolValue)
|
||||
@@ -137,6 +155,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
PowerOn();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ExecuteSwitch method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void ExecuteSwitch(object selector)
|
||||
{
|
||||
try
|
||||
@@ -174,6 +196,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetInput method
|
||||
/// </summary>
|
||||
public void SetInput(string selector)
|
||||
{
|
||||
ISelectableItem currentInput = null;
|
||||
@@ -202,26 +227,41 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
|
||||
#region IBasicVolumeWithFeedback Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the VolumeLevelFeedback
|
||||
/// </summary>
|
||||
public IntFeedback VolumeLevelFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// SetVolume method
|
||||
/// </summary>
|
||||
public void SetVolume(ushort level)
|
||||
{
|
||||
_FakeVolumeLevel = level;
|
||||
VolumeLevelFeedback.InvokeFireUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MuteOn method
|
||||
/// </summary>
|
||||
public void MuteOn()
|
||||
{
|
||||
_IsMuted = true;
|
||||
MuteFeedback.InvokeFireUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MuteOff method
|
||||
/// </summary>
|
||||
public void MuteOff()
|
||||
{
|
||||
_IsMuted = false;
|
||||
MuteFeedback.InvokeFireUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the MuteFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback MuteFeedback { get; private set; }
|
||||
|
||||
|
||||
@@ -229,6 +269,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
|
||||
#region IBasicVolumeControls Members
|
||||
|
||||
/// <summary>
|
||||
/// VolumeUp method
|
||||
/// </summary>
|
||||
public void VolumeUp(bool pressRelease)
|
||||
{
|
||||
//while (pressRelease)
|
||||
@@ -243,6 +286,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
//}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// VolumeDown method
|
||||
/// </summary>
|
||||
public void VolumeDown(bool pressRelease)
|
||||
{
|
||||
//while (pressRelease)
|
||||
@@ -257,6 +303,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
//}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MuteToggle method
|
||||
/// </summary>
|
||||
public void MuteToggle()
|
||||
{
|
||||
_IsMuted = !_IsMuted;
|
||||
@@ -265,12 +314,18 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MockDisplayFactory
|
||||
/// </summary>
|
||||
public class MockDisplayFactory : EssentialsDeviceFactory<MockDisplay>
|
||||
{
|
||||
public MockDisplayFactory()
|
||||
@@ -278,6 +333,10 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
TypeNames = new List<string>() { "mockdisplay" , "mockdisplay2" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Mock Display Device");
|
||||
|
||||
@@ -8,6 +8,9 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockDisplayInputs
|
||||
/// </summary>
|
||||
public class MockDisplayInputs : ISelectableItems<string>
|
||||
{
|
||||
private Dictionary<string, ISelectableItem> _items;
|
||||
@@ -52,6 +55,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
public event EventHandler CurrentItemChanged;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MockDisplayInput
|
||||
/// </summary>
|
||||
public class MockDisplayInput : ISelectableItem
|
||||
{
|
||||
private MockDisplay _parent;
|
||||
@@ -75,8 +81,14 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Name
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Key
|
||||
/// </summary>
|
||||
public string Key { get; set; }
|
||||
|
||||
public event EventHandler ItemUpdated;
|
||||
@@ -88,6 +100,9 @@ namespace PepperDash.Essentials.Devices.Common.Displays
|
||||
_parent = parent;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Select method
|
||||
/// </summary>
|
||||
public void Select()
|
||||
{
|
||||
if (!_parent.PowerIsOnFeedback.BoolValue) _parent.PowerOn();
|
||||
|
||||
@@ -41,10 +41,22 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
}
|
||||
|
||||
private bool _isInUpPosition { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Type
|
||||
/// </summary>
|
||||
public eScreenLiftControlType Type { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Mode
|
||||
/// </summary>
|
||||
public eScreenLiftControlMode Mode { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayDeviceKey
|
||||
/// </summary>
|
||||
public string DisplayDeviceKey { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the IsInUpPosition
|
||||
/// </summary>
|
||||
public BoolFeedback IsInUpPosition { get; private set; }
|
||||
|
||||
public event EventHandler<EventArgs> PositionChanged;
|
||||
@@ -97,6 +109,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CustomActivate method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override bool CustomActivate()
|
||||
{
|
||||
//Create ISwitchedOutput objects based on props
|
||||
@@ -131,6 +147,9 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
return base.CustomActivate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raise method
|
||||
/// </summary>
|
||||
public void Raise()
|
||||
{
|
||||
if (RaiseRelay == null && LatchedRelay == null) return;
|
||||
@@ -153,6 +172,9 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
InUpPosition = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lower method
|
||||
/// </summary>
|
||||
public void Lower()
|
||||
{
|
||||
if (LowerRelay == null && LatchedRelay == null) return;
|
||||
@@ -216,32 +238,56 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ScreenLiftControllerConfigProperties
|
||||
/// </summary>
|
||||
public class ScreenLiftControllerConfigProperties
|
||||
{
|
||||
[JsonProperty("displayDeviceKey")]
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayDeviceKey
|
||||
/// </summary>
|
||||
public string DisplayDeviceKey { get; set; }
|
||||
|
||||
[JsonProperty("type")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the Type
|
||||
/// </summary>
|
||||
public eScreenLiftControlType Type { get; set; }
|
||||
|
||||
[JsonProperty("mode")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
/// <summary>
|
||||
/// Gets or sets the Mode
|
||||
/// </summary>
|
||||
public eScreenLiftControlMode Mode { get; set; }
|
||||
|
||||
[JsonProperty("relays")]
|
||||
public Dictionary<string,ScreenLiftRelaysConfig> Relays { get; set; }
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Represents a ScreenLiftRelaysConfig
|
||||
/// </summary>
|
||||
public class ScreenLiftRelaysConfig
|
||||
{
|
||||
[JsonProperty("deviceKey")]
|
||||
/// <summary>
|
||||
/// Gets or sets the DeviceKey
|
||||
/// </summary>
|
||||
public string DeviceKey { get; set; }
|
||||
|
||||
[JsonProperty("pulseTimeInMs")]
|
||||
/// <summary>
|
||||
/// Gets or sets the PulseTimeInMs
|
||||
/// </summary>
|
||||
public int PulseTimeInMs { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ScreenLiftControllerFactory
|
||||
/// </summary>
|
||||
public class ScreenLiftControllerFactory : EssentialsDeviceFactory<RelayControlledShade>
|
||||
{
|
||||
public ScreenLiftControllerFactory()
|
||||
@@ -249,6 +295,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
TypeNames = new List<string>() { "screenliftcontroller" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Generic Comm Device");
|
||||
@@ -258,6 +308,9 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enumeration of eScreenLiftControlMode values
|
||||
/// </summary>
|
||||
public enum eScreenLiftControlMode
|
||||
{
|
||||
momentary,
|
||||
|
||||
@@ -7,6 +7,9 @@ using System.Collections.Generic;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Generic
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a GenericSink
|
||||
/// </summary>
|
||||
public class GenericSink : EssentialsDevice, IRoutingSinkWithInputPort
|
||||
{
|
||||
public GenericSink(string key, string name) : base(key, name)
|
||||
@@ -18,11 +21,20 @@ namespace PepperDash.Essentials.Devices.Common.Generic
|
||||
InputPorts.Add(inputPort);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the InputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentSourceInfoKey
|
||||
/// </summary>
|
||||
public string CurrentSourceInfoKey { get; set; }
|
||||
|
||||
private SourceListItem _currentSource;
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentSourceInfo
|
||||
/// </summary>
|
||||
public SourceListItem CurrentSourceInfo {
|
||||
get => _currentSource;
|
||||
set {
|
||||
@@ -44,6 +56,9 @@ namespace PepperDash.Essentials.Devices.Common.Generic
|
||||
public event SourceInfoChangeHandler CurrentSourceChange;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a GenericSinkFactory
|
||||
/// </summary>
|
||||
public class GenericSinkFactory : EssentialsDeviceFactory<GenericSink>
|
||||
{
|
||||
public GenericSinkFactory()
|
||||
@@ -51,6 +66,10 @@ namespace PepperDash.Essentials.Devices.Common.Generic
|
||||
TypeNames = new List<string>() { "genericsink", "genericdestination" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Generic Sink Device");
|
||||
|
||||
@@ -13,9 +13,15 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a GenericSource
|
||||
/// </summary>
|
||||
public class GenericSource : EssentialsDevice, IUiDisplayInfo, IRoutingSource, IUsageTracking
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayUiType
|
||||
/// </summary>
|
||||
public uint DisplayUiType { get { return DisplayUiConstants.TypeNoControls; } }
|
||||
|
||||
public GenericSource(string key, string name)
|
||||
@@ -29,18 +35,30 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region IRoutingOutputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyOut
|
||||
/// </summary>
|
||||
public RoutingOutputPort AnyOut { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region IUsageTracking Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a GenericSourceFactory
|
||||
/// </summary>
|
||||
public class GenericSourceFactory : EssentialsDeviceFactory<GenericSource>
|
||||
{
|
||||
public GenericSourceFactory()
|
||||
@@ -48,6 +66,10 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
TypeNames = new List<string>() { "genericsource" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Generic Source Device");
|
||||
|
||||
@@ -22,10 +22,19 @@ namespace PepperDash.Essentials.Devices.Common.Lighting
|
||||
|
||||
public event EventHandler<LightingSceneChangeEventArgs> LightingSceneChange;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the LightingScenes
|
||||
/// </summary>
|
||||
public List<LightingScene> LightingScenes { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentLightingScene
|
||||
/// </summary>
|
||||
public LightingScene CurrentLightingScene { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentLightingSceneFeedback
|
||||
/// </summary>
|
||||
public IntFeedback CurrentLightingSceneFeedback { get; protected set; }
|
||||
|
||||
#endregion
|
||||
@@ -41,6 +50,9 @@ namespace PepperDash.Essentials.Devices.Common.Lighting
|
||||
|
||||
public abstract void SelectScene(LightingScene scene);
|
||||
|
||||
/// <summary>
|
||||
/// SimulateSceneSelect method
|
||||
/// </summary>
|
||||
public void SimulateSceneSelect(string sceneName)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Simulating selection of scene '{0}'", sceneName);
|
||||
|
||||
@@ -3,6 +3,9 @@ using PepperDash.Essentials.Room.Config;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Room
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IEssentialsHuddleSpaceRoom
|
||||
/// </summary>
|
||||
public interface IEssentialsHuddleSpaceRoom : IEssentialsRoom, IHasCurrentSourceInfoChange, IRunRouteAction, IHasDefaultDisplay, IHasCurrentVolumeControls, IRoomOccupancy,
|
||||
IEmergency, IMicrophonePrivacy
|
||||
{
|
||||
|
||||
@@ -6,6 +6,9 @@ using PepperDash.Essentials.Room.Config;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Room
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IEssentialsHuddleVtc1Room
|
||||
/// </summary>
|
||||
public interface IEssentialsHuddleVtc1Room : IEssentialsRoom, IHasCurrentSourceInfoChange, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasDefaultDisplay, IHasInCallFeedback,
|
||||
IRoomOccupancy, IEmergency, IMicrophonePrivacy
|
||||
{
|
||||
|
||||
@@ -7,6 +7,9 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Room
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IEssentialsRoomPropertiesConfig
|
||||
/// </summary>
|
||||
public interface IEssentialsRoomPropertiesConfig
|
||||
{
|
||||
EssentialsRoomPropertiesConfig PropertiesConfig { get; }
|
||||
|
||||
@@ -8,6 +8,9 @@ using TwoWayDisplayBase = PepperDash.Essentials.Devices.Common.Displays.TwoWayDi
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Room
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IEssentialsTechRoom
|
||||
/// </summary>
|
||||
public interface IEssentialsTechRoom:IEssentialsRoom, ITvPresetsProvider,IBridgeAdvanced,IRunDirectRouteAction
|
||||
{
|
||||
EssentialsTechRoomConfig PropertiesConfig { get; }
|
||||
|
||||
@@ -19,18 +19,45 @@ using Serilog.Events;
|
||||
namespace PepperDash.Essentials.Devices.Common
|
||||
{
|
||||
[Description("Wrapper class for an IR Set Top Box")]
|
||||
/// <summary>
|
||||
/// Represents a IRSetTopBoxBase
|
||||
/// </summary>
|
||||
public class IRSetTopBoxBase : EssentialsBridgeableDevice, ISetTopBoxControls, IRoutingSource, IRoutingOutputs, IUsageTracking, IHasPowerControl, ITvPresetsProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPort
|
||||
/// </summary>
|
||||
public IrOutputPortController IrPort { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayUiType
|
||||
/// </summary>
|
||||
public uint DisplayUiType { get { return DisplayUiConstants.TypeDirecTv; } }
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPulseTime
|
||||
/// </summary>
|
||||
public ushort IrPulseTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the HasPresets
|
||||
/// </summary>
|
||||
public bool HasPresets { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasDvr
|
||||
/// </summary>
|
||||
public bool HasDvr { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasDpad
|
||||
/// </summary>
|
||||
public bool HasDpad { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasNumeric
|
||||
/// </summary>
|
||||
public bool HasNumeric { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the TvPresets
|
||||
/// </summary>
|
||||
public DevicePresetsModel TvPresets { get; private set; }
|
||||
|
||||
public IRSetTopBoxBase(string key, string name, IrOutputPortController portCont,
|
||||
@@ -67,6 +94,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
OutputPorts = new RoutingPortCollection<RoutingOutputPort> { AnyVideoOut, AnyAudioOut };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoadPresets method
|
||||
/// </summary>
|
||||
public void LoadPresets(string filePath)
|
||||
{
|
||||
TvPresets = new DevicePresetsModel(Key + "-presets", this, filePath);
|
||||
@@ -76,11 +106,17 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region ISetTopBoxControls Members
|
||||
|
||||
/// <summary>
|
||||
/// DvrList method
|
||||
/// </summary>
|
||||
public void DvrList(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_DVR, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Replay method
|
||||
/// </summary>
|
||||
public void Replay(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_REPLAY, pressRelease);
|
||||
@@ -90,36 +126,57 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region IDPad Members
|
||||
|
||||
/// <summary>
|
||||
/// Up method
|
||||
/// </summary>
|
||||
public void Up(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_UP_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Down method
|
||||
/// </summary>
|
||||
public void Down(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_DN_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Left method
|
||||
/// </summary>
|
||||
public void Left(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_LEFT_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Right method
|
||||
/// </summary>
|
||||
public void Right(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RIGHT_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Select method
|
||||
/// </summary>
|
||||
public void Select(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_ENTER, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Menu method
|
||||
/// </summary>
|
||||
public void Menu(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_MENU, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Exit method
|
||||
/// </summary>
|
||||
public void Exit(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_EXIT, pressRelease);
|
||||
@@ -129,59 +186,89 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region INumericKeypad Members
|
||||
|
||||
/// <summary>
|
||||
/// Digit0 method
|
||||
/// </summary>
|
||||
public void Digit0(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_0, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit1 method
|
||||
/// </summary>
|
||||
public void Digit1(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_1, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit2 method
|
||||
/// </summary>
|
||||
public void Digit2(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_2, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit3 method
|
||||
/// </summary>
|
||||
public void Digit3(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_3, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit4 method
|
||||
/// </summary>
|
||||
public void Digit4(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_4, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit5 method
|
||||
/// </summary>
|
||||
public void Digit5(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_5, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit6 method
|
||||
/// </summary>
|
||||
public void Digit6(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_6, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit7 method
|
||||
/// </summary>
|
||||
public void Digit7(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_7, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit8 method
|
||||
/// </summary>
|
||||
public void Digit8(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_8, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Digit9 method
|
||||
/// </summary>
|
||||
public void Digit9(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_9, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defaults to true
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the HasKeypadAccessoryButton1
|
||||
/// </summary>
|
||||
public bool HasKeypadAccessoryButton1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -200,9 +287,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
IrPort.PressRelease(KeypadAccessoryButton1Command, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defaults to true
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the HasKeypadAccessoryButton2
|
||||
/// </summary>
|
||||
public bool HasKeypadAccessoryButton2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -225,9 +312,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region ISetTopBoxNumericKeypad Members
|
||||
|
||||
/// <summary>
|
||||
/// Corresponds to "dash" IR command
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Dash method
|
||||
/// </summary>
|
||||
public void Dash(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease("dash", pressRelease);
|
||||
@@ -250,21 +337,33 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_CH_PLUS, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ChannelDown method
|
||||
/// </summary>
|
||||
public void ChannelDown(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_CH_MINUS, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LastChannel method
|
||||
/// </summary>
|
||||
public void LastChannel(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_LAST, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Guide method
|
||||
/// </summary>
|
||||
public void Guide(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_GUIDE, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Info method
|
||||
/// </summary>
|
||||
public void Info(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_INFO, pressRelease);
|
||||
@@ -274,21 +373,33 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region IColorFunctions Members
|
||||
|
||||
/// <summary>
|
||||
/// Red method
|
||||
/// </summary>
|
||||
public void Red(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RED, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Green method
|
||||
/// </summary>
|
||||
public void Green(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_GREEN, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Yellow method
|
||||
/// </summary>
|
||||
public void Yellow(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_YELLOW, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Blue method
|
||||
/// </summary>
|
||||
public void Blue(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_BLUE, pressRelease);
|
||||
@@ -298,48 +409,81 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region IRoutingOutputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyVideoOut
|
||||
/// </summary>
|
||||
public RoutingOutputPort AnyVideoOut { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyAudioOut
|
||||
/// </summary>
|
||||
public RoutingOutputPort AnyAudioOut { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region ITransport Members
|
||||
|
||||
/// <summary>
|
||||
/// ChapMinus method
|
||||
/// </summary>
|
||||
public void ChapMinus(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_REPLAY, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ChapPlus method
|
||||
/// </summary>
|
||||
public void ChapPlus(bool pressRelease)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FFwd method
|
||||
/// </summary>
|
||||
public void FFwd(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_FSCAN, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Pause method
|
||||
/// </summary>
|
||||
public void Pause(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RSCAN, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Play method
|
||||
/// </summary>
|
||||
public void Play(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_PLAY, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Record method
|
||||
/// </summary>
|
||||
public void Record(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RECORD, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Rewind method
|
||||
/// </summary>
|
||||
public void Rewind(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RSCAN, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stop method
|
||||
/// </summary>
|
||||
public void Stop(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_STOP, pressRelease);
|
||||
@@ -349,22 +493,34 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region IUsageTracking Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region IPower Members
|
||||
|
||||
/// <summary>
|
||||
/// PowerOn method
|
||||
/// </summary>
|
||||
public void PowerOn()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_POWER_ON, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerOff method
|
||||
/// </summary>
|
||||
public void PowerOff()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_POWER_OFF, IrPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PowerToggle method
|
||||
/// </summary>
|
||||
public void PowerToggle()
|
||||
{
|
||||
IrPort.Pulse(IROutputStandardCommands.IROut_POWER, IrPulseTime);
|
||||
@@ -372,6 +528,10 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
var joinMap = new SetTopBoxControllerJoinMap(joinStart);
|
||||
@@ -495,6 +655,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a IRSetTopBoxBaseFactory
|
||||
/// </summary>
|
||||
public class IRSetTopBoxBaseFactory : EssentialsDeviceFactory<IRSetTopBoxBase>
|
||||
{
|
||||
public IRSetTopBoxBaseFactory()
|
||||
@@ -502,6 +665,10 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
TypeNames = new List<string>() { "settopbox" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new SetTopBox Device");
|
||||
|
||||
@@ -8,14 +8,35 @@ using PepperDash.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a SetTopBoxPropertiesConfig
|
||||
/// </summary>
|
||||
public class SetTopBoxPropertiesConfig : PepperDash.Essentials.Core.Config.SourceDevicePropertiesConfigBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the HasPresets
|
||||
/// </summary>
|
||||
public bool HasPresets { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasDvr
|
||||
/// </summary>
|
||||
public bool HasDvr { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasDpad
|
||||
/// </summary>
|
||||
public bool HasDpad { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasNumeric
|
||||
/// </summary>
|
||||
public bool HasNumeric { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPulseTime
|
||||
/// </summary>
|
||||
public int IrPulseTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Control
|
||||
/// </summary>
|
||||
public ControlPropertiesConfig Control { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,9 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
|
||||
int RelayPulseTime;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the StopOrPresetButtonLabel
|
||||
/// </summary>
|
||||
public string StopOrPresetButtonLabel { get; set; }
|
||||
|
||||
public RelayControlledShade(string key, string name, RelayControlledShadeConfigProperties config)
|
||||
@@ -35,6 +38,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CustomActivate method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override bool CustomActivate()
|
||||
{
|
||||
//Create ISwitchedOutput objects based on props
|
||||
@@ -46,6 +53,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
return base.CustomActivate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Open method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void Open()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Opening Shade: '{0}'", this.Name);
|
||||
@@ -53,6 +64,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
PulseOutput(OpenRelay, RelayPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stop method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void Stop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Shade: '{0}'", this.Name);
|
||||
@@ -60,6 +75,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
PulseOutput(StopOrPresetRelay, RelayPulseTime);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Close method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void Close()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Closing Shade: '{0}'", this.Name);
|
||||
@@ -95,20 +114,47 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a RelayControlledShadeConfigProperties
|
||||
/// </summary>
|
||||
public class RelayControlledShadeConfigProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the RelayPulseTime
|
||||
/// </summary>
|
||||
public int RelayPulseTime { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Relays
|
||||
/// </summary>
|
||||
public ShadeRelaysConfig Relays { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the StopOrPresetLabel
|
||||
/// </summary>
|
||||
public string StopOrPresetLabel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ShadeRelaysConfig
|
||||
/// </summary>
|
||||
public class ShadeRelaysConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Open
|
||||
/// </summary>
|
||||
public IOPortConfig Open { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the StopOrPreset
|
||||
/// </summary>
|
||||
public IOPortConfig StopOrPreset { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Close
|
||||
/// </summary>
|
||||
public IOPortConfig Close { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a RelayControlledShadeFactory
|
||||
/// </summary>
|
||||
public class RelayControlledShadeFactory : EssentialsDeviceFactory<RelayControlledShade>
|
||||
{
|
||||
public RelayControlledShadeFactory()
|
||||
@@ -116,6 +162,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
TypeNames = new List<string>() { "relaycontrolledshade" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Generic Comm Device");
|
||||
|
||||
@@ -24,6 +24,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
Shades = new List<IShadesOpenCloseStop>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CustomActivate method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override bool CustomActivate()
|
||||
{
|
||||
foreach (var shadeConfig in Config.Shades)
|
||||
@@ -44,17 +48,32 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ShadeControllerConfigProperties
|
||||
/// </summary>
|
||||
public class ShadeControllerConfigProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Shades
|
||||
/// </summary>
|
||||
public List<ShadeConfig> Shades { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ShadeConfig
|
||||
/// </summary>
|
||||
public class ShadeConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Key
|
||||
/// </summary>
|
||||
public string Key { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ShadeControllerFactory
|
||||
/// </summary>
|
||||
public class ShadeControllerFactory : EssentialsDeviceFactory<ShadeController>
|
||||
{
|
||||
public ShadeControllerFactory()
|
||||
@@ -62,6 +81,10 @@ namespace PepperDash.Essentials.Devices.Common.Shades
|
||||
TypeNames = new List<string>() { "shadecontroller" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new ShadeController Device");
|
||||
|
||||
@@ -11,15 +11,24 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a BlueJeansPc
|
||||
/// </summary>
|
||||
public class BlueJeansPc : InRoomPc, IRunRouteAction, IRoutingSink
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyVideoIn
|
||||
/// </summary>
|
||||
public RoutingInputPort AnyVideoIn { get; private set; }
|
||||
|
||||
public RoutingInputPort CurrentInputPort => AnyVideoIn;
|
||||
|
||||
#region IRoutingInputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the InputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
@@ -35,11 +44,17 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
|
||||
#region IRunRouteAction Members
|
||||
|
||||
/// <summary>
|
||||
/// RunRouteAction method
|
||||
/// </summary>
|
||||
public void RunRouteAction(string routeKey, string sourceListKey)
|
||||
{
|
||||
RunRouteAction(routeKey, sourceListKey, null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// RunRouteAction method
|
||||
/// </summary>
|
||||
public void RunRouteAction(string routeKey, string sourceListKey, Action successCallback)
|
||||
{
|
||||
CrestronInvoke.BeginInvoke(o =>
|
||||
@@ -128,6 +143,9 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
|
||||
#region IHasCurrentSourceInfoChange Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentSourceInfoKey
|
||||
/// </summary>
|
||||
public string CurrentSourceInfoKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -164,6 +182,9 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a BlueJeansPcFactory
|
||||
/// </summary>
|
||||
public class BlueJeansPcFactory : EssentialsDeviceFactory<BlueJeansPc>
|
||||
{
|
||||
public BlueJeansPcFactory()
|
||||
@@ -171,6 +192,10 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
TypeNames = new List<string>() { "bluejeanspc" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new BlueJeansPc Device");
|
||||
|
||||
@@ -8,10 +8,16 @@ using System.Linq;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a GenericSoftCodec
|
||||
/// </summary>
|
||||
public class GenericSoftCodec : EssentialsDevice, IRoutingSource, IRoutingSinkWithSwitchingWithInputPort
|
||||
{
|
||||
private RoutingInputPort _currentInputPort;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentInputPort
|
||||
/// </summary>
|
||||
public RoutingInputPort CurrentInputPort {
|
||||
get => _currentInputPort;
|
||||
set
|
||||
@@ -54,9 +60,18 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the InputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentSourceInfoKey
|
||||
/// </summary>
|
||||
public string CurrentSourceInfoKey { get ; set; }
|
||||
public SourceListItem CurrentSourceInfo
|
||||
{
|
||||
@@ -85,6 +100,9 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
public event SourceInfoChangeHandler CurrentSourceChange;
|
||||
public event InputChangedEventHandler InputChanged;
|
||||
|
||||
/// <summary>
|
||||
/// ExecuteSwitch method
|
||||
/// </summary>
|
||||
public void ExecuteSwitch(object inputSelector)
|
||||
{
|
||||
var inputPort = InputPorts.FirstOrDefault(p => p.Selector == inputSelector);
|
||||
@@ -99,21 +117,39 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a GenericSoftCodecProperties
|
||||
/// </summary>
|
||||
public class GenericSoftCodecProperties
|
||||
{
|
||||
[JsonProperty("hasCameraInputs")]
|
||||
/// <summary>
|
||||
/// Gets or sets the HasCameraInputs
|
||||
/// </summary>
|
||||
public bool HasCameraInputs { get; set; }
|
||||
|
||||
[JsonProperty("cameraInputCount")]
|
||||
/// <summary>
|
||||
/// Gets or sets the CameraInputCount
|
||||
/// </summary>
|
||||
public int CameraInputCount { get; set; }
|
||||
|
||||
[JsonProperty("contentInputCount")]
|
||||
/// <summary>
|
||||
/// Gets or sets the ContentInputCount
|
||||
/// </summary>
|
||||
public int ContentInputCount { get; set; }
|
||||
|
||||
[JsonProperty("contentOutputCount")]
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputCount
|
||||
/// </summary>
|
||||
public int OutputCount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a GenericSoftCodecFactory
|
||||
/// </summary>
|
||||
public class GenericSoftCodecFactory: EssentialsDeviceFactory<GenericSoftCodec>
|
||||
{
|
||||
public GenericSoftCodecFactory()
|
||||
@@ -121,6 +157,10 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
|
||||
TypeNames = new List<string> { "genericsoftcodec" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Attempting to create new Generic SoftCodec Device");
|
||||
|
||||
@@ -7,19 +7,34 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Sources
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a InRoomPc
|
||||
/// </summary>
|
||||
public class InRoomPc : EssentialsDevice, IHasFeedback, IRoutingSource, IRoutingOutputs, IAttachVideoStatus, IUiDisplayInfo, IUsageTracking
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayUiType
|
||||
/// </summary>
|
||||
public uint DisplayUiType { get { return DisplayUiConstants.TypeLaptop; } }
|
||||
/// <summary>
|
||||
/// Gets or sets the IconName
|
||||
/// </summary>
|
||||
public string IconName { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasPowerOnFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback HasPowerOnFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyVideoOut
|
||||
/// </summary>
|
||||
public RoutingOutputPort AnyVideoOut { get; private set; }
|
||||
|
||||
#region IRoutingOutputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Options: hdmi
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
@@ -54,11 +69,17 @@ namespace PepperDash.Essentials.Devices.Common.Sources
|
||||
|
||||
#region IUsageTracking Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a InRoomPcFactory
|
||||
/// </summary>
|
||||
public class InRoomPcFactory : EssentialsDeviceFactory<InRoomPc>
|
||||
{
|
||||
public InRoomPcFactory()
|
||||
@@ -66,6 +87,10 @@ namespace PepperDash.Essentials.Devices.Common.Sources
|
||||
TypeNames = new List<string>() { "inroompc" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new InRoomPc Device");
|
||||
|
||||
@@ -7,19 +7,34 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Sources
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a Laptop
|
||||
/// </summary>
|
||||
public class Laptop : EssentialsDevice, IHasFeedback, IRoutingSource, IRoutingOutputs, IAttachVideoStatus, IUiDisplayInfo, IUsageTracking
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayUiType
|
||||
/// </summary>
|
||||
public uint DisplayUiType { get { return DisplayUiConstants.TypeLaptop; } }
|
||||
/// <summary>
|
||||
/// Gets or sets the IconName
|
||||
/// </summary>
|
||||
public string IconName { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HasPowerOnFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback HasPowerOnFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AnyVideoOut
|
||||
/// </summary>
|
||||
public RoutingOutputPort AnyVideoOut { get; private set; }
|
||||
|
||||
#region IRoutingOutputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Options: hdmi
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
@@ -58,11 +73,17 @@ namespace PepperDash.Essentials.Devices.Common.Sources
|
||||
|
||||
#region IUsageTracking Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a LaptopFactory
|
||||
/// </summary>
|
||||
public class LaptopFactory : EssentialsDeviceFactory<Laptop>
|
||||
{
|
||||
public LaptopFactory()
|
||||
@@ -70,6 +91,10 @@ namespace PepperDash.Essentials.Devices.Common.Sources
|
||||
TypeNames = new List<string>() { "laptop" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Laptop Device");
|
||||
|
||||
@@ -18,11 +18,20 @@ using Serilog.Events;
|
||||
namespace PepperDash.Essentials.Devices.Common
|
||||
{
|
||||
[Description("Wrapper class for an IR-Controlled AppleTV")]
|
||||
/// <summary>
|
||||
/// Represents a AppleTV
|
||||
/// </summary>
|
||||
public class AppleTV : EssentialsBridgeableDevice, IDPad, ITransport, IUiDisplayInfo, IRoutingSource, IRoutingOutputs
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPort
|
||||
/// </summary>
|
||||
public IrOutputPortController IrPort { get; private set; }
|
||||
public const string StandardDriverName = "Apple_AppleTV_4th_Gen_Essentials.ir";
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayUiType
|
||||
/// </summary>
|
||||
public uint DisplayUiType { get { return DisplayUiConstants.TypeAppleTv; } }
|
||||
|
||||
public AppleTV(string key, string name, IrOutputPortController portCont)
|
||||
@@ -40,6 +49,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
PrintExpectedIrCommands();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PrintExpectedIrCommands method
|
||||
/// </summary>
|
||||
public void PrintExpectedIrCommands()
|
||||
{
|
||||
var cmds = typeof (AppleTvIrCommands).GetFields(BindingFlags.Public | BindingFlags.Static);
|
||||
@@ -52,36 +64,57 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region IDPad Members
|
||||
|
||||
/// <summary>
|
||||
/// Up method
|
||||
/// </summary>
|
||||
public void Up(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.Up, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Down method
|
||||
/// </summary>
|
||||
public void Down(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.Down, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Left method
|
||||
/// </summary>
|
||||
public void Left(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.Left, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Right method
|
||||
/// </summary>
|
||||
public void Right(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.Right, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Select method
|
||||
/// </summary>
|
||||
public void Select(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.Enter, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Menu method
|
||||
/// </summary>
|
||||
public void Menu(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.Menu, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Exit method
|
||||
/// </summary>
|
||||
public void Exit(bool pressRelease)
|
||||
{
|
||||
|
||||
@@ -91,11 +124,17 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
#region ITransport Members
|
||||
|
||||
/// <summary>
|
||||
/// Play method
|
||||
/// </summary>
|
||||
public void Play(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.PlayPause, pressRelease);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Pause method
|
||||
/// </summary>
|
||||
public void Pause(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(AppleTvIrCommands.PlayPause, pressRelease);
|
||||
@@ -105,6 +144,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
/// Not implemented
|
||||
/// </summary>
|
||||
/// <param name="pressRelease"></param>
|
||||
/// <summary>
|
||||
/// Rewind method
|
||||
/// </summary>
|
||||
public void Rewind(bool pressRelease)
|
||||
{
|
||||
}
|
||||
@@ -155,10 +197,16 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
public RoutingOutputPort HdmiOut { get; private set; }
|
||||
public RoutingOutputPort AnyAudioOut { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
var joinMap = new AppleTvJoinMap(joinStart);
|
||||
@@ -190,6 +238,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a AppleTVFactory
|
||||
/// </summary>
|
||||
public class AppleTVFactory : EssentialsDeviceFactory<AppleTV>
|
||||
{
|
||||
public AppleTVFactory()
|
||||
@@ -197,6 +248,10 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
TypeNames = new List<string>() { "appletv" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new AppleTV Device");
|
||||
|
||||
@@ -14,12 +14,21 @@ using Serilog.Events;
|
||||
namespace PepperDash.Essentials.Devices.Common
|
||||
{
|
||||
[Description("Wrapper class for an IR-Controlled Roku")]
|
||||
/// <summary>
|
||||
/// Represents a Roku2
|
||||
/// </summary>
|
||||
public class Roku2 : EssentialsDevice, IDPad, ITransport, IUiDisplayInfo, IRoutingSource, IRoutingOutputs
|
||||
{
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Gets or sets the IrPort
|
||||
/// </summary>
|
||||
public IrOutputPortController IrPort { get; private set; }
|
||||
public const string StandardDriverName = "Roku XD_S.ir";
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayUiType
|
||||
/// </summary>
|
||||
public uint DisplayUiType { get { return DisplayUiConstants.TypeRoku; } }
|
||||
|
||||
public Roku2(string key, string name, IrOutputPortController portCont)
|
||||
@@ -36,42 +45,63 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
#region IDPad Members
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Up method
|
||||
/// </summary>
|
||||
public void Up(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_UP_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Down method
|
||||
/// </summary>
|
||||
public void Down(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_DN_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Left method
|
||||
/// </summary>
|
||||
public void Left(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_LEFT_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Right method
|
||||
/// </summary>
|
||||
public void Right(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RIGHT_ARROW, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Select method
|
||||
/// </summary>
|
||||
public void Select(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_ENTER, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Menu method
|
||||
/// </summary>
|
||||
public void Menu(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_MENU, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Exit method
|
||||
/// </summary>
|
||||
public void Exit(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_EXIT, pressRelease);
|
||||
@@ -82,24 +112,36 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
#region ITransport Members
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Play method
|
||||
/// </summary>
|
||||
public void Play(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_PLAY, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Pause method
|
||||
/// </summary>
|
||||
public void Pause(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_PAUSE, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// Rewind method
|
||||
/// </summary>
|
||||
public void Rewind(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_RSCAN, pressRelease);
|
||||
}
|
||||
|
||||
[Api]
|
||||
/// <summary>
|
||||
/// FFwd method
|
||||
/// </summary>
|
||||
public void FFwd(bool pressRelease)
|
||||
{
|
||||
IrPort.PressRelease(IROutputStandardCommands.IROut_FSCAN, pressRelease);
|
||||
@@ -109,6 +151,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
/// Not implemented
|
||||
/// </summary>
|
||||
/// <param name="pressRelease"></param>
|
||||
/// <summary>
|
||||
/// ChapMinus method
|
||||
/// </summary>
|
||||
public void ChapMinus(bool pressRelease)
|
||||
{
|
||||
}
|
||||
@@ -148,6 +193,9 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Roku2Factory
|
||||
/// </summary>
|
||||
public class Roku2Factory : EssentialsDeviceFactory<Roku2>
|
||||
{
|
||||
public Roku2Factory()
|
||||
@@ -155,6 +203,10 @@ namespace PepperDash.Essentials.Devices.Common
|
||||
TypeNames = new List<string>() { "roku" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new Roku Device");
|
||||
|
||||
@@ -6,91 +6,217 @@ using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a CiscoCallHistory
|
||||
/// </summary>
|
||||
public class CiscoCallHistory
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a CallbackNumber
|
||||
/// </summary>
|
||||
public class CallbackNumber
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a DisplayName
|
||||
/// </summary>
|
||||
public class DisplayName
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a LastOccurrenceStartTime
|
||||
/// </summary>
|
||||
public class LastOccurrenceStartTime
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public DateTime Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a LastOccurrenceDaysAgo
|
||||
/// </summary>
|
||||
public class LastOccurrenceDaysAgo
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a LastOccurrenceHistoryId
|
||||
/// </summary>
|
||||
public class LastOccurrenceHistoryId
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a OccurrenceType
|
||||
/// </summary>
|
||||
public class OccurrenceType
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a IsAcknowledged
|
||||
/// </summary>
|
||||
public class IsAcknowledged
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a OccurrenceCount
|
||||
/// </summary>
|
||||
public class OccurrenceCount
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Entry
|
||||
/// </summary>
|
||||
public class Entry
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the id
|
||||
/// </summary>
|
||||
public string id { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the CallbackNumber
|
||||
/// </summary>
|
||||
public CallbackNumber CallbackNumber { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayName
|
||||
/// </summary>
|
||||
public DisplayName DisplayName { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the LastOccurrenceStartTime
|
||||
/// </summary>
|
||||
public LastOccurrenceStartTime LastOccurrenceStartTime { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the LastOccurrenceDaysAgo
|
||||
/// </summary>
|
||||
public LastOccurrenceDaysAgo LastOccurrenceDaysAgo { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the LastOccurrenceHistoryId
|
||||
/// </summary>
|
||||
public LastOccurrenceHistoryId LastOccurrenceHistoryId { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the OccurrenceType
|
||||
/// </summary>
|
||||
public OccurrenceType OccurrenceType { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the IsAcknowledged
|
||||
/// </summary>
|
||||
public IsAcknowledged IsAcknowledged { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the OccurrenceCount
|
||||
/// </summary>
|
||||
public OccurrenceCount OccurrenceCount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Offset
|
||||
/// </summary>
|
||||
public class Offset
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Limit
|
||||
/// </summary>
|
||||
public class Limit
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Value
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a ResultInfo
|
||||
/// </summary>
|
||||
public class ResultInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Offset
|
||||
/// </summary>
|
||||
public Offset Offset { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Limit
|
||||
/// </summary>
|
||||
public Limit Limit { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CallHistoryRecentsResult
|
||||
/// </summary>
|
||||
public class CallHistoryRecentsResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the status
|
||||
/// </summary>
|
||||
public string status { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Entry
|
||||
/// </summary>
|
||||
public List<Entry> Entry { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the ResultInfo
|
||||
/// </summary>
|
||||
public ResultInfo ResultInfo { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CommandResponse
|
||||
/// </summary>
|
||||
public class CommandResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the CallHistoryRecentsResult
|
||||
/// </summary>
|
||||
public CallHistoryRecentsResult CallHistoryRecentsResult { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a RootObject
|
||||
/// </summary>
|
||||
public class RootObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the CommandResponse
|
||||
/// </summary>
|
||||
public CommandResponse CommandResponse { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a room preset on a video codec. Typically stores camera position(s) and video routing. Can be recalled by Far End if enabled.
|
||||
/// Represents a CodecRoomPreset
|
||||
/// </summary>
|
||||
public class CodecRoomPreset : PresetBase
|
||||
{
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eExternalSourceMode values
|
||||
/// </summary>
|
||||
public enum eExternalSourceMode {Ready, NotReady, Hidden, Error}
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eExternalSourceType values
|
||||
/// </summary>
|
||||
public enum eExternalSourceType {camera, desktop, document_camera, mediaplayer, PC, whiteboard, other}
|
||||
}
|
||||
@@ -21,12 +21,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents the information about a meeting in progress
|
||||
/// Currently used for Zoom meetings
|
||||
/// Represents a MeetingInfo
|
||||
/// </summary>
|
||||
public class MeetingInfo
|
||||
{
|
||||
[JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the Id
|
||||
/// </summary>
|
||||
public string Id { get; private set; }
|
||||
[JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)]
|
||||
public string Name { get; private set; }
|
||||
@@ -35,18 +37,39 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
[JsonProperty("password", NullValueHandling = NullValueHandling.Ignore)]
|
||||
public string Password { get; private set; }
|
||||
[JsonProperty("shareStatus", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the ShareStatus
|
||||
/// </summary>
|
||||
public string ShareStatus { get; private set; }
|
||||
[JsonProperty("isHost", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsHost
|
||||
/// </summary>
|
||||
public Boolean IsHost { get; private set; }
|
||||
[JsonProperty("isSharingMeeting", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsSharingMeeting
|
||||
/// </summary>
|
||||
public Boolean IsSharingMeeting { get; private set; }
|
||||
[JsonProperty("waitingForHost", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the WaitingForHost
|
||||
/// </summary>
|
||||
public Boolean WaitingForHost { get; private set; }
|
||||
[JsonProperty("isLocked", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsLocked
|
||||
/// </summary>
|
||||
public Boolean IsLocked { get; private set; }
|
||||
[JsonProperty("isRecording", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsRecording
|
||||
/// </summary>
|
||||
public Boolean IsRecording { get; private set; }
|
||||
[JsonProperty("canRecord", NullValueHandling = NullValueHandling.Ignore)]
|
||||
/// <summary>
|
||||
/// Gets or sets the CanRecord
|
||||
/// </summary>
|
||||
public Boolean CanRecord { get; private set; }
|
||||
|
||||
|
||||
@@ -66,8 +89,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MeetingInfoEventArgs
|
||||
/// </summary>
|
||||
public class MeetingInfoEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Info
|
||||
/// </summary>
|
||||
public MeetingInfo Info { get; private set; }
|
||||
|
||||
public MeetingInfoEventArgs(MeetingInfo info)
|
||||
|
||||
@@ -7,6 +7,9 @@ using PepperDash.Essentials.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasMeetingLock
|
||||
/// </summary>
|
||||
public interface IHasMeetingLock
|
||||
{
|
||||
BoolFeedback MeetingIsLockedFeedback { get; }
|
||||
|
||||
@@ -7,6 +7,9 @@ using PepperDash.Essentials.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasMeetingRecording
|
||||
/// </summary>
|
||||
public interface IHasMeetingRecording
|
||||
{
|
||||
BoolFeedback MeetingIsRecordingFeedback { get; }
|
||||
@@ -16,6 +19,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
void ToggleRecording();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasMeetingRecordingWithPrompt
|
||||
/// </summary>
|
||||
public interface IHasMeetingRecordingWithPrompt : IHasMeetingRecording
|
||||
{
|
||||
BoolFeedback RecordConsentPromptIsVisible { get; }
|
||||
|
||||
@@ -42,9 +42,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
void ToggleVideoForParticipant(int userId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Describes the ability to mute and unmute a participant's audio in a meeting
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasParticipantAudioMute
|
||||
/// </summary>
|
||||
public interface IHasParticipantAudioMute : IHasParticipantVideoMute
|
||||
{
|
||||
/// <summary>
|
||||
@@ -57,9 +57,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
void ToggleAudioForParticipant(int userId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Describes the ability to pin and unpin a participant in a meeting
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasParticipantPinUnpin
|
||||
/// </summary>
|
||||
public interface IHasParticipantPinUnpin : IHasParticipants
|
||||
{
|
||||
IntFeedback NumberOfScreensFeedback { get; }
|
||||
@@ -70,6 +70,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
void ToggleParticipantPinState(int userId, int screenIndex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a CodecParticipants
|
||||
/// </summary>
|
||||
public class CodecParticipants
|
||||
{
|
||||
private List<Participant> _currentParticipants;
|
||||
@@ -99,6 +102,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
_currentParticipants = new List<Participant>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// OnParticipantsChanged method
|
||||
/// </summary>
|
||||
public void OnParticipantsChanged()
|
||||
{
|
||||
var handler = ParticipantsListHasChanged;
|
||||
@@ -109,12 +115,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a call participant
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a Participant
|
||||
/// </summary>
|
||||
public class Participant
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the UserId
|
||||
/// </summary>
|
||||
public int UserId { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the IsHost
|
||||
/// </summary>
|
||||
public bool IsHost { get; set; }
|
||||
public bool IsMyself { get; set; }
|
||||
public string Name { get; set; }
|
||||
@@ -122,8 +134,17 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
public bool CanUnmuteVideo { get; set; }
|
||||
public bool VideoMuteFb { get; set; }
|
||||
public bool AudioMuteFb { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HandIsRaisedFb
|
||||
/// </summary>
|
||||
public bool HandIsRaisedFb { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the IsPinnedFb
|
||||
/// </summary>
|
||||
public bool IsPinnedFb { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the ScreenIndexIsPinnedToFb
|
||||
/// </summary>
|
||||
public int ScreenIndexIsPinnedToFb { get; set; }
|
||||
|
||||
public Participant()
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasPresentationOnlyMeeting
|
||||
/// </summary>
|
||||
public interface IHasPresentationOnlyMeeting
|
||||
{
|
||||
void StartSharingOnlyMeeting();
|
||||
@@ -9,6 +12,9 @@
|
||||
void StartNormalMeetingFromSharingOnlyMeeting();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enumeration of eSharingMeetingMode values
|
||||
/// </summary>
|
||||
public enum eSharingMeetingMode
|
||||
{
|
||||
None,
|
||||
|
||||
@@ -3,6 +3,9 @@ using PepperDash.Essentials.Devices.Common.VideoCodec;
|
||||
|
||||
namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasSelfviewPosition
|
||||
/// </summary>
|
||||
public interface IHasSelfviewPosition
|
||||
{
|
||||
StringFeedback SelfviewPipPositionFeedback { get; }
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IHasSelfviewSize
|
||||
/// </summary>
|
||||
public interface IHasSelfviewSize
|
||||
{
|
||||
StringFeedback SelfviewPipSizeFeedback { get; }
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Describes a device that has Half Waek Mode capability
|
||||
/// Defines the contract for IHasHalfWakeMode
|
||||
/// </summary>
|
||||
public interface IHasHalfWakeMode : IHasStandbyMode
|
||||
{
|
||||
|
||||
@@ -8,6 +8,9 @@ using PepperDash.Essentials.Devices.Common.Codec;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the contract for IJoinCalls
|
||||
/// </summary>
|
||||
public interface IJoinCalls
|
||||
{
|
||||
void JoinCall(CodecActiveCallItem activeCall);
|
||||
|
||||
@@ -13,6 +13,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
{
|
||||
public static class MockVideoCodecDirectory
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration of eFolderId values
|
||||
/// </summary>
|
||||
public enum eFolderId
|
||||
{
|
||||
UnitedStates,
|
||||
|
||||
@@ -20,15 +20,36 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockVC
|
||||
/// </summary>
|
||||
public class MockVC : VideoCodecBase, IRoutingSource, IHasCallHistory, IHasScheduleAwareness, IHasCallFavorites, IHasDirectory, IHasCodecCameras, IHasCameraAutoMode, IHasCodecRoomPresets
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the PropertiesConfig
|
||||
/// </summary>
|
||||
public MockVcPropertiesConfig PropertiesConfig;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CodecOsdIn
|
||||
/// </summary>
|
||||
public RoutingInputPort CodecOsdIn { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HdmiIn1
|
||||
/// </summary>
|
||||
public RoutingInputPort HdmiIn1 { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HdmiIn2
|
||||
/// </summary>
|
||||
public RoutingInputPort HdmiIn2 { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HdmiOut
|
||||
/// </summary>
|
||||
public RoutingOutputPort HdmiOut { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CallFavorites
|
||||
/// </summary>
|
||||
public CodecCallFavorites CallFavorites { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -137,8 +158,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dials, yo!
|
||||
/// Dial method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void Dial(string number)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Dial: {0}", number);
|
||||
@@ -155,6 +177,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dial method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void Dial(Meeting meeting)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Dial Meeting: {0}", meeting.Id);
|
||||
@@ -174,8 +200,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// EndCall method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void EndCall(CodecActiveCallItem call)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "EndCall");
|
||||
@@ -185,8 +212,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// EndAllCalls method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void EndAllCalls()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "EndAllCalls");
|
||||
@@ -200,8 +228,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For a call from the test methods below
|
||||
/// AcceptCall method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void AcceptCall(CodecActiveCallItem call)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "AcceptCall");
|
||||
@@ -211,8 +240,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For a call from the test methods below
|
||||
/// RejectCall method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void RejectCall(CodecActiveCallItem call)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "RejectCall");
|
||||
@@ -225,6 +255,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
/// Makes horrible tones go out on the wire!
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <summary>
|
||||
/// SendDtmf method
|
||||
/// </summary>
|
||||
public override void SendDtmf(string s)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "SendDTMF: {0}", s);
|
||||
@@ -253,11 +286,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
_StandbyIsOn = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// StandbyDeactivate method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void StandbyDeactivate()
|
||||
{
|
||||
_StandbyIsOn = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
@@ -267,6 +307,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
/// Called by routing to make it happen
|
||||
/// </summary>
|
||||
/// <param name="selector"></param>
|
||||
/// <summary>
|
||||
/// ExecuteSwitch method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void ExecuteSwitch(object selector)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "ExecuteSwitch: {0}", selector);
|
||||
@@ -304,6 +348,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="level"></param>
|
||||
/// <summary>
|
||||
/// SetVolume method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void SetVolume(ushort level)
|
||||
{
|
||||
_VolumeLevel = level;
|
||||
@@ -314,6 +362,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="pressRelease"></param>
|
||||
/// <summary>
|
||||
/// VolumeDown method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void VolumeDown(bool pressRelease)
|
||||
{
|
||||
}
|
||||
@@ -339,8 +391,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// PrivacyModeOff method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void PrivacyModeOff()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "PrivacyMuteOff");
|
||||
@@ -351,8 +404,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// PrivacyModeToggle method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override void PrivacyModeToggle()
|
||||
{
|
||||
_PrivacyModeIsOn = !_PrivacyModeIsOn;
|
||||
@@ -367,6 +421,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <summary>
|
||||
/// TestIncomingVideoCall method
|
||||
/// </summary>
|
||||
public void TestIncomingVideoCall(string url)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "TestIncomingVideoCall from {0}", url);
|
||||
@@ -382,6 +439,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <summary>
|
||||
/// TestIncomingAudioCall method
|
||||
/// </summary>
|
||||
public void TestIncomingAudioCall(string url)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "TestIncomingAudioCall from {0}", url);
|
||||
@@ -393,7 +453,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// TestFarEndHangup method
|
||||
/// </summary>
|
||||
public void TestFarEndHangup()
|
||||
{
|
||||
@@ -406,6 +466,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
public CodecCallHistory CallHistory { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// RemoveCallHistoryEntry method
|
||||
/// </summary>
|
||||
public void RemoveCallHistoryEntry(CodecCallHistory.CallHistoryEntry entry)
|
||||
{
|
||||
|
||||
@@ -415,6 +478,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
#region IHasScheduleAwareness Members
|
||||
|
||||
/// <summary>
|
||||
/// GetSchedule method
|
||||
/// </summary>
|
||||
public void GetSchedule()
|
||||
{
|
||||
|
||||
@@ -487,6 +553,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SearchDirectory method
|
||||
/// </summary>
|
||||
public void SearchDirectory(string searchString)
|
||||
{
|
||||
var searchResults = new CodecDirectory();
|
||||
@@ -507,6 +576,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
OnDirectoryResultReturned(searchResults);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GetDirectoryFolderContents method
|
||||
/// </summary>
|
||||
public void GetDirectoryFolderContents(string folderId)
|
||||
{
|
||||
var folderDirectory = new CodecDirectory();
|
||||
@@ -533,6 +605,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
OnDirectoryResultReturned(folderDirectory);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetCurrentDirectoryToRoot method
|
||||
/// </summary>
|
||||
public void SetCurrentDirectoryToRoot()
|
||||
{
|
||||
DirectoryBrowseHistory.Clear();
|
||||
@@ -540,6 +615,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
OnDirectoryResultReturned(DirectoryRoot);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GetDirectoryParentFolderContents method
|
||||
/// </summary>
|
||||
public void GetDirectoryParentFolderContents()
|
||||
{
|
||||
var currentDirectory = new CodecDirectory();
|
||||
@@ -562,10 +640,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
OnDirectoryResultReturned(currentDirectory);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CurrentDirectoryResultIsNotDirectoryRoot
|
||||
/// </summary>
|
||||
public BoolFeedback CurrentDirectoryResultIsNotDirectoryRoot { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the DirectoryBrowseHistory
|
||||
/// </summary>
|
||||
public List<CodecDirectory> DirectoryBrowseHistory { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// OnDirectoryResultReturned method
|
||||
/// </summary>
|
||||
public void OnDirectoryResultReturned(CodecDirectory result)
|
||||
{
|
||||
CurrentDirectoryResultIsNotDirectoryRoot.FireUpdate();
|
||||
@@ -643,6 +730,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
public event EventHandler<CameraSelectedEventArgs> CameraSelected;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Cameras
|
||||
/// </summary>
|
||||
public List<CameraBase> Cameras { get; private set; }
|
||||
|
||||
private CameraBase _selectedCamera;
|
||||
@@ -670,8 +760,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SelectedCameraFeedback
|
||||
/// </summary>
|
||||
public StringFeedback SelectedCameraFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// SelectCamera method
|
||||
/// </summary>
|
||||
public void SelectCamera(string key)
|
||||
{
|
||||
var camera = Cameras.FirstOrDefault(c => c.Key.ToLower().IndexOf(key.ToLower()) > -1);
|
||||
@@ -688,8 +784,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
#region IHasFarEndCameraControl Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the FarEndCamera
|
||||
/// </summary>
|
||||
public CameraBase FarEndCamera { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ControllingFarEndCameraFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback ControllingFarEndCameraFeedback { get; private set; }
|
||||
|
||||
#endregion
|
||||
@@ -698,18 +800,27 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
private bool _CameraAutoModeIsOn;
|
||||
|
||||
/// <summary>
|
||||
/// CameraAutoModeOn method
|
||||
/// </summary>
|
||||
public void CameraAutoModeOn()
|
||||
{
|
||||
_CameraAutoModeIsOn = true;
|
||||
CameraAutoModeIsOnFeedback.FireUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CameraAutoModeOff method
|
||||
/// </summary>
|
||||
public void CameraAutoModeOff()
|
||||
{
|
||||
_CameraAutoModeIsOn = false;
|
||||
CameraAutoModeIsOnFeedback.FireUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CameraAutoModeToggle method
|
||||
/// </summary>
|
||||
public void CameraAutoModeToggle()
|
||||
{
|
||||
if(_CameraAutoModeIsOn)
|
||||
@@ -721,6 +832,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CameraAutoModeIsOnFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback CameraAutoModeIsOnFeedback {get; private set;}
|
||||
|
||||
#endregion
|
||||
@@ -729,10 +843,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
public event EventHandler<EventArgs> CodecRoomPresetsListHasChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the NearEndPresets
|
||||
/// </summary>
|
||||
public List<CodecRoomPreset> NearEndPresets { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the FarEndRoomPresets
|
||||
/// </summary>
|
||||
public List<CodecRoomPreset> FarEndRoomPresets { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// CodecRoomPresetSelect method
|
||||
/// </summary>
|
||||
public void CodecRoomPresetSelect(int preset)
|
||||
{
|
||||
if (SelectedCamera is IAmFarEndCamera)
|
||||
@@ -745,6 +868,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CodecRoomPresetStore method
|
||||
/// </summary>
|
||||
public void CodecRoomPresetStore(int preset, string description)
|
||||
{
|
||||
var editPreset = NearEndPresets.FirstOrDefault(p => p.ID.Equals(preset));
|
||||
@@ -767,6 +893,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
SetConfig(Config);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SelectFarEndPreset method
|
||||
/// </summary>
|
||||
public void SelectFarEndPreset(int i)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Selecting Far End Preset: {0}", i);
|
||||
@@ -786,7 +915,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implementation for the mock VC
|
||||
/// Represents a MockCodecInfo
|
||||
/// </summary>
|
||||
public class MockCodecInfo : VideoCodecInfo
|
||||
{
|
||||
@@ -801,38 +930,49 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
get { return "someE164alias"; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string H323Id
|
||||
{
|
||||
get { return "someH323Id"; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string IpAddress
|
||||
{
|
||||
get { return "xxx.xxx.xxx.xxx"; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string SipPhoneNumber
|
||||
{
|
||||
get { return "333-444-5555"; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string SipUri
|
||||
{
|
||||
get { return "mock@someurl.com"; }
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override bool AutoAnswerEnabled
|
||||
{
|
||||
get { return _AutoAnswerEnabled; }
|
||||
}
|
||||
bool _AutoAnswerEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// SetAutoAnswer method
|
||||
/// </summary>
|
||||
public void SetAutoAnswer(bool value)
|
||||
{
|
||||
_AutoAnswerEnabled = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MockVCFactory
|
||||
/// </summary>
|
||||
public class MockVCFactory : EssentialsDeviceFactory<MockVC>
|
||||
{
|
||||
public MockVCFactory()
|
||||
@@ -840,6 +980,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
TypeNames = new List<string>() { "mockvc" };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BuildDevice method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public override EssentialsDevice BuildDevice(DeviceConfig dc)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new MockVC Device");
|
||||
|
||||
@@ -11,6 +11,9 @@ using Serilog.Events;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockVCCamera
|
||||
/// </summary>
|
||||
public class MockVCCamera : CameraBase, IHasCameraPtzControl, IHasCameraFocusControl, IBridgeAdvanced
|
||||
{
|
||||
protected VideoCodecBase ParentCodec { get; private set; }
|
||||
@@ -26,6 +29,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraPtzControl Members
|
||||
|
||||
/// <summary>
|
||||
/// PositionHome method
|
||||
/// </summary>
|
||||
public void PositionHome()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Resetting to home position");
|
||||
@@ -35,16 +41,25 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraPanControl Members
|
||||
|
||||
/// <summary>
|
||||
/// PanLeft method
|
||||
/// </summary>
|
||||
public void PanLeft()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Panning Left");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PanRight method
|
||||
/// </summary>
|
||||
public void PanRight()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Panning Right");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PanStop method
|
||||
/// </summary>
|
||||
public void PanStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Pan");
|
||||
@@ -54,16 +69,25 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraTiltControl Members
|
||||
|
||||
/// <summary>
|
||||
/// TiltDown method
|
||||
/// </summary>
|
||||
public void TiltDown()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Tilting Down");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TiltUp method
|
||||
/// </summary>
|
||||
public void TiltUp()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Tilting Up");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TiltStop method
|
||||
/// </summary>
|
||||
public void TiltStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Tilt");
|
||||
@@ -73,16 +97,25 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraZoomControl Members
|
||||
|
||||
/// <summary>
|
||||
/// ZoomIn method
|
||||
/// </summary>
|
||||
public void ZoomIn()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Zooming In");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ZoomOut method
|
||||
/// </summary>
|
||||
public void ZoomOut()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Zooming Out");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ZoomStop method
|
||||
/// </summary>
|
||||
public void ZoomStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Zoom");
|
||||
@@ -92,21 +125,33 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraFocusControl Members
|
||||
|
||||
/// <summary>
|
||||
/// FocusNear method
|
||||
/// </summary>
|
||||
public void FocusNear()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Focusing Near");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FocusFar method
|
||||
/// </summary>
|
||||
public void FocusFar()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Focusing Far");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FocusStop method
|
||||
/// </summary>
|
||||
public void FocusStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Focus");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TriggerAutoFocus method
|
||||
/// </summary>
|
||||
public void TriggerAutoFocus()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "AutoFocus Triggered");
|
||||
@@ -114,12 +159,18 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a MockFarEndVCCamera
|
||||
/// </summary>
|
||||
public class MockFarEndVCCamera : CameraBase, IHasCameraPtzControl, IAmFarEndCamera, IBridgeAdvanced
|
||||
{
|
||||
protected VideoCodecBase ParentCodec { get; private set; }
|
||||
@@ -135,6 +186,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraPtzControl Members
|
||||
|
||||
/// <summary>
|
||||
/// PositionHome method
|
||||
/// </summary>
|
||||
public void PositionHome()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Resetting to home position");
|
||||
@@ -144,16 +198,25 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraPanControl Members
|
||||
|
||||
/// <summary>
|
||||
/// PanLeft method
|
||||
/// </summary>
|
||||
public void PanLeft()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Panning Left");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PanRight method
|
||||
/// </summary>
|
||||
public void PanRight()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Panning Right");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PanStop method
|
||||
/// </summary>
|
||||
public void PanStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Pan");
|
||||
@@ -163,16 +226,25 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraTiltControl Members
|
||||
|
||||
/// <summary>
|
||||
/// TiltDown method
|
||||
/// </summary>
|
||||
public void TiltDown()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Tilting Down");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TiltUp method
|
||||
/// </summary>
|
||||
public void TiltUp()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Tilting Up");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// TiltStop method
|
||||
/// </summary>
|
||||
public void TiltStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Tilt");
|
||||
@@ -182,16 +254,25 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#region IHasCameraZoomControl Members
|
||||
|
||||
/// <summary>
|
||||
/// ZoomIn method
|
||||
/// </summary>
|
||||
public void ZoomIn()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Zooming In");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ZoomOut method
|
||||
/// </summary>
|
||||
public void ZoomOut()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Zooming Out");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ZoomStop method
|
||||
/// </summary>
|
||||
public void ZoomStop()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Stopping Zoom");
|
||||
@@ -199,6 +280,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// LinkToApi method
|
||||
/// </summary>
|
||||
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||
{
|
||||
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
|
||||
|
||||
@@ -13,12 +13,21 @@ using PepperDash.Essentials.Devices.Common.Codec;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a MockVcPropertiesConfig
|
||||
/// </summary>
|
||||
public class MockVcPropertiesConfig
|
||||
{
|
||||
[JsonProperty("favorites")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Favorites
|
||||
/// </summary>
|
||||
public List<CodecActiveCallItem> Favorites { get; set; }
|
||||
|
||||
[JsonProperty("presets")]
|
||||
/// <summary>
|
||||
/// Gets or sets the Presets
|
||||
/// </summary>
|
||||
public List<CodecRoomPreset> Presets { get; set; }
|
||||
|
||||
public MockVcPropertiesConfig()
|
||||
|
||||
@@ -59,13 +59,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
ActiveCalls = new List<CodecActiveCallItem>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Communication
|
||||
/// </summary>
|
||||
public IBasicCommunication Communication { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// An internal pseudo-source that is routable and connected to the osd input
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the OsdSource
|
||||
/// </summary>
|
||||
public DummyRoutingInputsDevice OsdSource { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the StandbyIsOnFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback StandbyIsOnFeedback { get; private set; }
|
||||
|
||||
protected abstract Func<bool> PrivacyModeIsOnFeedbackFunc { get; }
|
||||
@@ -75,11 +81,23 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
public List<CodecActiveCallItem> ActiveCalls { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ShowSelfViewByDefault
|
||||
/// </summary>
|
||||
public bool ShowSelfViewByDefault { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SupportsCameraOff
|
||||
/// </summary>
|
||||
public bool SupportsCameraOff { get; protected set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the SupportsCameraAutoMode
|
||||
/// </summary>
|
||||
public bool SupportsCameraAutoMode { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsReady
|
||||
/// </summary>
|
||||
public bool IsReady { get; protected set; }
|
||||
|
||||
public virtual List<Feedback> Feedbacks
|
||||
@@ -102,9 +120,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
public abstract void PrivacyModeOn();
|
||||
public abstract void PrivacyModeOff();
|
||||
public abstract void PrivacyModeToggle();
|
||||
/// <summary>
|
||||
/// Gets or sets the PrivacyModeIsOnFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback PrivacyModeIsOnFeedback { get; private set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the MuteFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback MuteFeedback { get; private set; }
|
||||
|
||||
public abstract void MuteOff();
|
||||
@@ -113,6 +137,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
public abstract void SetVolume(ushort level);
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the VolumeLevelFeedback
|
||||
/// </summary>
|
||||
public IntFeedback VolumeLevelFeedback { get; private set; }
|
||||
|
||||
public abstract void MuteToggle();
|
||||
@@ -129,9 +156,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
public abstract void StartSharing();
|
||||
public abstract void StopSharing();
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AutoShareContentWhileInCall
|
||||
/// </summary>
|
||||
public bool AutoShareContentWhileInCall { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SharingSourceFeedback
|
||||
/// </summary>
|
||||
public StringFeedback SharingSourceFeedback { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the SharingContentIsOnFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback SharingContentIsOnFeedback { get; private set; }
|
||||
|
||||
#endregion
|
||||
@@ -161,24 +197,33 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
public abstract void AcceptCall(CodecActiveCallItem call);
|
||||
public abstract void RejectCall(CodecActiveCallItem call);
|
||||
public abstract void SendDtmf(string s);
|
||||
/// <summary>
|
||||
/// SendDtmf method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public virtual void SendDtmf(string s, CodecActiveCallItem call) { }
|
||||
|
||||
#endregion
|
||||
|
||||
#region IRoutingInputsOutputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the InputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the OutputPorts
|
||||
/// </summary>
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region IUsageTracking Members
|
||||
|
||||
/// <summary>
|
||||
/// This object can be added by outside users of this class to provide usage tracking
|
||||
/// for various services
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the UsageTracker
|
||||
/// </summary>
|
||||
public UsageTracking UsageTracker { get; set; }
|
||||
|
||||
#endregion
|
||||
@@ -192,6 +237,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
public event EventHandler<EventArgs> IsReadyChange;
|
||||
public abstract void Dial(Meeting meeting);
|
||||
|
||||
/// <summary>
|
||||
/// Dial method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public virtual void Dial(IInvitableContact contact)
|
||||
{
|
||||
}
|
||||
@@ -258,9 +307,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
// **** DEBUGGING THINGS ****
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// ListCalls method
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public virtual void ListCalls()
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Active Calls:");
|
||||
@@ -879,6 +929,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||
/// <summary>
|
||||
/// Gets or sets the MeetingsToDisplayFeedback
|
||||
/// </summary>
|
||||
public IntFeedback MeetingsToDisplayFeedback { get; set; }
|
||||
|
||||
private string UpdateMeetingsListXSig(List<Meeting> meetings)
|
||||
@@ -1874,9 +1927,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Used to track the status of syncronizing the phonebook values when connecting to a codec or refreshing the phonebook info
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Represents a CodecPhonebookSyncState
|
||||
/// </summary>
|
||||
public class CodecPhonebookSyncState : IKeyed
|
||||
{
|
||||
private bool _InitialSyncComplete;
|
||||
@@ -1901,24 +1954,45 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the InitialPhonebookFoldersWasReceived
|
||||
/// </summary>
|
||||
public bool InitialPhonebookFoldersWasReceived { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the NumberOfContactsWasReceived
|
||||
/// </summary>
|
||||
public bool NumberOfContactsWasReceived { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the PhonebookRootEntriesWasRecieved
|
||||
/// </summary>
|
||||
public bool PhonebookRootEntriesWasRecieved { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the PhonebookHasFolders
|
||||
/// </summary>
|
||||
public bool PhonebookHasFolders { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the NumberOfContacts
|
||||
/// </summary>
|
||||
public int NumberOfContacts { get; private set; }
|
||||
|
||||
#region IKeyed Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Key
|
||||
/// </summary>
|
||||
public string Key { get; private set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public event EventHandler<EventArgs> InitialSyncCompleted;
|
||||
|
||||
/// <summary>
|
||||
/// InitialPhonebookFoldersReceived method
|
||||
/// </summary>
|
||||
public void InitialPhonebookFoldersReceived()
|
||||
{
|
||||
InitialPhonebookFoldersWasReceived = true;
|
||||
@@ -1926,6 +2000,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
CheckSyncStatus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PhonebookRootEntriesReceived method
|
||||
/// </summary>
|
||||
public void PhonebookRootEntriesReceived()
|
||||
{
|
||||
PhonebookRootEntriesWasRecieved = true;
|
||||
@@ -1933,6 +2010,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
CheckSyncStatus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetPhonebookHasFolders method
|
||||
/// </summary>
|
||||
public void SetPhonebookHasFolders(bool value)
|
||||
{
|
||||
PhonebookHasFolders = value;
|
||||
@@ -1940,6 +2020,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Phonebook has folders: {0}", PhonebookHasFolders);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetNumberOfContacts method
|
||||
/// </summary>
|
||||
public void SetNumberOfContacts(int contacts)
|
||||
{
|
||||
NumberOfContacts = contacts;
|
||||
@@ -1950,6 +2033,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
CheckSyncStatus();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CodecDisconnected method
|
||||
/// </summary>
|
||||
public void CodecDisconnected()
|
||||
{
|
||||
InitialPhonebookFoldersWasReceived = false;
|
||||
@@ -1972,11 +2058,17 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Represents a codec command that might need to have a friendly label applied for UI feedback purposes
|
||||
/// Represents a CodecCommandWithLabel
|
||||
/// </summary>
|
||||
public class CodecCommandWithLabel
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the Command
|
||||
/// </summary>
|
||||
public string Command { get; private set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the Label
|
||||
/// </summary>
|
||||
public string Label { get; private set; }
|
||||
|
||||
public CodecCommandWithLabel(string command, string label)
|
||||
|
||||
Reference in New Issue
Block a user