mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[Utilities, DatFile] Create another factory
This commit is contained in:
@@ -3625,13 +3625,14 @@ namespace SabreTools.Library.DatFiles
|
|||||||
if (Romba)
|
if (Romba)
|
||||||
{
|
{
|
||||||
GZipArchive archive = new GZipArchive(item);
|
GZipArchive archive = new GZipArchive(item);
|
||||||
BaseFile rom = archive.GetTorrentGZFileInfo();
|
BaseFile baseFile = archive.GetTorrentGZFileInfo();
|
||||||
|
|
||||||
// If the rom is valid, write it out
|
// If the rom is valid, write it out
|
||||||
if (rom != null && rom.Filename != null)
|
if (baseFile != null && baseFile.Filename != null)
|
||||||
{
|
{
|
||||||
// Add the list if it doesn't exist already
|
// Add the list if it doesn't exist already
|
||||||
Add(rom.Size + "-" + rom.CRC, new Rom(rom));
|
Rom rom = new Rom(baseFile);
|
||||||
|
Add(rom.Size + "-" + rom.CRC, rom);
|
||||||
Globals.Logger.User("File added: {0}", Path.GetFileNameWithoutExtension(item) + Environment.NewLine);
|
Globals.Logger.User("File added: {0}", Path.GetFileNameWithoutExtension(item) + Environment.NewLine);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -3688,7 +3689,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
// First take care of the found items
|
// First take care of the found items
|
||||||
Parallel.ForEach(extracted, Globals.ParallelOptions, rom =>
|
Parallel.ForEach(extracted, Globals.ParallelOptions, rom =>
|
||||||
{
|
{
|
||||||
DatItem datItem = (rom.Type == FileType.CHD ? (DatItem)(new Disk(rom)) : (DatItem)(new Rom(rom)));
|
DatItem datItem = Utilities.GetDatItem(rom);
|
||||||
ProcessFileHelper(newItem,
|
ProcessFileHelper(newItem,
|
||||||
datItem,
|
datItem,
|
||||||
basePath,
|
basePath,
|
||||||
@@ -4290,7 +4291,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
{
|
{
|
||||||
foreach (BaseFile entry in entries)
|
foreach (BaseFile entry in entries)
|
||||||
{
|
{
|
||||||
DatItem datItem = (entry.Type == FileType.CHD ? (DatItem)(new Disk(entry)) : (DatItem)(new Rom(entry)));
|
DatItem datItem = Utilities.GetDatItem(entry);
|
||||||
usedInternally &= RebuildIndividualFile(datItem, file, outDir, date, inverse, outputFormat,
|
usedInternally &= RebuildIndividualFile(datItem, file, outDir, date, inverse, outputFormat,
|
||||||
romba, updateDat, !isTorrentGzip /* isZip */, headerToCheckAgainst);
|
romba, updateDat, !isTorrentGzip /* isZip */, headerToCheckAgainst);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -683,6 +683,35 @@ namespace SabreTools.Library.Tools
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a specific type of DatItem to be used based on a BaseFile
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="baseFile">BaseFile containing information to be created</param>
|
||||||
|
/// <returns>DatItem of the specific internal type that corresponds to the inputs</returns>
|
||||||
|
public static DatItem GetDatItem(BaseFile baseFile)
|
||||||
|
{
|
||||||
|
switch (baseFile.Type)
|
||||||
|
{
|
||||||
|
case FileType.CHD:
|
||||||
|
return new Disk(baseFile);
|
||||||
|
case FileType.GZipArchive:
|
||||||
|
case FileType.LRZipArchive:
|
||||||
|
case FileType.LZ4Archive:
|
||||||
|
case FileType.None:
|
||||||
|
case FileType.RarArchive:
|
||||||
|
case FileType.SevenZipArchive:
|
||||||
|
case FileType.TapeArchive:
|
||||||
|
case FileType.XZArchive:
|
||||||
|
case FileType.ZipArchive:
|
||||||
|
case FileType.ZPAQArchive:
|
||||||
|
case FileType.ZstdArchive:
|
||||||
|
return new Rom(baseFile);
|
||||||
|
case FileType.Folder:
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get DatFormat value from input string
|
/// Get DatFormat value from input string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user