using System;
// TODO: Figure out the best way to put these back in their libraries
namespace SabreTools.Core
{
#region DatFiles
// TODO: Replace with SabreTools.Hashing.HashType
///
/// Available hashing types
///
[Flags]
public enum Hash
{
CRC = 1 << 0,
MD5 = 1 << 1,
SHA1 = 1 << 2,
SHA256 = 1 << 3,
SHA384 = 1 << 4,
SHA512 = 1 << 5,
SpamSum = 1 << 6,
// Special combinations
Standard = CRC | MD5 | SHA1,
DeepHashes = SHA256 | SHA384 | SHA512 | SpamSum,
SecureHashes = MD5 | SHA1 | SHA256 | SHA384 | SHA512 | SpamSum,
All = CRC | MD5 | SHA1 | SHA256 | SHA384 | SHA512 | SpamSum,
}
///
/// 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,
}
#endregion
#region DatItems
///
/// Determine the chip type
///
[Flags]
public enum ChipType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("cpu")]
CPU = 1 << 0,
[Mapping("audio")]
Audio = 1 << 1,
}
///
/// Determine the control type
///
[Flags]
public enum ControlType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("joy")]
Joy = 1 << 0,
[Mapping("stick")]
Stick = 1 << 1,
[Mapping("paddle")]
Paddle = 1 << 2,
[Mapping("pedal")]
Pedal = 1 << 3,
[Mapping("lightgun")]
Lightgun = 1 << 4,
[Mapping("positional")]
Positional = 1 << 5,
[Mapping("dial")]
Dial = 1 << 6,
[Mapping("trackball")]
Trackball = 1 << 7,
[Mapping("mouse")]
Mouse = 1 << 8,
[Mapping("only_buttons")]
OnlyButtons = 1 << 9,
[Mapping("keypad")]
Keypad = 1 << 10,
[Mapping("keyboard")]
Keyboard = 1 << 11,
[Mapping("mahjong")]
Mahjong = 1 << 12,
[Mapping("hanafuda")]
Hanafuda = 1 << 13,
[Mapping("gambling")]
Gambling = 1 << 14,
}
///
/// Determine the device type
///
[Flags]
public enum DeviceType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("unknown")]
Unknown = 1 << 0,
[Mapping("cartridge")]
Cartridge = 1 << 1,
[Mapping("floppydisk")]
FloppyDisk = 1 << 2,
[Mapping("harddisk")]
HardDisk = 1 << 3,
[Mapping("cylinder")]
Cylinder = 1 << 4,
[Mapping("cassette")]
Cassette = 1 << 5,
[Mapping("punchcard")]
PunchCard = 1 << 6,
[Mapping("punchtape")]
PunchTape = 1 << 7,
[Mapping("printout")]
Printout = 1 << 8,
[Mapping("serial")]
Serial = 1 << 9,
[Mapping("parallel")]
Parallel = 1 << 10,
[Mapping("snapshot")]
Snapshot = 1 << 11,
[Mapping("quickload")]
QuickLoad = 1 << 12,
[Mapping("memcard")]
MemCard = 1 << 13,
[Mapping("cdrom")]
CDROM = 1 << 14,
[Mapping("magtape")]
MagTape = 1 << 15,
[Mapping("romimage")]
ROMImage = 1 << 16,
[Mapping("midiin")]
MIDIIn = 1 << 17,
[Mapping("midiout")]
MIDIOut = 1 << 18,
[Mapping("picture")]
Picture = 1 << 19,
[Mapping("vidfile")]
VidFile = 1 << 20,
}
///
/// Determine the display type
///
[Flags]
public enum DisplayType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("raster")]
Raster = 1 << 0,
[Mapping("vector")]
Vector = 1 << 1,
[Mapping("lcd")]
LCD = 1 << 2,
[Mapping("svg")]
SVG = 1 << 3,
[Mapping("unknown")]
Unknown = 1 << 4,
}
///
/// Determine the endianness
///
[Flags]
public enum Endianness
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("big")]
Big = 1 << 0,
[Mapping("little")]
Little = 1 << 1,
}
///
/// Determine the emulation status
///
[Flags]
public enum FeatureStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("unemulated")]
Unemulated = 1 << 0,
[Mapping("imperfect")]
Imperfect = 1 << 1,
}
///
/// Determine the feature type
///
[Flags]
public enum FeatureType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("protection")]
Protection = 1 << 0,
[Mapping("palette")]
Palette = 1 << 1,
[Mapping("graphics")]
Graphics = 1 << 2,
[Mapping("sound")]
Sound = 1 << 3,
[Mapping("controls")]
Controls = 1 << 4,
[Mapping("keyboard")]
Keyboard = 1 << 5,
[Mapping("mouse")]
Mouse = 1 << 6,
[Mapping("microphone")]
Microphone = 1 << 7,
[Mapping("camera")]
Camera = 1 << 8,
[Mapping("disk")]
Disk = 1 << 9,
[Mapping("printer")]
Printer = 1 << 10,
[Mapping("lan")]
Lan = 1 << 11,
[Mapping("wan")]
Wan = 1 << 12,
[Mapping("timing")]
Timing = 1 << 13,
}
///
/// Determine the status of the item
///
[Flags]
public enum ItemStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("none", "no")]
None = 1 << 0,
[Mapping("good")]
Good = 1 << 1,
[Mapping("baddump")]
BadDump = 1 << 2,
[Mapping("nodump", "yes")]
Nodump = 1 << 3,
[Mapping("verified")]
Verified = 1 << 4,
}
///
/// Determine what type of file an item is
///
public enum ItemType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
// "Actionable" item types
[Mapping("rom")]
Rom,
[Mapping("disk")]
Disk,
[Mapping("file")]
File,
[Mapping("media")]
Media,
// "Auxiliary" item types
[Mapping("adjuster")]
Adjuster,
[Mapping("analog")]
Analog,
[Mapping("archive")]
Archive,
[Mapping("biosset")]
BiosSet,
[Mapping("chip")]
Chip,
[Mapping("condition")]
Condition,
[Mapping("configuration")]
Configuration,
[Mapping("conflocation")]
ConfLocation,
[Mapping("confsetting")]
ConfSetting,
[Mapping("control")]
Control,
[Mapping("dataarea")]
DataArea,
[Mapping("device")]
Device,
[Mapping("device_ref", "deviceref")]
DeviceReference,
[Mapping("diplocation")]
DipLocation,
[Mapping("dipswitch")]
DipSwitch,
[Mapping("dipvalue")]
DipValue,
[Mapping("diskarea")]
DiskArea,
[Mapping("display")]
Display,
[Mapping("driver")]
Driver,
[Mapping("extension")]
Extension,
[Mapping("feature")]
Feature,
[Mapping("info")]
Info,
[Mapping("input")]
Input,
[Mapping("instance")]
Instance,
[Mapping("original")]
Original,
[Mapping("part")]
Part,
[Mapping("part_feature", "partfeature")]
PartFeature,
[Mapping("port")]
Port,
[Mapping("ramoption", "ram_option")]
RamOption,
[Mapping("release")]
Release,
[Mapping("release_details", "releasedetails")]
ReleaseDetails,
[Mapping("sample")]
Sample,
[Mapping("serials")]
Serials,
[Mapping("sharedfeat", "shared_feat", "sharedfeature", "shared_feature")]
SharedFeature,
[Mapping("slot")]
Slot,
[Mapping("slotoption", "slot_option")]
SlotOption,
[Mapping("softwarelist", "software_list")]
SoftwareList,
[Mapping("sound")]
Sound,
[Mapping("source_details", "sourcedetails")]
SourceDetails,
[Mapping("blank")]
Blank = 99, // This is not a real type, only used internally
}
///
/// Determine the loadflag value
///
[Flags]
public enum LoadFlag
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("load16_byte")]
Load16Byte = 1 << 0,
[Mapping("load16_word")]
Load16Word = 1 << 1,
[Mapping("load16_word_swap")]
Load16WordSwap = 1 << 2,
[Mapping("load32_byte")]
Load32Byte = 1 << 3,
[Mapping("load32_word")]
Load32Word = 1 << 4,
[Mapping("load32_word_swap")]
Load32WordSwap = 1 << 5,
[Mapping("load32_dword")]
Load32DWord = 1 << 6,
[Mapping("load64_word")]
Load64Word = 1 << 7,
[Mapping("load64_word_swap")]
Load64WordSwap = 1 << 8,
[Mapping("reload")]
Reload = 1 << 9,
[Mapping("fill")]
Fill = 1 << 10,
[Mapping("continue")]
Continue = 1 << 11,
[Mapping("reload_plain")]
ReloadPlain = 1 << 12,
[Mapping("ignore")]
Ignore = 1 << 13,
}
///
/// Determine what type of machine it is
///
[Flags]
public enum MachineType
{
[Mapping("none")]
None = 0,
[Mapping("bios")]
Bios = 1 << 0,
[Mapping("device", "dev")]
Device = 1 << 1,
[Mapping("mechanical", "mech")]
Mechanical = 1 << 2,
}
///
/// Determine which OpenMSX subtype an item is
///
[Flags]
public enum OpenMSXSubType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("rom")]
Rom = 1 << 0,
[Mapping("megarom")]
MegaRom = 1 << 1,
[Mapping("sccpluscart")]
SCCPlusCart = 1 << 2,
}
///
/// Determine relation of value to condition
///
[Flags]
public enum Relation
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("eq")]
Equal = 1 << 0,
[Mapping("ne")]
NotEqual = 1 << 1,
[Mapping("gt")]
GreaterThan = 1 << 2,
[Mapping("le")]
LessThanOrEqual = 1 << 3,
[Mapping("lt")]
LessThan = 1 << 4,
[Mapping("ge")]
GreaterThanOrEqual = 1 << 5,
}
///
/// Determine machine runnable status
///
[Flags]
public enum Runnable
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("no")]
No = 1 << 0,
[Mapping("partial")]
Partial = 1 << 1,
[Mapping("yes")]
Yes = 1 << 2,
}
///
/// Determine software list status
///
[Flags]
public enum SoftwareListStatus
{
[Mapping("none")]
None = 0,
[Mapping("original")]
Original = 1 << 0,
[Mapping("compatible")]
Compatible = 1 << 1,
}
///
/// Determine machine support status
///
[Flags]
public enum Supported
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("no", "unsupported")]
No = 1 << 0,
[Mapping("partial")]
Partial = 1 << 1,
[Mapping("yes", "supported")]
Yes = 1 << 2,
}
///
/// Determine driver support statuses
///
[Flags]
public enum SupportStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
[Mapping("good")]
Good = 1 << 0,
[Mapping("imperfect")]
Imperfect = 1 << 1,
[Mapping("preliminary")]
Preliminary = 1 << 2,
}
#endregion
#region Fields
///
/// List of valid field types within a DatHeader
///
public enum DatHeaderField
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
/// Used in ClrMamePro, DOSCenter, Logiqx, and RomCenter
[Mapping("author")]
Author,
/// Used in Logiqx
[Mapping("biosmode", "bios_mode")]
BiosMode,
/// Used in Logiqx
[Mapping("build")]
Build,
/// Used with OfflineList
[Mapping("canopen", "can_open")]
CanOpen,
/// Used in ClrMamePro and Logiqx
[Mapping("category")]
Category,
/// Used in ClrMamePro, DOSCenter, Logiqx, and RomCenter
[Mapping("comment")]
Comment,
/// Used in ClrMamePro, DOSCenter, Logiqx, OpenMSX, and RomCenter
[Mapping("date", "timestamp", "time_stamp")]
Date,
/// Used in Logiqx and ListXML
[Mapping("debug")]
Debug,
/// Used in ClrMamePro, DOSCenter, ListXML, Logiqx, OpenMSX, RomCenter, Separated Value, and Software List
[Mapping("desc", "description")]
Description,
/// Used in ClrMamePro, Logiqx, and RomCenter
[Mapping("email", "e_mail")]
Email,
/// Used in AttractMode, OfflineList, and Separated Value
[Mapping("file", "filename", "file_name")]
FileName,
/// Used in ClrMamePro, Logiqx, and RomCenter
[Mapping("forcemerging", "force_merging")]
ForceMerging,
/// Used in Logiqx
[Mapping("forcenodump", "force_nodump")]
ForceNodump,
/// Used in ClrMamePro and Logiqx
[Mapping("forcepacking", "force_packing")]
ForcePacking,
/// Used in ClrMamePro and Logiqx
[Mapping("header", "headerskipper", "header_skipper", "skipper")]
HeaderSkipper,
/// Used in ClrMamePro, DOSCenter, Logiqx, and RomCenter
[Mapping("homepage", "home_page")]
Homepage,
/// Used in Logiqx
[Mapping("id", "nointroid", "no_intro_id")]
ID,
/// Used with OfflineList; Part of "Info" object
[Mapping("info_default", "infos_default")]
Info_Default,
/// Used with OfflineList; Part of "Info" object
[Mapping("info_isnamingoption", "info_is_naming_option", "infos_isnamingoption", "infos_is_naming_option")]
Info_IsNamingOption,
/// Used with OfflineList; Part of "Info" object
[Mapping("info_name", "infos_name")]
Info_Name,
/// Used with OfflineList; Part of "Info" object
[Mapping("info_visible", "infos_visible")]
Info_Visible,
/// Used in Logiqx
[Mapping("lockbiosmode", "lockbios_mode", "lock_biosmode", "lock_bios_mode")]
LockBiosMode,
/// Used in Logiqx
[Mapping("lockrommode", "lockrom_mode", "lock_rommode", "lock_rom_mode")]
LockRomMode,
/// Used in Logiqx
[Mapping("locksamplemode", "locksample_mode", "lock_samplemode", "lock_sample_mode")]
LockSampleMode,
/// Used in ListXML
[Mapping("mameconfig", "mame_config")]
MameConfig,
/// Used in ClrMamePro, DOSCenter, ListXML, Logiqx, OfflineList, OpenMSX, RomCenter, Separated Value, and Software List
[Mapping("dat", "datname", "dat_name", "internalname", "internal_name")]
Name,
/// Used with RomCenter
[Mapping("rcversion", "rc_version", "romcenterversion", "romcenter_version", "rom_center_version")]
RomCenterVersion,
/// Used in Logiqx
[Mapping("rommode", "rom_mode")]
RomMode,
/// Used with OfflineList
[Mapping("romtitle", "rom_title")]
RomTitle,
/// Used with ClrMamePro and Logiqx
[Mapping("root", "rootdir", "root_dir", "rootdirectory", "root_directory")]
RootDir,
/// Used in Logiqx
[Mapping("samplemode", "sample_mode")]
SampleMode,
/// Used with OfflineList
[Mapping("screenshotheight", "screenshotsheight", "screenshot_height", "screenshots_height")]
ScreenshotsHeight,
/// Used with OfflineList
[Mapping("screenshotwidth", "screenshotswidth", "screenshot_width", "screenshots_width")]
ScreenshotsWidth,
/// Used with Logiqx, OfflineList, and RomCenter; "plugin" is used for RomCenter
[Mapping("system", "plugin")]
System,
/// Used with ClrMamePro, Logiqx, and OfflineList
[Mapping("dattype", "type", "superdat")]
Type,
/// Used with ClrMamePro, Logiqx, OfflineList, and RomCenter
[Mapping("url")]
Url,
/// Used with ClrMamePro, DOSCenter, ListXML, Logiqx, OfflineList, and RomCenter
[Mapping("version")]
Version,
}
///
/// List of valid field types within a DatItem
///
public enum DatItemField
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
/// Used in Rom
[Mapping("altname", "alt_name", "altromname", "alt_romname", "alt_rom_name")]
AltName,
/// Used in Rom
[Mapping("alttitle", "alt_title", "altromtitle", "alt_romtitle", "alt_rom_title")]
AltTitle,
/// Used in Analog
[Mapping("analog_mask")]
Analog_Mask,
/// Used in Rom
[Mapping("ado_format")]
ArchiveDotOrgFormat,
/// Used in Rom
[Mapping("ado_source")]
ArchiveDotOrgSource,
/// Used in DataArea
[Mapping("areaendinanness", "area_endianness")]
AreaEndianness,
/// Used in DataArea and DiskArea
[Mapping("areaname", "area_name")]
AreaName,
/// Used in DataArea
[Mapping("areasize", "area_size")]
AreaSize,
/// Used in DataArea
[Mapping("areawidth", "area_width")]
AreaWidth,
/// Used in Rom
[Mapping("bios")]
Bios,
/// Used in Rom
[Mapping("boot")]
Boot,
/// Used in Archive
[Mapping("categories")]
Categories,
/// Used in Sound
[Mapping("channels")]
Channels,
/// Used in Chip
[Mapping("chiptype", "chip_type")]
ChipType,
/// Used in Chip
[Mapping("clock")]
Clock,
/// Used in Archive
[Mapping("clone")]
Clone,
/// Used in Driver
[Mapping("cocktailstatus", "cocktail_status")]
CocktailStatus,
/// Used in Input
[Mapping("coins")]
Coins,
/// Used in Archive
[Mapping("complete")]
Complete,
/// Used in Condition
[Mapping("condition_mask")]
Condition_Mask,
/// Used in Condition
[Mapping("condition_relation")]
Condition_Relation,
/// Used in Condition
[Mapping("condition_tag")]
Condition_Tag,
/// Used in Condition
[Mapping("condition_value")]
Condition_Value,
/// Used in RamOption
[Mapping("content")]
Content,
/// Used in Control
[Mapping("control_buttons")]
Control_Buttons,
/// Used in Control
[Mapping("control_keydelta", "control_key_delta")]
Control_KeyDelta,
/// Used in Control
[Mapping("control_maximum")]
Control_Maximum,
/// Used in Control
[Mapping("control_minimum")]
Control_Minimum,
/// Used in Control
[Mapping("control_player")]
Control_Player,
/// Used in Control
[Mapping("control_reqbuttons", "control_req_buttons")]
Control_RequiredButtons,
/// Used in Control
[Mapping("control_reverse")]
Control_Reverse,
/// Used in Control
[Mapping("control_sensitivity")]
Control_Sensitivity,
/// Used in Control
[Mapping("control_type")]
Control_Type,
/// Used in Control
[Mapping("control_ways")]
Control_Ways,
/// Used in Control
[Mapping("control_ways2")]
Control_Ways2,
/// Used in Control
[Mapping("control_ways3")]
Control_Ways3,
/// Used in Rom
[Mapping("crc", "crc32")]
CRC,
/// Used in Release and Rom
[Mapping("date")]
Date,
/// Used in Adjuster, BiosSet, RamOption, and Release
[Mapping("default")]
Default,
/// Used in BiosSet
[Mapping("description", "biosdescription", "bios_description")]
Description,
/// Used in Device
[Mapping("devicetype", "device_type")]
DeviceType,
/// Used in Archive
[Mapping("devstatus", "dev_status")]
DevStatus,
/// Used in Display
[Mapping("displaytype", "display_type")]
DisplayType,
/// Used in Driver
[Mapping("emulationstatus", "emulation_status")]
EmulationStatus,
/// Used in Extension
[Mapping("extension_name")]
Extension_Name,
/// Used in Feature
[Mapping("featureoverall", "feature_overall")]
FeatureOverall,
/// Used in Feature
[Mapping("featurestatus", "feature_status")]
FeatureStatus,
/// Used in Feature
[Mapping("featuretype", "feature_type")]
FeatureType,
/// Used in SoftwareList
[Mapping("filter")]
Filter,
/// Used in Device
[Mapping("fixedimage", "fixed_image")]
FixedImage,
/// Used in Display
[Mapping("flipx")]
FlipX,
/// Used in Display
[Mapping("hbend")]
HBEnd,
/// Used in Display
[Mapping("hbstart")]
HBStart,
/// Used in Display
[Mapping("height")]
Height,
/// Used in Display
[Mapping("htotal")]
HTotal,
/// Used in Driver
[Mapping("incomplete")]
Incomplete,
/// Used in Disk
[Mapping("index")]
Index,
/// Used in Instance
[Mapping("instance_briefname", "instance_brief_name")]
Instance_BriefName,
/// Used in Instance
[Mapping("instance_name")]
Instance_Name,
/// Used in Device
[Mapping("interface")]
Interface,
/// Used in Rom
[Mapping("inverted")]
Inverted,
/// Used in Release
[Mapping("language")]
Language,
/// Used in Archive
[Mapping("languages")]
Languages,
/// Used in Rom
[Mapping("loadflag", "load_flag")]
LoadFlag,
/// Used in Location
[Mapping("location_inverted")]
Location_Inverted,
/// Used in Location
[Mapping("location_name")]
Location_Name,
/// Used in Location
[Mapping("location_number")]
Location_Number,
/// Used in Device
[Mapping("mandatory")]
Mandatory,
/// Used in Condition, Configuration, and DipSwitch
[Mapping("mask")]
Mask,
/// Used in Disk, Media, and Rom
[Mapping("md5", "md5hash", "md5_hash")]
MD5,
/// Used in Disk and Rom
[Mapping("merge", "mergetag", "merge_tag")]
Merge,
/// Used in Rom
[Mapping("mia")]
MIA,
/// Used in Adjuster, Archive, BiosSet, Chip, Configuration, DataArea, DeviceReference, DipSwitch, Disk, DiskArea, Extension, Info, Instance, Location, Media, Part, PartFeature, RamOption, Release, Rom, Sample, Setting, SharedFeature, Slot, SlotOption, and SoftwareList
[Mapping("name")]
Name,
/// Used in Driver
[Mapping("nosoundhardware", "no_sound_hardware")]
NoSoundHardware,
/// Used in Archive
[Mapping("number")]
Number,
/// Used in Rom
[Mapping("offset")]
Offset,
/// Used in Rom
[Mapping("subtype", "sub_type", "openmsxsubtype", "openmsx_subtype", "openmsx_sub_type")]
OpenMSXSubType,
/// Used in Rom
[Mapping("openmsxtype", "openmsx_type")]
OpenMSXType,
/// Used in Disk and Rom
[Mapping("optional")]
Optional,
/// Used in Rom
[Mapping("original")]
Original,
/// Used in Rom
[Mapping("original_filename")]
OriginalFilename,
/// Used in PartFeature
[Mapping("part_feature_name")]
Part_Feature_Name,
/// Used in PartFeature
[Mapping("part_feature_value")]
Part_Feature_Value,
/// Used in Part
[Mapping("partinterface", "part_interface")]
Part_Interface,
/// Used in Part
[Mapping("partname", "part_name")]
Part_Name,
/// Used in Archive
[Mapping("physical")]
Physical,
/// Used in Display
[Mapping("pixclock", "pix_clock")]
PixClock,
/// Used in Input
[Mapping("players")]
Players,
/// Used in Display
[Mapping("refresh")]
Refresh,
/// Used in Archive, Disk, Release, and Rom
[Mapping("region")]
Region,
/// Used in Archive
[Mapping("regparent", "reg_parent")]
RegParent,
/// Used in Condition
[Mapping("relation")]
Relation,
/// Used in Rom
[Mapping("remark")]
Remark,
/// Used in Driver
[Mapping("requiresartwork", "requires_artwork")]
RequiresArtwork,
/// Used in Display
[Mapping("rotate")]
Rotate,
/// Used in Rom
[Mapping("rotation")]
Rotation,
/// Used in Driver
[Mapping("savestatestatus", "savestate_status", "save_state_status")]
SaveStateStatus,
/// Used in Input
[Mapping("service")]
Service,
/// Used in Setting
[Mapping("setting_default", "value_default")]
Setting_Default,
/// Used in Setting
[Mapping("setting_name", "value_name")]
Setting_Name,
/// Used in Setting
[Mapping("setting_value", "value_value")]
Setting_Value,
/// Used in Disk, Media, and Rom
[Mapping("sha1", "sha_1", "sha1hash", "sha1_hash", "sha_1hash", "sha_1_hash")]
SHA1,
/// Used in Media and Rom
[Mapping("sha256", "sha_256", "sha256hash", "sha256_hash", "sha_256hash", "sha_256_hash")]
SHA256,
/// Used in Rom
[Mapping("sha384", "sha_384", "sha384hash", "sha384_hash", "sha_384hash", "sha_384_hash")]
SHA384,
/// Used in Rom
[Mapping("sha512", "sha_512", "sha512hash", "sha512_hash", "sha_512hash", "sha_512_hash")]
SHA512,
/// Used in Rom
[Mapping("size")]
Size,
/// Used in SlotOption
[Mapping("slotoption_default")]
SlotOption_Default,
/// Used in SlotOption
[Mapping("slotoption_devicename", "slotoption_device_name")]
SlotOption_DeviceName,
/// Used in SlotOption
[Mapping("slotoption_name")]
SlotOption_Name,
/// Used in SoftwareList
[Mapping("softwareliststatus", "softwarelist_status")]
SoftwareListStatus,
/// Used in Media and Rom
[Mapping("spamsum", "spam_sum")]
SpamSum,
/// Used in Disk and Rom
[Mapping("status")]
Status,
/// Used in Rom
[Mapping("summation")]
Summation,
/// Used in Driver
[Mapping("supportstatus", "support_status")]
SupportStatus,
/// Used in Chip, Condition, Configuration, Device, DipSwitch, Display, Port, and SoftwareList
[Mapping("tag")]
Tag,
/// Used in Input
[Mapping("tilt")]
Tilt,
/// Internal value, common to all DatItems
[Mapping("type")]
Type,
/// Used in Driver
[Mapping("unofficial")]
Unofficial,
/// Used in Condition, Info, Rom, and SharedFeature
[Mapping("value")]
Value,
/// Used in Display
[Mapping("vbend")]
VBEnd,
/// Used in Display
[Mapping("vbstart")]
VBStart,
/// Used in Display
[Mapping("vtotal")]
VTotal,
/// Used in Display
[Mapping("width")]
Width,
/// Used in Disk
[Mapping("writable")]
Writable,
}
///
/// List of valid field types within a Machine
///
public enum MachineField
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
/// Used in Logiqx
[Mapping("board")]
Board,
/// Used in AttractMode
[Mapping("buttons")]
Buttons,
/// Used in AttractMode, ClrMamePro, and Logiqx
[Mapping("category")]
Category,
/// Used in AttractMode, ClrMamePro, ListXML, Logiqx, OfflineList, RomCenter, and Software List
[Mapping("cloneof", "clone_of")]
CloneOf,
/// Used in Logiqx
[Mapping("cloneofid", "nointrocloneofid", "nointro_cloneofid", "no_intro_cloneofid", "no_intro_clone_of_id")]
CloneOfID,
/// Used in AttractMode, Logiqx, and OfflineList; "extra" is used with AttractMode
[Mapping("comment", "extra")]
Comment,
/// Used in AttractMode
[Mapping("control")]
Control,
/// Used in OpenMSX
[Mapping("country")]
Country,
/// Used in Logiqx (EmuArc Extension)
[Mapping("crc", "hascrc", "has_crc")]
CRC,
/// Used in ArchiveDotOrg, AttractMode, ClrMamePro, DOSCenter, Everdrive SMDB, ListXML, Logiqx, RomCenter, Separated Value, and Software List
[Mapping("desc", "description")]
Description,
/// Used in Logiqx (EmuArc Extension)
[Mapping("developer")]
Developer,
/// Used in AttractMode
[Mapping("displaycount", "display_count")]
DisplayCount,
/// Used in AttractMode
[Mapping("displaytype", "display_type")]
DisplayType,
/// Used in Logiqx (EmuArc Extension)
[Mapping("enabled")]
Enabled,
/// Used in OpenMSX
[Mapping("genmsxid", "genmsx_id", "gen_msxid", "gen_msx_id")]
GenMSXID,
/// Used in Logiqx (EmuArc Extension)
[Mapping("genre")]
Genre,
/// Used in ListXML
[Mapping("history")]
History,
/// Used in Logiqx
[Mapping("id", "nointroid", "nointro_id", "no_intro_id")]
ID,
/// Used in AttractMode, ClrMamePro, ListXML, Logiqx, and OpenMSX
[Mapping("manufacturer")]
Manufacturer,
/// Used in ArchiveDotOrg, AttractMode, ClrMamePro, DOSCenter, Everdrive SMDB, Hashfile, ListROM, ListXML, Logiqx, Missfile, OfflineList, OpenMSX, RomCenter, Separated Value, and Software List
[Mapping("name")]
Name,
/// Used in AttractMode and Logiqx
[Mapping("players")]
Players,
/// Used in Logiqx, OfflineList, and Software List
[Mapping("publisher")]
Publisher,
/// Used in Logiqx (EmuArc Extension)
[Mapping("ratings")]
Ratings,
/// Used in Logiqx
[Mapping("rebuildto", "rebuild_to")]
RebuildTo,
/// Used in Logiqx (EmuArc Extension)
[Mapping("relatedto", "related_to")]
RelatedTo,
/// Used in ClrMamePro, ListXML, Logiqx, and RomCenter
[Mapping("romof", "rom_of")]
RomOf,
/// Used in AttractMode
[Mapping("rotation")]
Rotation,
/// Used in ListXML and Logiqx
[Mapping("runnable")]
Runnable,
/// Used in ClrMamePro, ListXML, and Logiqx
[Mapping("sampleof", "sample_of")]
SampleOf,
/// Used in Logiqx (EmuArc Extension)
[Mapping("score")]
Score,
/// Used in ListXML and Logiqx
[Mapping("sourcefile", "source_file")]
SourceFile,
/// Used in AttractMode
[Mapping("amstatus", "am_status", "gamestatus", "supportstatus", "support_status")]
Status,
/// Used in Logiqx (EmuArc Extension)
[Mapping("subgenre", "sub_genre")]
Subgenre,
/// Used in Software List
[Mapping("supported")]
Supported,
/// Used in OpenMSX
[Mapping("system", "msxsystem", "msx_system")]
System,
/// Used in Logiqx (EmuArc Extension)
[Mapping("titleid", "title_id")]
TitleID,
/// Used in ClrMamePro, DOSCenter, ListXML, and Logiqx
[Mapping("type")]
Type,
/// Used in AttractMode, ClrMamePro, ListXML, Logiqx, OpenMSX, and Software List
[Mapping("year")]
Year,
}
#endregion
#region Logging
///
/// Severity of the logging statement
///
public enum LogLevel
{
[Mapping("verbose")]
VERBOSE = 0,
[Mapping("user")]
USER,
[Mapping("warning")]
WARNING,
[Mapping("error")]
ERROR,
}
#endregion
}