private void OpenSdCard(string path) { SdPath = path; if (SD != null) { SD.Dispose(); } GetAsyncProgress().QueueTask(progress => { progress.NewTask("Loading SD content"); /* wtf is this doing here? * if (SD != null) { * SongUpdateMutex.WaitOne(); * Platforms.Add(SD); * SongUpdateMutex.ReleaseMutex(); * } */ SD = PlatformRB2WiiCustomDLC.Instance.Create(SdPath, Game.Unknown, progress); progress.Progress(); if (RiiFS != null) { RiiFS.Stop(); } StartRiiFS(); RefreshRiiFS(); UpdateSongList(); progress.EndTask(); }); }
private void MenuFileClose_OnClick(object sender, EventArgs e) { PlatformData platform = (sender as ToolStripMenuItem).Tag as PlatformData; Progress.QueueTask(progress => { progress.NewTask("Closing " + platform.Platform.Name, 1); platform.Mutex.WaitOne(); SongUpdateMutex.WaitOne(); platform.Dispose(); Platforms.Remove(platform); progress.Progress(); SongUpdateMutex.ReleaseMutex(); platform.Mutex.ReleaseMutex(); RemovePlatform(platform); UpdatePlatformList(); progress.EndTask(); }); }
private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { try { foreach (PlatformData platform in Platforms) { platform.Dispose(); } } catch { } try { if (Storage != null) { Storage.Dispose(); } } catch { } try { if (SD != null) { SD.Dispose(); } } catch { } try { if (RiiFS != null) { RiiFS.Stop(); } } catch { } try { Console.SetOut(new StreamWriter(new MemoryStream())); if (LogStream != null) { LogStream.Close(); } } catch { } try { Configuration.Save(); DeleteTemporaryFiles(); } catch { } }