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
}