Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the EcsFeaturesConfigurationPageViewModel type.
        /// </summary>
        public EcsFeaturesConfigurationPageViewModel()
        {
            var selectableOptions = new EcsFeatures[] { EcsFeatures.Incompatible, EcsFeatures.Tolerates, EcsFeatures.Enhances, EcsFeatures.Requires };

            EcsOptions        = new ObservableCollection <ProgramFeatureImageViewModel>(selectableOptions.ToFeatureViewModels(EcsFeatureSet.Data));
            selectableOptions = new EcsFeatures[] { EcsFeatures.SerialPortEnhanced, EcsFeatures.SerialPortRequired };
            SerialPortOptions = new ObservableCollection <ProgramFeatureImageViewModel>(selectableOptions.ToFeatureViewModels(EcsFeatureSet.Data));
        }
Exemple #2
0
 private void UpdateCompatibility(EcsFeatures compatibility)
 {
     EnableFeatureEditing            = compatibility.HasFlag(EcsFeatures.Enhances);
     EnableSerialPortOptionSelection = EnableFeatureEditing && UsesSerialPort;
     if (!EnableFeatureEditing)
     {
         UsesCassette    = false;
         UsesSynthesizer = false;
         UsesPrinter     = false;
         UsesSerialPort  = false;
         SerialPort      = null;
     }
     else
     {
         if (compatibility == EcsFeatures.Enhances)
         {
             if ((SerialPort != null) && (SerialPort.Flags == (uint)EcsFeatures.SerialPortRequired))
             {
                 SerialPort = SerialPortOptions.First(p => p.Flags == (uint)EcsFeatures.SerialPortEnhanced);
             }
         }
     }
 }
 /// <inheritdoc />
 public IProgramFeaturesBuilder WithEcsFeatures(EcsFeatures ecsFeatures)
 {
     _programFeatures.Ecs = ecsFeatures;
     return(this);
 }
Exemple #4
0
 /// <summary>
 /// Converts EcsFeatures to LuigiFeatureFlags.
 /// </summary>
 /// <param name="features">The ECS features to convert.</param>
 /// <returns>The ECS feature flags represented as LuigiFeatureFlags.</returns>
 public static LuigiFeatureFlags ToLuigiFeatureFlags(this EcsFeatures features)
 {
     return(((FeatureCompatibility)features & FeatureCompatibilityHelpers.ValidFeaturesMask).ToLuigiFeatureFlags(FeatureCategory.Ecs));
 }
Exemple #5
0
 /// <summary>
 /// Creates a new instance if the UnmergedProgram structure.
 /// </summary>
 /// <param name="code">INTV Funhouse code for the ROM.</param>
 /// <param name="title">The title of the program (typically title screen title).</param>
 /// <param name="vendor">Vendor who wrote the program.</param>
 /// <param name="year">The year the program was copyrighted (or released).</param>
 /// <param name="crcData">The CRC values of known versions of the program.</param>
 /// <param name="crcDescriptions">The descriptions of the known versions of the program for each CRC.</param>
 /// <param name="generalFeatures">Generic program features.</param>
 /// <param name="ecs">ECS feature requirements.</param>
 internal UnmergedProgram(string code, string title, string vendor, string year, uint[] crcData, string[] crcDescriptions, GeneralFeatures generalFeatures, EcsFeatures ecs)
 {
     Code                     = code;
     CrcData                  = crcData;
     CrcDescriptions          = crcDescriptions;
     CrcCfgs                  = Enumerable.Repeat(-1, crcData.Count()).ToArray();
     Year                     = year;
     Title                    = title;
     Vendor                   = vendor;
     Features                 = new ProgramFeatures();
     Features.GeneralFeatures = generalFeatures;
     Features.Ecs             = ecs;
 }