Files
SabreTools/SabreTools.Core/Enums.cs
2020-12-08 13:23:59 -08:00

2354 lines
77 KiB
C#

using System;
// TODO: Figure out the best way to put these back in their libraries
namespace SabreTools.Core
{
#region DatFiles
/// <summary>
/// DAT output formats
/// </summary>
[Flags]
public enum DatFormat
{
#region XML Formats
/// <summary>
/// Logiqx XML (using machine)
/// </summary>
Logiqx = 1 << 0,
/// <summary>
/// Logiqx XML (using game)
/// </summary>
LogiqxDeprecated = 1 << 1,
/// <summary>
/// MAME Softare List XML
/// </summary>
SoftwareList = 1 << 2,
/// <summary>
/// MAME Listxml output
/// </summary>
Listxml = 1 << 3,
/// <summary>
/// OfflineList XML
/// </summary>
OfflineList = 1 << 4,
/// <summary>
/// SabreDAT XML
/// </summary>
SabreXML = 1 << 5,
/// <summary>
/// openMSX Software List XML
/// </summary>
OpenMSX = 1 << 6,
#endregion
#region Propietary Formats
/// <summary>
/// ClrMamePro custom
/// </summary>
ClrMamePro = 1 << 7,
/// <summary>
/// RomCenter INI-based
/// </summary>
RomCenter = 1 << 8,
/// <summary>
/// DOSCenter custom
/// </summary>
DOSCenter = 1 << 9,
/// <summary>
/// AttractMode custom
/// </summary>
AttractMode = 1 << 10,
#endregion
#region Standardized Text Formats
/// <summary>
/// ClrMamePro missfile
/// </summary>
MissFile = 1 << 11,
/// <summary>
/// Comma-Separated Values (standardized)
/// </summary>
CSV = 1 << 12,
/// <summary>
/// Semicolon-Separated Values (standardized)
/// </summary>
SSV = 1 << 13,
/// <summary>
/// Tab-Separated Values (standardized)
/// </summary>
TSV = 1 << 14,
/// <summary>
/// MAME Listrom output
/// </summary>
Listrom = 1 << 15,
/// <summary>
/// Everdrive Packs SMDB
/// </summary>
EverdriveSMDB = 1 << 16,
/// <summary>
/// SabreJSON
/// </summary>
SabreJSON = 1 << 17,
#endregion
#region SFV-similar Formats
/// <summary>
/// CRC32 hash list
/// </summary>
RedumpSFV = 1 << 18,
/// <summary>
/// MD5 hash list
/// </summary>
RedumpMD5 = 1 << 19,
#if NET_FRAMEWORK
/// <summary>
/// RIPEMD160 hash list
/// </summary>
RedumpRIPEMD160 = 1 << 20,
#endif
/// <summary>
/// SHA-1 hash list
/// </summary>
RedumpSHA1 = 1 << 21,
/// <summary>
/// SHA-256 hash list
/// </summary>
RedumpSHA256 = 1 << 22,
/// <summary>
/// SHA-384 hash list
/// </summary>
RedumpSHA384 = 1 << 23,
/// <summary>
/// SHA-512 hash list
/// </summary>
RedumpSHA512 = 1 << 24,
/// <summary>
/// SpamSum hash list
/// </summary>
RedumpSpamSum = 1 << 25,
#endregion
// Specialty combinations
ALL = Int32.MaxValue,
}
/// <summary>
/// Determines the DAT deduplication type
/// </summary>
public enum DedupeType
{
None = 0,
Full,
// Force only deduping with certain types
Game,
CRC,
MD5,
#if NET_FRAMEWORK
RIPEMD160,
#endif
SHA1,
SHA256,
SHA384,
SHA512,
}
/// <summary>
/// List of valid field types within a DatItem/Machine
/// </summary>
public enum Field : int
{
NULL = 0,
#region DatHeader
#region Common
DatHeader_FileName,
DatHeader_Name,
DatHeader_Description,
DatHeader_RootDir,
DatHeader_Category,
DatHeader_Version,
DatHeader_Date,
DatHeader_Author,
DatHeader_Email,
DatHeader_Homepage,
DatHeader_Url,
DatHeader_Comment,
DatHeader_HeaderSkipper,
DatHeader_Type,
DatHeader_ForceMerging,
DatHeader_ForceNodump,
DatHeader_ForcePacking,
#endregion
#region ListXML
DatHeader_Debug,
DatHeader_MameConfig,
#endregion
#region Logiqx
DatHeader_Build,
DatHeader_RomMode,
DatHeader_BiosMode,
DatHeader_SampleMode,
DatHeader_LockRomMode,
DatHeader_LockBiosMode,
DatHeader_LockSampleMode,
#endregion
#region OfflineList
DatHeader_System,
DatHeader_ScreenshotsWidth,
DatHeader_ScreenshotsHeight,
DatHeader_CanOpen,
DatHeader_RomTitle,
// Infos
DatHeader_Info_Name,
DatHeader_Info_Visible,
DatHeader_Info_IsNamingOption,
DatHeader_Info_Default,
#endregion
#region RomCenter
DatHeader_RomCenterVersion,
#endregion
#endregion // DatHeader
#region Machine
#region Common
Machine_Name,
Machine_Comment,
Machine_Description,
Machine_Year,
Machine_Manufacturer,
Machine_Publisher,
Machine_Category,
Machine_RomOf,
Machine_CloneOf,
Machine_SampleOf,
Machine_Type,
#endregion
#region AttractMode
Machine_Players,
Machine_Rotation,
Machine_Control,
Machine_Status,
Machine_DisplayCount,
Machine_DisplayType,
Machine_Buttons,
#endregion
#region ListXML
Machine_SourceFile,
Machine_Runnable,
#endregion
#region Logiqx
Machine_Board,
Machine_RebuildTo,
#endregion
#region Logiqx EmuArc
Machine_TitleID,
Machine_Developer,
Machine_Genre,
Machine_Subgenre,
Machine_Ratings,
Machine_Score,
Machine_Enabled,
Machine_CRC,
Machine_RelatedTo,
#endregion
#region OpenMSX
Machine_GenMSXID,
Machine_System,
Machine_Country,
#endregion
#region SoftwareList
Machine_Supported,
#endregion
#endregion // Machine
#region DatItem
#region Common
DatItem_Type,
#endregion
#region Item-Specific
#region Actionable
// Rom
DatItem_Name,
DatItem_Bios,
DatItem_Size,
DatItem_CRC,
DatItem_MD5,
#if NET_FRAMEWORK
DatItem_RIPEMD160,
#endif
DatItem_SHA1,
DatItem_SHA256,
DatItem_SHA384,
DatItem_SHA512,
DatItem_SpamSum,
DatItem_Merge,
DatItem_Region,
DatItem_Offset,
DatItem_Date,
DatItem_Status,
DatItem_Optional,
DatItem_Inverted,
// Rom (AttractMode)
DatItem_AltName,
DatItem_AltTitle,
// Rom (OpenMSX)
DatItem_Original,
DatItem_OpenMSXSubType,
DatItem_OpenMSXType,
DatItem_Remark,
DatItem_Boot,
// Rom (SoftwareList)
DatItem_LoadFlag,
DatItem_Value,
// Disk
DatItem_Index,
DatItem_Writable,
#endregion
#region Auxiliary
// Adjuster
DatItem_Default,
// Analog
DatItem_Analog_Mask,
// BiosSet
DatItem_Description,
// Chip
DatItem_Tag,
DatItem_ChipType,
DatItem_Clock,
// Condition
DatItem_Mask,
DatItem_Relation,
DatItem_Condition_Tag,
DatItem_Condition_Mask,
DatItem_Condition_Relation,
DatItem_Condition_Value,
// Control
DatItem_Control_Type,
DatItem_Control_Player,
DatItem_Control_Buttons,
DatItem_Control_RequiredButtons,
DatItem_Control_Minimum,
DatItem_Control_Maximum,
DatItem_Control_Sensitivity,
DatItem_Control_KeyDelta,
DatItem_Control_Reverse,
DatItem_Control_Ways,
DatItem_Control_Ways2,
DatItem_Control_Ways3,
// DataArea
DatItem_AreaName,
DatItem_AreaSize,
DatItem_AreaWidth,
DatItem_AreaEndianness,
// Device
DatItem_DeviceType,
DatItem_FixedImage,
DatItem_Mandatory,
DatItem_Interface,
// Display
DatItem_DisplayType,
DatItem_Rotate,
DatItem_FlipX,
DatItem_Width,
DatItem_Height,
DatItem_Refresh,
DatItem_PixClock,
DatItem_HTotal,
DatItem_HBEnd,
DatItem_HBStart,
DatItem_VTotal,
DatItem_VBEnd,
DatItem_VBStart,
// Driver
DatItem_SupportStatus,
DatItem_EmulationStatus,
DatItem_CocktailStatus,
DatItem_SaveStateStatus,
// Extension
DatItem_Extension_Name,
// Feature
DatItem_FeatureType,
DatItem_FeatureStatus,
DatItem_FeatureOverall,
// Input
DatItem_Service,
DatItem_Tilt,
DatItem_Players,
DatItem_Coins,
// Instance
DatItem_Instance_Name,
DatItem_Instance_BriefName,
// Location
DatItem_Location_Name,
DatItem_Location_Number,
DatItem_Location_Inverted,
// Part
DatItem_Part_Name,
DatItem_Part_Interface,
// PartFeature
DatItem_Part_Feature_Name,
DatItem_Part_Feature_Value,
// RamOption
DatItem_Content,
// Release
DatItem_Language,
// Setting
DatItem_Setting_Name,
DatItem_Setting_Value,
DatItem_Setting_Default,
// SlotOption
DatItem_SlotOption_Name,
DatItem_SlotOption_DeviceName,
DatItem_SlotOption_Default,
// SoftwareList
DatItem_SoftwareListStatus,
DatItem_Filter,
// Sound
DatItem_Channels,
#endregion
#endregion // Item-Specific
#endregion // DatItem
}
/// <summary>
/// Available hashing types
/// </summary>
[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,
SpamSum = 1 << 7,
// Special combinations
Standard = CRC | MD5 | SHA1,
#if NET_FRAMEWORK
DeepHashes = RIPEMD160 | SHA256 | SHA384 | SHA512 | SpamSum,
SecureHashes = MD5 | RIPEMD160 | SHA1 | SHA256 | SHA384 | SHA512 | SpamSum,
#else
DeepHashes = SHA256 | SHA384 | SHA512 | SpamSum,
SecureHashes = MD5 | SHA1 | SHA256 | SHA384 | SHA512 | SpamSum,
#endif
}
/// <summary>
/// Determines merging tag handling for DAT output
/// </summary>
public enum MergingFlag
{
None = 0,
Split,
Merged,
NonMerged,
Full,
/// <remarks>This is not usually defined for Merging flags</remarks>
Device,
}
/// <summary>
/// Determines nodump tag handling for DAT output
/// </summary>
public enum NodumpFlag
{
None = 0,
Obsolete,
Required,
Ignore,
}
/// <summary>
/// Determines packing tag handling for DAT output
/// </summary>
public enum PackingFlag
{
None = 0,
/// <summary>
/// Force all sets to be in archives, except disk and media
/// </summary>
Zip,
/// <summary>
/// Force all sets to be extracted into subfolders
/// </summary>
Unzip,
/// <summary>
/// Force sets with single items to be extracted to the parent folder
/// </summary>
Partial,
/// <summary>
/// Force all sets to be extracted to the parent folder
/// </summary>
Flat,
}
/// <summary>
/// Determines which files should be skipped in DFD
/// </summary>
public enum SkipFileType
{
None = 0,
Archive,
File,
}
/// <summary>
/// Determines what sort of files get externally hashed
/// </summary>
/// TODO: Can FileType be used instead?
[Flags]
public enum TreatAsFile
{
CHD = 1 << 0,
Archive = 1 << 1,
AaruFormat = 1 << 2,
NonArchive = CHD | AaruFormat,
All = CHD | Archive | AaruFormat,
}
#endregion
#region DatItems
/// <summary>
/// Determine the chip type
/// </summary>
[Flags]
public enum ChipType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
CPU = 1 << 0,
Audio = 1 << 1,
}
/// <summary>
/// Determine the control type
/// </summary>
[Flags]
public enum ControlType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Joy = 1 << 0,
Stick = 1 << 1,
Paddle = 1 << 2,
Pedal = 1 << 3,
Lightgun = 1 << 4,
Positional = 1 << 5,
Dial = 1 << 6,
Trackball = 1 << 7,
Mouse = 1 << 8,
OnlyButtons = 1 << 9,
Keypad = 1 << 10,
Keyboard = 1 << 11,
Mahjong = 1 << 12,
Hanafuda = 1 << 13,
Gambling = 1 << 14,
}
/// <summary>
/// Determine the device type
/// </summary>
[Flags]
public enum DeviceType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Unknown = 1 << 0,
Cartridge = 1 << 1,
FloppyDisk = 1 << 2,
HardDisk = 1 << 3,
Cylinder = 1 << 4,
Cassette = 1 << 5,
PunchCard = 1 << 6,
PunchTape = 1 << 7,
Printout = 1 << 8,
Serial = 1 << 9,
Parallel = 1 << 10,
Snapshot = 1 << 11,
QuickLoad = 1 << 12,
MemCard = 1 << 13,
CDROM = 1 << 14,
MagTape = 1 << 15,
ROMImage = 1 << 16,
MIDIIn = 1 << 17,
MIDIOut = 1 << 18,
Picture = 1 << 19,
VidFile = 1 << 20,
}
/// <summary>
/// Determine the display type
/// </summary>
[Flags]
public enum DisplayType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Raster = 1 << 0,
Vector = 1 << 1,
LCD = 1 << 2,
SVG = 1 << 3,
Unknown = 1 << 4,
}
/// <summary>
/// Determines which type of duplicate a file is
/// </summary>
[Flags]
public enum DupeType
{
// Type of match
Hash = 1 << 0,
All = 1 << 1,
// Location of match
Internal = 1 << 2,
External = 1 << 3,
}
/// <summary>
/// Determine the endianness
/// </summary>
[Flags]
public enum Endianness
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Big = 1 << 0,
Little = 1 << 1,
}
/// <summary>
/// Determine the emulation status
/// </summary>
[Flags]
public enum FeatureStatus
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Unemulated = 1 << 0,
Imperfect = 1 << 1,
}
/// <summary>
/// Determine the feature type
/// </summary>
[Flags]
public enum FeatureType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Protection = 1 << 0,
Palette = 1 << 1,
Graphics = 1 << 2,
Sound = 1 << 3,
Controls = 1 << 4,
Keyboard = 1 << 5,
Mouse = 1 << 6,
Microphone = 1 << 7,
Camera = 1 << 8,
Disk = 1 << 9,
Printer = 1 << 10,
Lan = 1 << 11,
Wan = 1 << 12,
Timing = 1 << 13,
}
/// <summary>
/// Determine the status of the item
/// </summary>
[Flags]
public enum ItemStatus
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
None = 1 << 0,
Good = 1 << 1,
BadDump = 1 << 2,
Nodump = 1 << 3,
Verified = 1 << 4,
}
/// <summary>
/// Determine what type of file an item is
/// </summary>
public enum ItemType
{
// "Actionable" item types
Rom,
Disk,
Media,
// "Auxiliary" item types
Adjuster,
Analog,
Archive,
BiosSet,
Chip,
Condition,
Configuration,
Control,
DataArea,
Device,
DeviceReference,
DipSwitch,
DiskArea,
Display,
Driver,
Extension,
Feature,
Info,
Input,
Instance,
Location,
Part,
PartFeature,
Port,
RamOption,
Release,
Sample,
Setting,
SharedFeature,
Slot,
SlotOption,
SoftwareList,
Sound,
Blank = 99, // This is not a real type, only used internally
}
/// <summary>
/// Determine the loadflag value
/// </summary>
[Flags]
public enum LoadFlag
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Load16Byte = 1 << 0,
Load16Word = 1 << 1,
Load16WordSwap = 1 << 2,
Load32Byte = 1 << 3,
Load32Word = 1 << 4,
Load32WordSwap = 1 << 5,
Load32DWord = 1 << 6,
Load64Word = 1 << 7,
Load64WordSwap = 1 << 8,
Reload = 1 << 9,
Fill = 1 << 10,
Continue = 1 << 11,
ReloadPlain = 1 << 12,
Ignore = 1 << 13,
}
/// <summary>
/// Determine what type of machine it is
/// </summary>
[Flags]
public enum MachineType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 1 << 0,
Bios = 1 << 1,
Device = 1 << 2,
Mechanical = 1 << 3,
}
/// <summary>
/// Determine which OpenMSX subtype an item is
/// </summary>
[Flags]
public enum OpenMSXSubType
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Rom = 1 << 0,
MegaRom = 1 << 1,
SCCPlusCart = 1 << 2,
}
/// <summary>
/// Determine relation of value to condition
/// </summary>
[Flags]
public enum Relation
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Equal = 1 << 0,
NotEqual = 1 << 1,
GreaterThan = 1 << 2,
LessThanOrEqual = 1 << 3,
LessThan = 1 << 4,
GreaterThanOrEqual = 1 << 5,
}
/// <summary>
/// Determine machine runnable status
/// </summary>
[Flags]
public enum Runnable
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
No = 1 << 0,
Partial = 1 << 1,
Yes = 1 << 2,
}
/// <summary>
/// Determine software list status
/// </summary>
[Flags]
public enum SoftwareListStatus
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Original = 1 << 0,
Compatible = 1 << 1,
}
/// <summary>
/// Determine machine support status
/// </summary>
[Flags]
public enum Supported
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
No = 1 << 0,
Partial = 1 << 1,
Yes = 1 << 2,
}
/// <summary>
/// Determine driver support statuses
/// </summary>
[Flags]
public enum SupportStatus
{
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0,
Good = 1 << 0,
Imperfect = 1 << 1,
Preliminary = 1 << 2,
}
#endregion
#region FileTypes
/// <summary>
/// List of known blocks types
/// </summary>
/// <see cref="https://github.com/aaru-dps/Aaru/blob/master/Aaru.Images/AaruFormat/Enums.cs" />
public enum AaruBlockType : uint
{
/// <summary>Block containing data</summary>
DataBlock = 0x4B4C4244,
/// <summary>Block containing a deduplication table</summary>
DeDuplicationTable = 0x2A544444,
/// <summary>Block containing the index</summary>
Index = 0x58444E49,
/// <summary>Block containing the index</summary>
Index2 = 0x32584449,
/// <summary>Block containing logical geometry</summary>
GeometryBlock = 0x4D4F4547,
/// <summary>Block containing metadata</summary>
MetadataBlock = 0x4154454D,
/// <summary>Block containing optical disc tracks</summary>
TracksBlock = 0x534B5254,
/// <summary>Block containing CICM XML metadata</summary>
CicmBlock = 0x4D434943,
/// <summary>Block containing contents checksums</summary>
ChecksumBlock = 0x4D534B43,
/// <summary>TODO: Block containing data position measurements</summary>
DataPositionMeasurementBlock = 0x2A4D5044,
/// <summary>TODO: Block containing a snapshot index</summary>
SnapshotBlock = 0x50414E53,
/// <summary>TODO: Block containing how to locate the parent image</summary>
ParentBlock = 0x50524E54,
/// <summary>Block containing an array of hardware used to create the image</summary>
DumpHardwareBlock = 0x2A504D44,
/// <summary>Block containing list of files for a tape image</summary>
TapeFileBlock = 0x454C4654,
/// <summary>Block containing list of partitions for a tape image</summary>
TapePartitionBlock = 0x54425054,
/// <summary>Block containing list of indexes for Compact Disc tracks</summary>
CompactDiscIndexesBlock = 0x58494443
}
/// <see cref="https://github.com/aaru-dps/Aaru/blob/master/Aaru.Images/AaruFormat/Enums.cs" />
public enum AaruChecksumAlgorithm : byte
{
Invalid = 0, Md5 = 1, Sha1 = 2,
Sha256 = 3, SpamSum = 4
}
/// <summary>
/// List of known data types
/// </summary>
/// <see cref="https://github.com/aaru-dps/Aaru/blob/master/Aaru.Images/AaruFormat/Enums.cs" />
public enum AaruDataType : ushort
{
/// <summary>No data</summary>
NoData = 0,
/// <summary>User data</summary>
UserData = 1,
/// <summary>CompactDisc partial Table of Contents</summary>
CompactDiscPartialToc = 2,
/// <summary>CompactDisc session information</summary>
CompactDiscSessionInfo = 3,
/// <summary>CompactDisc Table of Contents</summary>
CompactDiscToc = 4,
/// <summary>CompactDisc Power Management Area</summary>
CompactDiscPma = 5,
/// <summary>CompactDisc Absolute Time In Pregroove</summary>
CompactDiscAtip = 6,
/// <summary>CompactDisc Lead-in's CD-Text</summary>
CompactDiscLeadInCdText = 7,
/// <summary>DVD Physical Format Information</summary>
DvdPfi = 8,
/// <summary>DVD Lead-in's Copyright Management Information</summary>
DvdLeadInCmi = 9,
/// <summary>DVD Disc Key</summary>
DvdDiscKey = 10,
/// <summary>DVD Burst Cutting Area</summary>
DvdBca = 11,
/// <summary>DVD DMI</summary>
DvdDmi = 12,
/// <summary>DVD Media Identifier</summary>
DvdMediaIdentifier = 13,
/// <summary>DVD Media Key Block</summary>
DvdMediaKeyBlock = 14,
/// <summary>DVD-RAM Disc Definition Structure</summary>
DvdRamDds = 15,
/// <summary>DVD-RAM Medium Status</summary>
DvdRamMediumStatus = 16,
/// <summary>DVD-RAM Spare Area Information</summary>
DvdRamSpareArea = 17,
/// <summary>DVD-R RMD</summary>
DvdRRmd = 18,
/// <summary>DVD-R Pre-recorded Information</summary>
DvdRPrerecordedInfo = 19,
/// <summary>DVD-R Media Identifier</summary>
DvdRMediaIdentifier = 20,
/// <summary>DVD-R Physical Format Information</summary>
DvdRPfi = 21,
/// <summary>DVD ADress In Pregroove</summary>
DvdAdip = 22,
/// <summary>HD DVD Copy Protection Information</summary>
HdDvdCpi = 23,
/// <summary>HD DVD Medium Status</summary>
HdDvdMediumStatus = 24,
/// <summary>DVD DL Layer Capacity</summary>
DvdDlLayerCapacity = 25,
/// <summary>DVD DL Middle Zone Address</summary>
DvdDlMiddleZoneAddress = 26,
/// <summary>DVD DL Jump Interval Size</summary>
DvdDlJumpIntervalSize = 27,
/// <summary>DVD DL Manual Layer Jump LBA</summary>
DvdDlManualLayerJumpLba = 28,
/// <summary>Bluray Disc Information</summary>
BlurayDi = 29,
/// <summary>Bluray Burst Cutting Area</summary>
BlurayBca = 30,
/// <summary>Bluray Disc Definition Structure</summary>
BlurayDds = 31,
/// <summary>Bluray Cartridge Status</summary>
BlurayCartridgeStatus = 32,
/// <summary>Bluray Spare Area Information</summary>
BluraySpareArea = 33,
/// <summary>AACS Volume Identifier</summary>
AacsVolumeIdentifier = 34,
/// <summary>AACS Serial Number</summary>
AacsSerialNumber = 35,
/// <summary>AACS Media Identifier</summary>
AacsMediaIdentifier = 36,
/// <summary>AACS Media Key Block</summary>
AacsMediaKeyBlock = 37,
/// <summary>AACS Data Keys</summary>
AacsDataKeys = 38,
/// <summary>AACS LBA Extents</summary>
AacsLbaExtents = 39,
/// <summary>CPRM Media Key Block</summary>
CprmMediaKeyBlock = 40,
/// <summary>Recognized Layers</summary>
HybridRecognizedLayers = 41,
/// <summary>MMC Write Protection</summary>
ScsiMmcWriteProtection = 42,
/// <summary>MMC Disc Information</summary>
ScsiMmcDiscInformation = 43,
/// <summary>MMC Track Resources Information</summary>
ScsiMmcTrackResourcesInformation = 44,
/// <summary>MMC POW Resources Information</summary>
ScsiMmcPowResourcesInformation = 45,
/// <summary>SCSI INQUIRY RESPONSE</summary>
ScsiInquiry = 46,
/// <summary>SCSI MODE PAGE 2Ah</summary>
ScsiModePage2A = 47,
/// <summary>ATA IDENTIFY response</summary>
AtaIdentify = 48,
/// <summary>ATAPI IDENTIFY response</summary>
AtapiIdentify = 49,
/// <summary>PCMCIA CIS</summary>
PcmciaCis = 50,
/// <summary>SecureDigital CID</summary>
SecureDigitalCid = 51,
/// <summary>SecureDigital CSD</summary>
SecureDigitalCsd = 52,
/// <summary>SecureDigital SCR</summary>
SecureDigitalScr = 53,
/// <summary>SecureDigital OCR</summary>
SecureDigitalOcr = 54,
/// <summary>MultiMediaCard CID</summary>
MultiMediaCardCid = 55,
/// <summary>MultiMediaCard CSD</summary>
MultiMediaCardCsd = 56,
/// <summary>MultiMediaCard OCR</summary>
MultiMediaCardOcr = 57,
/// <summary>MultiMediaCard Extended CSD</summary>
MultiMediaCardExtendedCsd = 58,
/// <summary>Xbox Security Sector</summary>
XboxSecuritySector = 59,
/// <summary>Floppy Lead-out</summary>
FloppyLeadOut = 60,
/// <summary>Dvd Disc Control Block</summary>
DvdDiscControlBlock = 61,
/// <summary>CompactDisc First track pregap</summary>
CompactDiscFirstTrackPregap = 62,
/// <summary>CompactDisc Lead-out</summary>
CompactDiscLeadOut = 63,
/// <summary>SCSI MODE SENSE (6) response</summary>
ScsiModeSense6 = 64,
/// <summary>SCSI MODE SENSE (10) response</summary>
ScsiModeSense10 = 65,
/// <summary>USB descriptors</summary>
UsbDescriptors = 66,
/// <summary>Xbox DMI</summary>
XboxDmi = 67,
/// <summary>Xbox Physical Format Information</summary>
XboxPfi = 68,
/// <summary>CompactDisc sector prefix (sync, header</summary>
CdSectorPrefix = 69,
/// <summary>CompactDisc sector suffix (edc, ecc p, ecc q)</summary>
CdSectorSuffix = 70,
/// <summary>CompactDisc subchannel</summary>
CdSectorSubchannel = 71,
/// <summary>Apple Profile (20 byte) tag</summary>
AppleProfileTag = 72,
/// <summary>Apple Sony (12 byte) tag</summary>
AppleSonyTag = 73,
/// <summary>Priam Data Tower (24 byte) tag</summary>
PriamDataTowerTag = 74,
/// <summary>CompactDisc Media Catalogue Number (as in Lead-in), 13 bytes, ASCII</summary>
CompactDiscMediaCatalogueNumber = 75,
/// <summary>CompactDisc sector prefix (sync, header), only incorrect stored</summary>
CdSectorPrefixCorrected = 76,
/// <summary>CompactDisc sector suffix (edc, ecc p, ecc q), only incorrect stored</summary>
CdSectorSuffixCorrected = 77,
/// <summary>CompactDisc MODE 2 subheader</summary>
CompactDiscMode2Subheader = 78,
/// <summary>CompactDisc Lead-in</summary>
CompactDiscLeadIn = 79
}
/// <summary>
/// Internal media format for AaruFormat
/// </summary>
/// <see cref="https://github.com/aaru-dps/Aaru.CommonTypes/blob/master/MediaType.cs" />
public enum AaruMediaType : uint
{
#region Generics, types 0 to 9
/// <summary>Unknown disk type</summary>
Unknown = 0,
/// <summary>Unknown magneto-optical</summary>
UnknownMO = 1,
/// <summary>Generic hard disk</summary>
GENERIC_HDD = 2,
/// <summary>Microdrive type hard disk</summary>
Microdrive = 3,
/// <summary>Zoned hard disk</summary>
Zone_HDD = 4,
/// <summary>USB flash drives</summary>
FlashDrive = 5,
/// <summary>USB flash drives</summary>
UnknownTape = 4,
#endregion Generics, types 0 to 9
#region Somewhat standard Compact Disc formats, types 10 to 39
/// <summary>Any unknown or standard violating CD</summary>
CD = 10,
/// <summary>CD Digital Audio (Red Book)</summary>
CDDA = 11,
/// <summary>CD+G (Red Book)</summary>
CDG = 12,
/// <summary>CD+EG (Red Book)</summary>
CDEG = 13,
/// <summary>CD-i (Green Book)</summary>
CDI = 14,
/// <summary>CD-ROM (Yellow Book)</summary>
CDROM = 15,
/// <summary>CD-ROM XA (Yellow Book)</summary>
CDROMXA = 16,
/// <summary>CD+ (Blue Book)</summary>
CDPLUS = 17,
/// <summary>CD-MO (Orange Book)</summary>
CDMO = 18,
/// <summary>CD-Recordable (Orange Book)</summary>
CDR = 19,
/// <summary>CD-ReWritable (Orange Book)</summary>
CDRW = 20,
/// <summary>Mount-Rainier CD-RW</summary>
CDMRW = 21,
/// <summary>Video CD (White Book)</summary>
VCD = 22,
/// <summary>Super Video CD (White Book)</summary>
SVCD = 23,
/// <summary>Photo CD (Beige Book)</summary>
PCD = 24,
/// <summary>Super Audio CD (Scarlet Book)</summary>
SACD = 25,
/// <summary>Double-Density CD-ROM (Purple Book)</summary>
DDCD = 26,
/// <summary>DD CD-R (Purple Book)</summary>
DDCDR = 27,
/// <summary>DD CD-RW (Purple Book)</summary>
DDCDRW = 28,
/// <summary>DTS audio CD (non-standard)</summary>
DTSCD = 29,
/// <summary>CD-MIDI (Red Book)</summary>
CDMIDI = 30,
/// <summary>CD-Video (ISO/IEC 61104)</summary>
CDV = 31,
/// <summary>120mm, Phase-Change, 1298496 sectors, 512 bytes/sector, PD650, ECMA-240, ISO 15485</summary>
PD650 = 32,
/// <summary>120mm, Write-Once, 1281856 sectors, 512 bytes/sector, PD650, ECMA-240, ISO 15485</summary>
PD650_WORM = 33,
/// <summary>
/// CD-i Ready, contains a track before the first TOC track, in mode 2, and all TOC tracks are Audio. Subchannel
/// marks track as audio pause.
/// </summary>
CDIREADY = 34, FMTOWNS = 35,
#endregion Somewhat standard Compact Disc formats, types 10 to 39
#region Standard DVD formats, types 40 to 50
/// <summary>DVD-ROM (applies to DVD Video and DVD Audio)</summary>
DVDROM = 40,
/// <summary>DVD-R</summary>
DVDR = 41,
/// <summary>DVD-RW</summary>
DVDRW = 42,
/// <summary>DVD+R</summary>
DVDPR = 43,
/// <summary>DVD+RW</summary>
DVDPRW = 44,
/// <summary>DVD+RW DL</summary>
DVDPRWDL = 45,
/// <summary>DVD-R DL</summary>
DVDRDL = 46,
/// <summary>DVD+R DL</summary>
DVDPRDL = 47,
/// <summary>DVD-RAM</summary>
DVDRAM = 48,
/// <summary>DVD-RW DL</summary>
DVDRWDL = 49,
/// <summary>DVD-Download</summary>
DVDDownload = 50,
#endregion Standard DVD formats, types 40 to 50
#region Standard HD-DVD formats, types 51 to 59
/// <summary>HD DVD-ROM (applies to HD DVD Video)</summary>
HDDVDROM = 51,
/// <summary>HD DVD-RAM</summary>
HDDVDRAM = 52,
/// <summary>HD DVD-R</summary>
HDDVDR = 53,
/// <summary>HD DVD-RW</summary>
HDDVDRW = 54,
/// <summary>HD DVD-R DL</summary>
HDDVDRDL = 55,
/// <summary>HD DVD-RW DL</summary>
HDDVDRWDL = 56,
#endregion Standard HD-DVD formats, types 51 to 59
#region Standard Blu-ray formats, types 60 to 69
/// <summary>BD-ROM (and BD Video)</summary>
BDROM = 60,
/// <summary>BD-R</summary>
BDR = 61,
/// <summary>BD-RE</summary>
BDRE = 62,
/// <summary>BD-R XL</summary>
BDRXL = 63,
/// <summary>BD-RE XL</summary>
BDREXL = 64,
#endregion Standard Blu-ray formats, types 60 to 69
#region Rare or uncommon optical standards, types 70 to 79
/// <summary>Enhanced Versatile Disc</summary>
EVD = 70,
/// <summary>Forward Versatile Disc</summary>
FVD = 71,
/// <summary>Holographic Versatile Disc</summary>
HVD = 72,
/// <summary>China Blue High Definition</summary>
CBHD = 73,
/// <summary>High Definition Versatile Multilayer Disc</summary>
HDVMD = 74,
/// <summary>Versatile Compact Disc High Density</summary>
VCDHD = 75,
/// <summary>Stacked Volumetric Optical Disc</summary>
SVOD = 76,
/// <summary>Five Dimensional disc</summary>
FDDVD = 77,
/// <summary>China Video Disc</summary>
CVD = 78,
#endregion Rare or uncommon optical standards, types 70 to 79
#region LaserDisc based, types 80 to 89
/// <summary>Pioneer LaserDisc</summary>
LD = 80,
/// <summary>Pioneer LaserDisc data</summary>
LDROM = 81, LDROM2 = 82, LVROM = 83, MegaLD = 84,
#endregion LaserDisc based, types 80 to 89
#region MiniDisc based, types 90 to 99
/// <summary>Sony Hi-MD</summary>
HiMD = 90,
/// <summary>Sony MiniDisc</summary>
MD = 91,
/// <summary>Sony MD-Data</summary>
MDData = 92,
/// <summary>Sony MD-Data2</summary>
MDData2 = 93,
/// <summary>Sony MiniDisc, 60 minutes, formatted with Hi-MD format</summary>
MD60 = 94,
/// <summary>Sony MiniDisc, 74 minutes, formatted with Hi-MD format</summary>
MD74 = 95,
/// <summary>Sony MiniDisc, 80 minutes, formatted with Hi-MD format</summary>
MD80 = 96,
#endregion MiniDisc based, types 90 to 99
#region Plasmon UDO, types 100 to 109
/// <summary>5.25", Phase-Change, 1834348 sectors, 8192 bytes/sector, Ultra Density Optical, ECMA-350, ISO 17345</summary>
UDO = 100,
/// <summary>5.25", Phase-Change, 3669724 sectors, 8192 bytes/sector, Ultra Density Optical 2, ECMA-380, ISO 11976</summary>
UDO2 = 101,
/// <summary>5.25", Write-Once, 3668759 sectors, 8192 bytes/sector, Ultra Density Optical 2, ECMA-380, ISO 11976</summary>
UDO2_WORM = 102,
#endregion Plasmon UDO, types 100 to 109
#region Sony game media, types 110 to 129
PlayStationMemoryCard = 110, PlayStationMemoryCard2 = 111,
/// <summary>Sony PlayStation game CD</summary>
PS1CD = 112,
/// <summary>Sony PlayStation 2 game CD</summary>
PS2CD = 113,
/// <summary>Sony PlayStation 2 game DVD</summary>
PS2DVD = 114,
/// <summary>Sony PlayStation 3 game DVD</summary>
PS3DVD = 115,
/// <summary>Sony PlayStation 3 game Blu-ray</summary>
PS3BD = 116,
/// <summary>Sony PlayStation 4 game Blu-ray</summary>
PS4BD = 117,
/// <summary>Sony PlayStation Portable Universal Media Disc (ECMA-365)</summary>
UMD = 118, PlayStationVitaGameCard = 119,
#endregion Sony game media, types 110 to 129
#region Microsoft game media, types 130 to 149
/// <summary>Microsoft X-box Game Disc</summary>
XGD = 130,
/// <summary>Microsoft X-box 360 Game Disc</summary>
XGD2 = 131,
/// <summary>Microsoft X-box 360 Game Disc</summary>
XGD3 = 132,
/// <summary>Microsoft X-box One Game Disc</summary>
XGD4 = 133,
#endregion Microsoft game media, types 130 to 149
#region Sega game media, types 150 to 169
/// <summary>Sega MegaCD</summary>
MEGACD = 150,
/// <summary>Sega Saturn disc</summary>
SATURNCD = 151,
/// <summary>Sega/Yamaha Gigabyte Disc</summary>
GDROM = 152,
/// <summary>Sega/Yamaha recordable Gigabyte Disc</summary>
GDR = 153, SegaCard = 154, MilCD = 155,
#endregion Sega game media, types 150 to 169
#region Other game media, types 170 to 179
/// <summary>PC-Engine / TurboGrafx cartridge</summary>
HuCard = 170,
/// <summary>PC-Engine / TurboGrafx CD</summary>
SuperCDROM2 = 171,
/// <summary>Atari Jaguar CD</summary>
JaguarCD = 172,
/// <summary>3DO CD</summary>
ThreeDO = 173,
/// <summary>NEC PC-FX</summary>
PCFX = 174,
/// <summary>NEO-GEO CD</summary>
NeoGeoCD = 175,
/// <summary>Commodore CDTV</summary>
CDTV = 176,
/// <summary>Amiga CD32</summary>
CD32 = 177,
/// <summary>Nuon (DVD based videogame console)</summary>
Nuon = 178,
/// <summary>Bandai Playdia</summary>
Playdia = 179,
#endregion Other game media, types 170 to 179
#region Apple standard floppy format, types 180 to 189
/// <summary>5.25", SS, DD, 35 tracks, 13 spt, 256 bytes/sector, GCR</summary>
Apple32SS = 180,
/// <summary>5.25", DS, DD, 35 tracks, 13 spt, 256 bytes/sector, GCR</summary>
Apple32DS = 181,
/// <summary>5.25", SS, DD, 35 tracks, 16 spt, 256 bytes/sector, GCR</summary>
Apple33SS = 182,
/// <summary>5.25", DS, DD, 35 tracks, 16 spt, 256 bytes/sector, GCR</summary>
Apple33DS = 183,
/// <summary>3.5", SS, DD, 80 tracks, 8 to 12 spt, 512 bytes/sector, GCR</summary>
AppleSonySS = 184,
/// <summary>3.5", DS, DD, 80 tracks, 8 to 12 spt, 512 bytes/sector, GCR</summary>
AppleSonyDS = 185,
/// <summary>5.25", DS, ?D, ?? tracks, ?? spt, 512 bytes/sector, GCR, opposite side heads, aka Twiggy</summary>
AppleFileWare = 186,
#endregion Apple standard floppy format
#region IBM/Microsoft PC floppy formats, types 190 to 209
/// <summary>5.25", SS, DD, 40 tracks, 8 spt, 512 bytes/sector, MFM</summary>
DOS_525_SS_DD_8 = 190,
/// <summary>5.25", SS, DD, 40 tracks, 9 spt, 512 bytes/sector, MFM</summary>
DOS_525_SS_DD_9 = 191,
/// <summary>5.25", DS, DD, 40 tracks, 8 spt, 512 bytes/sector, MFM</summary>
DOS_525_DS_DD_8 = 192,
/// <summary>5.25", DS, DD, 40 tracks, 9 spt, 512 bytes/sector, MFM</summary>
DOS_525_DS_DD_9 = 193,
/// <summary>5.25", DS, HD, 80 tracks, 15 spt, 512 bytes/sector, MFM</summary>
DOS_525_HD = 194,
/// <summary>3.5", SS, DD, 80 tracks, 8 spt, 512 bytes/sector, MFM</summary>
DOS_35_SS_DD_8 = 195,
/// <summary>3.5", SS, DD, 80 tracks, 9 spt, 512 bytes/sector, MFM</summary>
DOS_35_SS_DD_9 = 196,
/// <summary>3.5", DS, DD, 80 tracks, 8 spt, 512 bytes/sector, MFM</summary>
DOS_35_DS_DD_8 = 197,
/// <summary>3.5", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, MFM</summary>
DOS_35_DS_DD_9 = 198,
/// <summary>3.5", DS, HD, 80 tracks, 18 spt, 512 bytes/sector, MFM</summary>
DOS_35_HD = 199,
/// <summary>3.5", DS, ED, 80 tracks, 36 spt, 512 bytes/sector, MFM</summary>
DOS_35_ED = 200,
/// <summary>3.5", DS, HD, 80 tracks, 21 spt, 512 bytes/sector, MFM</summary>
DMF = 201,
/// <summary>3.5", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM</summary>
DMF_82 = 202,
/// <summary>
/// 5.25", DS, HD, 80 tracks, ? spt, ??? + ??? + ??? bytes/sector, MFM track 0 = ??15 sectors, 512 bytes/sector,
/// falsified to DOS as 19 spt, 512 bps
/// </summary>
XDF_525 = 203,
/// <summary>
/// 3.5", DS, HD, 80 tracks, 4 spt, 8192 + 2048 + 1024 + 512 bytes/sector, MFM track 0 = 19 sectors, 512
/// bytes/sector, falsified to DOS as 23 spt, 512 bps
/// </summary>
XDF_35 = 204,
#endregion IBM/Microsoft PC standard floppy formats, types 190 to 209
#region IBM standard floppy formats, types 210 to 219
/// <summary>8", SS, SD, 32 tracks, 8 spt, 319 bytes/sector, FM</summary>
IBM23FD = 210,
/// <summary>8", SS, SD, 73 tracks, 26 spt, 128 bytes/sector, FM</summary>
IBM33FD_128 = 211,
/// <summary>8", SS, SD, 74 tracks, 15 spt, 256 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector</summary>
IBM33FD_256 = 212,
/// <summary>8", SS, SD, 74 tracks, 8 spt, 512 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector</summary>
IBM33FD_512 = 213,
/// <summary>8", DS, SD, 74 tracks, 26 spt, 128 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector</summary>
IBM43FD_128 = 214,
/// <summary>8", DS, SD, 74 tracks, 26 spt, 256 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector</summary>
IBM43FD_256 = 215,
/// <summary>
/// 8", DS, DD, 74 tracks, 26 spt, 256 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
/// </summary>
IBM53FD_256 = 216,
/// <summary>
/// 8", DS, DD, 74 tracks, 15 spt, 512 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
/// </summary>
IBM53FD_512 = 217,
/// <summary>
/// 8", DS, DD, 74 tracks, 8 spt, 1024 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
/// </summary>
IBM53FD_1024 = 218,
#endregion IBM standard floppy formats, types 210 to 219
#region DEC standard floppy formats, types 220 to 229
/// <summary>8", SS, DD, 77 tracks, 26 spt, 128 bytes/sector, FM</summary>
RX01 = 220,
/// <summary>8", SS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM/MFM</summary>
RX02 = 221,
/// <summary>8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM/MFM</summary>
RX03 = 222,
/// <summary>5.25", SS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM</summary>
RX50 = 223,
#endregion DEC standard floppy formats, types 220 to 229
#region Acorn standard floppy formats, types 230 to 239
/// <summary>5,25", SS, SD, 40 tracks, 10 spt, 256 bytes/sector, FM</summary>
ACORN_525_SS_SD_40 = 230,
/// <summary>5,25", SS, SD, 80 tracks, 10 spt, 256 bytes/sector, FM</summary>
ACORN_525_SS_SD_80 = 231,
/// <summary>5,25", SS, DD, 40 tracks, 16 spt, 256 bytes/sector, MFM</summary>
ACORN_525_SS_DD_40 = 232,
/// <summary>5,25", SS, DD, 80 tracks, 16 spt, 256 bytes/sector, MFM</summary>
ACORN_525_SS_DD_80 = 233,
/// <summary>5,25", DS, DD, 80 tracks, 16 spt, 256 bytes/sector, MFM</summary>
ACORN_525_DS_DD = 234,
/// <summary>3,5", DS, DD, 80 tracks, 5 spt, 1024 bytes/sector, MFM</summary>
ACORN_35_DS_DD = 235,
/// <summary>3,5", DS, HD, 80 tracks, 10 spt, 1024 bytes/sector, MFM</summary>
ACORN_35_DS_HD = 236,
#endregion Acorn standard floppy formats, types 230 to 239
#region Atari standard floppy formats, types 240 to 249
/// <summary>5,25", SS, SD, 40 tracks, 18 spt, 128 bytes/sector, FM</summary>
ATARI_525_SD = 240,
/// <summary>5,25", SS, ED, 40 tracks, 26 spt, 128 bytes/sector, MFM</summary>
ATARI_525_ED = 241,
/// <summary>5,25", SS, DD, 40 tracks, 18 spt, 256 bytes/sector, MFM</summary>
ATARI_525_DD = 242,
/// <summary>3,5", SS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM</summary>
ATARI_35_SS_DD = 243,
/// <summary>3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM</summary>
ATARI_35_DS_DD = 244,
/// <summary>3,5", SS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM</summary>
ATARI_35_SS_DD_11 = 245,
/// <summary>3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM</summary>
ATARI_35_DS_DD_11 = 246,
#endregion Atari standard floppy formats, types 240 to 249
#region Commodore standard floppy formats, types 250 to 259
/// <summary>3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM (1581)</summary>
CBM_35_DD = 250,
/// <summary>3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM (Amiga)</summary>
CBM_AMIGA_35_DD = 251,
/// <summary>3,5", DS, HD, 80 tracks, 22 spt, 512 bytes/sector, MFM (Amiga)</summary>
CBM_AMIGA_35_HD = 252,
/// <summary>5,25", SS, DD, 35 tracks, GCR</summary>
CBM_1540 = 253,
/// <summary>5,25", SS, DD, 40 tracks, GCR</summary>
CBM_1540_Ext = 254,
/// <summary>5,25", DS, DD, 35 tracks, GCR</summary>
CBM_1571 = 255,
#endregion Commodore standard floppy formats, types 250 to 259
#region NEC/SHARP standard floppy formats, types 260 to 269
/// <summary>8", DS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM</summary>
NEC_8_SD = 260,
/// <summary>8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, MFM</summary>
NEC_8_DD = 261,
/// <summary>5.25", SS, SD, 80 tracks, 16 spt, 256 bytes/sector, FM</summary>
NEC_525_SS = 262,
/// <summary>5.25", DS, SD, 80 tracks, 16 spt, 256 bytes/sector, MFM</summary>
NEC_525_DS = 263,
/// <summary>5,25", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM</summary>
NEC_525_HD = 264,
/// <summary>3,5", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM, aka mode 3</summary>
NEC_35_HD_8 = 265,
/// <summary>3,5", DS, HD, 80 tracks, 15 spt, 512 bytes/sector, MFM</summary>
NEC_35_HD_15 = 266,
/// <summary>3,5", DS, TD, 240 tracks, 38 spt, 512 bytes/sector, MFM</summary>
NEC_35_TD = 267,
/// <summary>5,25", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM</summary>
SHARP_525 = NEC_525_HD,
/// <summary>3,5", DS, HD, 80 tracks, 9 spt, 1024 bytes/sector, MFM</summary>
SHARP_525_9 = 268,
/// <summary>3,5", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM</summary>
SHARP_35 = NEC_35_HD_8,
/// <summary>3,5", DS, HD, 80 tracks, 9 spt, 1024 bytes/sector, MFM</summary>
SHARP_35_9 = 269,
#endregion NEC/SHARP standard floppy formats, types 260 to 269
#region ECMA floppy standards, types 270 to 289
/// <summary>
/// 5,25", DS, DD, 80 tracks, 8 spt, 1024 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track
/// 0 side 1 = 26 sectors, 256 bytes/sector
/// </summary>
ECMA_99_8 = 270,
/// <summary>
/// 5,25", DS, DD, 77 tracks, 15 spt, 512 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track
/// 0 side 1 = 26 sectors, 256 bytes/sector
/// </summary>
ECMA_99_15 = 271,
/// <summary>
/// 5,25", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track
/// 0 side 1 = 26 sectors, 256 bytes/sector
/// </summary>
ECMA_99_26 = 272,
/// <summary>3,5", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, MFM</summary>
ECMA_100 = DOS_35_DS_DD_9,
/// <summary>3,5", DS, HD, 80 tracks, 18 spt, 512 bytes/sector, MFM</summary>
ECMA_125 = DOS_35_HD,
/// <summary>3,5", DS, ED, 80 tracks, 36 spt, 512 bytes/sector, MFM</summary>
ECMA_147 = DOS_35_ED,
/// <summary>8", SS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM</summary>
ECMA_54 = 273,
/// <summary>8", DS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM</summary>
ECMA_59 = 274,
/// <summary>5,25", SS, DD, 35 tracks, 9 spt, 256 bytes/sector, FM, track 0 side 0 = 16 sectors, 128 bytes/sector</summary>
ECMA_66 = 275,
/// <summary>
/// 8", DS, DD, 77 tracks, 8 spt, 1024 bytes/sector, FM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
/// </summary>
ECMA_69_8 = 276,
/// <summary>
/// 8", DS, DD, 77 tracks, 15 spt, 512 bytes/sector, FM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
/// </summary>
ECMA_69_15 = 277,
/// <summary>
/// 8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
/// </summary>
ECMA_69_26 = 278,
/// <summary>
/// 5,25", DS, DD, 40 tracks, 16 spt, 256 bytes/sector, FM, track 0 side 0 = 16 sectors, 128 bytes/sector, track 0
/// side 1 = 16 sectors, 256 bytes/sector
/// </summary>
ECMA_70 = 279,
/// <summary>
/// 5,25", DS, DD, 80 tracks, 16 spt, 256 bytes/sector, FM, track 0 side 0 = 16 sectors, 128 bytes/sector, track 0
/// side 1 = 16 sectors, 256 bytes/sector
/// </summary>
ECMA_78 = 280,
/// <summary>5,25", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, FM</summary>
ECMA_78_2 = 281,
#endregion ECMA floppy standards, types 270 to 289
#region Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308
/// <summary>5,25", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM</summary>
FDFORMAT_525_DD = 290,
/// <summary>5,25", DS, HD, 82 tracks, 17 spt, 512 bytes/sector, MFM</summary>
FDFORMAT_525_HD = 291,
/// <summary>3,5", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM</summary>
FDFORMAT_35_DD = 292,
/// <summary>3,5", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM</summary>
FDFORMAT_35_HD = 293,
#endregion Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308
#region Apricot ACT standard floppy formats, type 309
/// <summary>3.5", DS, DD, 70 tracks, 9 spt, 512 bytes/sector, MFM</summary>
Apricot_35 = 309,
#endregion Apricot ACT standard floppy formats, type 309
#region OnStream ADR, types 310 to 319
ADR2120 = 310, ADR260 = 311, ADR30 = 312,
ADR50 = 313,
#endregion OnStream ADR, types 310 to 319
#region Advanced Intelligent Tape, types 320 to 339
AIT1 = 320, AIT1Turbo = 321, AIT2 = 322,
AIT2Turbo = 323, AIT3 = 324, AIT3Ex = 325,
AIT3Turbo = 326, AIT4 = 327, AIT5 = 328,
AITETurbo = 329, SAIT1 = 330, SAIT2 = 331,
#endregion Advanced Intelligent Tape, types 320 to 339
#region Iomega, types 340 to 359
/// <summary>Obsolete type for 8"x11" Bernoulli Box disk</summary>
[Obsolete]
Bernoulli = 340,
/// <summary>Obsolete type for 5⅓" Bernoulli Box II disks</summary>
[Obsolete]
Bernoulli2 = 341, Ditto = 342, DittoMax = 343, Jaz = 344,
Jaz2 = 345, PocketZip = 346, REV120 = 347,
REV35 = 348, REV70 = 349, ZIP100 = 350,
ZIP250 = 351, ZIP750 = 352,
/// <summary>5⅓" Bernoulli Box II disk with 35Mb capacity</summary>
Bernoulli35 = 353,
/// <summary>5⅓" Bernoulli Box II disk with 44Mb capacity</summary>
Bernoulli44 = 354,
/// <summary>5⅓" Bernoulli Box II disk with 65Mb capacity</summary>
Bernoulli65 = 355,
/// <summary>5⅓" Bernoulli Box II disk with 90Mb capacity</summary>
Bernoulli90 = 356,
/// <summary>5⅓" Bernoulli Box II disk with 105Mb capacity</summary>
Bernoulli105 = 357,
/// <summary>5⅓" Bernoulli Box II disk with 150Mb capacity</summary>
Bernoulli150 = 358,
/// <summary>5⅓" Bernoulli Box II disk with 230Mb capacity</summary>
Bernoulli230 = 359,
#endregion Iomega, types 340 to 359
#region Audio or video media, types 360 to 369
CompactCassette = 360, Data8 = 361, MiniDV = 362,
/// <summary>D/CAS-25: Digital data on Compact Cassette form factor, special magnetic media, 9-track</summary>
Dcas25 = 363,
/// <summary>D/CAS-85: Digital data on Compact Cassette form factor, special magnetic media, 17-track</summary>
Dcas85 = 364,
/// <summary>D/CAS-103: Digital data on Compact Cassette form factor, special magnetic media, 21-track</summary>
Dcas103 = 365,
#endregion Audio media, types 360 to 369
#region CompactFlash Association, types 370 to 379
CFast = 370, CompactFlash = 371, CompactFlashType2 = 372,
#endregion CompactFlash Association, types 370 to 379
#region Digital Audio Tape / Digital Data Storage, types 380 to 389
DigitalAudioTape = 380, DAT160 = 381, DAT320 = 382,
DAT72 = 383, DDS1 = 384, DDS2 = 385,
DDS3 = 386, DDS4 = 387,
#endregion Digital Audio Tape / Digital Data Storage, types 380 to 389
#region DEC, types 390 to 399
CompactTapeI = 390, CompactTapeII = 391, DECtapeII = 392,
DLTtapeIII = 393, DLTtapeIIIxt = 394, DLTtapeIV = 395,
DLTtapeS4 = 396, SDLT1 = 397, SDLT2 = 398,
VStapeI = 399,
#endregion DEC, types 390 to 399
#region Exatape, types 400 to 419
Exatape15m = 400, Exatape22m = 401, Exatape22mAME = 402,
Exatape28m = 403, Exatape40m = 404, Exatape45m = 405,
Exatape54m = 406, Exatape75m = 407, Exatape76m = 408,
Exatape80m = 409, Exatape106m = 410, Exatape160mXL = 411,
Exatape112m = 412, Exatape125m = 413, Exatape150m = 414,
Exatape170m = 415, Exatape225m = 416,
#endregion Exatape, types 400 to 419
#region PCMCIA / ExpressCard, types 420 to 429
ExpressCard34 = 420, ExpressCard54 = 421, PCCardTypeI = 422,
PCCardTypeII = 423, PCCardTypeIII = 424, PCCardTypeIV = 425,
#endregion PCMCIA / ExpressCard, types 420 to 429
#region SyQuest, types 430 to 449
/// <summary>SyQuest 135Mb cartridge for use in EZ135 and EZFlyer drives</summary>
EZ135 = 430,
/// <summary>SyQuest EZFlyer 230Mb cartridge for use in EZFlyer drive</summary>
EZ230 = 431,
/// <summary>SyQuest 4.7Gb for use in Quest drive</summary>
Quest = 432,
/// <summary>SyQuest SparQ 1Gb cartridge</summary>
SparQ = 433,
/// <summary>SyQuest 5Mb cartridge for SQ306RD drive</summary>
SQ100 = 434,
/// <summary>SyQuest 10Mb cartridge for SQ312RD drive</summary>
SQ200 = 435,
/// <summary>SyQuest 15Mb cartridge for SQ319RD drive</summary>
SQ300 = 436,
/// <summary>SyQuest 105Mb cartridge for SQ3105 and SQ3270 drives</summary>
SQ310 = 437,
/// <summary>SyQuest 270Mb cartridge for SQ3270 drive</summary>
SQ327 = 438,
/// <summary>SyQuest 44Mb cartridge for SQ555, SQ5110 and SQ5200C/SQ200 drives</summary>
SQ400 = 439,
/// <summary>SyQuest 88Mb cartridge for SQ5110 and SQ5200C/SQ200 drives</summary>
SQ800 = 440,
/// <summary>SyQuest 1.5Gb cartridge for SyJet drive</summary>
[Obsolete]
SQ1500 = 441,
/// <summary>SyQuest 200Mb cartridge for use in SQ5200C drive</summary>
SQ2000 = 442,
/// <summary>SyQuest 1.5Gb cartridge for SyJet drive</summary>
SyJet = 443,
#endregion SyQuest, types 430 to 449
#region Nintendo, types 450 to 469
FamicomGamePak = 450, GameBoyAdvanceGamePak = 451, GameBoyGamePak = 452,
/// <summary>Nintendo GameCube Optical Disc</summary>
GOD = 453, N64DD = 454, N64GamePak = 455, NESGamePak = 456,
Nintendo3DSGameCard = 457, NintendoDiskCard = 458, NintendoDSGameCard = 459,
NintendoDSiGameCard = 460, SNESGamePak = 461, SNESGamePakUS = 462,
/// <summary>Nintendo Wii Optical Disc</summary>
WOD = 463,
/// <summary>Nintendo Wii U Optical Disc</summary>
WUOD = 464, SwitchGameCard = 465,
#endregion Nintendo, types 450 to 469
#region IBM Tapes, types 470 to 479
IBM3470 = 470, IBM3480 = 471, IBM3490 = 472,
IBM3490E = 473, IBM3592 = 474,
#endregion IBM Tapes, types 470 to 479
#region LTO Ultrium, types 480 to 509
LTO = 480, LTO2 = 481, LTO3 = 482,
LTO3WORM = 483, LTO4 = 484, LTO4WORM = 485,
LTO5 = 486, LTO5WORM = 487, LTO6 = 488,
LTO6WORM = 489, LTO7 = 490, LTO7WORM = 491,
#endregion LTO Ultrium, types 480 to 509
#region MemoryStick, types 510 to 519
MemoryStick = 510, MemoryStickDuo = 511, MemoryStickMicro = 512,
MemoryStickPro = 513, MemoryStickProDuo = 514,
#endregion MemoryStick, types 510 to 519
#region SecureDigital, types 520 to 529
microSD = 520, miniSD = 521, SecureDigital = 522,
#endregion SecureDigital, types 520 to 529
#region MultiMediaCard, types 530 to 539
MMC = 530, MMCmicro = 531, RSMMC = 532,
MMCplus = 533, MMCmobile = 534,
#endregion MultiMediaCard, types 530 to 539
#region SLR, types 540 to 569
MLR1 = 540, MLR1SL = 541, MLR3 = 542,
SLR1 = 543, SLR2 = 544, SLR3 = 545,
SLR32 = 546, SLR32SL = 547, SLR4 = 548,
SLR5 = 549, SLR5SL = 550, SLR6 = 551,
SLRtape7 = 552, SLRtape7SL = 553, SLRtape24 = 554,
SLRtape24SL = 555, SLRtape40 = 556, SLRtape50 = 557,
SLRtape60 = 558, SLRtape75 = 559, SLRtape100 = 560,
SLRtape140 = 561,
#endregion SLR, types 540 to 569
#region QIC, types 570 to 589
QIC11 = 570, QIC120 = 571, QIC1350 = 572,
QIC150 = 573, QIC24 = 574, QIC3010 = 575,
QIC3020 = 576, QIC3080 = 577, QIC3095 = 578,
QIC320 = 579, QIC40 = 580, QIC525 = 581,
QIC80 = 582,
#endregion QIC, types 570 to 589
#region StorageTek tapes, types 590 to 609
STK4480 = 590, STK4490 = 591, STK9490 = 592,
T9840A = 593, T9840B = 594, T9840C = 595,
T9840D = 596, T9940A = 597, T9940B = 598,
T10000A = 599, T10000B = 600, T10000C = 601,
T10000D = 602,
#endregion StorageTek tapes, types 590 to 609
#region Travan, types 610 to 619
Travan = 610, Travan1Ex = 611, Travan3 = 612,
Travan3Ex = 613, Travan4 = 614, Travan5 = 615,
Travan7 = 616,
#endregion Travan, types 610 to 619
#region VXA, types 620 to 629
VXA1 = 620, VXA2 = 621, VXA3 = 622,
#endregion VXA, types 620 to 629
#region Magneto-optical, types 630 to 659
/// <summary>5,25", M.O., WORM, 650Mb, 318750 sectors, 1024 bytes/sector, ECMA-153, ISO 11560</summary>
ECMA_153 = 630,
/// <summary>5,25", M.O., WORM, 600Mb, 581250 sectors, 512 bytes/sector, ECMA-153, ISO 11560</summary>
ECMA_153_512 = 631,
/// <summary>3,5", M.O., RW, 128Mb, 248826 sectors, 512 bytes/sector, ECMA-154, ISO 10090</summary>
ECMA_154 = 632,
/// <summary>5,25", M.O., RW/WORM, 1Gb, 904995 sectors, 512 bytes/sector, ECMA-183, ISO 13481</summary>
ECMA_183_512 = 633,
/// <summary>5,25", M.O., RW/WORM, 1Gb, 498526 sectors, 1024 bytes/sector, ECMA-183, ISO 13481</summary>
ECMA_183 = 634,
/// <summary>5,25", M.O., RW/WORM, 1.2Gb, 1165600 sectors, 512 bytes/sector, ECMA-184, ISO 13549</summary>
ECMA_184_512 = 635,
/// <summary>5,25", M.O., RW/WORM, 1.3Gb, 639200 sectors, 1024 bytes/sector, ECMA-184, ISO 13549</summary>
ECMA_184 = 636,
/// <summary>300mm, M.O., WORM, ??? sectors, 1024 bytes/sector, ECMA-189, ISO 13614</summary>
ECMA_189 = 637,
/// <summary>300mm, M.O., WORM, ??? sectors, 1024 bytes/sector, ECMA-190, ISO 13403</summary>
ECMA_190 = 638,
/// <summary>5,25", M.O., RW/WORM, 936921 or 948770 sectors, 1024 bytes/sector, ECMA-195, ISO 13842</summary>
ECMA_195 = 639,
/// <summary>5,25", M.O., RW/WORM, 1644581 or 1647371 sectors, 512 bytes/sector, ECMA-195, ISO 13842</summary>
ECMA_195_512 = 640,
/// <summary>3,5", M.O., 446325 sectors, 512 bytes/sector, ECMA-201, ISO 13963</summary>
ECMA_201 = 641,
/// <summary>3,5", M.O., 429975 sectors, 512 bytes/sector, embossed, ISO 13963</summary>
ECMA_201_ROM = 642,
/// <summary>3,5", M.O., 371371 sectors, 1024 bytes/sector, ECMA-223</summary>
ECMA_223 = 643,
/// <summary>3,5", M.O., 694929 sectors, 512 bytes/sector, ECMA-223</summary>
ECMA_223_512 = 644,
/// <summary>5,25", M.O., 1244621 sectors, 1024 bytes/sector, ECMA-238, ISO 15486</summary>
ECMA_238 = 645,
/// <summary>3,5", M.O., 310352, 320332 or 321100 sectors, 2048 bytes/sector, ECMA-239, ISO 15498</summary>
ECMA_239 = 646,
/// <summary>356mm, M.O., 14476734 sectors, 1024 bytes/sector, ECMA-260, ISO 15898</summary>
ECMA_260 = 647,
/// <summary>356mm, M.O., 24445990 sectors, 1024 bytes/sector, ECMA-260, ISO 15898</summary>
ECMA_260_Double = 648,
/// <summary>5,25", M.O., 1128134 sectors, 2048 bytes/sector, ECMA-280, ISO 18093</summary>
ECMA_280 = 649,
/// <summary>300mm, M.O., 7355716 sectors, 2048 bytes/sector, ECMA-317, ISO 20162</summary>
ECMA_317 = 650,
/// <summary>5,25", M.O., 1095840 sectors, 4096 bytes/sector, ECMA-322, ISO 22092</summary>
ECMA_322 = 651,
/// <summary>5,25", M.O., 2043664 sectors, 2048 bytes/sector, ECMA-322, ISO 22092</summary>
ECMA_322_2k = 652,
/// <summary>3,5", M.O., 605846 sectors, 2048 bytes/sector, Cherry Book, GigaMo, ECMA-351, ISO 17346</summary>
GigaMo = 653,
/// <summary>3,5", M.O., 1063146 sectors, 2048 bytes/sector, Cherry Book 2, GigaMo 2, ECMA-353, ISO 22533</summary>
GigaMo2 = 654,
#endregion Magneto-optical, types 630 to 659
#region Other floppy standards, types 660 to 689
CompactFloppy = 660, DemiDiskette = 661,
/// <summary>3.5", 652 tracks, 2 sides, 512 bytes/sector, Floptical, ECMA-207, ISO 14169</summary>
Floptical = 662, HiFD = 663, QuickDisk = 664, UHD144 = 665,
VideoFloppy = 666, Wafer = 667, ZXMicrodrive = 668,
#endregion Other floppy standards, types 660 to 669
#region Miscellaneous, types 670 to 689
BeeCard = 670, Borsu = 671, DataStore = 672,
DIR = 673, DST = 674, DTF = 675,
DTF2 = 676, Flextra3020 = 677, Flextra3225 = 678,
HiTC1 = 679, HiTC2 = 680, LT1 = 681,
MiniCard = 872, Orb = 683, Orb5 = 684,
SmartMedia = 685, xD = 686, XQD = 687,
DataPlay = 688,
#endregion Miscellaneous, types 670 to 689
#region Apple specific media, types 690 to 699
AppleProfile = 690, AppleWidget = 691, AppleHD20 = 692,
PriamDataTower = 693, Pippin = 694,
#endregion Apple specific media, types 690 to 699
#region DEC hard disks, types 700 to 729
/// <summary>
/// 2382 cylinders, 4 tracks/cylinder, 42 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 204890112 bytes
/// </summary>
RA60 = 700,
/// <summary>
/// 546 cylinders, 14 tracks/cylinder, 31 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 121325568 bytes
/// </summary>
RA80 = 701,
/// <summary>
/// 1248 cylinders, 14 tracks/cylinder, 51 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 456228864 bytes
/// </summary>
RA81 = 702,
/// <summary>
/// 302 cylinders, 4 tracks/cylinder, 42 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 25976832
/// bytes
/// </summary>
RC25 = 703,
/// <summary>
/// 615 cylinders, 4 tracks/cylinder, 17 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 21411840
/// bytes
/// </summary>
RD31 = 704,
/// <summary>
/// 820 cylinders, 6 tracks/cylinder, 17 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 42823680
/// bytes
/// </summary>
RD32 = 705,
/// <summary>
/// 306 cylinders, 4 tracks/cylinder, 17 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 10653696
/// bytes
/// </summary>
RD51 = 706,
/// <summary>
/// 480 cylinders, 7 tracks/cylinder, 18 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 30965760
/// bytes
/// </summary>
RD52 = 707,
/// <summary>
/// 1024 cylinders, 7 tracks/cylinder, 18 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 75497472 bytes
/// </summary>
RD53 = 708,
/// <summary>
/// 1225 cylinders, 8 tracks/cylinder, 18 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 159936000 bytes
/// </summary>
RD54 = 709,
/// <summary>
/// 411 cylinders, 3 tracks/cylinder, 22 sectors/track, 256 words/sector, 16 bits/word, 512 bytes/sector, 13888512
/// bytes
/// </summary>
RK06 = 710,
/// <summary>
/// 411 cylinders, 3 tracks/cylinder, 20 sectors/track, 256 words/sector, 18 bits/word, 576 bytes/sector, 14204160
/// bytes
/// </summary>
RK06_18 = 711,
/// <summary>
/// 815 cylinders, 3 tracks/cylinder, 22 sectors/track, 256 words/sector, 16 bits/word, 512 bytes/sector, 27540480
/// bytes
/// </summary>
RK07 = 712,
/// <summary>
/// 815 cylinders, 3 tracks/cylinder, 20 sectors/track, 256 words/sector, 18 bits/word, 576 bytes/sector, 28166400
/// bytes
/// </summary>
RK07_18 = 713,
/// <summary>
/// 823 cylinders, 5 tracks/cylinder, 32 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 67420160
/// bytes
/// </summary>
RM02 = 714,
/// <summary>
/// 823 cylinders, 5 tracks/cylinder, 32 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 67420160
/// bytes
/// </summary>
RM03 = 715,
/// <summary>
/// 823 cylinders, 19 tracks/cylinder, 32 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 256196608 bytes
/// </summary>
RM05 = 716,
/// <summary>
/// 203 cylinders, 10 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 22865920 bytes
/// </summary>
RP02 = 717,
/// <summary>
/// 203 cylinders, 10 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 23385600 bytes
/// </summary>
RP02_18 = 718,
/// <summary>
/// 400 cylinders, 10 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 45056000 bytes
/// </summary>
RP03 = 719,
/// <summary>
/// 400 cylinders, 10 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 46080000 bytes
/// </summary>
RP03_18 = 720,
/// <summary>
/// 411 cylinders, 19 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 87960576 bytes
/// </summary>
RP04 = 721,
/// <summary>
/// 411 cylinders, 19 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 89959680 bytes
/// </summary>
RP04_18 = 722,
/// <summary>
/// 411 cylinders, 19 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 87960576 bytes
/// </summary>
RP05 = 723,
/// <summary>
/// 411 cylinders, 19 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 89959680 bytes
/// </summary>
RP05_18 = 724,
/// <summary>
/// 815 cylinders, 19 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 174423040 bytes
/// </summary>
RP06 = 725,
/// <summary>
/// 815 cylinders, 19 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 178387200 bytes
/// </summary>
RP06_18 = 726,
#endregion DEC hard disks, types 700 to 729
#region Imation, types 730 to 739
LS120 = 730, LS240 = 731, FD32MB = 732,
RDX = 733,
/// <summary>Imation 320Gb RDX</summary>
RDX320 = 734,
#endregion Imation, types 730 to 739
#region VideoNow, types 740 to 749
VideoNow = 740, VideoNowColor = 741, VideoNowXp = 742,
#endregion
#region Iomega, types 750 to 759
/// <summary>8"x11" Bernoulli Box disk with 10Mb capacity</summary>
Bernoulli10 = 750,
/// <summary>8"x11" Bernoulli Box disk with 20Mb capacity</summary>
Bernoulli20 = 751,
/// <summary>5⅓" Bernoulli Box II disk with 20Mb capacity</summary>
BernoulliBox2_20 = 752,
#endregion Iomega, types 750 to 759
#region Kodak, types 760 to 769
KodakVerbatim3 = 760, KodakVerbatim6 = 761, KodakVerbatim12 = 762,
#endregion Kodak, types 760 to 769
#region Sony and Panasonic Blu-ray derived, types 770 to 799
/// <summary>Professional Disc for video, single layer, rewritable, 23Gb</summary>
ProfessionalDisc = 770,
/// <summary>Professional Disc for video, dual layer, rewritable, 50Gb</summary>
ProfessionalDiscDual = 771,
/// <summary>Professional Disc for video, triple layer, rewritable, 100Gb</summary>
ProfessionalDiscTriple = 772,
/// <summary>Professional Disc for video, quad layer, write once, 128Gb</summary>
ProfessionalDiscQuad = 773,
/// <summary>Professional Disc for DATA, single layer, rewritable, 23Gb</summary>
PDD = 774,
/// <summary>Professional Disc for DATA, single layer, write once, 23Gb</summary>
PDD_WORM = 775,
/// <summary>Archival Disc, 1st gen., 300Gb</summary>
ArchivalDisc = 776,
/// <summary>Archival Disc, 2nd gen., 500Gb</summary>
ArchivalDisc2 = 777,
/// <summary>Archival Disc, 3rd gen., 1Tb</summary>
ArchivalDisc3 = 778,
/// <summary>Optical Disc archive, 1st gen., write once, 300Gb</summary>
ODC300R = 779,
/// <summary>Optical Disc archive, 1st gen., rewritable, 300Gb</summary>
ODC300RE = 780,
/// <summary>Optical Disc archive, 2nd gen., write once, 600Gb</summary>
ODC600R = 781,
/// <summary>Optical Disc archive, 2nd gen., rewritable, 600Gb</summary>
ODC600RE = 782,
/// <summary>Optical Disc archive, 3rd gen., rewritable, 1200Gb</summary>
ODC1200RE = 783,
/// <summary>Optical Disc archive, 3rd gen., write once, 1500Gb</summary>
ODC1500R = 784,
/// <summary>Optical Disc archive, 4th gen., write once, 3300Gb</summary>
ODC3300R = 785,
/// <summary>Optical Disc archive, 5th gen., write once, 5500Gb</summary>
ODC5500R = 786
#endregion Sony and Panasonic Blu-ray derived, types 770 to 799
}
/// <summary>
/// Compression being used in CHD
/// </summary>
public enum CHDCompression : uint
{
CHDCOMPRESSION_NONE = 0,
CHDCOMPRESSION_ZLIB = 1,
CHDCOMPRESSION_ZLIB_PLUS = 2,
CHDCOMPRESSION_AV = 3,
}
/// <summary>
/// Availible CHD codec formats
/// </summary>
public enum CHD_CODEC : uint
{
NONE = 0,
#region General Codecs
ZLIB = 0x7a6c6962, // zlib
LZMA = 0x6c7a6d61, // lzma
HUFFMAN = 0x68756666, // huff
FLAC = 0x666c6163, // flac
#endregion
#region General Codecs with CD Frontend
CD_ZLIB = 0x63647a6c, // cdzl
CD_LZMA = 0x63646c7a, // cdlz
CD_FLAC = 0x6364666c, // cdfl
#endregion
#region A/V Codecs
AVHUFF = 0x61766875, // avhu
#endregion
#region Pseudo-Codecs Returned by hunk_info
SELF = 1, // copy of another hunk
PARENT = 2, // copy of a parent's hunk
MINI = 3, // legacy "mini" 8-byte repeat
#endregion
}
/// <summary>
/// Compression method based on flag
/// </summary>
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,
Type11 = 11, // Reserved and unused (SHOULD NOT BE USED)
BZIP2 = 12,
Type13 = 13, // Reserved and unused (SHOULD NOT BE USED)
LZMA = 14,
Type15 = 15, // Reserved and unused (SHOULD NOT BE USED)
Type16 = 16, // Reserved and unused (SHOULD NOT BE USED)
Type17 = 17, // Reserved and unused (SHOULD NOT BE USED)
IBMTERSE = 18,
IBMLZ77 = 19,
WavPak = 97,
PPMdVersionIRev1 = 98,
}
/// <summary>
/// Type of file that is being looked at
/// </summary>
public enum FileType
{
// Singleton
None = 0,
AaruFormat,
CHD,
// Can contain children
Folder,
SevenZipArchive,
GZipArchive,
LRZipArchive,
LZ4Archive,
RarArchive,
TapeArchive,
XZArchive,
ZipArchive,
ZPAQArchive,
ZstdArchive,
}
/// <summary>
/// Output format for rebuilt files
/// </summary>
public enum OutputFormat
{
// Currently implemented
Folder,
ParentFolder,
TorrentZip,
TorrentGzip,
TorrentGzipRomba,
TorrentXZ,
TorrentXZRomba,
TapeArchive,
// Currently unimplemented fully
Torrent7Zip,
TorrentRar,
TorrentLRZip,
TorrentLZ4,
TorrentZstd,
TorrentZPAQ,
}
#endregion
#region Reports
/// <summary>
/// Determine which format to output Stats to
/// </summary>
[Flags]
public enum StatReportFormat
{
/// <summary>
/// Only output to the console
/// </summary>
None = 0x00,
/// <summary>
/// Console-formatted
/// </summary>
Textfile = 1 << 0,
/// <summary>
/// ClrMamePro HTML
/// </summary>
HTML = 1 << 1,
/// <summary>
/// Comma-Separated Values (Standardized)
/// </summary>
CSV = 1 << 2,
/// <summary>
/// Semicolon-Separated Values (Standardized)
/// </summary>
SSV = 1 << 3,
/// <summary>
/// Tab-Separated Values (Standardized)
/// </summary>
TSV = 1 << 4,
All = Int32.MaxValue,
}
#endregion
}