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

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

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

revision 27 by william, Wed Apr 4 03:38:07 2012 UTC revision 105 by william, Wed Aug 22 02:36:47 2012 UTC
# Line 4  using System.Linq; Line 4  using System.Linq;
4  using System.Text;  using System.Text;
5  using System.Drawing;  using System.Drawing;
6  using System.IO;  using System.IO;
7    using EmuXPortal.Logging;
8    
9  namespace EmuXPortal.Api  namespace EmuXPortal.Api
10  {  {
11      public interface IRomConfig      public interface IRomConfig : IDisposable
12      {      {
13          string RomFile { get; }          string RomFile { get; }
14          string RomTitle { get; }          string RomTitle { get; }
# Line 18  namespace EmuXPortal.Api Line 19  namespace EmuXPortal.Api
19      public static class RomLoader      public static class RomLoader
20      {      {
21          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
22          public static IRomConfig Load(string rom_file)          public static IRomConfig Load(string rom_file, IEmuConfig EMUConfig)
23          {          {
24              IRomConfig config = null;              IRomConfig config = null;
25              config = new RomConfig(rom_file);              config = new RomConfig(rom_file, EMUConfig);            
26              return config;              return config;
27          }          }
28          #region private class RomConfig : IRomConfig          #region private class RomConfig : IRomConfig
29          private class RomConfig : IRomConfig          private class RomConfig : IRomConfig, IDisposable
30          {          {
31              public RomConfig(string rom_file)              public RomConfig(string rom_file, IEmuConfig EMUConfig)
32              {              {
33                  FileInfo fi = new FileInfo(rom_file);                  FileInfo fi = new FileInfo(rom_file);
34                  this.RomFile =fi.FullName;                  this.RomFile =fi.FullName;
35                  this.RomTitle = fi.Name;                  this.RomTitle = EMUConfig.GameTitle == "" ? fi.Name : EMUConfig.GameTitle;                
36                  string rom_img = "";                  string rom_img = "";
37                  // load image                  // load image
38                  if (File.Exists(string.Format("{0}.jpg", fi.FullName.Replace(fi.Extension, "")))) { rom_img = string.Format("{0}.jpg", fi.FullName.Replace(fi.Extension, "")); }                  if (File.Exists(string.Format("{0}.jpg", fi.FullName.Replace(fi.Extension, "")))) { rom_img = string.Format("{0}.jpg", fi.FullName.Replace(fi.Extension, "")); }
39                  this.RomImage = (rom_img == "") ? Properties.Resources.DefaultGameImage : Image.FromFile(rom_img);                  try
40                  string config_dir = fi.Directory.Parent.FullName;                  {
41                  Config = EmuConfigLoader.Load(config_dir);                      this.RomImage = (rom_img == "") ? Properties.Resources.DefaultGameImage : Image.FromFile(rom_img);
42                    }
43                    catch (Exception ex)
44                    {
45                        logger.WriteLine("Error loading rom image: {1}{0}Error:{0}{2}", System.Environment.NewLine, (rom_img == "") ? "DefaultGameImage" : rom_img, ex.ToString());
46                        this.RomImage = Properties.Resources.DefaultGameImage;
47                    }
48    
49    
50                    if (EMUConfig.GameImage != string.Empty)
51                    {
52                        FileInfo fi_gameimage = new FileInfo(EMUConfig.GameImage);
53                        if (fi_gameimage.Exists) { this.RomImage = Image.FromFile(fi_gameimage.FullName); }
54                        else
55                        {
56                            FileInfo t = new FileInfo(EMUConfig.ConfigPath);
57                            string path = t.FullName.Replace(t.Name, "").Replace(t.Extension, "");
58                            string image_path = string.Format(@"{0}{1}", path, fi_gameimage.Name);
59                            FileInfo x = new FileInfo(image_path);
60                            if (x.Exists) { this.RomImage = Image.FromFile(x.FullName); }
61                            else
62                            {
63                                if (EMUConfig.GameExe != string.Empty)
64                                {
65                                    FileInfo fi_gamexe = new FileInfo(EMUConfig.GameExe);
66                                    path = fi_gamexe.FullName.Replace(fi_gamexe.Name, "").Replace(fi_gamexe.Extension, "");
67                                    image_path = string.Format(@"{0}{1}", path, fi_gameimage.Name);
68                                    x = new FileInfo(image_path);
69                                    if (x.Exists) { this.RomImage = Image.FromFile(x.FullName); }
70                                }
71                            }
72                        }
73                    }
74    
75    
76                    //string config_dir = fi.Directory.Parent.FullName;
77                    //Config = EmuConfigLoader.Load(config_dir);
78                    Config = EMUConfig;
79              }              }
80              #region IRomConfig Members              #region IRomConfig Members
81              public string RomFile { get; private set; }              public string RomFile { get; private set; }
# Line 45  namespace EmuXPortal.Api Line 83  namespace EmuXPortal.Api
83              public Image RomImage { get; private set; }              public Image RomImage { get; private set; }
84              public IEmuConfig Config { get; private set; }              public IEmuConfig Config { get; private set; }
85              #endregion              #endregion
86    
87                public void Dispose()
88                {
89                    if (this.RomImage != null)
90                        this.RomImage.Dispose();
91                }
92          }          }
93          #endregion          #endregion
94      }      }

Legend:
Removed from v.27  
changed lines
  Added in v.105

  ViewVC Help
Powered by ViewVC 1.1.22