Promote SoftwareList

This commit is contained in:
Matt Nadareski
2020-08-31 23:26:07 -07:00
parent 3e9b4e510c
commit 6bc91732e6
14 changed files with 288 additions and 167 deletions

View File

@@ -377,21 +377,6 @@ namespace SabreTools.Library.DatFiles
if (item.ItemType == ItemType.Release)
(item as Release).Language = attrVal;
break;
case "tag":
if (item.ItemType == ItemType.Chip)
(item as Chip).Tag = attrVal;
break;
case "type":
if (item.ItemType == ItemType.Chip)
(item as Chip).ChipType = attrVal;
break;
case "clock":
if (item.ItemType == ItemType.Chip)
(item as Chip).Clock = attrVal;
break;
}
}
@@ -631,16 +616,6 @@ namespace SabreTools.Library.DatFiles
cmpw.WriteEndElement();
break;
case ItemType.Chip:
var chip = datItem as Chip;
cmpw.WriteStartElement("chip");
cmpw.WriteRequiredAttributeString("name", chip.Name);
cmpw.WriteOptionalAttributeString("tag", chip.Tag);
cmpw.WriteOptionalAttributeString("type", chip.ChipType);
cmpw.WriteOptionalAttributeString("clock", chip.Clock);
cmpw.WriteEndElement();
break;
case ItemType.DeviceReference:
cmpw.WriteStartElement("device_ref");
cmpw.WriteRequiredAttributeString("name", datItem.Name);

View File

@@ -131,6 +131,12 @@ namespace SabreTools.Library.DatFiles
[JsonIgnore]
public long SampleCount { get; private set; } = 0;
/// <summary>
/// Number of SoftwareList items
/// </summary>
[JsonIgnore]
public long SoftwareListCount { get; private set; } = 0;
/// <summary>
/// Number of machines
/// </summary>
@@ -516,6 +522,9 @@ namespace SabreTools.Library.DatFiles
case ItemType.Sample:
SampleCount++;
break;
case ItemType.SoftwareList:
SoftwareListCount++;
break;
}
}
@@ -648,6 +657,9 @@ namespace SabreTools.Library.DatFiles
case ItemType.Sample:
SampleCount--;
break;
case ItemType.SoftwareList:
SoftwareListCount--;
break;
}
}

View File

@@ -238,6 +238,9 @@ namespace SabreTools.Library.DatFiles
case ItemType.Sample:
datItem = datItemObj.ToObject<Sample>();
break;
case ItemType.SoftwareList:
datItem = datItemObj.ToObject<DatItems.SoftwareList>();
break;
}
}

View File

@@ -497,18 +497,21 @@ namespace SabreTools.Library.DatFiles
break;
case "softwarelist":
var softwareList = new ListXmlSoftwareList();
softwareList.Name = reader.GetAttribute("name");
softwareList.Status = reader.GetAttribute("status").AsSoftwareListStatus();
softwareList.Filter = reader.GetAttribute("filter");
datItems.Add(new DatItems.SoftwareList
{
Name = reader.GetAttribute("name"),
Status = reader.GetAttribute("status").AsSoftwareListStatus(),
Filter = reader.GetAttribute("filter"),
// Ensure the list exists
if (machine.SoftwareLists == null)
machine.SoftwareLists = new List<ListXmlSoftwareList>();
machine.SoftwareLists.Add(softwareList);
Source = new Source
{
Index = indexId,
Name = filename,
},
});
reader.Read();
break;
case "ramoption":
@@ -1405,20 +1408,6 @@ namespace SabreTools.Library.DatFiles
xtw.WriteEndElement();
}
}
if (datItem.Machine.SoftwareLists != null)
{
foreach (var softwarelist in datItem.Machine.SoftwareLists)
{
xtw.WriteStartElement("softwarelist");
xtw.WriteOptionalAttributeString("name", softwarelist.Name);
xtw.WriteOptionalAttributeString("status", softwarelist.Status.FromSoftwareListStatus());
xtw.WriteOptionalAttributeString("filter", softwarelist.Filter);
// End softwarelist
xtw.WriteEndElement();
}
}
if (datItem.Machine.RamOptions != null)
{
foreach (var ramOption in datItem.Machine.RamOptions)
@@ -1551,6 +1540,15 @@ namespace SabreTools.Library.DatFiles
xtw.WriteRequiredAttributeString("name", datItem.Name);
xtw.WriteEndElement();
break;
case ItemType.SoftwareList:
var softwareList = datItem as DatItems.SoftwareList;
xtw.WriteStartElement("softwarelist");
xtw.WriteRequiredAttributeString("name", datItem.Name);
xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus());
xtw.WriteOptionalAttributeString("sha512", softwareList.Filter);
xtw.WriteEndElement();
break;
}
xtw.Flush();

View File

@@ -412,31 +412,6 @@ namespace SabreTools.Library.DatFiles
reader.Read();
break;
case "chip":
containsItems = true;
DatItem chip = new Chip
{
Name = reader.GetAttribute("name"),
Tag = reader.GetAttribute("tag"),
ChipType = reader.GetAttribute("type"),
Clock = reader.GetAttribute("clock"),
Source = new Source
{
Index = indexId,
Name = filename,
},
};
chip.CopyMachineInformation(machine);
// Now process and add the chip
key = ParseAddHelper(chip);
reader.Read();
break;
case "disk":
containsItems = true;
@@ -978,16 +953,6 @@ namespace SabreTools.Library.DatFiles
xtw.WriteEndElement();
break;
case ItemType.Chip:
var chip = datItem as Chip;
xtw.WriteStartElement("chip");
xtw.WriteRequiredAttributeString("name", chip.Name);
xtw.WriteOptionalAttributeString("tag", chip.Tag);
xtw.WriteOptionalAttributeString("type", chip.ChipType);
xtw.WriteOptionalAttributeString("clock", chip.Clock);
xtw.WriteEndElement();
break;
case ItemType.DeviceReference:
xtw.WriteStartElement("device_ref");
xtw.WriteRequiredAttributeString("name", datItem.Name);

View File

@@ -956,6 +956,16 @@ namespace SabreTools.Library.DatFiles
xtw.WriteRequiredAttributeString("name", datItem.Name);
xtw.WriteEndElement();
break;
case ItemType.SoftwareList:
var softwareList = datItem as DatItems.SoftwareList;
xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "softwarelist");
xtw.WriteRequiredAttributeString("name", datItem.Name);
xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus());
xtw.WriteOptionalAttributeString("sha512", softwareList.Filter);
xtw.WriteEndElement();
break;
}
xtw.Flush();