* DiscImageChef.Metadata/DiskType.cs:

* DiscImageChef.Metadata/DiscImageChef.Metadata.csproj:
	  Added method to convert DiskType to disk type and subtype
	  strings.

	* DiscImageChef.DiscImages/CDRWin.cs:
	  Added extra track information.
	Corrected ReadLong for CD+G, subchannel should never come
	  along main channel on reading.

	* DiscImageChef.DiscImages/ImagePlugin.cs:
	  Added extra track information.
	Added audio media type.

	* DiscImageChef.DiscImages/Nero.cs:
	  Added extra track information.

	* DiscImageChef.DiscImages/ZZZRawImage.cs:
	  Added support for ReadLong and a single track and session
	  for optical discs.

	* DiscImageChef.Filesystems/FFS.cs:
	* DiscImageChef.Filesystems/BFS.cs:
	* DiscImageChef.Filesystems/ODS.cs:
	* DiscImageChef.Filesystems/SysV.cs:
	* DiscImageChef.Filesystems/extFS.cs:
	* DiscImageChef.Filesystems/ProDOS.cs:
	* DiscImageChef.Filesystems/ext2FS.cs:
	* DiscImageChef.Filesystems/LisaFS.cs:
	* DiscImageChef.Filesystems/MinixFS.cs:
	* DiscImageChef.Filesystems/UNIXBFS.cs:
	* DiscImageChef.Filesystems/AppleMFS.cs:
	* DiscImageChef.Filesystems/PCEngine.cs:
	* DiscImageChef.Filesystems/AppleHFS.cs:
	* DiscImageChef.Filesystems/AmigaDOS.cs:
	* DiscImageChef.Filesystems/AppleHFSPlus.cs:
	  Completed XML information.

	* DiscImageChef.Filesystems/ISO9660.cs:
	  Corrected fail in Sega CD IP.BIN decoding.
	Corrected IP.BIN date decoding.
	Trim spaces at end of Volume Descriptor string fields.
	Completed XML information.

	* DiscImageChef/Commands/Checksum.cs:
	  Checking memory usage on each step makes checksum
	  calculation abismally slower. Removed.

	* DiscImageChef/Main.cs:
	* DiscImageChef/Options.cs:
	* DiscImageChef/DiscImageChef.csproj:
	* DiscImageChef/Commands/CreateSidecar.cs:
	  Added method for creating CICM Metadata XML sidecar.
This commit is contained in:
2015-12-06 05:09:31 +00:00
parent 564775d3f7
commit 36e12eb1a7
31 changed files with 2354 additions and 125 deletions

View File

@@ -1,3 +1,15 @@
2015-12-06 Natalia Portillo <claunia@claunia.com>
* Commands/Checksum.cs:
Checking memory usage on each step makes checksum
calculation abismally slower. Removed.
* Main.cs:
* Options.cs:
* DiscImageChef.csproj:
* Commands/CreateSidecar.cs:
Added method for creating CICM Metadata XML sidecar.
2015-12-04 Natalia Portillo <claunia@claunia.com>
* Commands/MediaInfo.cs:

View File

@@ -77,8 +77,6 @@ namespace DiscImageChef.Commands
}
inputFormat.OpenImage(options.InputFile);
long maxMemory = GC.GetTotalMemory(false);
long snapMemory;
if (inputFormat.ImageInfo.imageHasPartitions)
{
@@ -303,10 +301,6 @@ namespace DiscImageChef.Commands
spamsumThread.Start(spamsumPkt);
}
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
while (adlerThread.IsAlive || crc16Thread.IsAlive ||
crc32Thread.IsAlive || crc64Thread.IsAlive ||
//fletcher16Thread.IsAlive || fletcher32Thread.IsAlive ||
@@ -330,10 +324,6 @@ namespace DiscImageChef.Commands
sha384Thread = new Thread(updateSHA384);
sha512Thread = new Thread(updateSHA512);
spamsumThread = new Thread(updateSpamSum);
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
}
}
@@ -511,10 +501,6 @@ namespace DiscImageChef.Commands
spamsumThread.Start(spamsumPkt);
}
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
while (adlerThread.IsAlive || crc16Thread.IsAlive ||
crc32Thread.IsAlive || crc64Thread.IsAlive ||
//fletcher16Thread.IsAlive || fletcher32Thread.IsAlive ||
@@ -538,10 +524,6 @@ namespace DiscImageChef.Commands
sha384Thread = new Thread(updateSHA384);
sha512Thread = new Thread(updateSHA512);
spamsumThread = new Thread(updateSpamSum);
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
}
if (options.SeparatedTracks)
@@ -612,10 +594,6 @@ namespace DiscImageChef.Commands
spamsumThread.Start(spamsumPktTrack);
}
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
while (adlerThread.IsAlive || crc16Thread.IsAlive ||
crc32Thread.IsAlive || crc64Thread.IsAlive ||
//fletcher16Thread.IsAlive || fletcher32Thread.IsAlive ||
@@ -639,10 +617,6 @@ namespace DiscImageChef.Commands
sha384Thread = new Thread(updateSHA384);
sha512Thread = new Thread(updateSHA512);
spamsumThread = new Thread(updateSpamSum);
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
}
}
@@ -756,10 +730,6 @@ namespace DiscImageChef.Commands
spamsumThread.Start(spamsumPkt);
}
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
while (adlerThread.IsAlive || crc16Thread.IsAlive ||
crc32Thread.IsAlive || crc64Thread.IsAlive ||
//fletcher16Thread.IsAlive || fletcher32Thread.IsAlive ||
@@ -783,10 +753,6 @@ namespace DiscImageChef.Commands
sha384Thread = new Thread(updateSHA384);
sha512Thread = new Thread(updateSHA512);
spamsumThread = new Thread(updateSpamSum);
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
}
}
@@ -1025,10 +991,6 @@ namespace DiscImageChef.Commands
spamsumThread.Start(spamsumPkt);
}
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
while (adlerThread.IsAlive || crc16Thread.IsAlive ||
crc32Thread.IsAlive || crc64Thread.IsAlive ||
//fletcher16Thread.IsAlive || fletcher32Thread.IsAlive ||
@@ -1052,10 +1014,6 @@ namespace DiscImageChef.Commands
sha384Thread = new Thread(updateSHA384);
sha512Thread = new Thread(updateSHA512);
spamsumThread = new Thread(updateSpamSum);
snapMemory = GC.GetTotalMemory(false);
if (snapMemory > maxMemory)
maxMemory = snapMemory;
}
DicConsole.WriteLine();
@@ -1087,8 +1045,6 @@ namespace DiscImageChef.Commands
if (options.DoSpamSum)
DicConsole.WriteLine("Disk's SpamSum: {0}", ssctx.End());
}
DicConsole.DebugWriteLine("Checksum command", "Maximum memory used has been {0} bytes", maxMemory);
}
#region Threading helpers

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,7 @@
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Main.cs" />
@@ -55,6 +56,7 @@
<Compile Include="Commands\Benchmark.cs">
<Gettext-ScanForTranslations>False</Gettext-ScanForTranslations>
</Compile>
<Compile Include="Commands\CreateSidecar.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
@@ -190,5 +192,9 @@
<Project>{CCAA7AFE-C094-4D82-A66D-630DE8A3F545}</Project>
<Name>DiscImageChef.Console</Name>
</ProjectReference>
<ProjectReference Include="..\DiscImageChef.Metadata\DiscImageChef.Metadata.csproj">
<Project>{9F213318-5CB8-4066-A757-074489C9F818}</Project>
<Name>DiscImageChef.Metadata</Name>
</ProjectReference>
</ItemGroup>
</Project>

View File

@@ -170,6 +170,14 @@ namespace DiscImageChef
DicConsole.VerboseWriteLineEvent += System.Console.WriteLine;
Commands.Benchmark.doBenchmark(BenchmarkOptions);
break;
case "create-sidecar":
CreateSidecarSubOptions CreateSidecarOptions = (CreateSidecarSubOptions)invokedVerbInstance;
if (CreateSidecarOptions.Debug)
DicConsole.DebugWriteLineEvent += System.Console.Error.WriteLine;
if (CreateSidecarOptions.Verbose)
DicConsole.VerboseWriteLineEvent += System.Console.WriteLine;
Commands.CreateSidecar.doSidecar(CreateSidecarOptions);
break;
default:
throw new ArgumentException("Should never arrive here!");
}

View File

@@ -245,6 +245,12 @@ namespace DiscImageChef
public int BufferSize { get; set; }
}
public class CreateSidecarSubOptions : CommonSubOptions
{
[Option('i', "input", Required = true, HelpText = "Disc image.")]
public string InputFile { get; set; }
}
public class Options
{
public Options()
@@ -259,7 +265,8 @@ namespace DiscImageChef
DecodeVerb = new DecodeSubOptions();
DeviceInfoVerb = new DeviceInfoSubOptions();
MediaInfoVerb = new MediaInfoSubOptions();
BenchmarkInfoVerb = new BenchmarkSubOptions();
BenchmarkVerb = new BenchmarkSubOptions();
CreateSidecarVerb = new CreateSidecarSubOptions();
}
[VerbOption("analyze", HelpText = "Analyzes a disc image and searches for partitions and/or filesystems.")]
@@ -293,7 +300,10 @@ namespace DiscImageChef
public MediaInfoSubOptions MediaInfoVerb { get; set; }
[VerbOption("benchmark", HelpText = "Benchmarks hashing and entropy calculation.")]
public BenchmarkSubOptions BenchmarkInfoVerb { get; set; }
public BenchmarkSubOptions BenchmarkVerb { get; set; }
[VerbOption("create-sidecar", HelpText = "Creates CICM Metadata XML sidecar.")]
public CreateSidecarSubOptions CreateSidecarVerb { get; set; }
[HelpVerbOption]
public string DoHelpForVerb(string verbName)