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

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

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

revision 112 by william, Thu Aug 23 04:13:19 2012 UTC revision 170 by william, Mon Aug 4 05:01:23 2014 UTC
# Line 31  namespace EmuXPortal.Api Line 31  namespace EmuXPortal.Api
31          string GameExeArgs { get; }          string GameExeArgs { get; }
32    
33    
34          void RefreshConfig();          void RefreshConfig(logger log);
35          void ReleasePlatformImageResource();          void ReleasePlatformImageResource();
36      }      }
37    
# Line 46  namespace EmuXPortal.Api Line 46  namespace EmuXPortal.Api
46          public static IEmuConfig Load(logger log,string config_path, string rom_path) { return new EmuConfig().Create(log, config_path, rom_path); }          public static IEmuConfig Load(logger log,string config_path, string rom_path) { return new EmuConfig().Create(log, config_path, rom_path); }
47          #endregion          #endregion
48          #region parse emu options          #region parse emu options
49          public static string GetEMUOptions(IRomConfig config)          public static string GetEMUOptions(logger log, IRomConfig config)
50          {          {
51              EMUOptions EMUOptions = new EMUOptions(config);              EMUOptions EMUOptions = new EMUOptions(log, config);
52              return EMUOptions.Options;              return EMUOptions.Options;
53          }          }
54          #endregion          #endregion
# Line 60  namespace EmuXPortal.Api Line 60  namespace EmuXPortal.Api
60              private const string ROM_PATH = "%ROM_PATH%";              private const string ROM_PATH = "%ROM_PATH%";
61              #endregion              #endregion
62              private Dictionary<string, string> options_dict = new Dictionary<string, string>();              private Dictionary<string, string> options_dict = new Dictionary<string, string>();
63              public EMUOptions(IRomConfig config)              public EMUOptions(logger log, IRomConfig config)
64              {              {
65                  init_dict(config);                  init_dict(config);
66                  config.Config.RefreshConfig();                  config.Config.RefreshConfig(log);
67                  string options = config.Config.EmuOptions;                  string options = config.Config.EmuOptions;
68                  string real_options = options;                  string real_options = options;
69                  foreach (KeyValuePair<string, string> pair in options_dict) { if (options.ToLower().Contains(pair.Key.ToLower())) { real_options = real_options.ToLower().Replace(pair.Key.ToLower(), pair.Value); } }                  foreach (KeyValuePair<string, string> pair in options_dict) { if (options.ToLower().Contains(pair.Key.ToLower())) { real_options = real_options.ToLower().Replace(pair.Key.ToLower(), pair.Value); } }
# Line 84  namespace EmuXPortal.Api Line 84  namespace EmuXPortal.Api
84              public IEmuConfig Create(logger log, string rom_path) { return this.Create(log, string.Empty, rom_path); }              public IEmuConfig Create(logger log, string rom_path) { return this.Create(log, string.Empty, rom_path); }
85              public IEmuConfig Create(logger log, string config_path, string rom_path)              public IEmuConfig Create(logger log, string config_path, string rom_path)
86              {              {
87                  EmuRomPath = rom_path;                  if (rom_path == "")
88                  if (config_path == "") { config_path = string.Format(@"{0}\{1}", rom_path, EMU_CONFIG); }                  {
89                        if (config_path != "")
90                        {
91                            EmuRomPath = config_path.Replace(EMU_CONFIG, "").TrimEnd(new char[] { '\\' });
92                        }
93                        else
94                        {
95                            EmuRomPath = Config.RomPath;
96                        }
97                    }
98                    else { EmuRomPath = rom_path; }
99                    if (config_path == "")
100                    {
101                        config_path = string.Format(@"{0}\{1}", EmuRomPath, EMU_CONFIG);
102                    }
103                
104                  // read the actual config emu.config                  // read the actual config emu.config
105                  FileInfo fi = new FileInfo(config_path);                  FileInfo fi = new FileInfo(config_path);
106                  if (fi.Exists)                  if (fi.Exists)
# Line 129  namespace EmuXPortal.Api Line 143  namespace EmuXPortal.Api
143                                              if (reader.IsStartElement())                                              if (reader.IsStartElement())
144                                              {                                              {
145                                                  string platform_image = reader.ReadElementContentAsString();                                                  string platform_image = reader.ReadElementContentAsString();
146                                                  PlatformImage = (platform_image == "") ? null : Image.FromFile(string.Format(@"{0}\{1}", rom_path, platform_image));                                                  PlatformImage = (platform_image == "") ? null : Image.FromFile(string.Format(@"{0}\{1}", EmuRomPath, platform_image));
147                                                  string str_platform_image = (platform_image == "") ? "DefaultPlatformImage" : platform_image;                                                  string str_platform_image = (platform_image == "") ? "DefaultPlatformImage" : platform_image;
148                                                  log.WriteLine("\t\tPLATFORMIMAGE={0}", str_platform_image);                                                  log.WriteLine("\t\tPLATFORMIMAGE={0}", str_platform_image);
149                                              }                                              }
# Line 203  namespace EmuXPortal.Api Line 217  namespace EmuXPortal.Api
217                                                  //EmuOptions = (external_configs_path == "") ? EmuOptions : value;                                                  //EmuOptions = (external_configs_path == "") ? EmuOptions : value;
218                                                  log.WriteLine("\tEXTERNALCONFIGSPATH={0}", external_configs_path);                                                  log.WriteLine("\tEXTERNALCONFIGSPATH={0}", external_configs_path);
219                                                  DirectoryInfo ext_path = new DirectoryInfo(external_configs_path);                                                  DirectoryInfo ext_path = new DirectoryInfo(external_configs_path);
220                                                  string ext_rom_path = string.Format(@"{0}\{1}", rom_path, external_configs_path);                                                  string ext_rom_path = string.Format(@"{0}\{1}", EmuRomPath, external_configs_path);
221                                                  // try the path in romroot                                                  // try the path in romroot
222                                                  if (!ext_path.Exists) { ext_path = new DirectoryInfo(ext_rom_path); }                                                  if (!ext_path.Exists) { ext_path = new DirectoryInfo(ext_rom_path); }
223                                                  if (ext_path.Exists)                                                  if (ext_path.Exists)
# Line 216  namespace EmuXPortal.Api Line 230  namespace EmuXPortal.Api
230                                                          external_config_files.Sort(); // sort the files (they should already be sorted alphabetically by GetFiles())                                                          external_config_files.Sort(); // sort the files (they should already be sorted alphabetically by GetFiles())
231                                                      foreach (string file in external_config_files)                                                      foreach (string file in external_config_files)
232                                                      {                                                      {
233                                                          IEmuConfig config = EmuConfigLoader.Load(log, file, rom_path);                                                          IEmuConfig config = EmuConfigLoader.Load(log, file, EmuRomPath);
234                                                          if (config != null)                                                          if (config != null)
235                                                              externalconfigs.Add(config);                                                              externalconfigs.Add(config);
236                                                      }                                                      }
# Line 343  namespace EmuXPortal.Api Line 357  namespace EmuXPortal.Api
357              {              {
358                  return this.PlatformNameLong.CompareTo(obj.PlatformNameLong);                  return this.PlatformNameLong.CompareTo(obj.PlatformNameLong);
359              }              }
360              public void RefreshConfig()              public void RefreshConfig(logger log)
361              {              {
362                  log.WriteLine("Refreshing config for: {0} from {1}", this.ToString(), string.Format(@"{0}\{1}", EmuRomPath, EMU_CONFIG));                  log.WriteLine("Refreshing config for: {0} from {1}", this.ToString(), string.Format(@"{0}\{1}", EmuRomPath, EMU_CONFIG));
363                  this.Create(log,EmuRomPath);                  this.Create(log,EmuRomPath);

Legend:
Removed from v.112  
changed lines
  Added in v.170

  ViewVC Help
Powered by ViewVC 1.1.22