From 35f317a88776274a2c85864ca060884379636286 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Fri, 12 Feb 2021 15:52:45 +1000 Subject: [PATCH] Split inner classes of FirmwareDatabase to own files --- .../fwmanager/FirmwareManager.cs | 4 +- .../fwmanager/ResolutionInfo.cs | 2 +- .../config/FirmwaresConfig.cs | 16 +++---- .../Database/FirmwareDatabase.cs | 46 ------------------- .../Database/FirmwareFile.cs | 17 +++++++ .../Database/FirmwareOption.cs | 19 ++++++++ .../Database/FirmwareOptionStatus.cs | 17 +++++++ .../Database/FirmwareRecord.cs | 13 ++++++ 8 files changed, 77 insertions(+), 57 deletions(-) create mode 100644 src/BizHawk.Emulation.Common/Database/FirmwareFile.cs create mode 100644 src/BizHawk.Emulation.Common/Database/FirmwareOption.cs create mode 100644 src/BizHawk.Emulation.Common/Database/FirmwareOptionStatus.cs create mode 100644 src/BizHawk.Emulation.Common/Database/FirmwareRecord.cs diff --git a/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs b/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs index ab28c5e75c..e3013aaf86 100644 --- a/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs +++ b/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs @@ -13,10 +13,10 @@ namespace BizHawk.Client.Common { public List RecentlyServed { get; } = new List(); - private readonly Dictionary _resolutionDictionary = new Dictionary(); + private readonly Dictionary _resolutionDictionary = new(); // purpose of forbidScan: sometimes this is called from a loop in Scan(). we don't want to repeatedly DoScanAndResolve in that case, its already been done. - public ResolutionInfo Resolve(PathEntryCollection pathEntries, IDictionary userSpecifications, FirmwareDatabase.FirmwareRecord record, bool forbidScan = false) + public ResolutionInfo Resolve(PathEntryCollection pathEntries, IDictionary userSpecifications, FirmwareRecord record, bool forbidScan = false) { _resolutionDictionary.TryGetValue(record, out var resolved); // couldn't find it! do a scan and resolve to try harder diff --git a/src/BizHawk.Client.Common/fwmanager/ResolutionInfo.cs b/src/BizHawk.Client.Common/fwmanager/ResolutionInfo.cs index 11ea74ce76..899fb8c9ba 100644 --- a/src/BizHawk.Client.Common/fwmanager/ResolutionInfo.cs +++ b/src/BizHawk.Client.Common/fwmanager/ResolutionInfo.cs @@ -8,7 +8,7 @@ namespace BizHawk.Client.Common public string Hash { get; set; } - public FirmwareDatabase.FirmwareFile KnownFirmwareFile { get; set; } + public FirmwareFile KnownFirmwareFile { get; set; } public bool KnownMismatching { get; set; } diff --git a/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs b/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs index b6972cbf25..5910a806f2 100644 --- a/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs +++ b/src/BizHawk.Client.EmuHawk/config/FirmwaresConfig.cs @@ -280,7 +280,7 @@ namespace BizHawk.Client.EmuHawk // for each type of firmware, try resolving and record the result foreach (ListViewItem lvi in lvFirmwares.Items) { - var fr = (FirmwareDatabase.FirmwareRecord) lvi.Tag; + var fr = (FirmwareRecord) lvi.Tag; var ri = Manager.Resolve( _pathEntries, _firmwareUserSpecifications, @@ -446,7 +446,7 @@ namespace BizHawk.Client.EmuHawk // for each selected item, set the user choice (even though multiple selection for this operation is no longer allowed) foreach (ListViewItem lvi in lvFirmwares.SelectedItems) { - var fr = (FirmwareDatabase.FirmwareRecord) lvi.Tag; + var fr = (FirmwareRecord) lvi.Tag; string filePath = ofd.FileName; // if the selected file is an archive, allow the user to pick the inside file @@ -514,7 +514,7 @@ namespace BizHawk.Client.EmuHawk // for each selected item, clear the user choice foreach (ListViewItem lvi in lvFirmwares.SelectedItems) { - var fr = (FirmwareDatabase.FirmwareRecord) lvi.Tag; + var fr = (FirmwareRecord) lvi.Tag; _firmwareUserSpecifications.Remove(fr.ConfigKey); } @@ -524,7 +524,7 @@ namespace BizHawk.Client.EmuHawk private void TsmiInfo_Click(object sender, EventArgs e) { var lvi = lvFirmwares.SelectedItems[0]; - var fr = (FirmwareDatabase.FirmwareRecord)lvi.Tag; + var fr = (FirmwareRecord) lvi.Tag; // get all options for this firmware (in order) var options = @@ -548,22 +548,22 @@ namespace BizHawk.Client.EmuHawk olvi.SubItems.Add(new ListViewItem.ListViewSubItem()); olvi.SubItems.Add(new ListViewItem.ListViewSubItem()); var ff = FirmwareDatabase.FirmwareFilesByHash[o.Hash]; - if (o.Status == FirmwareDatabase.FirmwareOptionStatus.Ideal) + if (o.Status == FirmwareOptionStatus.Ideal) { olvi.ImageIndex = FirmwaresConfigInfo.idIdeal; olvi.ToolTipText = FirmwaresConfigInfo.ttIdeal; } - if (o.Status == FirmwareDatabase.FirmwareOptionStatus.Acceptable) + if (o.Status == FirmwareOptionStatus.Acceptable) { olvi.ImageIndex = FirmwaresConfigInfo.idAcceptable; olvi.ToolTipText = FirmwaresConfigInfo.ttAcceptable; } - if (o.Status == FirmwareDatabase.FirmwareOptionStatus.Unacceptable) + if (o.Status == FirmwareOptionStatus.Unacceptable) { olvi.ImageIndex = FirmwaresConfigInfo.idUnacceptable; olvi.ToolTipText = FirmwaresConfigInfo.ttUnacceptable; } - if (o.Status == FirmwareDatabase.FirmwareOptionStatus.Bad) + if (o.Status == FirmwareOptionStatus.Bad) { olvi.ImageIndex = FirmwaresConfigInfo.idBad; olvi.ToolTipText = FirmwaresConfigInfo.ttBad; diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs index a9d8bf921f..af3f052da1 100644 --- a/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs +++ b/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs @@ -333,51 +333,5 @@ namespace BizHawk.Emulation.Common FirmwareOptions = options; FirmwareRecords = records; } - - public class FirmwareFile - { - public string Hash { get; set; } - public long Size { get; set; } - public string RecommendedName { get; set; } - public string Description { get; set; } - public string Info { get; set; } - public bool Bad { get; set; } - } - - public class FirmwareRecord - { - public string SystemId { get; set; } - public string FirmwareId { get; set; } - public string Descr { get; set; } - - public string ConfigKey => $"{SystemId}+{FirmwareId}"; - } - - public enum FirmwareOptionStatus - { - /// Preferred to get checkmarks, and for TASing - Ideal, - - /// Works with our core, but not preferred for TASing - Acceptable, - - /// A good file, but it doesn't work with our core - Unacceptable, - - /// Nonlegitimate files that are notable enough to be worth detecting, even if mainly to categorize as a BAD option - Bad - } - - public class FirmwareOption - { - public string SystemId { get; set; } - public string FirmwareId { get; set; } - public string Hash { get; set; } - public long Size { get; set; } - public FirmwareOptionStatus Status { get; set; } - - public bool IsAcceptableOrIdeal => Status == FirmwareOptionStatus.Ideal || Status == FirmwareOptionStatus.Acceptable; - public string ConfigKey => $"{SystemId}+{FirmwareId}"; - } } // static class FirmwareDatabase } diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareFile.cs b/src/BizHawk.Emulation.Common/Database/FirmwareFile.cs new file mode 100644 index 0000000000..fcaef0c4a9 --- /dev/null +++ b/src/BizHawk.Emulation.Common/Database/FirmwareFile.cs @@ -0,0 +1,17 @@ +namespace BizHawk.Emulation.Common +{ + public sealed class FirmwareFile + { + public bool Bad { get; set; } + + public string Description { get; set; } + + public string Hash { get; set; } + + public string Info { get; set; } + + public string RecommendedName { get; set; } + + public long Size { get; set; } + } +} diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs b/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs new file mode 100644 index 0000000000..09428af620 --- /dev/null +++ b/src/BizHawk.Emulation.Common/Database/FirmwareOption.cs @@ -0,0 +1,19 @@ +namespace BizHawk.Emulation.Common +{ + public sealed class FirmwareOption + { + public string ConfigKey => $"{SystemId}+{FirmwareId}"; + + public string FirmwareId { get; set; } + + public string Hash { get; set; } + + public bool IsAcceptableOrIdeal => Status == FirmwareOptionStatus.Ideal || Status == FirmwareOptionStatus.Acceptable; + + public long Size { get; set; } + + public FirmwareOptionStatus Status { get; set; } + + public string SystemId { get; set; } + } +} diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareOptionStatus.cs b/src/BizHawk.Emulation.Common/Database/FirmwareOptionStatus.cs new file mode 100644 index 0000000000..5df9d1f62d --- /dev/null +++ b/src/BizHawk.Emulation.Common/Database/FirmwareOptionStatus.cs @@ -0,0 +1,17 @@ +namespace BizHawk.Emulation.Common +{ + public enum FirmwareOptionStatus + { + /// Preferred to get checkmarks, and for TASing + Ideal, + + /// Works with our core, but not preferred for TASing + Acceptable, + + /// A good file, but it doesn't work with our core + Unacceptable, + + /// Nonlegitimate files that are notable enough to be worth detecting, even if mainly to categorize as a BAD option + Bad + } +} diff --git a/src/BizHawk.Emulation.Common/Database/FirmwareRecord.cs b/src/BizHawk.Emulation.Common/Database/FirmwareRecord.cs new file mode 100644 index 0000000000..e78a9c6fbe --- /dev/null +++ b/src/BizHawk.Emulation.Common/Database/FirmwareRecord.cs @@ -0,0 +1,13 @@ +namespace BizHawk.Emulation.Common +{ + public sealed class FirmwareRecord + { + public string ConfigKey => $"{SystemId}+{FirmwareId}"; + + public string Descr { get; set; } + + public string FirmwareId { get; set; } + + public string SystemId { get; set; } + } +}