示例#1
0
        private void addToFavoritesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ROMImage rom = ListROMs.SelectedItem as ROMImage;

            SystemSelectionForm.AddFavorite(rom);
            UpdateFavoritesMenu();
        }
示例#2
0
        public void LoadFavorites()
        {
            if (!File.Exists(FavoritesFile))
            {
                return;
            }

            FavoriteROMs.Clear();

            using (StreamReader reader = new StreamReader(FavoritesFile))
            {
                while (!reader.EndOfStream)
                {
                    string   line          = reader.ReadLine();
                    string[] systemAndGame = line.Split(',');
                    string   system        = systemAndGame[0].Trim();
                    string   game          = systemAndGame[1].Trim();

                    ROMImage rom = new ROMImage(game, GameSystems.Find(sys => sys.Name == system));
                    FavoriteROMs.Add(rom);
                }
            }

            UpdateFavoritesButton();
        }
示例#3
0
        private void LaunchSelectedGame()
        {
            ROMImage rom       = ListROMs.SelectedItem as ROMImage;
            string   romPath   = rom.System.ROMsFolder + "\\" + rom.Name;
            string   cmdParams = rom.System.EmulatorCommandLineParams;
            string   prefixes  = rom.System.EmulatorCommandLineParamsByExtension.Trim();
            string   prefix    = "";

            if (prefixes != "")
            {
                string[] extensionsAndPrefixes = prefixes.Trim().ToLower().Split('|');

                foreach (string extPrefixPair in extensionsAndPrefixes)
                {
                    string[] extPrefix = extPrefixPair.Trim().Split('=');
                    string   extension = extPrefix[0].Trim();
                    if (rom.Name.Trim().ToLower().EndsWith("." + extension))
                    {
                        prefix = extPrefix[1].Trim();
                        break;
                    }
                }
            }

            string commandLine = (cmdParams + " " + prefix + " \"" + romPath + "\"").Trim();

            ProcessStartInfo info = new ProcessStartInfo(rom.System.EmulatorPath, commandLine);

            info.WorkingDirectory = new FileInfo(rom.System.EmulatorPath).DirectoryName;
            Process.Start(info);
        }
示例#4
0
        private void UpdateImageBox()
        {
            ROMImage rom  = ListROMs.SelectedItem as ROMImage;
            FileInfo file = new FileInfo(rom.Name);
            string   png  = SystemSelectionForm.ScreenshotsFolder + "\\" + file.Name.Replace(file.Extension, ".png");
            string   jpg  = SystemSelectionForm.ScreenshotsFolder + "\\" + file.Name.Replace(file.Extension, ".jpg");
            string   bmp  = SystemSelectionForm.ScreenshotsFolder + "\\" + file.Name.Replace(file.Extension, ".bmp");

            if (File.Exists(png))
            {
                ImgGame.Image = Image.FromFile(png);
            }
            else if (File.Exists(jpg))
            {
                ImgGame.Image = Image.FromFile(jpg);
            }
            else if (File.Exists(bmp))
            {
                ImgGame.Image = Image.FromFile(bmp);
            }
            else
            {
                ImgGame.Image = null;
            }
        }
示例#5
0
        public void RemoveFavorite(ROMImage rom)
        {
            FavoriteROMs.Remove(FavoriteROMs.Find(fav => fav.Name == rom.Name && fav.System.Name == rom.System.Name));
            SaveFavorites();

            MessageBox.Show(
                rom.Name + " was removed from favorites.",
                "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

            UpdateFavoritesButton();
        }
示例#6
0
        public void AddFavorite(ROMImage rom)
        {
            FavoriteROMs.Add(rom);
            SaveFavorites();

            MessageBox.Show(
                rom.Name + " was added to favorites!",
                "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

            UpdateFavoritesButton();
        }
示例#7
0
        private void ListROMs_SelectedIndexChanged(object sender, EventArgs e)
        {
            ListBox  list = sender as ListBox;
            ROMImage rom  = list.SelectedItem as ROMImage;

            LblSystem.Text   = rom.System.Name;
            LblGameName.Text = StGameName.Text = rom.Name;
            UpdateImageBox();
            UpdateNote();
            UpdateFavoritesMenu();
        }
示例#8
0
        private void UpdateNote()
        {
            ROMImage rom  = ListROMs.SelectedItem as ROMImage;
            FileInfo file = new FileInfo(rom.Name);
            string   note = SystemSelectionForm.NotesFolder + "\\" + file.Name.Replace(file.Extension, ".txt");

            if (File.Exists(note))
            {
                TxtNote.Text = File.ReadAllText(note);
            }
            else
            {
                TxtNote.Text = "";
            }
        }
示例#9
0
        private void UpdateFavoritesMenu()
        {
            ROMImage rom = ListROMs.SelectedItem as ROMImage;

            if (SystemSelectionForm.HasFavorite(rom))
            {
                addToFavoritesToolStripMenuItem.Enabled      = false;
                removeFromFavoritesToolStripMenuItem.Enabled = true;
                StFavorite.Visible = true;
            }
            else
            {
                addToFavoritesToolStripMenuItem.Enabled      = true;
                removeFromFavoritesToolStripMenuItem.Enabled = false;
                StFavorite.Visible = false;
            }
        }
示例#10
0
        private void removeFromFavoritesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ROMImage rom = ListROMs.SelectedItem as ROMImage;

            SystemSelectionForm.RemoveFavorite(rom);
            UpdateFavoritesMenu();

            if (IsFavoriteSelection())
            {
                SystemSelectionForm.LoadFavorites();
                UpdateListBox();
                if (ListROMs.Items.Count == 0)
                {
                    Close();
                }
            }
        }
示例#11
0
        private void TxtNotes_MouseClick(object sender, MouseEventArgs e)
        {
            ROMImage        rom    = ListROMs.SelectedItem as ROMImage;
            ROMNoteEditForm form   = new ROMNoteEditForm(this, rom.Name, TxtNote.Text);
            DialogResult    result = form.ShowDialog();

            if (result == DialogResult.OK)
            {
                string   text = form.GetNote();
                FileInfo file = new FileInfo(rom.Name);
                string   note = SystemSelectionForm.NotesFolder + "\\" + file.Name.Replace(file.Extension, ".txt");

                if (text.Trim() == "")
                {
                    File.Delete(note);
                }
                else
                {
                    File.WriteAllText(note, text);
                }

                UpdateNote();
            }
        }
示例#12
0
 public bool HasFavorite(ROMImage rom)
 {
     return(FavoriteROMs.Find(r => r.Name == rom.Name && r.System.Name == rom.System.Name) != null);
 }
示例#13
0
        private void openROMFolderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ROMImage rom = ListROMs.SelectedItem as ROMImage;

            Process.Start(rom.System.ROMsFolder);
        }