/[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 38 by william, Wed Apr 4 07:22:40 2012 UTC revision 85 by william, Tue Jun 19 03:38:40 2012 UTC
# Line 11  namespace EmuXPortal.Api Line 11  namespace EmuXPortal.Api
11  {  {
12      public class RomParser      public class RomParser
13      {      {
14            private IEmuConfig Config { get; set; }
15          public RomParser(IEmuConfig config)          public RomParser(IEmuConfig config)
16          {          {
17              List<string> roms = GetRoms(config.EmuRomPath, config.Extenstions);              this.Config = config;
18                List<IRomConfigPair> roms = GetRoms();
19              logger.WriteLine("Found {0} Roms", roms.Count);              logger.WriteLine("Found {0} Roms", roms.Count);
20              this.Roms = GenerateRomConfig(roms,config);              this.Roms = GenerateRomConfig(roms,config);
21          }          }
22          public List<IRomConfig> Roms { get; private set; }          public List<IRomConfig> Roms { get; private set; }
23          private List<string> GetRoms(string path, string searchPattern)          private List<IRomConfigPair> GetRoms()
24          {          {
25                if (Config.HasExternalConfigs) { return GetRomsEX(); }
26                string path = Config.EmuRomPath; string searchPattern = Config.Extenstions;
27              logger.WriteLine("Searching for Roms in Folder: {0}", path);              logger.WriteLine("Searching for Roms in Folder: {0}", path);
28              List<string> roms = (searchPattern == "*.*")              List<string> roms = (searchPattern == "*.*")
29                  ? new List<string>(Directory.GetFiles(path, "*.*", SearchOption.AllDirectories))                  ? new List<string>(Directory.GetFiles(path, "*.*", SearchOption.AllDirectories))
# Line 32  namespace EmuXPortal.Api Line 36  namespace EmuXPortal.Api
36                  logger.WriteLine("\tAdding: {0}", fi.Name);                  logger.WriteLine("\tAdding: {0}", fi.Name);
37              }              }
38  #endif  #endif
39                List<IRomConfigPair> rompairlist = new List<IRomConfigPair>();
40                foreach (string rom in roms)
41                {
42                    rompairlist.Add(new RomConfigPair(rom, Config));
43                }
44              #endregion              #endregion
45                return rompairlist;
46            }
47    
48            private List<IRomConfigPair> GetRomsEX()
49            {
50                List<IEmuConfig> configs = Config.ExternalConfigs;
51                List<IRomConfigPair> roms = new List<IRomConfigPair>();
52    
53    
54                foreach (IEmuConfig config in configs) { roms.Add(new RomConfigPair(config.GameExe, config)); }
55    
56              return roms;              return roms;
57          }          }
58          private List<IRomConfig> GenerateRomConfig(List<string> roms, IEmuConfig config)  
59            private List<IRomConfig> GenerateRomConfig(List<IRomConfigPair> roms, IEmuConfig config)
60          {          {
61              List<IRomConfig> romconfigs = new List<IRomConfig>();              List<IRomConfig> romconfigs = new List<IRomConfig>();
62              logger.WriteLine("Generating Rom Configs");              logger.WriteLine("Generating Rom Configs");
63              foreach (string rom in roms) { romconfigs.Add(RomLoader.Load(rom, config)); }              foreach (IRomConfigPair rom in roms) { romconfigs.Add(RomLoader.Load(rom.RomFile, rom.RomConfig)); }
64              return romconfigs;              return romconfigs;
65          }          }
66    
67            private interface IRomConfigPair
68            {
69                string RomFile { get; }
70                IEmuConfig RomConfig { get; }
71            }
72            private class RomConfigPair : IRomConfigPair
73            {
74                public RomConfigPair() : this("", EmuConfigLoader.Empty) { }
75                public RomConfigPair(string romFile, IEmuConfig romConfig) { RomFile = romFile; RomConfig = romConfig; }
76                #region IRomConfigPair members
77                public string RomFile { get; private set; }
78                public IEmuConfig RomConfig { get; private set; }
79                #endregion
80            }
81      }      }
82  }  }

Legend:
Removed from v.38  
changed lines
  Added in v.85

  ViewVC Help
Powered by ViewVC 1.1.22