private CanvasPositionSource(string serialNumber, int panelID, EPositionPart part) : base(getID(serialNumber, panelID, part), getDisplayName(part), getCategory(serialNumber, panelID)) { Communication.StaticOnLayoutEvent += ExternalControlEndpoint_StaticOnLayoutEvent; SerialNumber = serialNumber; PanelID = panelID; Part = part; var position = NanoleafPlugin.getClient(SerialNumber).Panels.First(p => p.ID.Equals(panelID)); switch (part) { case EPositionPart.X: CurrentValue = position.X; break; case EPositionPart.Y: CurrentValue = position.Y; break; case EPositionPart.Orientation: CurrentValue = position.Orientation; break; } }
private static string getDisplayName(EPositionPart part) { return(part.ToString()); }
private static string getID(string serialNumber, int panelID, EPositionPart part) { return($"Nanoleaf-{serialNumber}-Canvas:{panelID}-Position:{part}"); }