mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Convert Sound.Channels to long as a test
This commit is contained in:
@@ -369,6 +369,10 @@ namespace SabreTools.Data.Extensions
|
||||
cloneSoftwareList.Status = selfSoftwareList.Status;
|
||||
cloneSoftwareList.Tag = selfSoftwareList.Tag;
|
||||
}
|
||||
else if (self is Sound selfSound && clone is Sound cloneSound)
|
||||
{
|
||||
cloneSound.Channels = selfSound.Channels;
|
||||
}
|
||||
else if (self is Video selfVideo && clone is Video cloneVideo)
|
||||
{
|
||||
cloneVideo.Screen = selfVideo.Screen;
|
||||
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>channels, Numeric?</remarks>
|
||||
[Required]
|
||||
public string? Channels { get; set; }
|
||||
public long? Channels { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,6 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>Numeric</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("channels")]
|
||||
public string? Channels { get; set; }
|
||||
public long? Channels { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[JsonObject("sound"), XmlRoot("sound")]
|
||||
public class Sound : DatItem
|
||||
{
|
||||
#region Keys
|
||||
#region Properties
|
||||
|
||||
/// <remarks>long</remarks>
|
||||
public const string ChannelsKey = "channels";
|
||||
public long? Channels { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -961,7 +961,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
return new Data.Models.Metadata.Sound
|
||||
{
|
||||
[Data.Models.Metadata.Sound.ChannelsKey] = 12345L,
|
||||
Channels = 12345L,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1635,7 +1635,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateSound(Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal(12345L, sound.ReadLong(Data.Models.Metadata.Sound.ChannelsKey));
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
// TODO: Figure out why so many fields are omitted
|
||||
|
||||
@@ -1200,7 +1200,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateMetadataSound(Data.Models.Metadata.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal(12345, sound.ReadLong(Data.Models.Metadata.Sound.ChannelsKey));
|
||||
Assert.Equal(12345, sound.Channels);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataSourceDetails(Data.Models.Metadata.SourceDetails? sourceDetails)
|
||||
|
||||
@@ -215,7 +215,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Sound.ChannelsKey,
|
||||
nameof(Data.Models.Metadata.Sound.Channels),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -894,7 +894,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Sound.ChannelsKey,
|
||||
nameof(Data.Models.Metadata.Sound.Channels),
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
@@ -147,8 +147,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case Sound sound:
|
||||
if (sound.ReadLong(Data.Models.Metadata.Sound.ChannelsKey) is null)
|
||||
missingFields.Add(Data.Models.Metadata.Sound.ChannelsKey);
|
||||
if (sound.Channels is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Sound.Channels));
|
||||
break;
|
||||
|
||||
case Input input:
|
||||
|
||||
@@ -315,8 +315,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case Sound sound:
|
||||
if (sound.ReadLong(Data.Models.Metadata.Sound.ChannelsKey) is null)
|
||||
missingFields.Add(Data.Models.Metadata.Sound.ChannelsKey);
|
||||
if (sound.Channels is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Sound.Channels));
|
||||
break;
|
||||
|
||||
case Input input:
|
||||
|
||||
@@ -12,6 +12,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public long? Channels
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Sound)?.Channels;
|
||||
set => (_internal as Data.Models.Metadata.Sound)?.Channels = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc>/>
|
||||
public override Data.Models.Metadata.ItemType ItemType
|
||||
=> Data.Models.Metadata.ItemType.Sound;
|
||||
@@ -22,13 +28,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Sound() : base() { }
|
||||
|
||||
public Sound(Data.Models.Metadata.Sound item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
long? channels = ReadLong(Data.Models.Metadata.Sound.ChannelsKey);
|
||||
if (channels is not null)
|
||||
Write<string?>(Data.Models.Metadata.Sound.ChannelsKey, channels.ToString());
|
||||
}
|
||||
public Sound(Data.Models.Metadata.Sound item) : base(item) { }
|
||||
|
||||
public Sound(Data.Models.Metadata.Sound item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -739,6 +739,10 @@ namespace SabreTools.Metadata.Filter
|
||||
checkValue = item.Tag;
|
||||
return true;
|
||||
|
||||
case Sound item when fieldName == "channels":
|
||||
checkValue = item.Channels?.ToString();
|
||||
return true;
|
||||
|
||||
case Video item when fieldName == "screen":
|
||||
checkValue = item.Screen?.AsStringValue();
|
||||
return true;
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var sound = new Data.Models.ClrMamePro.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var input = new Data.Models.ClrMamePro.Input
|
||||
@@ -466,7 +466,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.ClrMamePro.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var sound = new Data.Models.Listxml.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
@@ -589,7 +589,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -145,7 +145,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var sound = new Data.Models.Listxml.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
@@ -583,7 +583,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -145,7 +145,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var sound = new Data.Models.Listxml.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
@@ -583,7 +583,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -328,7 +328,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var sound = new Sound
|
||||
{
|
||||
Channels = item.ReadString(Data.Models.Metadata.Sound.ChannelsKey),
|
||||
Channels = item.Channels,
|
||||
};
|
||||
return sound;
|
||||
}
|
||||
|
||||
@@ -341,7 +341,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var sound = new Data.Models.Metadata.Sound
|
||||
{
|
||||
[Data.Models.Metadata.Sound.ChannelsKey] = item.Channels,
|
||||
Channels = item.Channels,
|
||||
};
|
||||
return sound;
|
||||
}
|
||||
|
||||
@@ -646,7 +646,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var sound = new Sound
|
||||
{
|
||||
Channels = item.ReadString(Data.Models.Metadata.Sound.ChannelsKey),
|
||||
Channels = item.Channels,
|
||||
};
|
||||
return sound;
|
||||
}
|
||||
|
||||
@@ -687,7 +687,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var sound = new Data.Models.Metadata.Sound
|
||||
{
|
||||
[Data.Models.Metadata.Sound.ChannelsKey] = item.Channels,
|
||||
Channels = item.Channels,
|
||||
};
|
||||
return sound;
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
|
||||
var sound = new Data.Models.ClrMamePro.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var input = new Data.Models.ClrMamePro.Input
|
||||
@@ -583,7 +583,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
private static void Validate(Data.Models.ClrMamePro.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -216,7 +216,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
|
||||
var sound = new Data.Models.Listxml.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
@@ -656,7 +656,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
private static void Validate(Data.Models.Listxml.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -212,7 +212,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
|
||||
var sound = new Data.Models.Listxml.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
@@ -650,7 +650,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
private static void Validate(Data.Models.Listxml.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -212,7 +212,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
|
||||
var sound = new Data.Models.Listxml.Sound
|
||||
{
|
||||
Channels = "XXXXXX",
|
||||
Channels = 12345L,
|
||||
};
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
@@ -650,7 +650,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
private static void Validate(Data.Models.Listxml.Sound? sound)
|
||||
{
|
||||
Assert.NotNull(sound);
|
||||
Assert.Equal("XXXXXX", sound.Channels);
|
||||
Assert.Equal(12345L, sound.Channels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Text;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.ClrMamePro;
|
||||
using SabreTools.Text.ClrMamePro;
|
||||
using SabreTools.Text.Extensions;
|
||||
|
||||
#pragma warning disable CA1822 // Mark members as static
|
||||
namespace SabreTools.Serialization.Readers
|
||||
@@ -847,7 +848,7 @@ namespace SabreTools.Serialization.Readers
|
||||
switch (kvp.Key?.ToLowerInvariant())
|
||||
{
|
||||
case "channels":
|
||||
sound.Channels = kvp.Value;
|
||||
sound.Channels = NumberHelper.ConvertToInt64(kvp.Value);
|
||||
break;
|
||||
default:
|
||||
// TODO: Log invalid values
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.IO;
|
||||
using System.Xml;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.Listxml;
|
||||
using SabreTools.Text.Extensions;
|
||||
|
||||
namespace SabreTools.Serialization.Readers
|
||||
{
|
||||
@@ -1160,7 +1161,7 @@ namespace SabreTools.Serialization.Readers
|
||||
{
|
||||
var obj = new Sound();
|
||||
|
||||
obj.Channels = reader.GetAttribute("channels");
|
||||
obj.Channels = NumberHelper.ConvertToInt64(reader.GetAttribute("channels"));
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.IO;
|
||||
using System.Xml;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.Listxml;
|
||||
using SabreTools.Text.Extensions;
|
||||
|
||||
namespace SabreTools.Serialization.Readers
|
||||
{
|
||||
@@ -1158,7 +1159,7 @@ namespace SabreTools.Serialization.Readers
|
||||
{
|
||||
var obj = new Sound();
|
||||
|
||||
obj.Channels = reader.GetAttribute("channels");
|
||||
obj.Channels = NumberHelper.ConvertToInt64(reader.GetAttribute("channels"));
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.IO;
|
||||
using System.Xml;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.Listxml;
|
||||
using SabreTools.Text.Extensions;
|
||||
|
||||
namespace SabreTools.Serialization.Readers
|
||||
{
|
||||
@@ -1158,7 +1159,7 @@ namespace SabreTools.Serialization.Readers
|
||||
{
|
||||
var obj = new Sound();
|
||||
|
||||
obj.Channels = reader.GetAttribute("channels");
|
||||
obj.Channels = NumberHelper.ConvertToInt64(reader.GetAttribute("channels"));
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ namespace SabreTools.Serialization.Writers
|
||||
return;
|
||||
|
||||
writer.WriteStartElement("sound");
|
||||
writer.WriteRequiredAttributeString("channels", sound.Channels, throwOnError: true);
|
||||
writer.WriteRequiredAttributeString("channels", sound.Channels?.ToString(), throwOnError: true);
|
||||
writer.WriteEndElement(); // sound
|
||||
}
|
||||
|
||||
|
||||
@@ -823,7 +823,7 @@ namespace SabreTools.Serialization.Writers
|
||||
{
|
||||
writer.WriteStartElement("sound");
|
||||
|
||||
writer.WriteRequiredAttributeString("channels", obj.Channels);
|
||||
writer.WriteRequiredAttributeString("channels", obj.Channels?.ToString());
|
||||
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
@@ -821,7 +821,7 @@ namespace SabreTools.Serialization.Writers
|
||||
{
|
||||
writer.WriteStartElement("sound");
|
||||
|
||||
writer.WriteRequiredAttributeString("channels", obj.Channels);
|
||||
writer.WriteRequiredAttributeString("channels", obj.Channels?.ToString());
|
||||
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
@@ -821,7 +821,7 @@ namespace SabreTools.Serialization.Writers
|
||||
{
|
||||
writer.WriteStartElement("sound");
|
||||
|
||||
writer.WriteRequiredAttributeString("channels", obj.Channels);
|
||||
writer.WriteRequiredAttributeString("channels", obj.Channels?.ToString());
|
||||
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user