/// <summary> /// Use to enumerate Emulator files from known Emulator exes /// /// Searches for the emulator binary listed in the app.config /// </summary> /// <param name="directory"></param> /// <returns>Emulator count</returns> public static int EnumerateEmulators(string rootEmuDirectory) { string[] emulatorConsoleAssociations = new EmuManagerModel().EmulatorAssociations.Split(';'); int emulatorCount = 0; foreach (string association in emulatorConsoleAssociations) { try { // EX association: PS1:ePSXe.exe string emulator = association.Split(':')[1]; string[] files = System.IO.Directory.GetFiles(rootEmuDirectory, emulator, SearchOption.AllDirectories); emulatorCount += files.Length; } catch (NullReferenceException) { // This would mean an improperly formatted emulator association was present if hit continue; } } return(emulatorCount); }
/// <summary> /// Use to enumerate ROM files from known ROM file types /// /// Searches for the roms with extensions listed in the app.config /// </summary> /// <param name="rootRomDirectory"></param> /// <returns>ROM file count</returns> public static int EnumerateRomFiles(string rootRomDirectory) { var romExtensionsCSV = new EmuManagerModel().RomExtensions; string[] romExtensions = romExtensionsCSV.Split(','); int romCount = 0; foreach (string extension in romExtensions) { try { string[] files = System.IO.Directory.GetFiles(rootRomDirectory, "*." + extension, SearchOption.AllDirectories); romCount += files.Length; } catch (IOException) { // This would mean the emulator directory was set incorrectly or unreadable continue; } } return(romCount); }
private static void WriteShortcutFile(string shortcutText) { string steamDirectory = new EmuManagerModel().SteamDirectory; steamDirectory = steamDirectory + @"\userdata\"; foreach (var directory in Directory.EnumerateDirectories(steamDirectory)) { File.WriteAllText(directory + @"\config\shortcuts.vdf", shortcutText); } }
public EmuManagerViewModel() { EmuManagerModel = new EmuManagerModel(); LoadRomsAndEmulatorsCommand = new LoadRomsAndEmulatorsCommand(this); CleanRomNamesCommand = new CleanRomNamesCommand(this); CheckRomStreamingCompatibilityCommand = new CheckRomStreamingCompatibilityCommand(this); FixRomStreamingCompatibilityCommand = new FixRomStreamingCompatibilityCommand(this); CreateSteamShortcutsCommand = new CreateSteamShortcutsCommand(this); DeleteSteamShortcutsCommand = new DeleteSteamShortcutsCommand(this); }
/// <summary> /// Builds a EmulatorModel for every rom /// </summary> public static EmulatorModel[] GetEmulatorInformationFromDisk(string rootEmuDirectory) { EmulatorModel[] models = null; try { models = new EmulatorModel[EnumerateEmulators(rootEmuDirectory)]; } catch (DirectoryNotFoundException ex) { DebugManager.ShowErrorDialog("An error occured getting the emulator directory", ex); return(models); } string[] emulatorConsoleAssociations = new EmuManagerModel().EmulatorAssociations.Split(';'); int i = 0; foreach (string association in emulatorConsoleAssociations) { try { // EX association: PS1:ePSXe.exe string emulator = association.Split(':')[1]; string[] files = System.IO.Directory.GetFiles(rootEmuDirectory, emulator, SearchOption.AllDirectories); foreach (string file in files) { EmulatorModel model = new EmulatorModel(); model.BinaryPath = file; model.Console = association.Split(':')[0]; models[i] = model; i++; } } catch (NullReferenceException) { // This would mean an improperly formatted emulator association was present if hit continue; } catch (IOException) { // This would mean the emulator directory was set incorrectly or unreadable continue; } } return(models); }
public EmuManagerViewModel() { EmuManagerModel = new EmuManagerModel(); LoadRomsAndEmulatorsCommand = new LoadRomsAndEmulatorsCommand(this); CleanRomNamesCommand = new CleanRomNamesCommand(this); RevertRomStreamingCompatibilityCommand = new RevertRomStreamingCompatibilityCommand(this); FixRomStreamingCompatibilityCommand = new FixRomStreamingCompatibilityCommand(this); CreateSteamShortcutsCommand = new CreateSteamShortcutsCommand(this); DeleteSteamShortcutsCommand = new DeleteSteamShortcutsCommand(this); if (EmuManagerModel.AutoImportRoms) { LoadRomsAndEmulatorsAsync(false); } }
/// <summary> /// Use to enumerate ROM files from known ROM file types /// /// Searches for the roms with extensions listed in the app.config /// </summary> /// <param name="rootRomDirectory"></param> /// <returns>ROM file count</returns> public static int EnumerateRomFiles(string rootRomDirectory) { var romExtensionsCSV = new EmuManagerModel().RomExtensions; string[] romExtensions = romExtensionsCSV.Split(','); int romCount = 0; foreach (string extension in romExtensions) { string[] files = System.IO.Directory.GetFiles(rootRomDirectory, "*." + extension, SearchOption.AllDirectories); romCount += files.Length; } return(romCount); }
/// <summary> /// Builds a RomModel for every rom /// </summary> public static RomModel[] GetRomInformationFromDisk(string rootRomDirectory) { string consoleAliases = ConfigurationManager.AppSettings.Get("ConsoleAliases"); RomModel[] models = null; try { models = new RomModel[EnumerateRomFiles(rootRomDirectory)]; } catch (DirectoryNotFoundException ex) { DebugManager.ShowErrorDialog("An error occured getting the rom directory", ex); return(models); } string[] romExtensions = new EmuManagerModel().RomExtensions.Split(','); //TODO: We probably want to take a look at the nesting here int x = 0; try { foreach (string extension in romExtensions) { string[] files = System.IO.Directory.GetFiles(rootRomDirectory, "*." + extension, SearchOption.AllDirectories); for (int i = 0; i < files.Length; i++) { models[x] = PopulateRomModelFromRomPathRomFileName(files[i], consoleAliases); x++; } } } catch (NullReferenceException) { // This would mean an improperly formatted emulator association was present if hit } catch (IOException) { // This would mean the rom directory was set incorrectly or unreadable } return(models); }