/// <summary> /// Creates an instance of <see cref="ConfigurableLtoFlashBooleanFeature"/>. /// </summary> /// <param name="uniqueId">The unique identifier of the configurable feature.</param> /// <param name="displayName">The user-friendly display name of the feature.</param> /// <param name="defaultValue">The factory default value for the feature.</param> /// <param name="featureFlagsMask">The flags mask for the feature.</param> /// <param name="readOnly">If <c>true</c>, the feature is read-only and will throw a <see cref="System.InvalidOperationException"/> if modified.</param> /// <returns>A new configurable LTO Flash! feature.</returns> public static IConfigurableLtoFlashFeature Create(string uniqueId, string displayName, bool defaultValue, DeviceStatusFlags featureFlagsMask, bool readOnly) { IConfigurableLtoFlashFeature configurableFeature; if (readOnly) { configurableFeature = new ReadOnlyConfigurableLtoFlashFeature(uniqueId, displayName, defaultValue, featureFlagsMask); } else { configurableFeature = new ConfigurableLtoFlashBooleanFeature(uniqueId, displayName, defaultValue, featureFlagsMask); } return(configurableFeature); }
private static Dictionary <string, IConfigurableLtoFlashFeature> InitializeConfigurableFeatures(bool readOnly) { var configurableFeatures = new IConfigurableLtoFlashFeature[] { ConfigurableLtoFlashEcsCompatibilityFeature.Create(readOnly), ConfigurableLtoFlashIntellivisionIICompatibilityFeature.Create(readOnly), ConfigurableLtoFlashShowTitleScreenFeature.Create(readOnly), ConfigurableLtoFlashSaveMenuPositionFeature.Create(readOnly), ConfigurableLtoFlashBooleanFeature.Create(Device.BackgroundGCPropertyName, Resources.Strings.SetBackgroundGarbageCollectCommand_Name, true, DeviceStatusFlags.BackgroundGC, readOnly), ConfigurableLtoFlashBooleanFeature.Create(Device.KeyclicksPropertyName, Resources.Strings.SetKeyclicksCommand_Name, false, DeviceStatusFlags.Keyclicks, readOnly), ConfigurableLtoFlashBooleanFeature.Create(Device.EnableConfigMenuOnCartPropertyName, Resources.Strings.SetEnableConfigMenuOnCartCommand_Name, true, DeviceStatusFlags.EnableCartConfig, readOnly), ConfigurableLtoFlashBooleanFeature.Create(Device.ZeroLtoFlashRamPropertyName, Resources.Strings.SetRandomizeLtoFlashRamCommand_Name, true, DeviceStatusFlags.ZeroRamBeforeLoad, readOnly), }; var configurableFeaturesDictionary = configurableFeatures.ToDictionary(f => f.UniqueId); return(configurableFeaturesDictionary); }