/[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 20 by william, Wed Apr 4 02:11:37 2012 UTC revision 23 by william, Wed Apr 4 03:09:19 2012 UTC
# Line 20  namespace EmuXPortal.Api Line 20  namespace EmuXPortal.Api
20          string EmuRomPath { get; set; }          string EmuRomPath { get; set; }
21      }      }
22    
23      
24    
25      public static class EmuConfigLoader      public static class EmuConfigLoader
26      {      {
27          private const string EMU_CONFIG = "emu.config"; // if this file signifies the emulator configuration          private const string EMU_CONFIG = "emu.config"; // if this file signifies the emulator configuration
28            #region load
29          public static IEmuConfig Load(string rom_path) { return Load(string.Empty, rom_path); }          public static IEmuConfig Load(string rom_path) { return Load(string.Empty, rom_path); }
30          public static IEmuConfig Load(string config_path, string rom_path)          public static IEmuConfig Load(string config_path, string rom_path)
31          {          {
# Line 44  namespace EmuXPortal.Api Line 46  namespace EmuXPortal.Api
46                      {                      {
47                          using (XmlReader reader = XmlReader.Create(fs))                          using (XmlReader reader = XmlReader.Create(fs))
48                          {                          {
49                                string value = "";
50                              reader.ReadToFollowing("PLATFORMNAMESHORT");                              reader.ReadToFollowing("PLATFORMNAMESHORT");
51                              config.PlatformNameShort = reader.ReadElementContentAsString();                              value = reader.ReadElementContentAsString();
52                              logger.WriteLine("\tPLATFORMNAMESHORT={0}", config.PlatformNameShort);                              config.PlatformNameShort = (value == "") ? config.PlatformNameShort: value;
53                                logger.WriteLine("\t\tPLATFORMNAMESHORT={0}", config.PlatformNameShort);
54    
55                              reader.ReadToFollowing("PLATFORMNAMELONG");                              reader.ReadToFollowing("PLATFORMNAMELONG");
56                              config.PlatformNameLong = reader.ReadElementContentAsString();                              value = reader.ReadElementContentAsString();
57                              logger.WriteLine("\tPLATFORMNAMELONG={0}", config.PlatformNameLong);                              config.PlatformNameLong = (value == "") ? config.PlatformNameLong : value;
58                                logger.WriteLine("\t\tPLATFORMNAMELONG={0}", config.PlatformNameLong);
59    
60                              reader.ReadToFollowing("PLATFORMIMAGE");                              reader.ReadToFollowing("PLATFORMIMAGE");
61                              string platform_image = reader.ReadElementContentAsString();                              string platform_image = reader.ReadElementContentAsString();                            
                               
62                              config.PlatformImage = (platform_image == "") ? Properties.Resources.DefaultPlatformImage : Image.FromFile(string.Format(@"{0}\{1}",rom_path,platform_image));                              config.PlatformImage = (platform_image == "") ? Properties.Resources.DefaultPlatformImage : Image.FromFile(string.Format(@"{0}\{1}",rom_path,platform_image));
63                              string str_platform_image = (platform_image == "") ? "DefaultPlatformImage" : platform_image;                              string str_platform_image = (platform_image == "") ? "DefaultPlatformImage" : platform_image;
64                              logger.WriteLine("\tPLATFORMIMAGE={0}", str_platform_image);                              logger.WriteLine("\t\tPLATFORMIMAGE={0}", str_platform_image);
65    
66                              reader.ReadToFollowing("EXTENSIONS");                              reader.ReadToFollowing("EXTENSIONS");
67                              config.Extenstions = reader.ReadElementContentAsString();                              value = reader.ReadElementContentAsString();
68                              logger.WriteLine("\tEXTENSIONS={0}", config.Extenstions);                              config.Extenstions = (value == "") ? config.Extenstions : value;
69                                logger.WriteLine("\t\tEXTENSIONS={0}", config.Extenstions);
70    
71                              reader.ReadToFollowing("EMULATORPATH");                              reader.ReadToFollowing("EMULATORPATH");
72                              config.EmuPath = reader.ReadElementContentAsString();                              value = reader.ReadElementContentAsString();
73                              logger.WriteLine("\tEMULATORPATH={0}", config.EmuPath);                              config.EmuPath = (value == "") ? config.EmuPath : value;
74                                logger.WriteLine("\t\tEMULATORPATH={0}", config.EmuPath);
75    
76                              reader.ReadToFollowing("EMULATOROPTIONS");                              reader.ReadToFollowing("EMULATOROPTIONS");
77                              config.EmuOptions = reader.ReadElementContentAsString();                              value = reader.ReadElementContentAsString();
78                                config.EmuOptions = (value == "") ? config.EmuOptions : value;
79                              logger.WriteLine("\tEMULATOROPTIONS={0}", config.EmuOptions);                              logger.WriteLine("\tEMULATOROPTIONS={0}", config.EmuOptions);
80                          }                          }
81                      }                      }
# Line 86  namespace EmuXPortal.Api Line 93  namespace EmuXPortal.Api
93              else { logger.WriteLine("Could not find EMU Config File: {0}", config_path); }              else { logger.WriteLine("Could not find EMU Config File: {0}", config_path); }
94              return config;              return config;
95          }          }
96            #endregion
97            #region parse emu options
98            public static string GetEMUOptions(IRomConfig config)
99            {
100                EMUOptions EMUOptions = new EMUOptions(config);
101                return EMUOptions.Options;
102            }
103            #endregion
104            #region private class EMUOptions
105            private class EMUOptions
106            {
107                private Dictionary<string, string> options_dict = new Dictionary<string, string>();
108                public EMUOptions(IRomConfig config)
109                {
110                    init_dict(config);
111                    string options = config.Config.EmuOptions;
112                    string real_options = options;
113                    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); } }
114                    Options = real_options;
115                }
116                private void init_dict(IRomConfig config)
117                {
118                    options_dict.Add("%ROM_FILE%", config.RomFile);
119                    options_dict.Add("%ROM_PATH%", config.Config.EmuRomPath);
120                }
121                public const string ROM_FILE = "%ROM_FILE%";
122                public string Options { get; set; }
123            }
124            #endregion
125    
126          #region private class EmuConfig : IEmuConfig          #region private class EmuConfig : IEmuConfig
127          private class EmuConfig : IEmuConfig          private class EmuConfig : IEmuConfig
128          {          {

Legend:
Removed from v.20  
changed lines
  Added in v.23

  ViewVC Help
Powered by ViewVC 1.1.22