mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-29 12:24:59 +00:00
wip: update XML comments
This commit is contained in:
@@ -25,8 +25,14 @@ namespace PepperDash.Essentials.Core
|
||||
{
|
||||
RoomOnToDefaultSourceWhenOccupiedConfig PropertiesConfig;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the FeatureEnabled
|
||||
/// </summary>
|
||||
public bool FeatureEnabled { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the FeatureEnabledTime
|
||||
/// </summary>
|
||||
public DateTime FeatureEnabledTime { get; private set; }
|
||||
|
||||
ScheduledEvent FeatureEnableEvent;
|
||||
@@ -51,6 +57,10 @@ namespace PepperDash.Essentials.Core
|
||||
|
||||
private Fusion.IEssentialsRoomFusionController FusionRoom;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for RoomOnToDefaultSourceWhenOccupied
|
||||
/// </summary>
|
||||
/// <param name="config">config of the device</param>
|
||||
public RoomOnToDefaultSourceWhenOccupied(DeviceConfig config) :
|
||||
base (config)
|
||||
{
|
||||
@@ -152,7 +162,10 @@ namespace PepperDash.Essentials.Core
|
||||
Debug.LogMessage(LogEventLevel.Debug, this, "Unable to get room from Device Manager with key: {0}", PropertiesConfig.RoomKey);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CustomSetConfig method
|
||||
/// </summary>
|
||||
/// <param name="config">config of the device</param>
|
||||
protected override void CustomSetConfig(DeviceConfig config)
|
||||
{
|
||||
var newPropertiesConfig = JsonConvert.DeserializeObject<RoomOnToDefaultSourceWhenOccupiedConfig>(config.Properties.ToString());
|
||||
@@ -367,7 +380,8 @@ namespace PepperDash.Essentials.Core
|
||||
/// <summary>
|
||||
/// Checks existing event to see if it matches the execution time
|
||||
/// </summary>
|
||||
/// <param name="existingEvent"></param>
|
||||
/// <param name="existingEvent">event we are checking</param>
|
||||
/// <param name="newTime">time we are checking against</param>
|
||||
/// <returns></returns>
|
||||
bool CheckExistingEventTimeForMatch(ScheduledEvent existingEvent, DateTime newTime)
|
||||
{
|
||||
@@ -520,70 +534,70 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public class RoomOnToDefaultSourceWhenOccupiedConfig
|
||||
{
|
||||
[JsonProperty("roomKey")]
|
||||
/// <summary>
|
||||
/// Gets or sets the RoomKey
|
||||
/// </summary>
|
||||
[JsonProperty("roomKey")]
|
||||
public string RoomKey { get; set; }
|
||||
|
||||
[JsonProperty("enableRoomOnWhenOccupied")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableRoomOnWhenOccupied
|
||||
/// </summary>
|
||||
[JsonProperty("enableRoomOnWhenOccupied")]
|
||||
public bool EnableRoomOnWhenOccupied { get; set; }
|
||||
|
||||
[JsonProperty("occupancyStartTime")]
|
||||
/// <summary>
|
||||
/// Gets or sets the OccupancyStartTime
|
||||
/// </summary>
|
||||
[JsonProperty("occupancyStartTime")]
|
||||
public string OccupancyStartTime { get; set; }
|
||||
|
||||
[JsonProperty("occupancyEndTime")]
|
||||
/// <summary>
|
||||
/// Gets or sets the OccupancyEndTime
|
||||
/// </summary>
|
||||
[JsonProperty("occupancyEndTime")]
|
||||
public string OccupancyEndTime { get; set; }
|
||||
|
||||
[JsonProperty("enableSunday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableSunday
|
||||
/// </summary>
|
||||
[JsonProperty("enableSunday")]
|
||||
public bool EnableSunday { get; set; }
|
||||
|
||||
[JsonProperty("enableMonday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableMonday
|
||||
/// </summary>
|
||||
[JsonProperty("enableMonday")]
|
||||
public bool EnableMonday { get; set; }
|
||||
|
||||
[JsonProperty("enableTuesday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableTuesday
|
||||
/// </summary>
|
||||
[JsonProperty("enableWednesday")]
|
||||
public bool EnableTuesday { get; set; }
|
||||
|
||||
[JsonProperty("enableWednesday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableWednesday
|
||||
/// </summary>
|
||||
[JsonProperty("enableWednesday")]
|
||||
public bool EnableWednesday { get; set; }
|
||||
|
||||
[JsonProperty("enableThursday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableThursday
|
||||
/// </summary>
|
||||
[JsonProperty("enableThursday")]
|
||||
public bool EnableThursday { get; set; }
|
||||
|
||||
[JsonProperty("enableFriday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableFriday
|
||||
/// </summary>
|
||||
[JsonProperty("enableFriday")]
|
||||
public bool EnableFriday { get; set; }
|
||||
|
||||
[JsonProperty("enableSaturday")]
|
||||
/// <summary>
|
||||
/// Gets or sets the EnableSaturday
|
||||
/// </summary>
|
||||
[JsonProperty("enableSaturday")]
|
||||
public bool EnableSaturday { get; set; }
|
||||
}
|
||||
|
||||
@@ -592,6 +606,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public class RoomOnToDefaultSourceWhenOccupiedFactory : EssentialsDeviceFactory<RoomOnToDefaultSourceWhenOccupied>
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor for RoomOnToDefaultSourceWhenOccupiedFactory
|
||||
/// </summary>
|
||||
public RoomOnToDefaultSourceWhenOccupiedFactory()
|
||||
{
|
||||
TypeNames = new List<string>() { "roomonwhenoccupancydetectedfeature" };
|
||||
|
||||
@@ -53,6 +53,9 @@ namespace PepperDash.Essentials.Core
|
||||
|
||||
private bool _isActive;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets IsActive
|
||||
/// </summary>
|
||||
[JsonProperty("isActive")]
|
||||
public bool IsActive
|
||||
{
|
||||
@@ -69,16 +72,20 @@ namespace PepperDash.Essentials.Core
|
||||
}
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
/// <summary>
|
||||
/// Gets or sets the IsActiveFeedback
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public BoolFeedback IsActiveFeedback { get; private set; }
|
||||
|
||||
private List<DeviceActionWrapper> activationActions;
|
||||
|
||||
private List<DeviceActionWrapper> deactivationActions;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for RoomCombinationScenario
|
||||
/// </summary>
|
||||
/// <param name="config">config of the room combine scenario</param>
|
||||
public RoomCombinationScenario(RoomCombinationScenarioConfig config)
|
||||
{
|
||||
Key = config.Key;
|
||||
@@ -98,6 +105,10 @@ namespace PepperDash.Essentials.Core
|
||||
IsActiveFeedback = new BoolFeedback(() => _isActive);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Activates the scenario
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task Activate()
|
||||
{
|
||||
this.LogInformation("Activating Scenario {name} with {activationActionCount} action(s) defined", Name, activationActions.Count);
|
||||
@@ -116,6 +127,10 @@ namespace PepperDash.Essentials.Core
|
||||
IsActive = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deactivates the scenario
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task Deactivate()
|
||||
{
|
||||
this.LogInformation("Deactivating Scenario {name} with {deactivationActionCount} action(s) defined", Name, deactivationActions.Count);
|
||||
|
||||
@@ -9,6 +9,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public class EssentialsRoomEmergencyContactClosure : EssentialsRoomEmergencyBase, IEssentialsRoomEmergency
|
||||
{
|
||||
/// <summary>
|
||||
/// Event fired when emergency state changes
|
||||
/// </summary>
|
||||
public event EventHandler<EventArgs> EmergencyStateChange;
|
||||
|
||||
IEssentialsRoom Room;
|
||||
@@ -20,6 +23,12 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public bool InEmergency { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for EssentialsRoomEmergencyContactClosure
|
||||
/// </summary>
|
||||
/// <param name="key">device key</param>
|
||||
/// <param name="config">emergency device config</param>
|
||||
/// <param name="room">the room associated with this emergency contact closure</param>
|
||||
public EssentialsRoomEmergencyContactClosure(string key, EssentialsRoomEmergencyConfig config, IEssentialsRoom room) :
|
||||
base(key)
|
||||
{
|
||||
@@ -95,8 +104,14 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IEssentialsRoomEmergency
|
||||
{
|
||||
/// <summary>
|
||||
/// Event fired when emergency state changes
|
||||
/// </summary>
|
||||
event EventHandler<EventArgs> EmergencyStateChange;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the InEmergency
|
||||
/// </summary>
|
||||
bool InEmergency { get; }
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,14 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public event EventHandler<EventArgs> RoomOccupancyIsSet;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsWarmingUpFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback IsWarmingUpFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsCoolingDownFeedback
|
||||
/// </summary>
|
||||
public BoolFeedback IsCoolingDownFeedback { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -37,10 +44,19 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public IOccupancyStatusProvider RoomOccupancy { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the OccupancyStatusProviderIsRemote
|
||||
/// </summary>
|
||||
public bool OccupancyStatusProviderIsRemote { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the EnvironmentalControlDevices
|
||||
/// </summary>
|
||||
public List<EssentialsDevice> EnvironmentalControlDevices { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the room has any environmental control devices
|
||||
/// </summary>
|
||||
public bool HasEnvironmentalControlDevices
|
||||
{
|
||||
get
|
||||
@@ -49,7 +65,14 @@ namespace PepperDash.Essentials.Core
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsWarmingFeedbackFunc
|
||||
/// </summary>
|
||||
protected abstract Func<bool> IsWarmingFeedbackFunc { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsCoolingFeedbackFunc
|
||||
/// </summary>
|
||||
protected abstract Func<bool> IsCoolingFeedbackFunc { get; }
|
||||
|
||||
/// <summary>
|
||||
@@ -62,6 +85,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public IMobileControlRoomMessenger MobileControlRoomBridge { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// The config name of the default source list
|
||||
/// </summary>
|
||||
protected const string _defaultListKey = "default";
|
||||
|
||||
/// <summary>
|
||||
@@ -69,6 +95,10 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
///
|
||||
private string _sourceListKey;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SourceListKey
|
||||
/// </summary>
|
||||
public string SourceListKey {
|
||||
get
|
||||
{
|
||||
@@ -91,6 +121,10 @@ namespace PepperDash.Essentials.Core
|
||||
}
|
||||
|
||||
private string _destinationListKey;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the DestinationListKey
|
||||
/// </summary>
|
||||
public string DestinationListKey
|
||||
{
|
||||
get
|
||||
@@ -114,6 +148,10 @@ namespace PepperDash.Essentials.Core
|
||||
}
|
||||
|
||||
private string _audioControlPointListKey;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the AudioControlPointListKey
|
||||
/// </summary>
|
||||
public string AudioControlPointListKey
|
||||
{
|
||||
get
|
||||
@@ -137,6 +175,10 @@ namespace PepperDash.Essentials.Core
|
||||
}
|
||||
|
||||
private string _cameraListKey;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the CameraListKey
|
||||
/// </summary>
|
||||
public string CameraListKey
|
||||
{
|
||||
get
|
||||
@@ -165,16 +207,33 @@ namespace PepperDash.Essentials.Core
|
||||
public SecondsCountdownTimer ShutdownPromptTimer { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// Gets or sets the ShutdownPromptSeconds
|
||||
/// </summary>
|
||||
public int ShutdownPromptSeconds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ShutdownVacancySeconds
|
||||
/// </summary>
|
||||
public int ShutdownVacancySeconds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ShutdownType
|
||||
/// </summary>
|
||||
public eShutdownType ShutdownType { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Emergency
|
||||
/// </summary>
|
||||
public EssentialsRoomEmergencyBase Emergency { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the MicrophonePrivacy
|
||||
/// </summary>
|
||||
public Core.Privacy.MicrophonePrivacyController MicrophonePrivacy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the LogoUrlLightBkgnd
|
||||
/// </summary>
|
||||
public string LogoUrlLightBkgnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -182,6 +241,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public string LogoUrlDarkBkgnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the RoomVacancyShutdownTimer
|
||||
/// </summary>
|
||||
protected SecondsCountdownTimer RoomVacancyShutdownTimer { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -204,6 +266,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
protected abstract Func<bool> OnFeedbackFunc { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the SavedVolumeLevels
|
||||
/// </summary>
|
||||
protected Dictionary<IBasicVolumeWithFeedback, uint> SavedVolumeLevels = new Dictionary<IBasicVolumeWithFeedback, uint>();
|
||||
|
||||
/// <summary>
|
||||
@@ -211,7 +276,10 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public bool ZeroVolumeWhenSwtichingVolumeDevices { get; private set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for EssentialsRoomBase
|
||||
/// </summary>
|
||||
/// <param name="config">config of the device</param>
|
||||
public EssentialsRoomBase(DeviceConfig config)
|
||||
: base(config)
|
||||
{
|
||||
@@ -283,6 +351,10 @@ namespace PepperDash.Essentials.Core
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the DestinationListKey property to the passed in value or the default if no value passed in
|
||||
/// </summary>
|
||||
/// <param name="destinationListKey">key of the destination list object</param>
|
||||
protected void SetDestinationListKey(string destinationListKey)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(destinationListKey))
|
||||
@@ -396,6 +468,7 @@ namespace PepperDash.Essentials.Core
|
||||
/// Sets the object to be used as the IOccupancyStatusProvider for the room. Can be an Occupancy Aggregator or a specific device
|
||||
/// </summary>
|
||||
/// <param name="statusProvider"></param>
|
||||
/// <param name="timeoutMinutes"></param>
|
||||
public void SetRoomOccupancy(IOccupancyStatusProvider statusProvider, int timeoutMinutes)
|
||||
{
|
||||
if (statusProvider == null)
|
||||
@@ -479,16 +552,45 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public enum eShutdownType
|
||||
{
|
||||
/// <summary>
|
||||
/// No shutdown in progress
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Manual shutdown initiated
|
||||
/// </summary>
|
||||
External,
|
||||
|
||||
/// <summary>
|
||||
/// Vacancy based shutdown
|
||||
/// </summary>
|
||||
Manual,
|
||||
|
||||
/// <summary>
|
||||
/// Shutdown due to room vacancy
|
||||
/// </summary>
|
||||
Vacancy
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enumeration of eVacancyMode values
|
||||
/// </summary>
|
||||
public enum eVacancyMode
|
||||
{
|
||||
/// <summary>
|
||||
/// No vacancy detected
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// InInitialVacancy - countdown to warning
|
||||
/// </summary>
|
||||
InInitialVacancy,
|
||||
|
||||
/// <summary>
|
||||
/// InShutdownWarning - countdown to shutdown
|
||||
/// </summary>
|
||||
InShutdownWarning
|
||||
}
|
||||
|
||||
@@ -497,15 +599,33 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public enum eWarmingCoolingMode
|
||||
{
|
||||
/// <summary>
|
||||
/// None
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Warming
|
||||
/// </summary>
|
||||
Warming,
|
||||
|
||||
/// <summary>
|
||||
/// Cooling
|
||||
/// </summary>
|
||||
Cooling
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Base class for room emergency implementations
|
||||
/// </summary>
|
||||
public abstract class EssentialsRoomEmergencyBase : IKeyed
|
||||
{
|
||||
public string Key { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for EssentialsRoomEmergencyBase
|
||||
/// </summary>
|
||||
/// <param name="key">key of the room</param>
|
||||
public EssentialsRoomEmergencyBase(string key)
|
||||
{
|
||||
Key = key;
|
||||
|
||||
@@ -17,34 +17,95 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IEssentialsRoom : IKeyName, IReconfigurableDevice, IRunDefaultPresentRoute, IEnvironmentalControls
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the PowerFeedback
|
||||
/// </summary>
|
||||
BoolFeedback OnFeedback { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the IsOccupiedFeedback
|
||||
/// </summary>
|
||||
BoolFeedback IsWarmingUpFeedback { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the IsCoolingDownFeedback
|
||||
/// </summary>
|
||||
BoolFeedback IsCoolingDownFeedback { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether mobile control is enabled for this room
|
||||
/// </summary>
|
||||
bool IsMobileControlEnabled { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the MobileControlRoomBridge
|
||||
/// </summary>
|
||||
IMobileControlRoomMessenger MobileControlRoomBridge { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the SourceListKey
|
||||
/// </summary>
|
||||
string SourceListKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the DestinationListKey
|
||||
/// </summary>
|
||||
string DestinationListKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the AudioControlPointListKey
|
||||
/// </summary>
|
||||
string AudioControlPointListKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the CameraListKey
|
||||
/// </summary>
|
||||
string CameraListKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the ShutdownPromptTimer
|
||||
/// </summary>
|
||||
SecondsCountdownTimer ShutdownPromptTimer { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the ShutdownVacancyTimer
|
||||
/// </summary>
|
||||
int ShutdownPromptSeconds { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the ShutdownVacancySeconds
|
||||
/// </summary>
|
||||
int ShutdownVacancySeconds { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the ShutdownType
|
||||
/// </summary>
|
||||
eShutdownType ShutdownType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the LogoUrlLightBkgnd
|
||||
/// </summary>
|
||||
string LogoUrlLightBkgnd { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the LogoUrlDarkBkgnd
|
||||
/// </summary>
|
||||
string LogoUrlDarkBkgnd { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Starts the shutdown process
|
||||
/// </summary>
|
||||
/// <param name="type">type of shutdown event</param>
|
||||
void StartShutdown(eShutdownType type);
|
||||
|
||||
/// <summary>
|
||||
/// Shuts down the room
|
||||
/// </summary>
|
||||
void Shutdown();
|
||||
|
||||
/// <summary>
|
||||
/// Powers on the room to either the default source or the last source used
|
||||
/// </summary>
|
||||
void PowerOnToDefaultOrLastSource();
|
||||
}
|
||||
|
||||
|
||||
@@ -9,10 +9,21 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoomEventSchedule
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds or updates a scheduled event
|
||||
/// </summary>
|
||||
/// <param name="eventConfig"></param>
|
||||
void AddOrUpdateScheduledEvent(ScheduledEventConfig eventConfig);
|
||||
|
||||
/// <summary>
|
||||
/// Removes a scheduled event by its key
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<ScheduledEventConfig> GetScheduledEvents();
|
||||
|
||||
/// <summary>
|
||||
/// Removes a scheduled event by its key
|
||||
/// </summary>
|
||||
event EventHandler<ScheduledEventEventArgs> ScheduledEventsChanged;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IHasInCallFeedback
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the InCallFeedback
|
||||
/// </summary>
|
||||
BoolFeedback InCallFeedback { get; }
|
||||
}
|
||||
|
||||
@@ -19,6 +22,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IHasDefaultDisplay
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the DefaultDisplay
|
||||
/// </summary>
|
||||
IRoutingSink DefaultDisplay { get; }
|
||||
}
|
||||
|
||||
@@ -36,8 +42,19 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRunRouteAction
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs a route action
|
||||
/// </summary>
|
||||
/// <param name="routeKey"></param>
|
||||
/// <param name="sourceListKey"></param>
|
||||
void RunRouteAction(string routeKey, string sourceListKey);
|
||||
|
||||
/// <summary>
|
||||
/// Runs a route action with a success callback
|
||||
/// </summary>
|
||||
/// <param name="routeKey"></param>
|
||||
/// <param name="sourceListKey"></param>
|
||||
/// <param name="successCallback"></param>
|
||||
void RunRouteAction(string routeKey, string sourceListKey, Action successCallback);
|
||||
}
|
||||
|
||||
@@ -46,6 +63,12 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRunDirectRouteAction
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs a direct route
|
||||
/// </summary>
|
||||
/// <param name="sourceKey"></param>
|
||||
/// <param name="destinationKey"></param>
|
||||
/// <param name="type"></param>
|
||||
void RunDirectRoute(string sourceKey, string destinationKey, eRoutingSignalType type = eRoutingSignalType.AudioVideo);
|
||||
}
|
||||
|
||||
@@ -54,8 +77,14 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IHasMatrixRouting
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the MatrixRoutingDeviceKey
|
||||
/// </summary>
|
||||
string MatrixRoutingDeviceKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the EndpointKeys
|
||||
/// </summary>
|
||||
List<string> EndpointKeys { get; }
|
||||
}
|
||||
|
||||
@@ -64,6 +93,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IHasRoutingEndpoints
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the EndpointKeys
|
||||
/// </summary>
|
||||
List<string> EndpointKeys { get; }
|
||||
}
|
||||
|
||||
@@ -72,10 +104,21 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IShutdownPromptTimer
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the ShutdownPromptTimer
|
||||
/// </summary>
|
||||
SecondsCountdownTimer ShutdownPromptTimer { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the ShutdownPromptSeconds
|
||||
/// </summary>
|
||||
/// <param name="seconds">number of seconds to set</param>
|
||||
void SetShutdownPromptSeconds(int seconds);
|
||||
|
||||
/// <summary>
|
||||
/// Starts the shutdown process
|
||||
/// </summary>
|
||||
/// <param name="type">type of shutdown event</param>
|
||||
void StartShutdown(eShutdownType type);
|
||||
}
|
||||
|
||||
@@ -84,14 +127,32 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface ITechPassword
|
||||
{
|
||||
/// <summary>
|
||||
/// Event fired when tech password validation result is available
|
||||
/// </summary>
|
||||
event EventHandler<TechPasswordEventArgs> TechPasswordValidateResult;
|
||||
|
||||
/// <summary>
|
||||
/// Event fired when tech password is changed
|
||||
/// </summary>
|
||||
event EventHandler<EventArgs> TechPasswordChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the TechPasswordLength
|
||||
/// </summary>
|
||||
int TechPasswordLength { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Validates the tech password
|
||||
/// </summary>
|
||||
/// <param name="password">The tech password to validate</param>
|
||||
void ValidateTechPassword(string password);
|
||||
|
||||
/// <summary>
|
||||
/// Sets the tech password
|
||||
/// </summary>
|
||||
/// <param name="oldPassword">The current tech password</param>
|
||||
/// <param name="newPassword">The new tech password to set</param>
|
||||
void SetTechPassword(string oldPassword, string newPassword);
|
||||
}
|
||||
|
||||
@@ -105,6 +166,10 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public bool IsValid { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for TechPasswordEventArgs
|
||||
/// </summary>
|
||||
/// <param name="isValid"></param>
|
||||
public TechPasswordEventArgs(bool isValid)
|
||||
{
|
||||
IsValid = isValid;
|
||||
@@ -116,6 +181,10 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRunDefaultPresentRoute
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs the default present route
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
bool RunDefaultPresentRoute();
|
||||
}
|
||||
|
||||
@@ -124,6 +193,10 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRunDefaultCallRoute : IRunDefaultPresentRoute
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs the default call route
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
bool RunDefaultCallRoute();
|
||||
}
|
||||
|
||||
@@ -132,24 +205,59 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IEnvironmentalControls
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the EnvironmentalControlDevices
|
||||
/// </summary>
|
||||
List<EssentialsDevice> EnvironmentalControlDevices { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the room has environmental control devices
|
||||
/// </summary>
|
||||
bool HasEnvironmentalControlDevices { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the contract for IRoomOccupancy
|
||||
/// </summary>
|
||||
public interface IRoomOccupancy : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the RoomOccupancy
|
||||
/// </summary>
|
||||
IOccupancyStatusProvider RoomOccupancy { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the OccupancyStatusProviderIsRemote
|
||||
/// </summary>
|
||||
bool OccupancyStatusProviderIsRemote { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Sets the room occupancy
|
||||
/// </summary>
|
||||
/// <param name="statusProvider"></param>
|
||||
/// <param name="timeoutMinutes"></param>
|
||||
void SetRoomOccupancy(IOccupancyStatusProvider statusProvider, int timeoutMinutes);
|
||||
|
||||
/// <summary>
|
||||
/// Called when the room has been vacated for the timeout period
|
||||
/// </summary>
|
||||
/// <param name="o"></param>
|
||||
void RoomVacatedForTimeoutPeriod(object o);
|
||||
|
||||
/// <summary>
|
||||
/// Starts the room vacancy timer
|
||||
/// </summary>
|
||||
/// <param name="mode">vacancy mode</param>
|
||||
void StartRoomVacancyTimer(eVacancyMode mode);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the VacancyMode
|
||||
/// </summary>
|
||||
eVacancyMode VacancyMode { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Event fired when room occupancy is set
|
||||
/// </summary>
|
||||
event EventHandler<EventArgs> RoomOccupancyIsSet;
|
||||
}
|
||||
|
||||
@@ -158,6 +266,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IEmergency
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the Emergency
|
||||
/// </summary>
|
||||
EssentialsRoomEmergencyBase Emergency { get; }
|
||||
}
|
||||
|
||||
@@ -166,6 +277,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IMicrophonePrivacy
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the MicrophonePrivacy
|
||||
/// </summary>
|
||||
Core.Privacy.MicrophonePrivacyController MicrophonePrivacy { get; }
|
||||
}
|
||||
|
||||
@@ -174,6 +288,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IHasAccessoryDevices : IKeyName
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the AccessoryDeviceKeys
|
||||
/// </summary>
|
||||
List<string> AccessoryDeviceKeys { get; }
|
||||
}
|
||||
|
||||
@@ -182,6 +299,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IHasCiscoNavigatorTouchpanel
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the CiscoNavigatorTouchpanelKey
|
||||
/// </summary>
|
||||
string CiscoNavigatorTouchpanelKey { get; }
|
||||
}
|
||||
}
|
||||
@@ -12,33 +12,54 @@ namespace PepperDash.Essentials.Core
|
||||
{
|
||||
//***************************************************************************************************
|
||||
|
||||
/// <summary>
|
||||
/// Abstract base class for Room
|
||||
/// </summary>
|
||||
public abstract class Room : Device, IHasFeedback
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the RoomIsOnFeedback
|
||||
/// </summary>
|
||||
public abstract BoolFeedback RoomIsOnFeedback { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsCoolingDownFeedback
|
||||
/// </summary>
|
||||
public abstract BoolFeedback IsCoolingDownFeedback { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the IsWarmingUpFeedback
|
||||
/// </summary>
|
||||
public abstract BoolFeedback IsWarmingUpFeedback { get; protected set; }
|
||||
|
||||
// In concrete classes, these should be computed from the relevant devices
|
||||
/// <summary>
|
||||
/// Gets or sets the CooldownTime
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// Gets or sets the CooldownTime
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public virtual uint CooldownTime { get { return 10000; } }
|
||||
/// <summary>
|
||||
/// Gets or sets the WarmupTime
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the WarmupTime
|
||||
/// </summary>
|
||||
/// <inheritdoc />
|
||||
public virtual uint WarmupTime { get { return 5000; } }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Description
|
||||
/// </summary>
|
||||
/// <summary>
|
||||
/// Gets or sets the Description
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the HelpMessage
|
||||
/// </summary>
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the HelpMessage
|
||||
/// </summary>
|
||||
public string HelpMessage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Room Constructor
|
||||
/// </summary>
|
||||
/// <param name="key">room key</param>
|
||||
/// <param name="name">room name</param>
|
||||
public Room(string key, string name)
|
||||
: base(key, name)
|
||||
{
|
||||
@@ -59,6 +80,9 @@ namespace PepperDash.Essentials.Core
|
||||
|
||||
#region IDeviceWithOutputs Members
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Feedbacks
|
||||
/// </summary>
|
||||
public virtual FeedbackCollection<Feedback> Feedbacks
|
||||
{
|
||||
get
|
||||
|
||||
@@ -13,6 +13,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IOccupancyStatusProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the RoomIsOccupiedFeedback
|
||||
/// </summary>
|
||||
BoolFeedback RoomIsOccupiedFeedback { get; }
|
||||
}
|
||||
}
|
||||
@@ -326,6 +326,8 @@ namespace PepperDash.Essentials.Core
|
||||
/// <param name="signalType">This recursive function should not be called with AudioVideo</param>
|
||||
/// <param name="cycle">Just an informational counter</param>
|
||||
/// <param name="routeTable">The RouteDescriptor being populated as the route is discovered</param>
|
||||
/// <param name="outputPortToUse">The RoutingOutputPort to use for the route</param>
|
||||
/// <param name="sourcePort">The specific source output port to use (optional)</param>
|
||||
/// <returns>true if source is hit</returns>
|
||||
private static bool GetRouteToSource(this IRoutingInputs destination, IRoutingOutputs source,
|
||||
RoutingOutputPort outputPortToUse, List<IRoutingInputsOutputs> alreadyCheckedDevices,
|
||||
|
||||
@@ -12,8 +12,14 @@ namespace PepperDash.Essentials.Core.Routing
|
||||
/// </summary>
|
||||
public interface IVideoSync : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets whether or not video sync is detected
|
||||
/// </summary>
|
||||
bool VideoSyncDetected { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Event raised when video sync changes
|
||||
/// </summary>
|
||||
event EventHandler VideoSyncChanged;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,22 @@ namespace PepperDash.Essentials.Core.Routing
|
||||
/// </summary>
|
||||
public interface IMatrixRouting
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the input slots
|
||||
/// </summary>
|
||||
Dictionary<string, IRoutingInputSlot> InputSlots { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the output slots
|
||||
/// </summary>
|
||||
Dictionary<string, IRoutingOutputSlot> OutputSlots { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Routes the specified input slot to the specified output slot for the specified signal type
|
||||
/// </summary>
|
||||
/// <param name="inputSlotKey">key of the input slot</param>
|
||||
/// <param name="outputSlotKey">key of the output slot</param>
|
||||
/// <param name="type">signal type</param>
|
||||
void Route(string inputSlotKey, string outputSlotKey, eRoutingSignalType type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
/// </summary>
|
||||
public interface IRmcRouting : IRoutingNumeric
|
||||
{
|
||||
/// <summary>
|
||||
/// Feedback for the current Audio/Video source as a number
|
||||
/// </summary>
|
||||
IntFeedback AudioVideoSourceNumericFeedback { get; }
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,12 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRouting : IRoutingInputsOutputs
|
||||
{
|
||||
/// <summary>
|
||||
/// Executes a switch on the device
|
||||
/// </summary>
|
||||
/// <param name="inputSelector">input selector</param>
|
||||
/// <param name="outputSelector">output selector</param>
|
||||
/// <param name="signalType">type of signal</param>
|
||||
void ExecuteSwitch(object inputSelector, object outputSelector, eRoutingSignalType signalType);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoutingFeedback : IKeyName
|
||||
{
|
||||
/// <summary>
|
||||
/// Event raised when a numeric switch changes
|
||||
/// </summary>
|
||||
event EventHandler<RoutingNumericEventArgs> NumericSwitchChange;
|
||||
//void OnSwitchChange(RoutingNumericEventArgs e);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoutingHasVideoInputSyncFeedbacks
|
||||
{
|
||||
/// <summary>
|
||||
/// Video Input Sync Feedbacks
|
||||
/// </summary>
|
||||
FeedbackCollection<BoolFeedback> VideoInputSyncFeedbacks { get; }
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,9 @@
|
||||
/// </summary>
|
||||
public interface IRoutingInputSlot: IRoutingSlot, IOnline, IVideoSync
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the Tx device key
|
||||
/// </summary>
|
||||
string TxDeviceKey { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoutingInputs : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Collection of Input Ports
|
||||
/// </summary>
|
||||
RoutingPortCollection<RoutingInputPort> InputPorts { get; }
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,12 @@
|
||||
/// </summary>
|
||||
public interface IRoutingNumeric : IRouting
|
||||
{
|
||||
/// <summary>
|
||||
/// Executes a numeric switch on the device
|
||||
/// </summary>
|
||||
/// <param name="input">input selector</param>
|
||||
/// <param name="output">output selector</param>
|
||||
/// <param name="type">type of signal</param>
|
||||
void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type);
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,19 @@ namespace PepperDash.Essentials.Core.Routing
|
||||
/// </summary>
|
||||
public interface IRoutingOutputSlot : IRoutingSlot
|
||||
{
|
||||
/// <summary>
|
||||
/// Event raised when output slot changes
|
||||
/// </summary>
|
||||
event EventHandler OutputSlotChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Rx device key
|
||||
/// </summary>
|
||||
string RxDeviceKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current routes
|
||||
/// </summary>
|
||||
Dictionary<eRoutingSignalType, IRoutingInputSlot> CurrentRoutes { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoutingOutputs : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Collection of Output Ports
|
||||
/// </summary>
|
||||
RoutingPortCollection<RoutingOutputPort> OutputPorts { get; }
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,10 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoutingSinkWithSwitching : IRoutingSink
|
||||
{
|
||||
/// <summary>
|
||||
/// Executes a switch on the device
|
||||
/// </summary>
|
||||
/// <param name="inputSelector">input selector</param>
|
||||
void ExecuteSwitch(object inputSelector);
|
||||
}
|
||||
|
||||
@@ -20,6 +24,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public interface IRoutingSinkWithSwitchingWithInputPort:IRoutingSinkWithSwitching, IRoutingSinkWithInputPort
|
||||
{
|
||||
/// <summary>
|
||||
/// Event raised when the input changes
|
||||
/// </summary>
|
||||
event InputChangedEventHandler InputChanged;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,14 @@ namespace PepperDash.Essentials.Core.Routing
|
||||
/// </summary>
|
||||
public interface IRoutingSlot:IKeyName
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the slot number
|
||||
/// </summary>
|
||||
int SlotNumber { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the supported signal types
|
||||
/// </summary>
|
||||
eRoutingSignalType SupportedSignalTypes { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// </summary>
|
||||
public class RouteDescriptorCollection
|
||||
{
|
||||
/// <summary>
|
||||
/// DefaultCollection static property
|
||||
/// </summary>
|
||||
public static RouteDescriptorCollection DefaultCollection
|
||||
{
|
||||
get
|
||||
@@ -57,6 +60,12 @@ namespace PepperDash.Essentials.Core
|
||||
return RouteDescriptors.FirstOrDefault(rd => rd.Destination == destination);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the RouteDescriptor for a destination and input port key. Returns null if no matching RouteDescriptor exists.
|
||||
/// </summary>
|
||||
/// <param name="destination"></param>
|
||||
/// <param name="inputPortKey"></param>
|
||||
/// <returns></returns>
|
||||
public RouteDescriptor GetRouteDescriptorForDestinationAndInputPort(IRoutingInputs destination, string inputPortKey)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Information, "Getting route descriptor for '{destination}':'{inputPortKey}'", destination?.Key ?? null, string.IsNullOrEmpty(inputPortKey) ? "auto" : inputPortKey);
|
||||
|
||||
@@ -21,6 +21,9 @@ namespace PepperDash.Essentials.Core
|
||||
/// <param name="selector">An object used to refer to this port in the IRouting device's ExecuteSwitch method.
|
||||
/// May be string, number, whatever</param>
|
||||
/// <param name="parent">The IRoutingInputs object this lives on</param>
|
||||
/// <param name="key">key of the port</param>
|
||||
/// <param name="type">type of the routing signal</param>
|
||||
/// <param name="connType">connection type of the port</param>
|
||||
public RoutingInputPort(string key, eRoutingSignalType type, eRoutingPortConnectionType connType,
|
||||
object selector, IRoutingInputs parent)
|
||||
: this (key, type, connType, selector, parent, false)
|
||||
@@ -32,6 +35,12 @@ namespace PepperDash.Essentials.Core
|
||||
/// the ports that link a DM card to a DM matrix bus
|
||||
/// </summary>
|
||||
/// <param name="isInternal">true for internal ports</param>
|
||||
/// <param name="key">key of the port</param>
|
||||
/// <param name="type">type of the routing signal</param>
|
||||
/// <param name="connType">connection type of the port</param>
|
||||
/// <param name="selector">An object used to refer to this port in the IRouting device's ExecuteSwitch method.
|
||||
/// May be string, number, whatever</param>
|
||||
/// <param name="parent">The IRoutingInputs object this lives on</param>
|
||||
public RoutingInputPort(string key, eRoutingSignalType type, eRoutingPortConnectionType connType,
|
||||
object selector, IRoutingInputs parent, bool isInternal)
|
||||
: base(key, type, connType, selector, isInternal)
|
||||
|
||||
@@ -5,7 +5,99 @@
|
||||
/// </summary>
|
||||
public enum eRoutingPortConnectionType
|
||||
{
|
||||
None, BackplaneOnly, DisplayPort, Dvi, Hdmi, Rgb, Vga, LineAudio, DigitalAudio, Sdi,
|
||||
Composite, Component, DmCat, DmMmFiber, DmSmFiber, Speaker, Streaming, UsbC, HdBaseT
|
||||
/// <summary>
|
||||
/// No connection type
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Backplane only connection
|
||||
/// </summary>
|
||||
BackplaneOnly,
|
||||
|
||||
/// <summary>
|
||||
/// Connection via cable
|
||||
/// </summary>
|
||||
DisplayPort,
|
||||
|
||||
/// <summary>
|
||||
/// DVI connection
|
||||
/// </summary>
|
||||
Dvi,
|
||||
|
||||
/// <summary>
|
||||
/// HDMI connection
|
||||
/// </summary>
|
||||
Hdmi,
|
||||
|
||||
/// <summary>
|
||||
/// RGB connection
|
||||
/// </summary>
|
||||
Rgb,
|
||||
|
||||
/// <summary>
|
||||
/// VGA connection
|
||||
/// </summary>
|
||||
Vga,
|
||||
|
||||
/// <summary>
|
||||
/// Line audio connection
|
||||
/// </summary>
|
||||
LineAudio,
|
||||
|
||||
/// <summary>
|
||||
/// Digital audio connection
|
||||
/// </summary>
|
||||
DigitalAudio,
|
||||
|
||||
/// <summary>
|
||||
/// SDI connection
|
||||
/// </summary>
|
||||
Sdi,
|
||||
|
||||
/// <summary>
|
||||
/// Composite connection
|
||||
/// </summary>
|
||||
Composite,
|
||||
|
||||
/// <summary>
|
||||
/// Component connection
|
||||
/// </summary>
|
||||
Component,
|
||||
|
||||
/// <summary>
|
||||
/// DM CAT connection
|
||||
/// </summary>
|
||||
DmCat,
|
||||
|
||||
/// <summary>
|
||||
/// DM MM Fiber connection
|
||||
/// </summary>
|
||||
DmMmFiber,
|
||||
|
||||
/// <summary>
|
||||
/// DM SM Fiber connection
|
||||
/// </summary>
|
||||
DmSmFiber,
|
||||
|
||||
/// <summary>
|
||||
/// Speaker connection
|
||||
/// </summary>
|
||||
Speaker,
|
||||
|
||||
/// <summary>
|
||||
/// Microphone connection
|
||||
/// </summary>
|
||||
Streaming,
|
||||
|
||||
/// <summary>
|
||||
/// USB-C connection
|
||||
/// </summary>
|
||||
UsbC,
|
||||
|
||||
/// <summary>
|
||||
/// HDBaseT connection
|
||||
/// </summary>
|
||||
HdBaseT
|
||||
}
|
||||
}
|
||||
@@ -3,17 +3,40 @@
|
||||
|
||||
namespace PepperDash.Essentials.Core
|
||||
{
|
||||
[Flags]
|
||||
/// <summary>
|
||||
/// Enumeration of eRoutingSignalType values
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum eRoutingSignalType
|
||||
{
|
||||
/// <summary>
|
||||
/// Audio signal type
|
||||
/// </summary>
|
||||
Audio = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Video signal type
|
||||
/// </summary>
|
||||
Video = 2,
|
||||
|
||||
/// <summary>
|
||||
/// AudioVideo signal type
|
||||
/// </summary>
|
||||
AudioVideo = Audio | Video,
|
||||
|
||||
/// <summary>
|
||||
/// Control signal type
|
||||
/// </summary>
|
||||
UsbOutput = 8,
|
||||
|
||||
/// <summary>
|
||||
/// Control signal type
|
||||
/// </summary>
|
||||
UsbInput = 16,
|
||||
|
||||
/// <summary>
|
||||
/// Secondary audio signal type
|
||||
/// </summary>
|
||||
SecondaryAudio = 32
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user