/[EmuXPortal]/trunk/EmuXPortal/Api/RomParser.cs
ViewVC logotype

Diff of /trunk/EmuXPortal/Api/RomParser.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 175 by william, Mon Aug 4 06:31:48 2014 UTC revision 199 by william, Mon Aug 4 11:35:06 2014 UTC
# Line 30  namespace EmuXPortal.Api Line 30  namespace EmuXPortal.Api
30          public List<IRomConfig> Roms { get; private set; }          public List<IRomConfig> Roms { get; private set; }
31          private List<IRomConfigPair> GetRoms(logger log)          private List<IRomConfigPair> GetRoms(logger log)
32          {          {
33              if (Config.HasExternalConfigs) { return GetRomsEX(); }              if (Config.HasExternalConfigs) { return GetRomsEX(log); }
34              string path = Config.EmuRomPath; string searchPattern = Config.Extenstions;              string path = Config.EmuRomPath; string searchPattern = Config.Extenstions;
35              log.WriteLine("Searching for Roms in Folder: {0}", path);              log.WriteLine("Searching for Roms in Folder: {0}", path);
36              Predicate<string> rom_predicate = new Predicate<string>(delegate(string t)              Predicate<string> rom_predicate = new Predicate<string>(delegate(string t)
# Line 61  namespace EmuXPortal.Api Line 61  namespace EmuXPortal.Api
61              return rompairlist;              return rompairlist;
62          }          }
63    
64          private List<IRomConfigPair> GetRomsEX()          private List<IRomConfigPair> GetRomsEX(logger log)
65          {          {
66              List<IEmuConfig> configs = Config.ExternalConfigs;              List<IEmuConfig> configs = Config.ExternalConfigs;
67              List<IRomConfigPair> roms = new List<IRomConfigPair>();              List<IRomConfigPair> roms = new List<IRomConfigPair>();
68    
69    
70              foreach (IEmuConfig config in configs) { roms.Add(new RomConfigPair(config.GameExe, config)); }              foreach (IEmuConfig config in configs)
71                {
72                    var reconfig = FixExternalConfig(log,Config, config);
73                   roms.Add(new RomConfigPair(reconfig.GameExe, reconfig));
74                }
75    
76              return roms;              return roms;
77          }          }
78            private IEmuConfig FixExternalConfig(logger log,IEmuConfig parent_config, IEmuConfig child_config)
79            {
80                string PlatformNameShort = child_config.PlatformNameShort.Contains("Unknown") ? parent_config.PlatformNameShort != "" ? parent_config.PlatformNameShort : "" : child_config.PlatformNameShort;
81                string PlatformNameLong = child_config.PlatformNameLong.Contains("Unknown") ? parent_config.PlatformNameLong != "" ? parent_config.PlatformNameLong : "" : child_config.PlatformNameLong;
82                string PlatformImage = child_config.GameImage == "" ? parent_config.GameImage != "" ? parent_config.GameImage : "" : child_config.GameImage;
83                string Extenstions = child_config.Extenstions == "" ? parent_config.Extenstions != "" ? parent_config.Extenstions : "" : child_config.Extenstions;
84                string EmuPath = child_config.EmuPath == "" ? parent_config.EmuPath != "" ? parent_config.EmuPath : "" : child_config.EmuPath;
85                string EmuOptions = child_config.EmuOptions == "" ? parent_config.EmuOptions != "" ? parent_config.EmuOptions : "" : child_config.EmuOptions;
86    
87                FileInfo fi = new FileInfo(PlatformImage);
88                if (!fi.Exists)
89                {
90                    PlatformImage = string.Format(@"{0}\{1}", new FileInfo(child_config.GameExe).Directory.FullName, PlatformImage);
91                    fi = new FileInfo(PlatformImage);
92                    if (!fi.Exists)
93                    {
94                        PlatformImage = string.Format(@"{0}\{1}", new FileInfo(parent_config.EmuRomPath).Directory.FullName, PlatformImage);
95                        fi = new FileInfo(PlatformImage);
96                        if (!fi.Exists) { PlatformImage = ""; }
97                    }
98                }
99                fi = null;
100    
101                EmuXPortal.Api.EmuConfigLoader.EmuConfig c = new EmuConfigLoader.EmuConfig(log,
102                    PlatformNameShort, PlatformNameLong, PlatformImage,
103                    Extenstions, EmuPath, EmuOptions);
104                c.EmuRomPath = string.IsNullOrEmpty(child_config.EmuRomPath) ? string.IsNullOrEmpty(parent_config.EmuRomPath) ? "" : parent_config.EmuRomPath : child_config.EmuRomPath;
105    
106                            
107                c.GameExe = child_config.GameExe;
108                c.GameExeArgs = child_config.GameExeArgs;
109                c.GameImage = child_config.GameImage;
110                c.GameTitle = child_config.GameTitle;
111                c.ConfigPath = child_config.ConfigPath;
112                return c;
113            }
114          private List<IRomConfig> GenerateRomConfig(logger log, List<IRomConfigPair> roms, IEmuConfig config)          private List<IRomConfig> GenerateRomConfig(logger log, List<IRomConfigPair> roms, IEmuConfig config)
115          {          {
116              List<IRomConfig> romconfigs = new List<IRomConfig>();              List<IRomConfig> romconfigs = new List<IRomConfig>();
# Line 102  namespace EmuXPortal.Api Line 141  namespace EmuXPortal.Api
141              Roms = null;              Roms = null;
142          }          }
143      }      }
144  }  }

Legend:
Removed from v.175  
changed lines
  Added in v.199

  ViewVC Help
Powered by ViewVC 1.1.22