mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Wire up value and loadflag for SL
This commit is contained in:
@@ -738,6 +738,8 @@ namespace SabreTools.Library.DatFiles
|
||||
areaName = null,
|
||||
areaWidth = null,
|
||||
areaEndianness = null,
|
||||
value = null,
|
||||
loadFlag = null,
|
||||
biosDescription = null,
|
||||
region = null,
|
||||
language = null,
|
||||
@@ -781,6 +783,8 @@ namespace SabreTools.Library.DatFiles
|
||||
datItem.AreaSize = areaSize;
|
||||
datItem.AreaWidth = areaWidth;
|
||||
datItem.AreaEndianness = areaEndianness;
|
||||
datItem.Value = value;
|
||||
datItem.LoadFlag = loadFlag;
|
||||
|
||||
if (itemType == ItemType.BiosSet)
|
||||
{
|
||||
@@ -882,10 +886,10 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
jtr.Read(); // Key
|
||||
string key = jtr.Value as string;
|
||||
string value = jtr.ReadAsString();
|
||||
string featureValue = jtr.ReadAsString();
|
||||
jtr.Read(); // End object
|
||||
|
||||
features.Add(new KeyValuePair<string, string>(key, value));
|
||||
features.Add(new KeyValuePair<string, string>(key, featureValue));
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -910,6 +914,14 @@ namespace SabreTools.Library.DatFiles
|
||||
areaEndianness = jtr.ReadAsString();
|
||||
break;
|
||||
|
||||
case "value":
|
||||
value = jtr.ReadAsString();
|
||||
break;
|
||||
|
||||
case "loadflag":
|
||||
loadFlag = jtr.ReadAsString();
|
||||
break;
|
||||
|
||||
case "description":
|
||||
biosDescription = jtr.ReadAsString();
|
||||
break;
|
||||
@@ -2072,6 +2084,16 @@ namespace SabreTools.Library.DatFiles
|
||||
jtw.WritePropertyName("areaendianness");
|
||||
jtw.WriteValue(datItem.AreaEndianness);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Value, Header.ExcludeFields)))
|
||||
{
|
||||
jtw.WritePropertyName("value");
|
||||
jtw.WriteValue(datItem.Value);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.LoadFlag, Header.ExcludeFields)))
|
||||
{
|
||||
jtw.WritePropertyName("loadflag");
|
||||
jtw.WriteValue(datItem.LoadFlag);
|
||||
}
|
||||
|
||||
// End item
|
||||
jtw.WriteEndObject();
|
||||
|
||||
@@ -89,6 +89,8 @@ namespace SabreTools.Library.DatFiles
|
||||
areaName = null,
|
||||
areaWidth = null,
|
||||
areaEndianness = null,
|
||||
slvalue = null,
|
||||
loadFlag = null,
|
||||
biosDescription = null,
|
||||
crc = null,
|
||||
md5 = null,
|
||||
@@ -545,6 +547,14 @@ namespace SabreTools.Library.DatFiles
|
||||
areaEndianness = value;
|
||||
break;
|
||||
|
||||
case "DatItem.Value":
|
||||
slvalue = value;
|
||||
break;
|
||||
|
||||
case "DatItem.LoadFlag":
|
||||
loadFlag = value;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
case "DatItem.Default":
|
||||
@@ -662,6 +672,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = slvalue,
|
||||
LoadFlag = loadFlag,
|
||||
|
||||
Source = new Source
|
||||
{
|
||||
@@ -689,6 +701,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = slvalue,
|
||||
LoadFlag = loadFlag,
|
||||
|
||||
Description = biosDescription,
|
||||
Default = def,
|
||||
@@ -719,6 +733,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = slvalue,
|
||||
LoadFlag = loadFlag,
|
||||
|
||||
MD5 = md5,
|
||||
#if NET_FRAMEWORK
|
||||
@@ -761,6 +777,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = slvalue,
|
||||
LoadFlag = loadFlag,
|
||||
|
||||
Region = region,
|
||||
Language = language,
|
||||
@@ -793,6 +811,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = slvalue,
|
||||
LoadFlag = loadFlag,
|
||||
|
||||
Bios = bios,
|
||||
Size = size,
|
||||
@@ -839,6 +859,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = slvalue,
|
||||
LoadFlag = loadFlag,
|
||||
|
||||
Source = new Source
|
||||
{
|
||||
@@ -1309,6 +1331,14 @@ namespace SabreTools.Library.DatFiles
|
||||
case "area-endianness":
|
||||
return "DatItem.AreaEndianness";
|
||||
|
||||
case "value":
|
||||
return "DatItem.Value";
|
||||
|
||||
case "loadflag":
|
||||
case "load flag":
|
||||
case "load-flag":
|
||||
return "DatItem.LoadFlag";
|
||||
|
||||
#endregion
|
||||
|
||||
case "default":
|
||||
|
||||
@@ -331,6 +331,7 @@ namespace SabreTools.Library.DatFiles
|
||||
break;
|
||||
|
||||
case "dipswitch":
|
||||
// TODO: Read dipswitches
|
||||
// string dipswitch_name = reader.GetAttribute("name");
|
||||
// string dipswitch_tag = reader.GetAttribute("tag");
|
||||
// string dipswitch_mask = reader.GetAttribute("mask");
|
||||
@@ -413,6 +414,7 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
((Rom)lastrom).Size += Sanitizer.CleanSize(reader.GetAttribute("size"));
|
||||
}
|
||||
|
||||
Items[key].RemoveAt(index);
|
||||
Items[key].Add(lastrom);
|
||||
reader.Read();
|
||||
@@ -433,9 +435,7 @@ namespace SabreTools.Library.DatFiles
|
||||
SHA384 = reader.GetAttribute("sha384"),
|
||||
SHA512 = reader.GetAttribute("sha512"),
|
||||
Offset = reader.GetAttribute("offset"),
|
||||
// Value = reader.GetAttribute("value");
|
||||
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)
|
||||
|
||||
PartName = partName,
|
||||
PartInterface = partInterface,
|
||||
@@ -444,6 +444,8 @@ namespace SabreTools.Library.DatFiles
|
||||
AreaSize = areaSize,
|
||||
AreaWidth = areaWidth,
|
||||
AreaEndianness = areaEndianness,
|
||||
Value = reader.GetAttribute("value"),
|
||||
LoadFlag = reader.GetAttribute("loadflag"),
|
||||
|
||||
Source = new Source
|
||||
{
|
||||
@@ -926,12 +928,12 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteAttributeString("sha512", rom.SHA512.ToLowerInvariant());
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, Header.ExcludeFields)))
|
||||
xtw.WriteAttributeString("offset", rom.Offset);
|
||||
//if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Value, DatHeader.ExcludeFields)))
|
||||
// xtw.WriteAttributeString("value", rom.Value);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Value, Header.ExcludeFields)))
|
||||
xtw.WriteAttributeString("value", rom.Value);
|
||||
if (!Header.ExcludeFields.Contains(Field.Status) && rom.ItemStatus != ItemStatus.None)
|
||||
xtw.WriteAttributeString("status", rom.ItemStatus.ToString().ToLowerInvariant());
|
||||
//if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Loadflag, DatHeader.ExcludeFields)))
|
||||
// xtw.WriteAttributeString("loadflag", rom.Loadflag);
|
||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.LoadFlag, Header.ExcludeFields)))
|
||||
xtw.WriteAttributeString("loadflag", rom.LoadFlag);
|
||||
xtw.WriteEndElement();
|
||||
|
||||
// End dataarea
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -114,6 +114,8 @@ namespace SabreTools.Library.DatItems
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -115,6 +115,19 @@ namespace SabreTools.Library.DatItems
|
||||
[JsonProperty("endianness")]
|
||||
public string AreaEndianness { get; set; } // (big|little) "little"
|
||||
|
||||
/// <summary>
|
||||
/// SoftwareList value associated with the item
|
||||
/// </summary>
|
||||
[JsonProperty("value")]
|
||||
public string Value { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Loading flag
|
||||
/// </summary>
|
||||
/// TODO: Convert to Enum?
|
||||
[JsonProperty("loadflag")]
|
||||
public string LoadFlag { get; set; } // (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)
|
||||
|
||||
#endregion
|
||||
|
||||
#region Metadata information
|
||||
@@ -155,6 +168,8 @@ namespace SabreTools.Library.DatItems
|
||||
Field.AreaSize,
|
||||
Field.AreaWidth,
|
||||
Field.AreaEndianness,
|
||||
Field.Value,
|
||||
Field.LoadFlag,
|
||||
|
||||
// BiosSet
|
||||
Field.BiosDescription,
|
||||
@@ -295,6 +310,12 @@ namespace SabreTools.Library.DatItems
|
||||
case Field.AreaEndianness:
|
||||
fieldValue = AreaEndianness;
|
||||
break;
|
||||
case Field.Value:
|
||||
fieldValue = Value;
|
||||
break;
|
||||
case Field.LoadFlag:
|
||||
fieldValue = LoadFlag;
|
||||
break;
|
||||
|
||||
case Field.NULL:
|
||||
default:
|
||||
@@ -370,6 +391,12 @@ namespace SabreTools.Library.DatItems
|
||||
if (mappings.Keys.Contains(Field.AreaEndianness))
|
||||
AreaEndianness = mappings[Field.AreaEndianness];
|
||||
|
||||
if (mappings.Keys.Contains(Field.Value))
|
||||
Value = mappings[Field.Value];
|
||||
|
||||
if (mappings.Keys.Contains(Field.LoadFlag))
|
||||
LoadFlag = mappings[Field.LoadFlag];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -632,6 +659,18 @@ namespace SabreTools.Library.DatItems
|
||||
if (filter.AreaEndianness.MatchesNegativeSet(AreaEndianness) == true)
|
||||
return false;
|
||||
|
||||
// Filter on softwarelist value
|
||||
if (filter.Value.MatchesPositiveSet(Value) == false)
|
||||
return false;
|
||||
if (filter.Value.MatchesNegativeSet(Value) == true)
|
||||
return false;
|
||||
|
||||
// Filter on load flag
|
||||
if (filter.LoadFlag.MatchesPositiveSet(LoadFlag) == false)
|
||||
return false;
|
||||
if (filter.LoadFlag.MatchesNegativeSet(LoadFlag) == true)
|
||||
return false;
|
||||
|
||||
#endregion
|
||||
|
||||
return true;
|
||||
@@ -686,6 +725,12 @@ namespace SabreTools.Library.DatItems
|
||||
if (fields.Contains(Field.AreaEndianness))
|
||||
AreaEndianness = null;
|
||||
|
||||
if (fields.Contains(Field.Value))
|
||||
Value = null;
|
||||
|
||||
if (fields.Contains(Field.LoadFlag))
|
||||
LoadFlag = null;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -809,6 +854,12 @@ namespace SabreTools.Library.DatItems
|
||||
if (fields.Contains(Field.AreaEndianness))
|
||||
AreaEndianness = item.AreaEndianness;
|
||||
|
||||
if (fields.Contains(Field.Value))
|
||||
Value = item.Value;
|
||||
|
||||
if (fields.Contains(Field.LoadFlag))
|
||||
LoadFlag = item.LoadFlag;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
@@ -302,6 +302,8 @@ namespace SabreTools.Library.DatItems
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
@@ -346,6 +348,8 @@ namespace SabreTools.Library.DatItems
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -121,6 +121,8 @@ namespace SabreTools.Library.DatItems
|
||||
AreaSize,
|
||||
AreaWidth,
|
||||
AreaEndianness,
|
||||
Value,
|
||||
LoadFlag,
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -142,6 +142,8 @@ namespace SabreTools.Library.DatItems
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -384,6 +384,8 @@ namespace SabreTools.Library.DatItems
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
AreaSize = this.AreaSize,
|
||||
AreaWidth = this.AreaWidth,
|
||||
AreaEndianness = this.AreaEndianness,
|
||||
Value = this.Value,
|
||||
LoadFlag = this.LoadFlag,
|
||||
|
||||
Machine = this.Machine.Clone() as Machine,
|
||||
Source = this.Source.Clone() as Source,
|
||||
|
||||
@@ -283,6 +283,16 @@ namespace SabreTools.Library.Filtering
|
||||
/// </summary>
|
||||
public FilterItem<string> AreaEndianness { get; private set; } = new FilterItem<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Include or exclude softwarelist value
|
||||
/// </summary>
|
||||
public FilterItem<string> Value { get; private set; } = new FilterItem<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Include or exclude load flag
|
||||
/// </summary>
|
||||
public FilterItem<string> LoadFlag { get; private set; } = new FilterItem<string>();
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
@@ -895,6 +905,20 @@ namespace SabreTools.Library.Filtering
|
||||
AreaEndianness.PositiveSet.Add(value);
|
||||
break;
|
||||
|
||||
case Field.Value:
|
||||
if (negate)
|
||||
Value.NegativeSet.Add(value);
|
||||
else
|
||||
Value.PositiveSet.Add(value);
|
||||
break;
|
||||
|
||||
case Field.LoadFlag:
|
||||
if (negate)
|
||||
LoadFlag.NegativeSet.Add(value);
|
||||
else
|
||||
LoadFlag.PositiveSet.Add(value);
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
case Field.Default:
|
||||
|
||||
@@ -375,6 +375,12 @@ namespace SabreTools.Library.Tools
|
||||
case "area endianness":
|
||||
case "area-endianness":
|
||||
return Field.AreaEndianness;
|
||||
case "value":
|
||||
return Field.Value;
|
||||
case "loadflag":
|
||||
case "load flag":
|
||||
case "load-flag":
|
||||
return Field.LoadFlag;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user