From 888138e1af8d9ff6f140f51b6253bedbff065aaf Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 20 Apr 2019 21:30:39 +0100 Subject: [PATCH] Show more detailed status on sidecar creation. --- DiscImageChef.Core/Sidecar/BlockMedia.cs | 10 ++++++++++ DiscImageChef.Core/Sidecar/BlockTape.cs | 2 ++ DiscImageChef.Core/Sidecar/OpticalDisc.cs | 2 ++ DiscImageChef.Core/Sidecar/Sidecar.cs | 2 ++ 4 files changed, 16 insertions(+) diff --git a/DiscImageChef.Core/Sidecar/BlockMedia.cs b/DiscImageChef.Core/Sidecar/BlockMedia.cs index 183f0b0dc..b01a9ef06 100644 --- a/DiscImageChef.Core/Sidecar/BlockMedia.cs +++ b/DiscImageChef.Core/Sidecar/BlockMedia.cs @@ -96,6 +96,7 @@ namespace DiscImageChef.Core sidecar.BlockMedia[0].Sequence.TotalMedia = 1; } + UpdateStatus("Hashing media tags..."); foreach(MediaTagType tagType in image.Info.ReadableMediaTags) { if(aborted) return; @@ -289,6 +290,8 @@ namespace DiscImageChef.Core sidecar.BlockMedia[0].ContentChecksums = sidecar.BlockMedia[0].Checksums; else { + UpdateStatus("Hashing sectors..."); + Checksum contentChkWorker = new Checksum(); // For fast debugging, skip checksum @@ -431,6 +434,8 @@ namespace DiscImageChef.Core if(lstFs.Count > 0) sidecar.BlockMedia[0].FileSystemInformation[0].FileSystems = lstFs.ToArray(); } + UpdateStatus("Saving metadata..."); + if(image.Info.Cylinders > 0 && image.Info.Heads > 0 && image.Info.SectorsPerTrack > 0) { sidecar.BlockMedia[0].CylindersSpecified = true; @@ -591,6 +596,7 @@ namespace DiscImageChef.Core if(File.Exists(scpFilePath)) { + UpdateStatus("Hashing SuperCardPro image..."); SuperCardPro scpImage = new SuperCardPro(); ZZZNoFilter scpFilter = new ZZZNoFilter(); scpFilter.Open(scpFilePath); @@ -684,6 +690,8 @@ namespace DiscImageChef.Core if(kfFile != null) { + UpdateStatus("Hashing KryoFlux images..."); + KryoFlux kfImage = new KryoFlux(); ZZZNoFilter kfFilter = new ZZZNoFilter(); kfFilter.Open(kfFile); @@ -770,6 +778,8 @@ namespace DiscImageChef.Core try { dfiImage.Open(dfiFilter); } catch(NotImplementedException) { } + UpdateStatus("Hashing DiscFerret image..."); + if(image.Info.Heads == dfiImage.Info.Heads) if(dfiImage.Info.Cylinders >= image.Info.Cylinders) { diff --git a/DiscImageChef.Core/Sidecar/BlockTape.cs b/DiscImageChef.Core/Sidecar/BlockTape.cs index 3daa6c592..586fea1f6 100644 --- a/DiscImageChef.Core/Sidecar/BlockTape.cs +++ b/DiscImageChef.Core/Sidecar/BlockTape.cs @@ -84,6 +84,7 @@ namespace DiscImageChef.Core Checksum tapeWorker = new Checksum(); List tapeFiles = new List(); + UpdateStatus("Hashing files..."); for(int i = 0; i < files.Count; i++) { if(aborted) return sidecar; @@ -149,6 +150,7 @@ namespace DiscImageChef.Core EndProgress2(); } + UpdateStatus("Setting metadata..."); sidecar.BlockMedia[0].Checksums = tapeWorker.End().ToArray(); sidecar.BlockMedia[0].ContentChecksums = sidecar.BlockMedia[0].Checksums; sidecar.BlockMedia[0].Size = totalSize; diff --git a/DiscImageChef.Core/Sidecar/OpticalDisc.cs b/DiscImageChef.Core/Sidecar/OpticalDisc.cs index ee5288236..1aa2fecd2 100644 --- a/DiscImageChef.Core/Sidecar/OpticalDisc.cs +++ b/DiscImageChef.Core/Sidecar/OpticalDisc.cs @@ -98,6 +98,7 @@ namespace DiscImageChef.Core MediaType dskType = image.Info.MediaType; + UpdateStatus("Hashing media tags..."); foreach(MediaTagType tagType in image.Info.ReadableMediaTags) { if(aborted) return; @@ -366,6 +367,7 @@ namespace DiscImageChef.Core List partitions = Partitions.GetAll(image); Partitions.AddSchemesToStats(partitions); + UpdateStatus("Hashing tracks..."); foreach(Track trk in tracks) { if(aborted) diff --git a/DiscImageChef.Core/Sidecar/Sidecar.cs b/DiscImageChef.Core/Sidecar/Sidecar.cs index cbd9699a6..7f6013aac 100644 --- a/DiscImageChef.Core/Sidecar/Sidecar.cs +++ b/DiscImageChef.Core/Sidecar/Sidecar.cs @@ -94,6 +94,7 @@ namespace DiscImageChef.Core byte[] data; long position = 0; + UpdateStatus("Hashing image file..."); InitProgress(); while(position < fi.Length - 1048576) { @@ -161,6 +162,7 @@ namespace DiscImageChef.Core public void Abort() { + UpdateStatus("Aborting..."); aborted = true; } }