using System; namespace SabreTools.Library.DatItems { /// /// Determine the chip type /// [Flags] public enum ChipType { /// /// This is a fake flag that is used for filter only /// NULL = 0, CPU = 1 << 0, Audio = 1 << 1, } /// /// Determines which type of duplicate a file is /// [Flags] public enum DupeType { // Type of match Hash = 1 << 0, All = 1 << 1, // Location of match Internal = 1 << 2, External = 1 << 3, } /// /// Determine the emulation status /// [Flags] public enum FeatureStatus { /// /// This is a fake flag that is used for filter only /// NULL = 0, Unemulated = 1 << 0, Imperfect = 1 << 1, } /// /// Determine the feature type /// [Flags] public enum FeatureType { /// /// This is a fake flag that is used for filter only /// 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, } /// /// List of valid field types within a DatItem/Machine /// /// TODO: Move this to a more common location /// TODO: Should this be split into separate enums? 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_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, // Infos Machine_Infos, // TODO: Fix usage of Infos Machine_Info_Name, Machine_Info_Value, // SharedFeatures Machine_SharedFeatures, // TODO: Fix usage of SharedFeatures Machine_SharedFeature_Name, Machine_SharedFeature_Value, #endregion #endregion // Machine #region DatItem #region Common DatItem_Name, DatItem_Type, #endregion #region AttractMode DatItem_AltName, DatItem_AltTitle, #endregion #region OpenMSX DatItem_Original, DatItem_OpenMSXSubType, DatItem_OpenMSXType, DatItem_Remark, DatItem_Boot, #endregion #region SoftwareList // Part DatItem_Part, DatItem_Part_Name, DatItem_Part_Interface, // Feature DatItem_Features, DatItem_Feature_Name, DatItem_Feature_Value, DatItem_AreaName, DatItem_AreaSize, DatItem_AreaWidth, DatItem_AreaEndianness, DatItem_Value, DatItem_LoadFlag, #endregion #region Item-Specific #region Actionable // Rom DatItem_Bios, DatItem_Size, DatItem_CRC, DatItem_MD5, #if NET_FRAMEWORK DatItem_RIPEMD160, #endif DatItem_SHA1, DatItem_SHA256, DatItem_SHA384, DatItem_SHA512, DatItem_Merge, DatItem_Region, DatItem_Offset, DatItem_Date, DatItem_Status, DatItem_Optional, DatItem_Inverted, // Disk DatItem_Index, DatItem_Writable, #endregion #region Auxiliary // Adjuster DatItem_Default, DatItem_Conditions, DatItem_Condition_Tag, DatItem_Condition_Mask, DatItem_Condition_Relation, DatItem_Condition_Value, // Analog DatItem_Mask, // BiosSet DatItem_Description, // Chip DatItem_Tag, DatItem_ChipType, DatItem_Clock, // Condition DatItem_ConditionValue, DatItem_Relation, // Configuration.Locations DatItem_Locations, DatItem_Location_Name, DatItem_Location_Number, DatItem_Location_Inverted, // Configuration.Settings DatItem_Settings, DatItem_Setting_Name, DatItem_Setting_Value, DatItem_Setting_Default, // Device DatItem_DeviceType, DatItem_FixedImage, DatItem_Mandatory, DatItem_Interface, // Device.Instances DatItem_Instances, DatItem_Instance_Name, DatItem_Instance_BriefName, // Device.Extensions DatItem_Extensions, DatItem_Extension_Name, // DipSwitch.Values DatItem_Values, DatItem_Value_Name, DatItem_Value_Value, DatItem_Value_Default, // 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, // Feature DatItem_FeatureType, DatItem_FeatureStatus, DatItem_FeatureOverall, // Inputs DatItem_Service, DatItem_Tilt, DatItem_Players, DatItem_Coins, // Inputs.Controls DatItem_Controls, DatItem_Control_Type, DatItem_Control_Player, DatItem_Control_Buttons, DatItem_Control_RegButtons, DatItem_Control_Minimum, DatItem_Control_Maximum, DatItem_Control_Sensitivity, DatItem_Control_KeyDelta, DatItem_Control_Reverse, DatItem_Control_Ways, DatItem_Control_Ways2, DatItem_Control_Ways3, // Port.Analogs DatItem_Analogs, DatItem_Analog_Mask, // Ram Option DatItem_Content, // Release DatItem_Language, // Slot.SlotOptions DatItem_SlotOptions, DatItem_SlotOption_Name, DatItem_SlotOption_DeviceName, DatItem_SlotOption_Default, // Software List DatItem_SoftwareListStatus, DatItem_Filter, // Sounds DatItem_Channels, #endregion #endregion // Item-Specific #endregion // DatItem } /// /// Determine the status of the item /// [Flags] public enum ItemStatus { /// /// This is a fake flag that is used for filter only /// NULL = 0, None = 1 << 0, Good = 1 << 1, BadDump = 1 << 2, Nodump = 1 << 3, Verified = 1 << 4, } /// /// Determine what type of file an item is /// public enum ItemType { // "Actionable" item types Rom, Disk, Media, // "Auxiliary" item types Adjuster, Analog, Archive, BiosSet, Chip, Condition, Configuration, Device, DeviceReference, DipSwitch, Display, Driver, Extension, Feature, Input, Instance, Location, Port, RamOption, Release, Sample, Setting, Slot, SoftwareList, Sound, Blank = 99, // This is not a real type, only used internally } /// /// Determine which OpenMSX subtype an item is /// [Flags] public enum OpenMSXSubType { /// /// This is a fake flag that is used for filter only /// NULL = 0, Rom = 1 << 0, MegaRom = 1 << 1, SCCPlusCart = 1 << 2, } /// /// Determine what type of machine it is /// [Flags] public enum MachineType { /// /// This is a fake flag that is used for filter only /// NULL = 1 << 0, Bios = 1 << 1, Device = 1 << 2, Mechanical = 1 << 3, } /// /// Determine machine runnable status /// [Flags] public enum Runnable { /// /// This is a fake flag that is used for filter only /// NULL = 0, No = 1 << 0, Partial = 1 << 1, Yes = 1 << 2, } /// /// Determine software list status /// [Flags] public enum SoftwareListStatus { /// /// This is a fake flag that is used for filter only /// NULL = 0, Original = 1 << 0, Compatible = 1 << 1, } /// /// Determine machine support status /// [Flags] public enum Supported { /// /// This is a fake flag that is used for filter only /// NULL = 0, No = 1 << 0, Partial = 1 << 1, Yes = 1 << 2, } /// /// Determine driver support statuses /// [Flags] public enum SupportStatus { /// /// This is a fake flag that is used for filter only /// NULL = 0, Good = 1 << 0, Imperfect = 1 << 1, Preliminary = 1 << 2, } }