using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.IO; namespace EmuXPortal.Api { public interface IRomConfig { string RomFile { get; } string RomTitle { get; } Image RomImage { get; } IEmuConfig Config { get; } } public static class RomLoader { private const string EMU_CONFIG = "emu.config"; // if this file signifies the emulator configuration public static IRomConfig Load(string rom_file) { IRomConfig config = null; config = new RomConfig(rom_file); return config; } #region private class RomConfig : IRomConfig private class RomConfig : IRomConfig { public RomConfig(string rom_file) { FileInfo fi = new FileInfo(rom_file); this.RomFile =fi.FullName; this.RomTitle = fi.Name; string rom_img = ""; // load image if (File.Exists(string.Format("{0}.jpg", fi.FullName.Replace(fi.Extension, "")))) { rom_img = string.Format("{0}.jpg", fi.FullName.Replace(fi.Extension, "")); } this.RomImage = (rom_img == "") ? Properties.Resources.DefaultGameImage : Image.FromFile(rom_img); string config_dir = fi.Directory.Parent.FullName; Config = EmuConfigLoader.Load(config_dir); } #region IRomConfig Members public string RomFile { get; private set; } public string RomTitle { get; private set; } public Image RomImage { get; private set; } public IEmuConfig Config { get; private set; } #endregion } #endregion } }