Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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);
        }
Пример #5
0
        /// <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);
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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);
        }