Пример #1
0
 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;
 }
Пример #2
0
 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;
 }
Пример #3
0
        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));
            }
        }