private void DoDiscBuild(string dataDir, string ipBin, List <string> trackList, string outdir) { try { List <DiscTrack> tracks = _builder.BuildGDROM(dataDir, ipBin, trackList, outdir); Invoke(new Action(() => { string gdiPath = System.IO.Path.Combine(outdir, "disc.gdi"); if (System.IO.File.Exists(gdiPath)) { _builder.UpdateGdiFile(tracks, gdiPath); } ResultDialog rd = new ResultDialog(_builder.GetGDIText(tracks)); rd.ShowDialog(); Close(); })); } catch (Exception ex) { Invoke(new Action(() => { MessageBox.Show("Failed to build disc.\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Close(); })); } _worker = null; }
private void DoDiscBuild(string dataDir, string ipBin, List <string> trackList, string outdir) { try { List <DiscTrack> tracks = _builder.BuildGDROM(dataDir, ipBin, trackList, outdir); InvokeOnMainThread(new NSAction(() => { string gdiPath = System.IO.Path.Combine(outdir, "disc.gdi"); if (System.IO.File.Exists(gdiPath)) { _builder.UpdateGdiFile(tracks, gdiPath); } txtResult.Cell.Title = _builder.GetGDIText(tracks); NSApplication.SharedApplication.BeginSheet(winFinished, Window); })); } catch (Exception ex) { InvokeOnMainThread(new NSAction(() => { NSAlert.WithMessage("Error", "OK", null, null, "Failed to build disc.\n" + ex.Message).RunModal(); NSApplication.SharedApplication.Terminate(Window); })); } _worker = null; }
static void Main(string[] args) { if (args.Length < 3) { PrintUsage(); return; } string data = GetSoloArgument("-data", args); string ipBin = GetSoloArgument("-ip", args); List <string> outPath = GetMultiArgument("-output", args); List <string> cdda = GetMultiArgument("-cdda", args); string gdiPath = GetSoloArgument("-gdi", args); string volume = GetSoloArgument("-V", args); bool truncate = HasArgument("-truncate", args); bool fileOutput = false; if (CheckArguments(data, ipBin, outPath, cdda, truncate, out fileOutput) == false) { return; } GDromBuilder builder = new GDromBuilder(); builder.ReportProgress += ProgressReport; builder.RawMode = HasArgument("-raw", args); builder.TruncateData = truncate; if (volume != null) { builder.VolumeIdentifier = volume; } Console.Write("Writing"); List <DiscTrack> tracks = null; if (fileOutput) { builder.Track03Path = Path.GetFullPath(outPath[0]); if (outPath.Count == 2 && (cdda.Count > 0 || builder.TruncateData)) { builder.LastTrackPath = Path.GetFullPath(outPath[1]); } tracks = builder.BuildGDROM(data, ipBin, cdda); } else { tracks = builder.BuildGDROM(data, ipBin, cdda, outPath[0]); } Console.WriteLine(" Done!"); if (gdiPath != null) { builder.UpdateGdiFile(tracks, gdiPath); } else { Console.WriteLine(builder.GetGDIText(tracks)); } }