mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-22 06:45:11 +00:00
Enum type conversion to property
This commit is contained in:
@@ -12,7 +12,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
[JsonIgnore]
|
||||
public Data.Models.Metadata.ChipType? ChipType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Chip)?.ChipType;
|
||||
set => (_internal as Data.Models.Metadata.Chip)?.ChipType = value;
|
||||
}
|
||||
|
||||
public bool? SoundOnly
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Chip)?.SoundOnly;
|
||||
@@ -25,13 +30,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Chip() : base() { }
|
||||
|
||||
public Chip(Data.Models.Metadata.Chip item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? chipType = ReadString(Data.Models.Metadata.Chip.ChipTypeKey);
|
||||
if (chipType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Chip.ChipTypeKey, chipType.AsChipType()?.AsStringValue());
|
||||
}
|
||||
public Chip(Data.Models.Metadata.Chip item) : base(item) { }
|
||||
|
||||
public Chip(Data.Models.Metadata.Chip item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -10,17 +10,21 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("condition"), XmlRoot("condition")]
|
||||
public sealed class Condition : DatItem<Data.Models.Metadata.Condition>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.Relation? Relation
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Condition)?.Relation;
|
||||
set => (_internal as Data.Models.Metadata.Condition)?.Relation = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public Condition() : base() { }
|
||||
|
||||
public Condition(Data.Models.Metadata.Condition item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? condition = ReadString(Data.Models.Metadata.Condition.RelationKey);
|
||||
if (condition is not null)
|
||||
Write<string?>(Data.Models.Metadata.Condition.RelationKey, condition.AsRelation()?.AsStringValue());
|
||||
}
|
||||
public Condition(Data.Models.Metadata.Condition item) : base(item) { }
|
||||
|
||||
public Condition(Data.Models.Metadata.Condition item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -12,6 +12,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.ControlType? ControlType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Control)?.ControlType;
|
||||
set => (_internal as Data.Models.Metadata.Control)?.ControlType = value;
|
||||
}
|
||||
|
||||
public bool? Reverse
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Control)?.Reverse;
|
||||
@@ -54,10 +60,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
long? sensitivity = ReadLong(Data.Models.Metadata.Control.SensitivityKey);
|
||||
if (sensitivity is not null)
|
||||
Write<string?>(Data.Models.Metadata.Control.SensitivityKey, sensitivity.ToString());
|
||||
|
||||
string? controlType = ReadString(Data.Models.Metadata.Control.ControlTypeKey);
|
||||
if (controlType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Control.ControlTypeKey, controlType.AsControlType()?.AsStringValue());
|
||||
}
|
||||
|
||||
public Control(Data.Models.Metadata.Control item, Machine machine, Source source) : this(item)
|
||||
|
||||
@@ -11,6 +11,16 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("dataarea"), XmlRoot("dataarea")]
|
||||
public sealed class DataArea : DatItem<Data.Models.Metadata.DataArea>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.Endianness? Endianness
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.DataArea)?.Endianness;
|
||||
set => (_internal as Data.Models.Metadata.DataArea)?.Endianness = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public DataArea() : base() { }
|
||||
@@ -18,10 +28,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public DataArea(Data.Models.Metadata.DataArea item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? endianness = ReadString(Data.Models.Metadata.DataArea.EndiannessKey);
|
||||
if (endianness is not null)
|
||||
Write<string?>(Data.Models.Metadata.DataArea.EndiannessKey, endianness.AsEndianness()?.AsStringValue());
|
||||
|
||||
long? size = ReadLong(Data.Models.Metadata.DataArea.SizeKey);
|
||||
if (size is not null)
|
||||
Write<string?>(Data.Models.Metadata.DataArea.SizeKey, size.ToString());
|
||||
|
||||
@@ -13,6 +13,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.DeviceType? DeviceType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Device)?.DeviceType;
|
||||
set => (_internal as Data.Models.Metadata.Device)?.DeviceType = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool InstancesSpecified
|
||||
{
|
||||
@@ -46,10 +52,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
if (mandatory is not null)
|
||||
Write<string?>(Data.Models.Metadata.Device.MandatoryKey, mandatory.FromYesNo());
|
||||
|
||||
string? deviceType = ReadString(Data.Models.Metadata.Device.DeviceTypeKey);
|
||||
if (deviceType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Device.DeviceTypeKey, deviceType.AsDeviceType()?.AsStringValue());
|
||||
|
||||
// Handle subitems
|
||||
var instance = item.Read<Data.Models.Metadata.Instance>(Data.Models.Metadata.Device.InstanceKey);
|
||||
if (instance is not null)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Xml.Serialization;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
@@ -56,6 +56,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Disk)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Disk)?.Status = value;
|
||||
}
|
||||
|
||||
public bool? Writable
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Disk)?.Writable;
|
||||
@@ -69,18 +75,13 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public Disk() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
Write<string?>(Data.Models.Metadata.Disk.StatusKey, ItemStatus.None.AsStringValue());
|
||||
Status = ItemStatus.None;
|
||||
}
|
||||
|
||||
public Disk(Data.Models.Metadata.Disk item) : base(item)
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
|
||||
// Process flag values
|
||||
string? status = ReadString(Data.Models.Metadata.Disk.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Disk.StatusKey, status.AsItemStatus()?.AsStringValue());
|
||||
|
||||
// Process hash values
|
||||
string? md5 = ReadString(Data.Models.Metadata.Disk.MD5Key);
|
||||
if (md5 is not null)
|
||||
|
||||
@@ -13,6 +13,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.DisplayType? DisplayType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Display)?.DisplayType;
|
||||
set => (_internal as Data.Models.Metadata.Display)?.DisplayType = value;
|
||||
}
|
||||
|
||||
public bool? FlipX
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Display)?.FlipX;
|
||||
@@ -56,10 +62,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
if (rotate is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.RotateKey, rotate.ToString());
|
||||
|
||||
string? displayType = ReadString(Data.Models.Metadata.Display.DisplayTypeKey);
|
||||
if (displayType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.DisplayTypeKey, displayType.AsDisplayType()?.AsStringValue());
|
||||
|
||||
long? vbEnd = ReadLong(Data.Models.Metadata.Display.VBEndKey);
|
||||
if (vbEnd is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.VBEndKey, vbEnd.ToString());
|
||||
@@ -88,7 +90,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
// TODO: Convert this block to more traditional set of if/then
|
||||
Write(Data.Models.Metadata.Video.AspectXKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.AspectXKey)));
|
||||
Write(Data.Models.Metadata.Video.AspectYKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.AspectYKey)));
|
||||
Write<string?>(Data.Models.Metadata.Display.DisplayTypeKey, item.ReadString(Data.Models.Metadata.Video.ScreenKey).AsDisplayType()?.AsStringValue());
|
||||
DisplayType = item.Screen;
|
||||
Write(Data.Models.Metadata.Display.HeightKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.HeightKey)));
|
||||
Write(Data.Models.Metadata.Display.RefreshKey, NumberHelper.ConvertToDouble(item.ReadString(Data.Models.Metadata.Video.RefreshKey)));
|
||||
Write(Data.Models.Metadata.Display.WidthKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.WidthKey)));
|
||||
@@ -123,10 +125,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
if (refresh is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.RefreshKey, refresh.ToString());
|
||||
|
||||
string? screen = ReadString(Data.Models.Metadata.Video.ScreenKey);
|
||||
if (screen is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.DisplayTypeKey, screen.AsDisplayType()?.AsStringValue());
|
||||
|
||||
long? width = ReadLong(Data.Models.Metadata.Video.WidthKey);
|
||||
if (width is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.WidthKey, width.ToString());
|
||||
|
||||
@@ -12,6 +12,30 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.Blit? Blit
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Blit;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Blit = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Cocktail
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Cocktail;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Cocktail = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Color
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Color;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Color = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Emulation
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Emulation;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Emulation = value;
|
||||
}
|
||||
|
||||
public bool? Incomplete
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Incomplete;
|
||||
@@ -30,6 +54,24 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.RequiresArtwork = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.Supported? SaveState
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.SaveState;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.SaveState = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Sound
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Sound;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Sound = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Status = value;
|
||||
}
|
||||
|
||||
public bool? Unofficial
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Unofficial;
|
||||
@@ -45,33 +87,9 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public Driver(Data.Models.Metadata.Driver item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? cocktail = ReadString(Data.Models.Metadata.Driver.CocktailKey);
|
||||
if (cocktail is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.CocktailKey, cocktail.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
string? color = ReadString(Data.Models.Metadata.Driver.ColorKey);
|
||||
if (color is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.ColorKey, color.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
string? emulation = ReadString(Data.Models.Metadata.Driver.EmulationKey);
|
||||
if (emulation is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.EmulationKey, emulation.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
long? paletteSize = ReadLong(Data.Models.Metadata.Driver.PaletteSizeKey);
|
||||
if (paletteSize is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.PaletteSizeKey, paletteSize.ToString());
|
||||
|
||||
string? saveState = ReadString(Data.Models.Metadata.Driver.SaveStateKey);
|
||||
if (saveState is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.SaveStateKey, saveState.AsSupported()?.AsStringValue(useSecond: true));
|
||||
|
||||
string? sound = ReadString(Data.Models.Metadata.Driver.SoundKey);
|
||||
if (sound is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.SoundKey, sound.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Driver.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.StatusKey, status.AsSupportStatus()?.AsStringValue());
|
||||
}
|
||||
|
||||
public Driver(Data.Models.Metadata.Driver item, Machine machine, Source source) : this(item)
|
||||
|
||||
@@ -10,25 +10,33 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("feature"), XmlRoot("feature")]
|
||||
public sealed class Feature : DatItem<Data.Models.Metadata.Feature>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.FeatureType? FeatureType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.FeatureType;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.FeatureType = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Overall
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Overall;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Overall = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Status = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public Feature() : base() { }
|
||||
|
||||
public Feature(Data.Models.Metadata.Feature item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? overall = ReadString(Data.Models.Metadata.Feature.OverallKey);
|
||||
if (overall is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.OverallKey, overall.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Feature.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.StatusKey, status.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? featureType = ReadString(Data.Models.Metadata.Feature.FeatureTypeKey);
|
||||
if (featureType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.FeatureTypeKey, featureType.AsFeatureType()?.AsStringValue());
|
||||
}
|
||||
public Feature(Data.Models.Metadata.Feature item) : base(item) { }
|
||||
|
||||
public Feature(Data.Models.Metadata.Feature item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -21,6 +21,24 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.FeatureType? FeatureType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.FeatureType;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.FeatureType = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Overall
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Overall;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Overall = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Status = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc>/>
|
||||
/// <remarks>This needs to be set to PartFeature because internally it uses Feature</remarks>
|
||||
public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.PartFeature;
|
||||
@@ -31,21 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public PartFeature() : base() { }
|
||||
|
||||
public PartFeature(Data.Models.Metadata.Feature item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? overall = ReadString(Data.Models.Metadata.Feature.OverallKey);
|
||||
if (overall is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.OverallKey, overall.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Feature.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.StatusKey, status.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? featureType = ReadString(Data.Models.Metadata.Feature.FeatureTypeKey);
|
||||
if (featureType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.FeatureTypeKey, featureType.AsFeatureType()?.AsStringValue());
|
||||
}
|
||||
public PartFeature(Data.Models.Metadata.Feature item) : base(item) { }
|
||||
|
||||
public PartFeature(Data.Models.Metadata.Feature item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
&& (!string.IsNullOrEmpty(dataArea.GetName())
|
||||
|| dataArea.ReadLong(Data.Models.Metadata.DataArea.SizeKey) is not null
|
||||
|| dataArea.ReadLong(Data.Models.Metadata.DataArea.WidthKey) is not null
|
||||
|| dataArea.ReadString(Data.Models.Metadata.DataArea.EndiannessKey).AsEndianness() is not null);
|
||||
|| dataArea.Endianness is not null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,14 +60,10 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.Inverted = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool ItemStatusSpecified
|
||||
public LoadFlag? LoadFlag
|
||||
{
|
||||
get
|
||||
{
|
||||
var status = ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus();
|
||||
return status is not null && status != ItemStatus.None;
|
||||
}
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.LoadFlag;
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.LoadFlag = value;
|
||||
}
|
||||
|
||||
public bool? MIA
|
||||
@@ -76,6 +72,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.MIA = value;
|
||||
}
|
||||
|
||||
public OpenMSXSubType? OpenMSXMediaType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.OpenMSXMediaType;
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.OpenMSXMediaType = value;
|
||||
}
|
||||
|
||||
public bool? Optional
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.Optional;
|
||||
@@ -110,6 +112,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.SoundOnly = value;
|
||||
}
|
||||
|
||||
public ItemStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.Status = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@@ -117,7 +125,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public Rom() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.None.AsStringValue());
|
||||
Status = ItemStatus.None;
|
||||
}
|
||||
|
||||
public Rom(Dump item, Machine machine, Source source, int index)
|
||||
@@ -150,7 +158,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
SetName(name);
|
||||
Write<string?>(Data.Models.Metadata.Rom.OffsetKey, rom.ReadString(Data.Models.Metadata.Rom.StartKey));
|
||||
Write<string?>(Data.Models.Metadata.Rom.OpenMSXMediaType, subType?.AsStringValue());
|
||||
OpenMSXMediaType = subType;
|
||||
Write<string?>(Data.Models.Metadata.Rom.OpenMSXType, rom.ReadString(Data.Models.Metadata.Rom.OpenMSXType) ?? rom.ItemType.ToString());
|
||||
Write<string?>(Data.Models.Metadata.Rom.RemarkKey, rom.ReadString(Data.Models.Metadata.Rom.RemarkKey));
|
||||
Write<string?>(Data.Models.Metadata.Rom.SHA1Key, rom.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
@@ -229,19 +237,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
|
||||
// Process flag values
|
||||
string? loadFlag = ReadString(Data.Models.Metadata.Rom.LoadFlagKey);
|
||||
if (loadFlag is not null)
|
||||
Write<string?>(Data.Models.Metadata.Rom.LoadFlagKey, loadFlag.AsLoadFlag()?.AsStringValue());
|
||||
|
||||
string? openMSXMediaType = ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType);
|
||||
if (openMSXMediaType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Rom.OpenMSXMediaType, openMSXMediaType.AsOpenMSXSubType()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Rom.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Rom.StatusKey, status.AsItemStatus()?.AsStringValue());
|
||||
|
||||
// Process hash values
|
||||
long? size = ReadLong(Data.Models.Metadata.Rom.SizeKey);
|
||||
if (size is not null)
|
||||
|
||||
@@ -10,17 +10,22 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("softwarelist"), XmlRoot("softwarelist")]
|
||||
public sealed class SoftwareList : DatItem<Data.Models.Metadata.SoftwareList>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.SoftwareListStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.SoftwareList)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.SoftwareList)?.Status = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public SoftwareList() : base() { }
|
||||
|
||||
public SoftwareList(Data.Models.Metadata.SoftwareList item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? status = ReadString(Data.Models.Metadata.SoftwareList.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.SoftwareList.StatusKey, status.AsSoftwareListStatus()?.AsStringValue());
|
||||
|
||||
// Handle subitems
|
||||
// TODO: Handle the Software subitem
|
||||
}
|
||||
|
||||
@@ -39,6 +39,12 @@ namespace SabreTools.Metadata.DatItems
|
||||
set => _internal.Runnable = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.Supported? Supported
|
||||
{
|
||||
get => _internal.Supported;
|
||||
set => _internal.Supported = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@@ -91,10 +97,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
if (im2Crc is not null)
|
||||
Write<string?>(Data.Models.Metadata.Machine.Im2CRCKey, TextHelper.NormalizeCRC32(im2Crc));
|
||||
|
||||
string? supported = ReadString(Data.Models.Metadata.Machine.SupportedKey);
|
||||
if (supported is not null)
|
||||
Write<string?>(Data.Models.Metadata.Machine.SupportedKey, supported.AsSupported()?.AsStringValue());
|
||||
|
||||
// Handle Trurip object, if it exists
|
||||
var truripItem = machine.Read<Data.Models.Logiqx.Trurip>(Data.Models.Metadata.Machine.TruripKey);
|
||||
if (truripItem is not null)
|
||||
|
||||
Reference in New Issue
Block a user