using System; using SabreTools.Core; namespace SabreTools.DatFiles { /// /// DAT output formats /// [Flags] public enum DatFormat : ulong { #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 /// SabreXML = 1 << 5, /// /// openMSX Software List XML /// OpenMSX = 1 << 6, /// /// Archive.org file list XML /// ArchiveDotOrg = 1 << 7, #endregion #region Propietary Formats /// /// ClrMamePro custom /// ClrMamePro = 1 << 8, /// /// RomCenter INI-based /// RomCenter = 1 << 9, /// /// DOSCenter custom /// DOSCenter = 1 << 10, /// /// AttractMode custom /// AttractMode = 1 << 11, #endregion #region Standardized Text Formats /// /// ClrMamePro missfile /// MissFile = 1 << 12, /// /// Comma-Separated Values (standardized) /// CSV = 1 << 13, /// /// Semicolon-Separated Values (standardized) /// SSV = 1 << 14, /// /// Tab-Separated Values (standardized) /// TSV = 1 << 15, /// /// MAME Listrom output /// Listrom = 1 << 16, /// /// Everdrive Packs SMDB /// EverdriveSMDB = 1 << 17, /// /// SabreJSON /// SabreJSON = 1 << 18, #endregion #region SFV-similar Formats /// /// CRC32 hash list /// RedumpSFV = 1 << 19, /// /// MD2 hash list /// RedumpMD2 = 1 << 20, /// /// MD4 hash list /// RedumpMD4 = 1 << 21, /// /// MD5 hash list /// RedumpMD5 = 1 << 22, /// /// SHA-1 hash list /// RedumpSHA1 = 1 << 23, /// /// SHA-256 hash list /// RedumpSHA256 = 1 << 24, /// /// SHA-384 hash list /// RedumpSHA384 = 1 << 25, /// /// SHA-512 hash list /// RedumpSHA512 = 1 << 26, /// /// SpamSum hash list /// RedumpSpamSum = 1 << 27, #endregion // Specialty combinations ALL = ulong.MaxValue, } /// /// Determines merging tag handling for DAT output /// public enum MergingFlag { [Mapping("none")] None = 0, [Mapping("split")] Split, [Mapping("merged")] Merged, [Mapping("nonmerged", "unmerged")] NonMerged, /// This is not usually defined for Merging flags [Mapping("fullmerged")] FullMerged, /// This is not usually defined for Merging flags [Mapping("device", "deviceunmerged", "devicenonmerged")] DeviceNonMerged, /// This is not usually defined for Merging flags [Mapping("full", "fullunmerged", "fullnonmerged")] FullNonMerged, } /// /// Determines nodump tag handling for DAT output /// public enum NodumpFlag { [Mapping("none")] None = 0, [Mapping("obsolete")] Obsolete, [Mapping("required")] Required, [Mapping("ignore")] Ignore, } /// /// Determines packing tag handling for DAT output /// public enum PackingFlag { [Mapping("none")] None = 0, /// /// Force all sets to be in archives, except disk and media /// [Mapping("zip", "yes")] Zip, /// /// Force all sets to be extracted into subfolders /// [Mapping("unzip", "no")] Unzip, /// /// Force sets with single items to be extracted to the parent folder /// [Mapping("partial")] Partial, /// /// Force all sets to be extracted to the parent folder /// [Mapping("flat")] Flat, /// /// Force all sets to have all archives treated as files /// [Mapping("fileonly")] FileOnly, } }