using System.Collections.Generic; using SabreTools.Core; namespace SabreTools.Filtering { /// /// Represents the cleaning operations that need to be performed on a set of items, usually a DAT /// public class Cleaner { #region Filter Fields /// /// Filter for DatHeader fields /// public DatHeaderFilter DatHeaderFilter { get; set; } /// /// Filter for DatItem fields /// public DatItemFilter DatItemFilter { get; set; } /// /// Filter for Machine fields /// public MachineFilter MachineFilter { get; set; } #endregion #region Flag Fields /// /// Clean all names to WoD standards /// public bool Clean { get; set; } /// /// Deduplicate items using the given method /// public DedupeType DedupeRoms { get; set; } /// /// Set Machine Description from Machine Name /// public bool DescriptionAsName { get; set; } /// /// Dictionary of DatHeader fields to exclude from writing /// public List ExcludeDatHeaderFields { get; set; } = new List(); /// /// Dictionary of DatItem fields to exclude from writing /// public List ExcludeDatItemFields { get; set; } = new List(); /// /// Dictionary of Machine fields to exclude from writing /// public List ExcludeMachineFields { get; set; } = new List(); /// /// Keep machines that don't contain any items /// public bool KeepEmptyGames { get; set; } /// /// Enable "One Rom, One Region (1G1R)" mode /// public bool OneGamePerRegion { get; set; } /// /// Ordered list of regions for "One Rom, One Region (1G1R)" mode /// public List RegionList { get; set; } /// /// Ensure each rom is in their own game /// public bool OneRomPerGame { get; set; } /// /// Remove all unicode characters /// public bool RemoveUnicode { get; set; } /// /// Include root directory when determing trim sizes /// public string Root { get; set; } /// /// Remove scene dates from the beginning of machine names /// public bool SceneDateStrip { get; set; } /// /// Change all machine names to "!" /// public bool Single { get; set; } /// /// Trim total machine and item name to not exceed NTFS limits /// public bool Trim { get; set; } #endregion } }