Пример #1
0
        /// <summary>
        /// Set remover from a value
        /// </summary>
        /// <param name="field">Key for the remover to be set</param>
        public bool SetRemover(string field)
        {
            // If the key is null or empty, return false
            if (string.IsNullOrWhiteSpace(field))
            {
                return(false);
            }

            // If we have a Machine field
            MachineField machineField = field.AsMachineField();

            if (machineField != MachineField.NULL)
            {
                MachineFields.Add(machineField);
                return(true);
            }

            // If we have a DatItem field
            DatItemField datItemField = field.AsDatItemField();

            if (datItemField != DatItemField.NULL)
            {
                DatItemFields.Add(datItemField);
                return(true);
            }

            return(false);
        }
Пример #2
0
        /// <summary>
        /// Remove fields with given values
        /// </summary>
        /// <param name="datItem">DatItem to remove fields from</param>
        public void RemoveFields(DatItem datItem)
        {
            if (datItem == null)
            {
                return;
            }

            #region Common

            if (MachineFields != null && MachineFields.Any() && datItem.Machine != null)
            {
                RemoveFields(datItem.Machine);
            }

            if (DatItemFields == null || !DatItemFields.Any())
            {
                return;
            }

            if (DatItemFields.Contains(DatItemField.Name))
            {
                datItem.SetName(null);
            }

            #endregion

            #region Item-Specific

            if (datItem is Adjuster)
            {
                RemoveFields(datItem as Adjuster);
            }
            else if (datItem is Analog)
            {
                RemoveFields(datItem as Analog);
            }
            else if (datItem is BiosSet)
            {
                RemoveFields(datItem as BiosSet);
            }
            else if (datItem is Chip)
            {
                RemoveFields(datItem as Chip);
            }
            else if (datItem is Condition)
            {
                RemoveFields(datItem as Condition);
            }
            else if (datItem is Configuration)
            {
                RemoveFields(datItem as Configuration);
            }
            else if (datItem is Control)
            {
                RemoveFields(datItem as Control);
            }
            else if (datItem is DataArea)
            {
                RemoveFields(datItem as DataArea);
            }
            else if (datItem is Device)
            {
                RemoveFields(datItem as Device);
            }
            else if (datItem is DipSwitch)
            {
                RemoveFields(datItem as DipSwitch);
            }
            else if (datItem is Disk)
            {
                RemoveFields(datItem as Disk);
            }
            else if (datItem is DiskArea)
            {
                RemoveFields(datItem as DiskArea);
            }
            else if (datItem is Display)
            {
                RemoveFields(datItem as Display);
            }
            else if (datItem is Driver)
            {
                RemoveFields(datItem as Driver);
            }
            else if (datItem is Extension)
            {
                RemoveFields(datItem as Extension);
            }
            else if (datItem is Feature)
            {
                RemoveFields(datItem as Feature);
            }
            else if (datItem is Info)
            {
                RemoveFields(datItem as Info);
            }
            else if (datItem is Input)
            {
                RemoveFields(datItem as Input);
            }
            else if (datItem is Instance)
            {
                RemoveFields(datItem as Instance);
            }
            else if (datItem is Location)
            {
                RemoveFields(datItem as Location);
            }
            else if (datItem is Media)
            {
                RemoveFields(datItem as Media);
            }
            else if (datItem is Part)
            {
                RemoveFields(datItem as Part);
            }
            else if (datItem is PartFeature)
            {
                RemoveFields(datItem as PartFeature);
            }
            else if (datItem is Port)
            {
                RemoveFields(datItem as Port);
            }
            else if (datItem is RamOption)
            {
                RemoveFields(datItem as RamOption);
            }
            else if (datItem is Release)
            {
                RemoveFields(datItem as Release);
            }
            else if (datItem is Rom)
            {
                RemoveFields(datItem as Rom);
            }
            else if (datItem is Setting)
            {
                RemoveFields(datItem as Setting);
            }
            else if (datItem is SharedFeature)
            {
                RemoveFields(datItem as SharedFeature);
            }
            else if (datItem is Slot)
            {
                RemoveFields(datItem as Slot);
            }
            else if (datItem is SlotOption)
            {
                RemoveFields(datItem as SlotOption);
            }
            else if (datItem is SoftwareList)
            {
                RemoveFields(datItem as SoftwareList);
            }
            else if (datItem is Sound)
            {
                RemoveFields(datItem as Sound);
            }

            #endregion
        }
Пример #3
0
        /// <summary>
        /// Remove fields with given values
        /// </summary>
        /// <param name="machine">Machine to remove fields from</param>
        private void RemoveFields(Machine machine)
        {
            #region Common

            if (MachineFields.Contains(MachineField.Name))
            {
                machine.Name = null;
            }

            if (MachineFields.Contains(MachineField.Comment))
            {
                machine.Comment = null;
            }

            if (MachineFields.Contains(MachineField.Description))
            {
                machine.Description = null;
            }

            if (MachineFields.Contains(MachineField.Year))
            {
                machine.Year = null;
            }

            if (MachineFields.Contains(MachineField.Manufacturer))
            {
                machine.Manufacturer = null;
            }

            if (MachineFields.Contains(MachineField.Publisher))
            {
                machine.Publisher = null;
            }

            if (MachineFields.Contains(MachineField.Category))
            {
                machine.Category = null;
            }

            if (MachineFields.Contains(MachineField.RomOf))
            {
                machine.RomOf = null;
            }

            if (MachineFields.Contains(MachineField.CloneOf))
            {
                machine.CloneOf = null;
            }

            if (MachineFields.Contains(MachineField.SampleOf))
            {
                machine.SampleOf = null;
            }

            if (MachineFields.Contains(MachineField.Type))
            {
                machine.MachineType = 0x0;
            }

            #endregion

            #region AttractMode

            if (MachineFields.Contains(MachineField.Players))
            {
                machine.Players = null;
            }

            if (MachineFields.Contains(MachineField.Rotation))
            {
                machine.Rotation = null;
            }

            if (MachineFields.Contains(MachineField.Control))
            {
                machine.Control = null;
            }

            if (MachineFields.Contains(MachineField.Status))
            {
                machine.Status = null;
            }

            if (MachineFields.Contains(MachineField.DisplayCount))
            {
                machine.DisplayCount = null;
            }

            if (MachineFields.Contains(MachineField.DisplayType))
            {
                machine.DisplayType = null;
            }

            if (MachineFields.Contains(MachineField.Buttons))
            {
                machine.Buttons = null;
            }

            #endregion

            #region ListXML

            if (MachineFields.Contains(MachineField.History))
            {
                machine.History = null;
            }

            if (MachineFields.Contains(MachineField.SourceFile))
            {
                machine.SourceFile = null;
            }

            if (MachineFields.Contains(MachineField.Runnable))
            {
                machine.Runnable = Runnable.NULL;
            }

            #endregion

            #region Logiqx

            if (MachineFields.Contains(MachineField.Board))
            {
                machine.Board = null;
            }

            if (MachineFields.Contains(MachineField.RebuildTo))
            {
                machine.RebuildTo = null;
            }

            #endregion

            #region Logiqx EmuArc

            if (MachineFields.Contains(MachineField.TitleID))
            {
                machine.TitleID = null;
            }

            if (MachineFields.Contains(MachineField.Developer))
            {
                machine.Developer = null;
            }

            if (MachineFields.Contains(MachineField.Genre))
            {
                machine.Genre = null;
            }

            if (MachineFields.Contains(MachineField.Subgenre))
            {
                machine.Subgenre = null;
            }

            if (MachineFields.Contains(MachineField.Ratings))
            {
                machine.Ratings = null;
            }

            if (MachineFields.Contains(MachineField.Score))
            {
                machine.Score = null;
            }

            if (MachineFields.Contains(MachineField.Enabled))
            {
                machine.Enabled = null;
            }

            if (MachineFields.Contains(MachineField.CRC))
            {
                machine.Crc = null;
            }

            if (MachineFields.Contains(MachineField.RelatedTo))
            {
                machine.RelatedTo = null;
            }

            #endregion

            #region OpenMSX

            if (MachineFields.Contains(MachineField.GenMSXID))
            {
                machine.GenMSXID = null;
            }

            if (MachineFields.Contains(MachineField.System))
            {
                machine.System = null;
            }

            if (MachineFields.Contains(MachineField.Country))
            {
                machine.Country = null;
            }

            #endregion

            #region SoftwareList

            if (MachineFields.Contains(MachineField.Supported))
            {
                machine.Supported = Supported.NULL;
            }

            #endregion
        }