using System.Collections.Generic; using System.Linq; using Crestron.SimplSharpPro.DeviceSupport; using PepperDash.Core; namespace PepperDash.Essentials.Core { public interface IHasFeedback : IKeyed { /// /// This method shall return a list of all Output objects on a device, /// including all "aggregate" devices. /// List Feedbacks { get; } } public static class IHasFeedbackExtensions { public static void DumpFeedbacksToConsole(this IHasFeedback source, bool getCurrentStates) { var outputs = source.Feedbacks.OrderBy(x => x.Type); if (outputs != null) { Debug.Console(0, source, "\n\nAvailable outputs:"); foreach (var o in outputs) { string val = ""; if (getCurrentStates) { switch (o.Type) { case eCueType.Bool: val = " = " + o.BoolValue; break; case eCueType.Int: val = " = " + o.IntValue; break; case eCueType.String: val = " = " + o.StringValue; break; //case eOutputType.Other: // break; } } Debug.Console(0, "{0,-8} {1,5} {2}{3}", o.Type, o.Cue.Number, (string.IsNullOrEmpty(o.Cue.Name) ? "-none-" : o.Cue.Name), val); } } else Debug.Console(0, source, "No available outputs:"); } } }