using System.Xml.Serialization; using Newtonsoft.Json; using SabreTools.Core.Tools; namespace SabreTools.DatItems.Formats { /// /// Represents one machine display /// [JsonObject("display"), XmlRoot("display")] public sealed class Display : DatItem { #region Fields /// /> protected override ItemType ItemType => ItemType.Display; /// /> protected override string? NameKey => null; #endregion #region Constructors public Display() : base() { } public Display(Models.Metadata.Display item) : base(item) { } public Display(Models.Metadata.Video item) : base() { SetFieldValue(Models.Metadata.Video.AspectXKey, NumberHelper.ConvertToInt64(item.ReadString(Models.Metadata.Video.AspectXKey))); SetFieldValue(Models.Metadata.Video.AspectYKey, NumberHelper.ConvertToInt64(item.ReadString(Models.Metadata.Video.AspectYKey))); SetFieldValue(Models.Metadata.Display.DisplayTypeKey, item.ReadString(Models.Metadata.Video.ScreenKey).AsEnumValue().AsStringValue()); SetFieldValue(Models.Metadata.Display.HeightKey, NumberHelper.ConvertToInt64(item.ReadString(Models.Metadata.Video.HeightKey))); SetFieldValue(Models.Metadata.Display.RefreshKey, NumberHelper.ConvertToDouble(item.ReadString(Models.Metadata.Video.RefreshKey))); SetFieldValue(Models.Metadata.Display.WidthKey, NumberHelper.ConvertToInt64(item.ReadString(Models.Metadata.Video.WidthKey))); switch (item.ReadString(Models.Metadata.Video.OrientationKey)) { case "horizontal": SetFieldValue(Models.Metadata.Display.RotateKey, 0); break; case "vertical": SetFieldValue(Models.Metadata.Display.RotateKey, 90); break; } } #endregion } }