namespace SabreTools.Helper.Data
{
#region Archival
///
/// Version of tool archive made by
///
public enum ArchiveVersion : ushort
{
MSDOSandOS2 = 0,
Amiga = 1,
OpenVMS = 2,
UNIX = 3,
VMCMS = 4,
AtariST = 5,
OS2HPFS = 6,
Macintosh = 7,
ZSystem = 8,
CPM = 9,
WindowsNTFS = 10,
MVS = 11,
VSE = 12,
AcornRisc = 13,
VFAT = 14,
AlternateMVS = 15,
BeOS = 16,
Tandem = 17,
OS400 = 18,
OSXDarwin = 19,
TorrentZip = 20,
TorrentZip64 = 45,
}
///
/// Compression method based on flag
///
public enum CompressionMethod : ushort
{
Stored = 0,
Shrunk = 1,
ReducedCompressionFactor1 = 2,
ReducedCompressionFactor2 = 3,
ReducedCompressionFactor3 = 4,
ReducedCompressionFactor4 = 5,
Imploded = 6,
Tokenizing = 7,
Deflated = 8,
Delfate64 = 9,
PKWAREDataCompressionLibrary = 10,
BZIP2 = 12,
LZMA = 14,
IBMTERSE = 18,
IBMLZ77 = 19,
WavPak = 97,
PPMdVersionIRev1 = 98,
// Reserved and unused (SHOULD NOT BE USED)
Type11 = 11,
Type13 = 13,
Type15 = 15,
Type16 = 16,
Type17 = 17,
}
///
/// Output format for rebuilt files
///
public enum OutputFormat
{
// Currently implemented
Folder = 0,
TorrentZip = 1,
TorrentGzip = 2,
TapeArchive = 5,
// Currently unimplemented
Torrent7Zip = 3,
TorrentRar = 4,
TorrentXZ = 6,
TorrentLrzip = 7,
}
///
/// RAR extra area flag
///
public enum RarExtraAreaFlag : uint
{
FileEncryption = 0x01,
FileHash = 0x02,
FileTime = 0x03,
FileVersion = 0x04,
Redirection = 0x05,
UnixOwner = 0x06,
ServiceData = 0x07,
}
///
/// RAR header types
///
public enum RarHeaderType : uint
{
MainArchiveHeader = 1,
File = 2,
Service = 3,
ArchiveEncryption = 4,
EndOfArchive = 5,
}
///
/// RAR entry redirection type
///
public enum RarRedirectionType : uint
{
UnixSymlink = 0x0001,
WindowsSymlink = 0x0002,
WindowsJunction = 0x0003,
HardLink = 0x0004,
FileCopy = 0x0005,
}
///
/// 7zip Properties
///
public enum SevenZipProperties : uint
{
kEnd = 0x00,
kHeader = 0x01,
kArchiveProperties = 0x02,
kAdditionalStreamsInfo = 0x03,
kMainStreamsInfo = 0x04,
kFilesInfo = 0x05,
kPackInfo = 0x06,
kUnPackInfo = 0x07,
kSubStreamsInfo = 0x08,
kSize = 0x09,
kCRC = 0x0A,
kFolder = 0x0B,
kCodersUnPackSize = 0x0C,
kNumUnPackStream = 0x0D,
kEmptyStream = 0x0E,
kEmptyFile = 0x0F,
kAnti = 0x10,
kName = 0x11,
kCTime = 0x12,
kATime = 0x13,
kMTime = 0x14,
kWinAttributes = 0x15,
kComment = 0x16,
kEncodedHeader = 0x17,
kStartPos = 0x18,
kDummy = 0x19,
}
///
/// Zip open type
///
/// https://raw.githubusercontent.com/gjefferyes/RomVault/5a93500001f0d068f32cf77a048950717507f733/ROMVault2/SupportedFiles/ZipEnums.cs
public enum ZipOpenType
{
Closed,
OpenRead,
OpenWrite
}
///
/// Zip testing type
///
/// https://raw.githubusercontent.com/gjefferyes/RomVault/5a93500001f0d068f32cf77a048950717507f733/ROMVault2/SupportedFiles/ZipEnums.cs
public enum ZipReturn
{
ZipGood,
ZipFileLocked,
ZipFileCountError,
ZipSignatureError,
ZipExtraDataOnEndOfZip,
ZipUnsupportedCompression,
ZipLocalFileHeaderError,
ZipCentralDirError,
ZipEndOfCentralDirectoryError,
Zip64EndOfCentralDirError,
Zip64EndOfCentralDirectoryLocatorError,
ZipReadingFromOutputFile,
ZipWritingToInputFile,
ZipErrorGettingDataStream,
ZipCRCDecodeError,
ZipDecodeError,
ZipFileNameToLong,
ZipFileAlreadyOpen,
ZipCannotFastOpen,
ZipErrorOpeningFile,
ZipErrorFileNotFound,
ZipErrorReadingFile,
ZipErrorTimeStamp,
ZipErrorRollBackFile,
ZipUntested
}
#endregion
#region DatFile related
///
/// Determines forcemerging tag for DAT output
///
public enum ForceMerging
{
None = 0,
Split,
Merged,
NonMerged,
Full,
}
///
/// Determines forcenodump tag for DAT output
///
public enum ForceNodump
{
None = 0,
Obsolete,
Required,
Ignore,
}
///
/// Determines forcepacking tag for DAT output
///
public enum ForcePacking
{
None = 0,
Zip,
Unzip,
}
///
/// Determines which files should be skipped in DFD
///
public enum SkipFileType
{
None = 0,
Archive,
File,
}
///
/// Determines how the current dictionary is sorted by
///
public enum SortedBy
{
Default = 0,
Size,
CRC,
MD5,
SHA1,
SHA256,
SHA384,
SHA512,
Game,
}
///
/// Determines how a DAT will be split internally
///
public enum SplitType
{
None = 0,
NonMerged,
Merged,
FullNonMerged,
Split,
}
#endregion
#region DatItem related
///
/// Determine what type of file an item is
///
public enum ItemType
{
Rom = 0,
Disk = 1,
Sample = 2,
Release = 3,
BiosSet = 4,
Archive = 5,
}
#endregion
#region Help related
///
/// Determines the feature type to check for
///
public enum FeatureType
{
Flag = 0,
String,
List,
}
#endregion
#region Logging related
///
/// Severity of the logging statement
///
public enum LogLevel
{
VERBOSE = 0,
USER,
WARNING,
ERROR,
}
#endregion
#region Skippers and Mappers
///
/// Determines the header skip operation
///
public enum HeaderSkipOperation
{
None = 0,
Bitswap,
Byteswap,
Wordswap,
WordByteswap,
}
///
/// Determines the type of test to be done
///
public enum HeaderSkipTest
{
Data = 0,
Or,
Xor,
And,
File,
}
///
/// Determines the operator to be used in a file test
///
public enum HeaderSkipTestFileOperator
{
Equal = 0,
Less,
Greater,
}
#endregion
}