diff --git a/RombaSharp/Features/DatStats.cs b/RombaSharp/Features/DatStats.cs index afca3fa6..641dd24a 100644 --- a/RombaSharp/Features/DatStats.cs +++ b/RombaSharp/Features/DatStats.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.IO; -using SabreTools.Library.Data; using SabreTools.Library.DatFiles; using SabreTools.Library.Help; +using SabreTools.Library.Reports; namespace RombaSharp.Features { diff --git a/RombaSharp/Program.cs b/RombaSharp/Program.cs index 64e5d06d..abb9b6d4 100644 --- a/RombaSharp/Program.cs +++ b/RombaSharp/Program.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using RombaSharp.Features; using SabreTools.Library.Data; using SabreTools.Library.Help; -using SabreTools.Library.Tools; +using SabreTools.Library.Logging; namespace RombaSharp { diff --git a/SabreTools.Library/DatFiles/Enums.cs b/SabreTools.Library/DatFiles/Enums.cs index 5853af3e..1f8f85a2 100644 --- a/SabreTools.Library/DatFiles/Enums.cs +++ b/SabreTools.Library/DatFiles/Enums.cs @@ -1,4 +1,6 @@ -namespace SabreTools.Library.DatFiles +using System; + +namespace SabreTools.Library.DatFiles { /// /// Determines how the current dictionary is bucketed by @@ -19,6 +21,159 @@ Game, } + /// + /// DAT output formats + /// + [Flags] + public enum DatFormat + { + #region XML Formats + + /// + /// Logiqx XML (using machine) + /// + Logiqx = 1 << 0, + + /// + /// Logiqx XML (using game) + /// + LogiqxDeprecated = 1 << 1, + + /// + /// MAME Softare List XML + /// + SoftwareList = 1 << 2, + + /// + /// MAME Listxml output + /// + Listxml = 1 << 3, + + /// + /// OfflineList XML + /// + OfflineList = 1 << 4, + + /// + /// SabreDat XML + /// + SabreDat = 1 << 5, + + /// + /// openMSX Software List XML + /// + OpenMSX = 1 << 6, + + #endregion + + #region Propietary Formats + + /// + /// ClrMamePro custom + /// + ClrMamePro = 1 << 7, + + /// + /// RomCetner INI-based + /// + RomCenter = 1 << 8, + + /// + /// DOSCenter custom + /// + DOSCenter = 1 << 9, + + /// + /// AttractMode custom + /// + AttractMode = 1 << 10, + + #endregion + + #region Standardized Text Formats + + /// + /// ClrMamePro missfile + /// + MissFile = 1 << 11, + + /// + /// Comma-Separated Values (standardized) + /// + CSV = 1 << 12, + + /// + /// Semicolon-Separated Values (standardized) + /// + SSV = 1 << 13, + + /// + /// Tab-Separated Values (standardized) + /// + TSV = 1 << 14, + + /// + /// MAME Listrom output + /// + Listrom = 1 << 15, + + /// + /// Everdrive Packs SMDB + /// + EverdriveSMDB = 1 << 16, + + /// + /// JSON + /// + Json = 1 << 17, + + #endregion + + #region SFV-similar Formats + + /// + /// CRC32 hash list + /// + RedumpSFV = 1 << 18, + + /// + /// MD5 hash list + /// + RedumpMD5 = 1 << 19, + +#if NET_FRAMEWORK + /// + /// RIPEMD160 hash list + /// + RedumpRIPEMD160 = 1 << 20, +#endif + + /// + /// SHA-1 hash list + /// + RedumpSHA1 = 1 << 21, + + /// + /// SHA-256 hash list + /// + RedumpSHA256 = 1 << 22, + + /// + /// SHA-384 hash list + /// + RedumpSHA384 = 1 << 23, + + /// + /// SHA-512 hash list + /// + RedumpSHA512 = 1 << 24, + + #endregion + + // Specialty combinations + ALL = Int32.MaxValue, + } + /// /// Determines the DAT deduplication type /// @@ -73,6 +228,33 @@ Unzip, } + /// + /// Available hashing types + /// + [Flags] + public enum Hash + { + CRC = 1 << 0, + MD5 = 1 << 1, +#if NET_FRAMEWORK + RIPEMD160 = 1 << 2, +#endif + SHA1 = 1 << 3, + SHA256 = 1 << 4, + SHA384 = 1 << 5, + SHA512 = 1 << 6, + + // Special combinations + Standard = CRC | MD5 | SHA1, +#if NET_FRAMEWORK + DeepHashes = RIPEMD160 | SHA256 | SHA384 | SHA512, + SecureHashes = MD5 | RIPEMD160 | SHA1 | SHA256 | SHA384 | SHA512, +#else + DeepHashes = SHA256 | SHA384 | SHA512, + SecureHashes = MD5 | SHA1 | SHA256 | SHA384 | SHA512, +#endif + } + /// /// Determines which files should be skipped in DFD /// diff --git a/SabreTools.Library/DatItems/Enums.cs b/SabreTools.Library/DatItems/Enums.cs index c302ec4e..5046bb98 100644 --- a/SabreTools.Library/DatItems/Enums.cs +++ b/SabreTools.Library/DatItems/Enums.cs @@ -1,5 +1,22 @@ -namespace SabreTools.Library.DatItems +using System; + +namespace SabreTools.Library.DatItems { + /// + /// Determines which type of duplicate a file is + /// + [Flags] + public enum DupeType + { + // Type of match + Hash = 1 << 0, + All = 1 << 1, + + // Location of match + Internal = 1 << 2, + External = 1 << 3, + } + /// /// List of valid field types within a DatItem/Machine /// @@ -69,6 +86,24 @@ Inverted, } + /// + /// Determine the status of the item + /// + [Flags] + public enum ItemStatus + { + /// + /// This is a fake flag that is used for filter only + /// + NULL = 0x00, + + None = 1 << 0, + Good = 1 << 1, + BadDump = 1 << 2, + Nodump = 1 << 3, + Verified = 1 << 4, + } + /// /// Determine what type of file an item is /// @@ -83,4 +118,21 @@ Blank = 99, // This is not a real type, only used internally } + + /// + /// Determine what type of machine it is + /// + [Flags] + public enum MachineType + { + /// + /// This is a fake flag that is used for filter only + /// + NULL = 0x00, + + None = 1 << 0, + Bios = 1 << 1, + Device = 1 << 2, + Mechanical = 1 << 3, + } } diff --git a/SabreTools.Library/Data/Enums.cs b/SabreTools.Library/Data/Enums.cs index f6b0627f..1125b46a 100644 --- a/SabreTools.Library/Data/Enums.cs +++ b/SabreTools.Library/Data/Enums.cs @@ -129,21 +129,6 @@ #endregion - #region Logging related - - /// - /// Severity of the logging statement - /// - public enum LogLevel - { - VERBOSE = 0, - USER, - WARNING, - ERROR, - } - - #endregion - #region Reader related /// diff --git a/SabreTools.Library/Data/Flags.cs b/SabreTools.Library/Data/Flags.cs deleted file mode 100644 index 39353adf..00000000 --- a/SabreTools.Library/Data/Flags.cs +++ /dev/null @@ -1,281 +0,0 @@ -using System; - -namespace SabreTools.Library.Data -{ - #region DatFile related - - /// - /// DAT output formats - /// - [Flags] - public enum DatFormat - { - #region XML Formats - - /// - /// Logiqx XML (using machine) - /// - Logiqx = 1 << 0, - - /// - /// Logiqx XML (using game) - /// - LogiqxDeprecated = 1 << 1, - - /// - /// MAME Softare List XML - /// - SoftwareList = 1 << 2, - - /// - /// MAME Listxml output - /// - Listxml = 1 << 3, - - /// - /// OfflineList XML - /// - OfflineList = 1 << 4, - - /// - /// SabreDat XML - /// - SabreDat = 1 << 5, - - /// - /// openMSX Software List XML - /// - OpenMSX = 1 << 6, - - #endregion - - #region Propietary Formats - - /// - /// ClrMamePro custom - /// - ClrMamePro = 1 << 7, - - /// - /// RomCetner INI-based - /// - RomCenter = 1 << 8, - - /// - /// DOSCenter custom - /// - DOSCenter = 1 << 9, - - /// - /// AttractMode custom - /// - AttractMode = 1 << 10, - - #endregion - - #region Standardized Text Formats - - /// - /// ClrMamePro missfile - /// - MissFile = 1 << 11, - - /// - /// Comma-Separated Values (standardized) - /// - CSV = 1 << 12, - - /// - /// Semicolon-Separated Values (standardized) - /// - SSV = 1 << 13, - - /// - /// Tab-Separated Values (standardized) - /// - TSV = 1 << 14, - - /// - /// MAME Listrom output - /// - Listrom = 1 << 15, - - /// - /// Everdrive Packs SMDB - /// - EverdriveSMDB = 1 << 16, - - /// - /// JSON - /// - Json = 1 << 17, - - #endregion - - #region SFV-similar Formats - - /// - /// CRC32 hash list - /// - RedumpSFV = 1 << 18, - - /// - /// MD5 hash list - /// - RedumpMD5 = 1 << 19, - -#if NET_FRAMEWORK - /// - /// RIPEMD160 hash list - /// - RedumpRIPEMD160 = 1 << 20, -#endif - - /// - /// SHA-1 hash list - /// - RedumpSHA1 = 1 << 21, - - /// - /// SHA-256 hash list - /// - RedumpSHA256 = 1 << 22, - - /// - /// SHA-384 hash list - /// - RedumpSHA384 = 1 << 23, - - /// - /// SHA-512 hash list - /// - RedumpSHA512 = 1 << 24, - - #endregion - - // Specialty combinations - ALL = Int32.MaxValue, - } - - /// - /// Available hashing types - /// - [Flags] - public enum Hash - { - CRC = 1 << 0, - MD5 = 1 << 1, -#if NET_FRAMEWORK - RIPEMD160 = 1 << 2, -#endif - SHA1 = 1 << 3, - SHA256 = 1 << 4, - SHA384 = 1 << 5, - SHA512 = 1 << 6, - - // Special combinations - Standard = CRC | MD5 | SHA1, -#if NET_FRAMEWORK - DeepHashes = RIPEMD160 | SHA256 | SHA384 | SHA512, - SecureHashes = MD5 | RIPEMD160 | SHA1 | SHA256 | SHA384 | SHA512, -#else - DeepHashes = SHA256 | SHA384 | SHA512, - SecureHashes = MD5 | SHA1 | SHA256 | SHA384 | SHA512, -#endif - } - - /// - /// Determine which format to output Stats to - /// - [Flags] - public enum StatReportFormat - { - /// - /// Only output to the console - /// - None = 0x00, - - /// - /// Console-formatted - /// - Textfile = 1 << 0, - - /// - /// ClrMamePro HTML - /// - HTML = 1 << 1, - - /// - /// Comma-Separated Values (Standardized) - /// - CSV = 1 << 2, - - /// - /// Semicolon-Separated Values (Standardized) - /// - SSV = 1 << 3, - - /// - /// Tab-Separated Values (Standardized) - /// - TSV = 1 << 4, - - All = Int32.MaxValue, - } - - #endregion - - #region DatItem related - - /// - /// Determines which type of duplicate a file is - /// - [Flags] - public enum DupeType - { - // Type of match - Hash = 1 << 0, - All = 1 << 1, - - // Location of match - Internal = 1 << 2, - External = 1 << 3, - } - - /// - /// Determine the status of the item - /// - [Flags] - public enum ItemStatus - { - /// - /// This is a fake flag that is used for filter only - /// - NULL = 0x00, - - None = 1 << 0, - Good = 1 << 1, - BadDump = 1 << 2, - Nodump = 1 << 3, - Verified = 1 << 4, - } - - /// - /// Determine what type of machine it is - /// - [Flags] - public enum MachineType - { - /// - /// This is a fake flag that is used for filter only - /// - NULL = 0x00, - - None = 1 << 0, - Bios = 1 << 1, - Device = 1 << 2, - Mechanical = 1 << 3, - } - - #endregion -} diff --git a/SabreTools.Library/Data/Globals.cs b/SabreTools.Library/Data/Globals.cs index 3cde4908..910798d0 100644 --- a/SabreTools.Library/Data/Globals.cs +++ b/SabreTools.Library/Data/Globals.cs @@ -3,7 +3,7 @@ using System.IO; using System.Reflection; using System.Threading.Tasks; -using SabreTools.Library.Tools; +using SabreTools.Library.Logging; namespace SabreTools.Library.Data { diff --git a/SabreTools.Library/FileTypes/BaseArchive.cs b/SabreTools.Library/FileTypes/BaseArchive.cs index 0db48380..e3d4935f 100644 --- a/SabreTools.Library/FileTypes/BaseArchive.cs +++ b/SabreTools.Library/FileTypes/BaseArchive.cs @@ -2,6 +2,7 @@ using System.IO; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; diff --git a/SabreTools.Library/FileTypes/Folder.cs b/SabreTools.Library/FileTypes/Folder.cs index 61537444..cc8430d1 100644 --- a/SabreTools.Library/FileTypes/Folder.cs +++ b/SabreTools.Library/FileTypes/Folder.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; diff --git a/SabreTools.Library/FileTypes/GZipArchive.cs b/SabreTools.Library/FileTypes/GZipArchive.cs index c1c51ee8..5ee91e0e 100644 --- a/SabreTools.Library/FileTypes/GZipArchive.cs +++ b/SabreTools.Library/FileTypes/GZipArchive.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Text.RegularExpressions; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; using Compress; diff --git a/SabreTools.Library/FileTypes/LRZipArchive.cs b/SabreTools.Library/FileTypes/LRZipArchive.cs index ef4a77a7..9f29a722 100644 --- a/SabreTools.Library/FileTypes/LRZipArchive.cs +++ b/SabreTools.Library/FileTypes/LRZipArchive.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes diff --git a/SabreTools.Library/FileTypes/LZ4Archive.cs b/SabreTools.Library/FileTypes/LZ4Archive.cs index f98c01f4..9f1d5717 100644 --- a/SabreTools.Library/FileTypes/LZ4Archive.cs +++ b/SabreTools.Library/FileTypes/LZ4Archive.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes diff --git a/SabreTools.Library/FileTypes/RarArchive.cs b/SabreTools.Library/FileTypes/RarArchive.cs index bc10cee2..83085fe2 100644 --- a/SabreTools.Library/FileTypes/RarArchive.cs +++ b/SabreTools.Library/FileTypes/RarArchive.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; using SharpCompress.Archives; diff --git a/SabreTools.Library/FileTypes/SevenZipArchive.cs b/SabreTools.Library/FileTypes/SevenZipArchive.cs index 74d0cc4b..f119d0f1 100644 --- a/SabreTools.Library/FileTypes/SevenZipArchive.cs +++ b/SabreTools.Library/FileTypes/SevenZipArchive.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; using Compress; diff --git a/SabreTools.Library/FileTypes/TapeArchive.cs b/SabreTools.Library/FileTypes/TapeArchive.cs index 44d0b58c..eb63665d 100644 --- a/SabreTools.Library/FileTypes/TapeArchive.cs +++ b/SabreTools.Library/FileTypes/TapeArchive.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; using Compress.ZipFile; diff --git a/SabreTools.Library/FileTypes/XZArchive.cs b/SabreTools.Library/FileTypes/XZArchive.cs index 3540860e..f5464ee9 100644 --- a/SabreTools.Library/FileTypes/XZArchive.cs +++ b/SabreTools.Library/FileTypes/XZArchive.cs @@ -4,6 +4,7 @@ using System.IO; using System.Text.RegularExpressions; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; using SharpCompress.Compressors.Xz; diff --git a/SabreTools.Library/FileTypes/ZPAQArchive.cs b/SabreTools.Library/FileTypes/ZPAQArchive.cs index e3f6a0be..2c761f3e 100644 --- a/SabreTools.Library/FileTypes/ZPAQArchive.cs +++ b/SabreTools.Library/FileTypes/ZPAQArchive.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes diff --git a/SabreTools.Library/FileTypes/ZipArchive.cs b/SabreTools.Library/FileTypes/ZipArchive.cs index bcf39f3e..12868f4e 100644 --- a/SabreTools.Library/FileTypes/ZipArchive.cs +++ b/SabreTools.Library/FileTypes/ZipArchive.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Tools; using Compress; diff --git a/SabreTools.Library/FileTypes/ZstdArchive.cs b/SabreTools.Library/FileTypes/ZstdArchive.cs index fb161cf3..c6b4506a 100644 --- a/SabreTools.Library/FileTypes/ZstdArchive.cs +++ b/SabreTools.Library/FileTypes/ZstdArchive.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; namespace SabreTools.Library.FileTypes diff --git a/SabreTools.Library/Logging/Enums.cs b/SabreTools.Library/Logging/Enums.cs new file mode 100644 index 00000000..d5904892 --- /dev/null +++ b/SabreTools.Library/Logging/Enums.cs @@ -0,0 +1,13 @@ +namespace SabreTools.Library.Logging +{ + /// + /// Severity of the logging statement + /// + public enum LogLevel + { + VERBOSE = 0, + USER, + WARNING, + ERROR, + } +} diff --git a/SabreTools.Library/Tools/Logger.cs b/SabreTools.Library/Logging/Logger.cs similarity index 99% rename from SabreTools.Library/Tools/Logger.cs rename to SabreTools.Library/Logging/Logger.cs index 690d0ebb..a9301bf4 100644 --- a/SabreTools.Library/Tools/Logger.cs +++ b/SabreTools.Library/Logging/Logger.cs @@ -3,8 +3,9 @@ using System.IO; using System.Text; using SabreTools.Library.Data; +using SabreTools.Library.Tools; -namespace SabreTools.Library.Tools +namespace SabreTools.Library.Logging { /// /// Log either to file or to the console diff --git a/SabreTools.Library/Reports/Enums.cs b/SabreTools.Library/Reports/Enums.cs new file mode 100644 index 00000000..a3905e2e --- /dev/null +++ b/SabreTools.Library/Reports/Enums.cs @@ -0,0 +1,43 @@ +using System; + +namespace SabreTools.Library.Reports +{ + /// + /// Determine which format to output Stats to + /// + [Flags] + public enum StatReportFormat + { + /// + /// Only output to the console + /// + None = 0x00, + + /// + /// Console-formatted + /// + Textfile = 1 << 0, + + /// + /// ClrMamePro HTML + /// + HTML = 1 << 1, + + /// + /// Comma-Separated Values (Standardized) + /// + CSV = 1 << 2, + + /// + /// Semicolon-Separated Values (Standardized) + /// + SSV = 1 << 3, + + /// + /// Tab-Separated Values (Standardized) + /// + TSV = 1 << 4, + + All = Int32.MaxValue, + } +} diff --git a/SabreTools.Library/Tools/Converters.cs b/SabreTools.Library/Tools/Converters.cs index 598f0704..20149b3c 100644 --- a/SabreTools.Library/Tools/Converters.cs +++ b/SabreTools.Library/Tools/Converters.cs @@ -1,6 +1,6 @@ -using SabreTools.Library.Data; -using SabreTools.Library.DatFiles; +using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; +using SabreTools.Library.Reports; namespace SabreTools.Library.Tools { diff --git a/SabreTools.Library/Tools/FileExtensions.cs b/SabreTools.Library/Tools/FileExtensions.cs index c31da7de..bca6538e 100644 --- a/SabreTools.Library/Tools/FileExtensions.cs +++ b/SabreTools.Library/Tools/FileExtensions.cs @@ -6,6 +6,7 @@ using System.Xml; using System.Xml.Schema; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.FileTypes; using SabreTools.Library.Readers; using SabreTools.Library.Skippers; diff --git a/SabreTools.Library/Tools/Hasher.cs b/SabreTools.Library/Tools/Hasher.cs index d780946d..c51bf510 100644 --- a/SabreTools.Library/Tools/Hasher.cs +++ b/SabreTools.Library/Tools/Hasher.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Security.Cryptography; using System.Threading.Tasks; -using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; namespace SabreTools.Library.Tools { diff --git a/SabreTools.Library/Tools/StreamExtensions.cs b/SabreTools.Library/Tools/StreamExtensions.cs index cf3ab331..faf43e81 100644 --- a/SabreTools.Library/Tools/StreamExtensions.cs +++ b/SabreTools.Library/Tools/StreamExtensions.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading.Tasks; using SabreTools.Library.Data; +using SabreTools.Library.DatFiles; using SabreTools.Library.FileTypes; using Compress.ThreadReaders; diff --git a/SabreTools/Features/BaseFeature.cs b/SabreTools/Features/BaseFeature.cs index 282d3fec..a8ad74f3 100644 --- a/SabreTools/Features/BaseFeature.cs +++ b/SabreTools/Features/BaseFeature.cs @@ -6,6 +6,7 @@ using SabreTools.Library.DatFiles; using SabreTools.Library.DatItems; using SabreTools.Library.Filtering; using SabreTools.Library.Help; +using SabreTools.Library.Reports; using SabreTools.Library.Tools; namespace SabreTools.Features diff --git a/SabreTools/Program.cs b/SabreTools/Program.cs index b1ee3a08..c4a14a73 100644 --- a/SabreTools/Program.cs +++ b/SabreTools/Program.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using SabreTools.Features; using SabreTools.Library.Data; using SabreTools.Library.Help; -using SabreTools.Library.Tools; +using SabreTools.Library.Logging; namespace SabreTools {