public static void ExportAWCs(List <FileEntry> entries) { string selectedFolder = GUI.FolderSelection(); if (selectedFolder != null) { ProgressWindow progress = new ProgressWindow("Exporting", report => { int passed = 0; // Set the progress by the size of the file report = new SubProgressReport(report, entries.Sum(entry => entry.Data.GetSize())); foreach (FileEntry entry in entries) { using (AWCFile awc = new AWCFile(entry.Data.GetStream())) { awc.ExportWav(Path.Combine(selectedFolder, entry.Name), new SubProgressReport(report, passed, entry.Data.GetSize())); passed += entry.Data.GetSize(); } } }, true); try { progress.Run(); } catch (OperationCanceledException) { MessageBox.Show("Operation canceled."); } catch (Exception) { MessageBox.Show("Failed to open AWC, please report to the developer"); } } }
public static void ExportAWC(FileEntry entry) { string selectedFolder = GUI.FolderSelection(); if (selectedFolder != null) { try { using (AWCFile awc = new AWCFile(entry.Data.GetStream())) { ProgressWindow progress = new ProgressWindow("Exporting", report => awc.ExportWav(Path.Combine(selectedFolder, entry.Name), report), true); progress.Run(); } } catch (OperationCanceledException) { MessageBox.Show("Operation canceled."); } catch (Exception) { MessageBox.Show("Failed to open AWC, please report to the developer"); } } }