using PepperDash.Essentials.Core; namespace PepperDash.Essentials.Devices.Common.Sources { /// /// Represents a InRoomPc /// public class InRoomPc : EssentialsDevice, IHasFeedback, IRoutingSource, IRoutingOutputs, IAttachVideoStatus, IUiDisplayInfo, IUsageTracking { /// /// Gets or sets the DisplayUiType /// public uint DisplayUiType { get { return DisplayUiConstants.TypeLaptop; } } /// /// Gets or sets the IconName /// public string IconName { get; set; } /// /// Gets or sets the HasPowerOnFeedback /// public BoolFeedback HasPowerOnFeedback { get; private set; } /// /// Gets or sets the AnyVideoOut /// public RoutingOutputPort AnyVideoOut { get; private set; } #region IRoutingOutputs Members /// /// Gets or sets the OutputPorts /// public RoutingPortCollection OutputPorts { get; private set; } #endregion /// /// Initializes a new instance of the class /// /// /// public InRoomPc(string key, string name) : base(key, name) { IconName = "PC"; HasPowerOnFeedback = new BoolFeedback("HasPowerFeedback", () => this.GetVideoStatuses() != VideoStatusOutputs.NoStatus); OutputPorts = new RoutingPortCollection { (AnyVideoOut = new RoutingOutputPort(RoutingPortNames.AnyVideoOut, eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.None, 0, this)) }; } #region IHasFeedback Members /// /// Passes through the VideoStatuses list /// public FeedbackCollection Feedbacks { get { var newList = new FeedbackCollection(); newList.AddRange(this.GetVideoStatuses().ToList()); return newList; } } #endregion #region IUsageTracking Members /// /// Gets or sets the UsageTracker /// public UsageTracking UsageTracker { get; set; } #endregion } }