mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Wire up area width, endianness for SL
This commit is contained in:
@@ -736,6 +736,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
partName = null,
|
partName = null,
|
||||||
partInterface = null,
|
partInterface = null,
|
||||||
areaName = null,
|
areaName = null,
|
||||||
|
areaWidth = null,
|
||||||
|
areaEndianness = null,
|
||||||
biosDescription = null,
|
biosDescription = null,
|
||||||
region = null,
|
region = null,
|
||||||
language = null,
|
language = null,
|
||||||
@@ -777,6 +779,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
datItem.Features = features;
|
datItem.Features = features;
|
||||||
datItem.AreaName = areaName;
|
datItem.AreaName = areaName;
|
||||||
datItem.AreaSize = areaSize;
|
datItem.AreaSize = areaSize;
|
||||||
|
datItem.AreaWidth = areaWidth;
|
||||||
|
datItem.AreaEndianness = areaEndianness;
|
||||||
|
|
||||||
if (itemType == ItemType.BiosSet)
|
if (itemType == ItemType.BiosSet)
|
||||||
{
|
{
|
||||||
@@ -898,6 +902,14 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "areawidth":
|
||||||
|
areaWidth = jtr.ReadAsString();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "areaendianness":
|
||||||
|
areaEndianness = jtr.ReadAsString();
|
||||||
|
break;
|
||||||
|
|
||||||
case "description":
|
case "description":
|
||||||
biosDescription = jtr.ReadAsString();
|
biosDescription = jtr.ReadAsString();
|
||||||
break;
|
break;
|
||||||
@@ -2050,6 +2062,16 @@ namespace SabreTools.Library.DatFiles
|
|||||||
jtw.WritePropertyName("areasize");
|
jtw.WritePropertyName("areasize");
|
||||||
jtw.WriteValue(datItem.AreaSize);
|
jtw.WriteValue(datItem.AreaSize);
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AreaWidth, Header.ExcludeFields)))
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("areawidth");
|
||||||
|
jtw.WriteValue(datItem.AreaWidth);
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AreaEndianness, Header.ExcludeFields)))
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("areaendianness");
|
||||||
|
jtw.WriteValue(datItem.AreaEndianness);
|
||||||
|
}
|
||||||
|
|
||||||
// End item
|
// End item
|
||||||
jtw.WriteEndObject();
|
jtw.WriteEndObject();
|
||||||
|
|||||||
@@ -87,6 +87,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
partName = null,
|
partName = null,
|
||||||
partInterface = null,
|
partInterface = null,
|
||||||
areaName = null,
|
areaName = null,
|
||||||
|
areaWidth = null,
|
||||||
|
areaEndianness = null,
|
||||||
biosDescription = null,
|
biosDescription = null,
|
||||||
crc = null,
|
crc = null,
|
||||||
md5 = null,
|
md5 = null,
|
||||||
@@ -535,6 +537,14 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "DatItem.AreaWidth":
|
||||||
|
areaWidth = value;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "DatItem.AreaEndianness":
|
||||||
|
areaEndianness = value;
|
||||||
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
case "DatItem.Default":
|
case "DatItem.Default":
|
||||||
@@ -641,13 +651,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Archive archive = new Archive()
|
Archive archive = new Archive()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
|
||||||
AltName = altName,
|
AltName = altName,
|
||||||
AltTitle = altTitle,
|
AltTitle = altTitle,
|
||||||
|
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
AreaName = areaName,
|
AreaName = areaName,
|
||||||
AreaSize = areaSize,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
{
|
{
|
||||||
@@ -664,13 +678,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
BiosSet biosset = new BiosSet()
|
BiosSet biosset = new BiosSet()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
|
||||||
AltName = altName,
|
AltName = altName,
|
||||||
AltTitle = altTitle,
|
AltTitle = altTitle,
|
||||||
|
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
AreaName = areaName,
|
AreaName = areaName,
|
||||||
AreaSize = areaSize,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
Description = biosDescription,
|
Description = biosDescription,
|
||||||
Default = def,
|
Default = def,
|
||||||
@@ -690,13 +708,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Disk disk = new Disk()
|
Disk disk = new Disk()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
|
||||||
AltName = altName,
|
AltName = altName,
|
||||||
AltTitle = altTitle,
|
AltTitle = altTitle,
|
||||||
|
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
AreaName = areaName,
|
AreaName = areaName,
|
||||||
AreaSize = areaSize,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
MD5 = md5,
|
MD5 = md5,
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
@@ -728,13 +750,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Release release = new Release()
|
Release release = new Release()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
|
||||||
AltName = altName,
|
AltName = altName,
|
||||||
AltTitle = altTitle,
|
AltTitle = altTitle,
|
||||||
|
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
AreaName = areaName,
|
AreaName = areaName,
|
||||||
AreaSize = areaSize,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
Region = region,
|
Region = region,
|
||||||
Language = language,
|
Language = language,
|
||||||
@@ -756,13 +782,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Rom rom = new Rom()
|
Rom rom = new Rom()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
|
||||||
AltName = altName,
|
AltName = altName,
|
||||||
AltTitle = altTitle,
|
AltTitle = altTitle,
|
||||||
|
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
AreaName = areaName,
|
AreaName = areaName,
|
||||||
AreaSize = areaSize,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
Bios = bios,
|
Bios = bios,
|
||||||
Size = size,
|
Size = size,
|
||||||
@@ -798,13 +828,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Sample sample = new Sample()
|
Sample sample = new Sample()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
|
||||||
AltName = altName,
|
AltName = altName,
|
||||||
AltTitle = altTitle,
|
AltTitle = altTitle,
|
||||||
|
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
AreaName = areaName,
|
AreaName = areaName,
|
||||||
AreaSize = areaSize,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
{
|
{
|
||||||
@@ -1244,10 +1278,12 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
case "partname":
|
case "partname":
|
||||||
case "part name":
|
case "part name":
|
||||||
|
case "part-name":
|
||||||
return "DatItem.PartName";
|
return "DatItem.PartName";
|
||||||
|
|
||||||
case "partinterface":
|
case "partinterface":
|
||||||
case "part interface":
|
case "part interface":
|
||||||
|
case "part-interface":
|
||||||
return "DatItem.PartInterface";
|
return "DatItem.PartInterface";
|
||||||
|
|
||||||
case "features":
|
case "features":
|
||||||
@@ -1255,12 +1291,24 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
case "areaname":
|
case "areaname":
|
||||||
case "area name":
|
case "area name":
|
||||||
|
case "area-name":
|
||||||
return "DatItem.AreaName";
|
return "DatItem.AreaName";
|
||||||
|
|
||||||
case "areasize":
|
case "areasize":
|
||||||
case "area size":
|
case "area size":
|
||||||
|
case "area-size":
|
||||||
return "DatItem.AreaSize";
|
return "DatItem.AreaSize";
|
||||||
|
|
||||||
|
case "areawidth":
|
||||||
|
case "area width":
|
||||||
|
case "area-width":
|
||||||
|
return "DatItem.AreaWidth";
|
||||||
|
|
||||||
|
case "areaendinanness":
|
||||||
|
case "area endianness":
|
||||||
|
case "area-endianness":
|
||||||
|
return "DatItem.AreaEndianness";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
case "default":
|
case "default":
|
||||||
|
|||||||
@@ -240,7 +240,11 @@ namespace SabreTools.Library.DatFiles
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
bool keep)
|
bool keep)
|
||||||
{
|
{
|
||||||
string areaname, partname = string.Empty, partinterface = string.Empty;
|
string areaname,
|
||||||
|
partname = string.Empty,
|
||||||
|
partinterface = string.Empty,
|
||||||
|
areaWidth = string.Empty,
|
||||||
|
areaEndinaness = string.Empty;
|
||||||
long? areasize = null;
|
long? areasize = null;
|
||||||
var features = new List<KeyValuePair<string, string>>();
|
var features = new List<KeyValuePair<string, string>>();
|
||||||
bool containsItems = false;
|
bool containsItems = false;
|
||||||
@@ -286,11 +290,22 @@ namespace SabreTools.Library.DatFiles
|
|||||||
areasize = tempas;
|
areasize = tempas;
|
||||||
}
|
}
|
||||||
|
|
||||||
// string dataarea_width = reader.GetAttribute("width"); // (8|16|32|64) "8"
|
areaWidth = reader.GetAttribute("width");
|
||||||
// string dataarea_endianness = reader.GetAttribute("endianness"); // endianness (big|little) "little"
|
areaEndinaness = reader.GetAttribute("endianness");
|
||||||
|
|
||||||
containsItems = ReadDataArea(reader.ReadSubtree(), machine, features, areaname, areasize,
|
containsItems = ReadDataArea(
|
||||||
partname, partinterface, filename, indexId, keep);
|
reader.ReadSubtree(),
|
||||||
|
machine,
|
||||||
|
partname,
|
||||||
|
partinterface,
|
||||||
|
features,
|
||||||
|
areaname,
|
||||||
|
areasize,
|
||||||
|
areaWidth,
|
||||||
|
areaEndinaness,
|
||||||
|
filename,
|
||||||
|
indexId,
|
||||||
|
keep);
|
||||||
|
|
||||||
// Skip the dataarea now that we've processed it
|
// Skip the dataarea now that we've processed it
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
@@ -299,8 +314,17 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case "diskarea":
|
case "diskarea":
|
||||||
areaname = reader.GetAttribute("name");
|
areaname = reader.GetAttribute("name");
|
||||||
|
|
||||||
containsItems = ReadDiskArea(reader.ReadSubtree(), machine, features, areaname, areasize,
|
containsItems = ReadDiskArea(
|
||||||
partname, partinterface, filename, indexId, keep);
|
reader.ReadSubtree(),
|
||||||
|
machine,
|
||||||
|
partname,
|
||||||
|
partinterface,
|
||||||
|
features,
|
||||||
|
areaname,
|
||||||
|
areasize,
|
||||||
|
filename,
|
||||||
|
indexId,
|
||||||
|
keep);
|
||||||
|
|
||||||
// Skip the diskarea now that we've processed it
|
// Skip the diskarea now that we've processed it
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
@@ -333,22 +357,26 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="reader">XmlReader representing a dataarea block</param>
|
/// <param name="reader">XmlReader representing a dataarea block</param>
|
||||||
/// <param name="machine">Machine information to pass to contained items</param>
|
/// <param name="machine">Machine information to pass to contained items</param>
|
||||||
|
/// <param name="partName">Name of the containing part</param>
|
||||||
|
/// <param name="partInterface">Interface of the containing part</param>
|
||||||
/// <param name="features">List of features from the parent part</param>
|
/// <param name="features">List of features from the parent part</param>
|
||||||
/// <param name="areaname">Name of the containing area</param>
|
/// <param name="areaName">Name of the containing area</param>
|
||||||
/// <param name="areasize">Size of the containing area</param>
|
/// <param name="areaSize">Size of the containing area</param>
|
||||||
/// <param name="partname">Name of the containing part</param>
|
/// <param name="areaWidth">Byte width of the containing area</param>
|
||||||
/// <param name="partinterface">Interface of the containing part</param>
|
/// <param name="areaEndianness">Endianness of the containing area</param>
|
||||||
/// <param name="filename">Name of the file to be parsed</param>
|
/// <param name="filename">Name of the file to be parsed</param>
|
||||||
/// <param name="indexId">Index ID for the DAT</param>
|
/// <param name="indexId">Index ID for the DAT</param>
|
||||||
/// <param name="keep">True if full pathnames are to be kept, false otherwise (default)</param>
|
/// <param name="keep">True if full pathnames are to be kept, false otherwise (default)</param>
|
||||||
private bool ReadDataArea(
|
private bool ReadDataArea(
|
||||||
XmlReader reader,
|
XmlReader reader,
|
||||||
Machine machine,
|
Machine machine,
|
||||||
|
string partName,
|
||||||
|
string partInterface,
|
||||||
List<KeyValuePair<string, string>> features,
|
List<KeyValuePair<string, string>> features,
|
||||||
string areaname,
|
string areaName,
|
||||||
long? areasize,
|
long? areaSize,
|
||||||
string partname,
|
string areaWidth,
|
||||||
string partinterface,
|
string areaEndianness,
|
||||||
|
|
||||||
// Standard Dat parsing
|
// Standard Dat parsing
|
||||||
string filename,
|
string filename,
|
||||||
@@ -409,11 +437,13 @@ namespace SabreTools.Library.DatFiles
|
|||||||
ItemStatus = reader.GetAttribute("status").AsItemStatus(),
|
ItemStatus = reader.GetAttribute("status").AsItemStatus(),
|
||||||
// LoadFlag = reader.GetAttribute("loadflag"), // (load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore)
|
// LoadFlag = reader.GetAttribute("loadflag"), // (load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore)
|
||||||
|
|
||||||
AreaName = areaname,
|
PartName = partName,
|
||||||
AreaSize = areasize,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
PartName = partname,
|
AreaName = areaName,
|
||||||
PartInterface = partinterface,
|
AreaSize = areaSize,
|
||||||
|
AreaWidth = areaWidth,
|
||||||
|
AreaEndianness = areaEndianness,
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
{
|
{
|
||||||
@@ -444,22 +474,22 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="reader">XmlReader representing a diskarea block</param>
|
/// <param name="reader">XmlReader representing a diskarea block</param>
|
||||||
/// <param name="machine">Machine information to pass to contained items</param>
|
/// <param name="machine">Machine information to pass to contained items</param>
|
||||||
|
/// <param name="partname">Name of the containing part</param>
|
||||||
|
/// <param name="partinterface">Interface of the containing part</param>
|
||||||
/// <param name="features">List of features from the parent part</param>
|
/// <param name="features">List of features from the parent part</param>
|
||||||
/// <param name="areaname">Name of the containing area</param>
|
/// <param name="areaname">Name of the containing area</param>
|
||||||
/// <param name="areasize">Size of the containing area</param>
|
/// <param name="areasize">Size of the containing area</param>
|
||||||
/// <param name="partname">Name of the containing part</param>
|
|
||||||
/// <param name="partinterface">Interface of the containing part</param>
|
|
||||||
/// <param name="filename">Name of the file to be parsed</param>
|
/// <param name="filename">Name of the file to be parsed</param>
|
||||||
/// <param name="indexId">Index ID for the DAT</param>
|
/// <param name="indexId">Index ID for the DAT</param>
|
||||||
/// <param name="keep">True if full pathnames are to be kept, false otherwise (default)</param>
|
/// <param name="keep">True if full pathnames are to be kept, false otherwise (default)</param>
|
||||||
private bool ReadDiskArea(
|
private bool ReadDiskArea(
|
||||||
XmlReader reader,
|
XmlReader reader,
|
||||||
Machine machine,
|
Machine machine,
|
||||||
|
string partname,
|
||||||
|
string partinterface,
|
||||||
List<KeyValuePair<string, string>> features,
|
List<KeyValuePair<string, string>> features,
|
||||||
string areaname,
|
string areaname,
|
||||||
long? areasize,
|
long? areasize,
|
||||||
string partname,
|
|
||||||
string partinterface,
|
|
||||||
|
|
||||||
// Standard Dat parsing
|
// Standard Dat parsing
|
||||||
string filename,
|
string filename,
|
||||||
@@ -501,11 +531,11 @@ namespace SabreTools.Library.DatFiles
|
|||||||
ItemStatus = reader.GetAttribute("status").AsItemStatus(),
|
ItemStatus = reader.GetAttribute("status").AsItemStatus(),
|
||||||
Writable = reader.GetAttribute("writable").AsYesNo(),
|
Writable = reader.GetAttribute("writable").AsYesNo(),
|
||||||
|
|
||||||
AreaName = areaname,
|
|
||||||
AreaSize = areasize,
|
|
||||||
Features = features,
|
|
||||||
PartName = partname,
|
PartName = partname,
|
||||||
PartInterface = partinterface,
|
PartInterface = partinterface,
|
||||||
|
Features = features,
|
||||||
|
AreaName = areaname,
|
||||||
|
AreaSize = areasize,
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
{
|
{
|
||||||
@@ -869,6 +899,10 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteAttributeString("name", areaName);
|
xtw.WriteAttributeString("name", areaName);
|
||||||
if (!Header.ExcludeFields.Contains(Field.AreaSize) && rom.AreaSize != null)
|
if (!Header.ExcludeFields.Contains(Field.AreaSize) && rom.AreaSize != null)
|
||||||
xtw.WriteAttributeString("size", rom.AreaSize.ToString());
|
xtw.WriteAttributeString("size", rom.AreaSize.ToString());
|
||||||
|
if (!Header.ExcludeFields.Contains(Field.AreaWidth) && rom.AreaWidth != null)
|
||||||
|
xtw.WriteAttributeString("width", rom.AreaWidth);
|
||||||
|
if (!Header.ExcludeFields.Contains(Field.AreaEndianness) && rom.AreaEndianness != null)
|
||||||
|
xtw.WriteAttributeString("endianness", rom.AreaEndianness);
|
||||||
|
|
||||||
xtw.WriteStartElement("rom");
|
xtw.WriteStartElement("rom");
|
||||||
xtw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields));
|
xtw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields));
|
||||||
|
|||||||
@@ -36,6 +36,8 @@
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -112,6 +112,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -36,6 +36,8 @@
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -101,6 +101,20 @@ namespace SabreTools.Library.DatItems
|
|||||||
[JsonProperty("areasize")]
|
[JsonProperty("areasize")]
|
||||||
public long? AreaSize { get; set; }
|
public long? AreaSize { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Width of the data area in bytes
|
||||||
|
/// </summary>
|
||||||
|
/// TODO: Convert to Int32
|
||||||
|
[JsonProperty("width")]
|
||||||
|
public string AreaWidth { get; set; } // (8|16|32|64) "8"
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Endianness of the data area
|
||||||
|
/// </summary>
|
||||||
|
/// TODO: Convert to Enum?
|
||||||
|
[JsonProperty("endianness")]
|
||||||
|
public string AreaEndianness { get; set; } // (big|little) "little"
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Metadata information
|
#region Metadata information
|
||||||
@@ -139,6 +153,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Field.Features,
|
Field.Features,
|
||||||
Field.AreaName,
|
Field.AreaName,
|
||||||
Field.AreaSize,
|
Field.AreaSize,
|
||||||
|
Field.AreaWidth,
|
||||||
|
Field.AreaEndianness,
|
||||||
|
|
||||||
// BiosSet
|
// BiosSet
|
||||||
Field.BiosDescription,
|
Field.BiosDescription,
|
||||||
@@ -273,6 +289,12 @@ namespace SabreTools.Library.DatItems
|
|||||||
case Field.AreaSize:
|
case Field.AreaSize:
|
||||||
fieldValue = AreaSize?.ToString();
|
fieldValue = AreaSize?.ToString();
|
||||||
break;
|
break;
|
||||||
|
case Field.AreaWidth:
|
||||||
|
fieldValue = AreaWidth;
|
||||||
|
break;
|
||||||
|
case Field.AreaEndianness:
|
||||||
|
fieldValue = AreaEndianness;
|
||||||
|
break;
|
||||||
|
|
||||||
case Field.NULL:
|
case Field.NULL:
|
||||||
default:
|
default:
|
||||||
@@ -342,6 +364,12 @@ namespace SabreTools.Library.DatItems
|
|||||||
AreaSize = areaSize;
|
AreaSize = areaSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mappings.Keys.Contains(Field.AreaWidth))
|
||||||
|
AreaWidth = mappings[Field.AreaWidth];
|
||||||
|
|
||||||
|
if (mappings.Keys.Contains(Field.AreaEndianness))
|
||||||
|
AreaEndianness = mappings[Field.AreaEndianness];
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -592,6 +620,18 @@ namespace SabreTools.Library.DatItems
|
|||||||
else if (filter.AreaSize.MatchesNegative(null, AreaSize) == false)
|
else if (filter.AreaSize.MatchesNegative(null, AreaSize) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Filter on area byte width
|
||||||
|
if (filter.AreaWidth.MatchesPositiveSet(AreaWidth) == false)
|
||||||
|
return false;
|
||||||
|
if (filter.AreaWidth.MatchesNegativeSet(AreaWidth) == true)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Filter on area endianness
|
||||||
|
if (filter.AreaEndianness.MatchesPositiveSet(AreaEndianness) == false)
|
||||||
|
return false;
|
||||||
|
if (filter.AreaEndianness.MatchesNegativeSet(AreaEndianness) == true)
|
||||||
|
return false;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -640,6 +680,12 @@ namespace SabreTools.Library.DatItems
|
|||||||
if (fields.Contains(Field.AreaSize))
|
if (fields.Contains(Field.AreaSize))
|
||||||
AreaSize = null;
|
AreaSize = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.AreaWidth))
|
||||||
|
AreaWidth = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.AreaEndianness))
|
||||||
|
AreaEndianness = null;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -757,6 +803,12 @@ namespace SabreTools.Library.DatItems
|
|||||||
if (fields.Contains(Field.AreaSize))
|
if (fields.Contains(Field.AreaSize))
|
||||||
AreaSize = item.AreaSize;
|
AreaSize = item.AreaSize;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.AreaWidth))
|
||||||
|
AreaWidth = item.AreaWidth;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.AreaEndianness))
|
||||||
|
AreaEndianness = item.AreaEndianness;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -300,6 +300,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
@@ -342,6 +344,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -119,6 +119,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Features,
|
Features,
|
||||||
AreaName,
|
AreaName,
|
||||||
AreaSize,
|
AreaSize,
|
||||||
|
AreaWidth,
|
||||||
|
AreaEndianness,
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -140,6 +140,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -382,6 +382,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -36,6 +36,8 @@
|
|||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
AreaName = this.AreaName,
|
AreaName = this.AreaName,
|
||||||
AreaSize = this.AreaSize,
|
AreaSize = this.AreaSize,
|
||||||
|
AreaWidth = this.AreaWidth,
|
||||||
|
AreaEndianness = this.AreaEndianness,
|
||||||
|
|
||||||
Machine = this.Machine.Clone() as Machine,
|
Machine = this.Machine.Clone() as Machine,
|
||||||
Source = this.Source.Clone() as Source,
|
Source = this.Source.Clone() as Source,
|
||||||
|
|||||||
@@ -273,6 +273,16 @@ namespace SabreTools.Library.Filtering
|
|||||||
/// <remarks>Positive means "Greater than or equal", Negative means "Less than or equal", Neutral means "Equal"</remarks>
|
/// <remarks>Positive means "Greater than or equal", Negative means "Less than or equal", Neutral means "Equal"</remarks>
|
||||||
public FilterItem<long?> AreaSize { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
public FilterItem<long?> AreaSize { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Include or exclude area byte widths
|
||||||
|
/// </summary>
|
||||||
|
public FilterItem<string> AreaWidth { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Include or exclude area endianness
|
||||||
|
/// </summary>
|
||||||
|
public FilterItem<string> AreaEndianness { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -871,6 +881,20 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Field.AreaWidth:
|
||||||
|
if (negate)
|
||||||
|
AreaWidth.NegativeSet.Add(value);
|
||||||
|
else
|
||||||
|
AreaWidth.PositiveSet.Add(value);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Field.AreaEndianness:
|
||||||
|
if (negate)
|
||||||
|
AreaEndianness.NegativeSet.Add(value);
|
||||||
|
else
|
||||||
|
AreaEndianness.PositiveSet.Add(value);
|
||||||
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
case Field.Default:
|
case Field.Default:
|
||||||
|
|||||||
@@ -367,6 +367,14 @@ namespace SabreTools.Library.Tools
|
|||||||
case "area size":
|
case "area size":
|
||||||
case "area-size":
|
case "area-size":
|
||||||
return Field.AreaSize;
|
return Field.AreaSize;
|
||||||
|
case "areawidth":
|
||||||
|
case "area width":
|
||||||
|
case "area-width":
|
||||||
|
return Field.AreaWidth;
|
||||||
|
case "areaendinanness":
|
||||||
|
case "area endianness":
|
||||||
|
case "area-endianness":
|
||||||
|
return Field.AreaEndianness;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user