using System; // TODO: Figure out the best way to put these back in their libraries namespace SabreTools.Core { #region DatFiles /// /// 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")] DeviceRef, [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")] SharedFeat, [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 Logging /// /// Severity of the logging statement /// public enum LogLevel { [Mapping("verbose")] VERBOSE = 0, [Mapping("user")] USER, [Mapping("warning")] WARNING, [Mapping("error")] ERROR, } #endregion }