//Format selected save private void formatSave(ImageList iconList, ListView cardList, int pos) { ps1card _memCard = null; switch (pos) { case 0: _memCard = _memCardLeft; break; case 1: _memCard = _memCardRight; break; } //Check if there are any cards available if (_memCard != null) { if (cardList.SelectedIndices.Count == 0) { return; } int slotNumber = cardList.SelectedIndices[0]; //Check the save type switch (_memCard.saveType[slotNumber]) { default: //Slot is either initial, deleted initial or corrupted so it can be safetly formatted if (DialogResult.Yes == FlexibleMessageBox.Show("Formatted slots cannot be restored.\nDo you want to proceed with this operation?", "Removing...", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { _memCard.formatSave(slotNumber); refreshListView(iconList, cardList, _memCard); } break; case 2: case 3: case 5: case 6: FlexibleMessageBox.Show("The selected slot is linked. Select the initial save slot to proceed.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); break; } } }
private void btGeneSearch_Click(object sender, EventArgs e) { if (null != slLogger) { slLogger.Trace(">> Search Game Click"); } String s = tbGeneSearchText.Text.Trim().ToUpper(); lbGeneBigData.Items.Clear(); lbGeneBigData.DisplayMember = "DisplayTitle"; tbHiddenLink.Text = ""; btScraper.Enabled = false; btScrapeImg.Enabled = false; btViewPage.Enabled = false; btLink.Enabled = false; _docHtmlStr = String.Empty; if (dcPs1Games.Count > 0) { if (s.Length >= 2) { foreach (KeyValuePair <string, ClPS1Game> pair in dcPs1Games) { ClPS1Game c1 = pair.Value; if (c1.Title.ToUpper().Contains(s)) { lbGeneBigData.Items.Add(c1); } } } else { FlexibleMessageBox.Show("You have to enter at least 2 characters (other than space) to search something.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { FlexibleMessageBox.Show("Error. Gamelist not loaded.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } if (null != slLogger) { slLogger.Trace("<< Search Game Click"); } }
private void btGenerateDB_Click(object sender, EventArgs e) { List <String> lsFilesOk = new List <string>(); List <String> lsFilesKo = new List <string>(); bool bOkForDB = false; try { if (0 == m_lcgs.Count) { List <ClGameStructure> lcgs = new List <ClGameStructure>(); ClDBManager cdbm1 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db"); addInListOrAnother(cdbm1.BDone, "empty.db", lsFilesOk, lsFilesKo); bOkForDB = cdbm1.BDone; ClDBManager cdbm = new ClDBManager(m_lcgs, m_sFolderPath, m_bsversion, m_cvh, slLogger); addInListOrAnother(cdbm.BDone, "regional.db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm.BDone; } else { int iInternalGamesCount = 20; // in a variable, in case changes one day int iCurrentIndex = 0; switch (m_SelectionDBCreation) { case 2: { int iMaxPage = (int)(nudMaxGamesPerFolder.Value); int iCountPageWanted = (int)(Math.Ceiling((decimal)((float)(iInternalGamesCount + m_lcgs.Count) / (float)iMaxPage))); int iFinalCountPerPage = (int)(Math.Ceiling((decimal)((float)(iInternalGamesCount + m_lcgs.Count) / (float)iCountPageWanted))); iFinalCountPerPage = Math.Max(iFinalCountPerPage, 20); // not less than 20 for (int i = 0; i < iCountPageWanted; i++) { int iNbGames = iFinalCountPerPage; if (0 == i) { iNbGames -= iInternalGamesCount; if (iNbGames < 0) { iNbGames = 0; } } List <ClGameStructure> lcgs = new List <ClGameStructure>(); ClDBManager cdbm20 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db"); addInListOrAnother(cdbm20.BDone, "empty.db", lsFilesOk, lsFilesKo); bOkForDB = cdbm20.BDone; for (int j = iCurrentIndex; j < Math.Min((iCurrentIndex + iNbGames), m_lcgs.Count); j++) { lcgs.Add(m_lcgs[j]); } if (0 == i) { ClDBManager cdbm2 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional.db", iCurrentIndex); addInListOrAnother(cdbm2.BDone, "regional.db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm2.BDone; } else { ClDBManager cdbm2 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional" + i.ToString() + ".db", iCurrentIndex); addInListOrAnother(cdbm2.BDone, "regional" + i.ToString() + ".db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm2.BDone; } iCurrentIndex += iNbGames; } } break; case 3: { int iMaxPage = (int)(nudMaxGamesPerFolder.Value); int iCountPageWanted = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)(iMaxPage)))); int iFinalCountPerPage = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)(iCountPageWanted)))); iFinalCountPerPage = Math.Max(iFinalCountPerPage, 20); // not less than 20 iCountPageWanted++; for (int i = 0; i < iCountPageWanted; i++) { int iNbGames = iFinalCountPerPage; List <ClGameStructure> lcgs = new List <ClGameStructure>(); if (0 == i) { ClDBManager cdbm30 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db"); addInListOrAnother(cdbm30.BDone, "empty.db", lsFilesOk, lsFilesKo); bOkForDB = cdbm30.BDone; ClDBManager cdbm31 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional.db"); addInListOrAnother(cdbm31.BDone, "regional.db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm31.BDone; } else { for (int j = iCurrentIndex; j < Math.Min((iCurrentIndex + iNbGames), m_lcgs.Count); j++) { lcgs.Add(m_lcgs[j]); } ClDBManager cdbm3 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional" + i.ToString() + ".db", iCurrentIndex); addInListOrAnother(cdbm3.BDone, "regional" + i.ToString() + ".db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm3.BDone; iCurrentIndex += iNbGames; } } } break; case 4: { int iMaxPage = (int)(nudMaxGamesPerFolder.Value); int iCountPageWanted = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)iMaxPage))); int iFinalCountPerPage = (int)(Math.Ceiling((decimal)((float)(m_lcgs.Count) / (float)iCountPageWanted))); iFinalCountPerPage = Math.Max(iFinalCountPerPage, 20); // not less than 20 for (int i = 0; i < iCountPageWanted; i++) { int iNbGames = iFinalCountPerPage; List <ClGameStructure> lcgs = new List <ClGameStructure>(); ClDBManager cdbm40 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db"); addInListOrAnother(cdbm40.BDone, "empty.db", lsFilesOk, lsFilesKo); bOkForDB = cdbm40.BDone; for (int j = iCurrentIndex; j < Math.Min((iCurrentIndex + iNbGames), m_lcgs.Count); j++) { lcgs.Add(m_lcgs[j]); } if (0 == i) { ClDBManager cdbm4 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional.db", iCurrentIndex); addInListOrAnother(cdbm4.BDone, "regional.db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm4.BDone; } else { ClDBManager cdbm4 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "regional" + i.ToString() + ".db", iCurrentIndex); addInListOrAnother(cdbm4.BDone, "regional" + i.ToString() + ".db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm4.BDone; } iCurrentIndex += iNbGames; } } break; case 5: { Form10 f = new Form10(m_lcgs, m_sFolderPath, m_bsversion, m_cvh, slLogger, this); f.ShowDialog(); } break; default: // also case 1: { List <ClGameStructure> lcgs = new List <ClGameStructure>(); ClDBManager cdbm1 = new ClDBManager(lcgs, m_sFolderPath, m_bsversion, slLogger, m_sFolderPath + m_cvh.DbFolder + "\\" + "empty.db"); addInListOrAnother(cdbm1.BDone, "empty.db", lsFilesOk, lsFilesKo); bOkForDB = cdbm1.BDone; ClDBManager cdbm = new ClDBManager(m_lcgs, m_sFolderPath, m_bsversion, m_cvh, slLogger); addInListOrAnother(cdbm.BDone, "regional.db", lsFilesOk, lsFilesKo); bOkForDB &= cdbm.BDone; } break; } if (bOkForDB) { if (m_SelectionDBCreation != 1) // already done if 1 { if (Constant.iBLEEMSYNC_V100 == m_bsversion) { // create the second db file ClDBManager.BleemSyncUI_AddDB(m_lcgs, m_sFolderPath, m_cvh, slLogger); } if (Constant.iAUTOBLEEM_V06 == m_bsversion) { // create the files for autobleem in order to prevent a scan at start ClDBManager.AutoBleem_CreateFiles(m_lcgs, m_sFolderPath, m_cvh, slLogger); } } } } } catch (Exception ex) { bOkForDB = false; slLogger.Fatal(ex.Message); } m_frmParent.bNeedRecreateDB = !bOkForDB; if (!bOkForDB) { String sMsg = "There is a problem during database creation"; if (lsFilesKo.Count > 0) { sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ko:"; foreach (String sFile in lsFilesKo) { sMsg += Environment.NewLine + " -> " + sFile; } } if (lsFilesOk.Count > 0) { sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ok:"; foreach (String sFile in lsFilesOk) { sMsg += Environment.NewLine + " -> " + sFile; } } FlexibleMessageBox.Show(sMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { String sMsg = "Database regenerated. Now you can properly unplug your usb drive and plug it in your PSC."; if (lsFilesOk.Count > 0) { sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ok:"; foreach (String sFile in lsFilesOk) { sMsg += Environment.NewLine + " -> " + sFile; } } if (lsFilesKo.Count > 0) { sMsg += Environment.NewLine + "---------------" + Environment.NewLine + "Files ko:"; foreach (String sFile in lsFilesKo) { sMsg += Environment.NewLine + " -> " + sFile; } } FlexibleMessageBox.Show(sMsg, "Job done", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void btSaveIni_Click(object sender, EventArgs e) { if (null != slLogger) { slLogger.Trace(">> Save Game.ini Click"); } String s1 = ClPbHelper.RemoveQuotes(tbGeneTitle.Text); // have to be not empty String s2 = ClPbHelper.RemoveQuotes(tbGeneDiscs.Text); // have to be not empty if ((!String.IsNullOrEmpty(s1)) && (!(String.IsNullOrEmpty(s2)))) { String s3 = ClPbHelper.RemoveQuotes(tbGenePublisher.Text); String s3_5 = ClPbHelper.RemoveQuotes(tbGeneDeveloper.Text); String s4 = ClPbHelper.RemoveQuotes(tbGeneAlphaTitle.Text); int i1 = (int)(nuGenePlayers.Value); int i2 = (int)(nuGeneYear.Value); if (!String.IsNullOrEmpty(_currentFilePathIni)) { String sFileName = _currentFilePathIni; try { Dictionary <String, String> dcTosave = new Dictionary <string, string>(); dcTosave.Add("title", s1); dcTosave.Add("discs", s2); dcTosave.Add("publisher", s3); dcTosave.Add("developer", s3_5); dcTosave.Add("alphatitle", s4); dcTosave.Add("players", i1.ToString()); dcTosave.Add("year", i2.ToString()); if (null != newGame) { dcTosave.Add("automation", newGame.ABautomation); dcTosave.Add("highres", newGame.ABhighres); dcTosave.Add("imagetype", newGame.ABimagetype); dcTosave.Add("memcard", newGame.ABmemcard); } ClPbHelper.SaveGameIni(sFileName, dcTosave, slLogger); _currentFilePathIni = sFileName; lbCurrentGameIniFile.Text = _currentFilePathIni; btSaveIni.Enabled = true; btReloadTitleDiscs.Enabled = true; btIniReload.Enabled = true; if (null == newGame) { newGame = new ClGameStructure("", true, true); } newGame.IniMissing = false; newGame.Title = s1; newGame.Discs = s2; newGame.Publisher = s3; newGame.Developer = s3_5; newGame.Alphatitle = s4; try { newGame.Players = i1.ToString(); } catch (Exception ex) { // } try { newGame.Year = i2.ToString(); } catch (Exception ex) { // } } catch (Exception ex) { if (null != slLogger) { slLogger.Fatal(ex.Message); } } } } else { FlexibleMessageBox.Show("You have to enter at least Title and Discs to continue...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } if (null != slLogger) { slLogger.Trace("<< Save Game.ini Click"); } }