Merge branch 'dicformat'

This commit is contained in:
2018-01-26 22:47:30 +00:00
15 changed files with 5937 additions and 639 deletions

3
.gitmodules vendored
View File

@@ -1,3 +1,6 @@
[submodule "CICMMetadata"]
path = CICMMetadata
url = https://github.com/claunia/CICMMetadata
[submodule "cuetoolsnet"]
path = cuetoolsnet
url = https://github.com/claunia/cuetoolsnet.git

View File

@@ -86,6 +86,12 @@
</e>
<e p="DiscImageChef.Compression" t="IncludeRecursive">
<e p="AppleRle.cs" t="Include" />
<e p="CUETools.Codecs" t="Include">
<e p="CRC" t="Include" />
</e>
<e p="CUETools.Codecs.FLAKE" t="Include">
<e p="Properties" t="Include" />
</e>
<e p="DiscImageChef.Compression.csproj" t="IncludeRecursive" />
<e p="Properties" t="Include">
<e p="AssemblyInfo.cs" t="Include" />
@@ -423,6 +429,7 @@
<e p="DIM.cs" t="Include" />
<e p="DiscFerret.cs" t="Include" />
<e p="DiscImageChef.DiscImages.csproj" t="IncludeRecursive" />
<e p="DiscImageChef.cs" t="Include" />
<e p="DiscJuggler.cs" t="Include" />
<e p="DiskCopy42.cs" t="Include" />
<e p="DriDiskCopy.cs" t="Include" />
@@ -968,6 +975,64 @@
<e p="NEEDINFO.md" t="Include" />
<e p="README.md" t="Include" />
<e p="TODO.md" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioBuffer.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioDecoderClass.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioEncoderClass.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioEncoderSettings.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioPCMConfig.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioPipe.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/AudioSamples.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/BitReader.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/BitWriter.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CRC/CRC16.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CRC/CRC16CCITT.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CRC/CRC32.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CRC/CRC8.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CUEToolsCodecsConfig.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CUEToolsFormat.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CUEToolsTagger.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CUEToolsUDC.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CUEToolsUDCList.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CyclicBuffer.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CyclicBufferInputStream.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/CyclicBufferOutputStream.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/DefaultValueForMode.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/DummyWriter.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/IAudioDest.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/IAudioFilter.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/IAudioSource.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/IWavePlayer.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/LPC.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/LpcContext.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/NullStream.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/PlaybackState.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/SRDescriptionAttribute.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/SilenceGenerator.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/UserDefinedEncoderSettings.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/UserDefinedReader.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/UserDefinedWriter.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/WAVReader.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/WAVWriter.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs/WAVWriterSettings.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/ChannelMode.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/FlacFrame.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/FlacSubframe.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/FlacSubframeInfo.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/Flake.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/FlakeReader.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/FlakeWriter.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/MetadataType.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/OrderMethod.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/PredictionType.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/Properties/Resources.Designer.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/Properties/Resources.resx" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/Properties/Resources.ru-RU.resx" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/RiceContext.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/SeekPoint.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/StereoMethod.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/SubframeType.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/WindowFunction.cs" t="Include" />
<e p="cuetoolsnet/CUETools.Codecs.FLAKE/WindowMethod.cs" t="Include" />
<e p="packages" t="ExcludeRecursive" />
</e>
</component>

View File

@@ -3,5 +3,6 @@
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/CICMMetadata" vcs="Git" />
<mapping directory="$PROJECT_DIR$/cuetoolsnet" vcs="Git" />
</component>
</project>

File diff suppressed because it is too large Load Diff

View File

@@ -21,6 +21,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -30,6 +31,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -38,11 +40,185 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\ChannelMode.cs">
<Link>CUETools.Codecs.FLAKE/ChannelMode.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\FlacFrame.cs">
<Link>CUETools.Codecs.FLAKE/FlacFrame.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\FlacSubframe.cs">
<Link>CUETools.Codecs.FLAKE/FlacSubframe.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\FlacSubframeInfo.cs">
<Link>CUETools.Codecs.FLAKE/FlacSubframeInfo.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\Flake.cs">
<Link>CUETools.Codecs.FLAKE/Flake.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\FlakeReader.cs">
<Link>CUETools.Codecs.FLAKE/FlakeReader.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\FlakeWriter.cs">
<Link>CUETools.Codecs.FLAKE/FlakeWriter.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\MetadataType.cs">
<Link>CUETools.Codecs.FLAKE/MetadataType.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\OrderMethod.cs">
<Link>CUETools.Codecs.FLAKE/OrderMethod.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\PredictionType.cs">
<Link>CUETools.Codecs.FLAKE/PredictionType.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\Properties\Resources.Designer.cs">
<Link>CUETools.Codecs.FLAKE/Properties/Resources.Designer.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\RiceContext.cs">
<Link>CUETools.Codecs.FLAKE/RiceContext.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\SeekPoint.cs">
<Link>CUETools.Codecs.FLAKE/SeekPoint.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\StereoMethod.cs">
<Link>CUETools.Codecs.FLAKE/StereoMethod.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\SubframeType.cs">
<Link>CUETools.Codecs.FLAKE/SubframeType.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\WindowFunction.cs">
<Link>CUETools.Codecs.FLAKE/WindowFunction.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\WindowMethod.cs">
<Link>CUETools.Codecs.FLAKE/WindowMethod.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioBuffer.cs">
<Link>CUETools.Codecs/AudioBuffer.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioDecoderClass.cs">
<Link>CUETools.Codecs/AudioDecoderClass.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioEncoderClass.cs">
<Link>CUETools.Codecs/AudioEncoderClass.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioEncoderSettings.cs">
<Link>CUETools.Codecs/AudioEncoderSettings.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioPCMConfig.cs">
<Link>CUETools.Codecs/AudioPCMConfig.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioPipe.cs">
<Link>CUETools.Codecs/AudioPipe.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\AudioSamples.cs">
<Link>CUETools.Codecs/AudioSamples.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\BitReader.cs">
<Link>CUETools.Codecs/BitReader.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\BitWriter.cs">
<Link>CUETools.Codecs/BitWriter.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CRC\CRC16.cs">
<Link>CUETools.Codecs/CRC/CRC16.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CRC\CRC16CCITT.cs">
<Link>CUETools.Codecs/CRC/CRC16CCITT.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CRC\CRC32.cs">
<Link>CUETools.Codecs/CRC/CRC32.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CRC\CRC8.cs">
<Link>CUETools.Codecs/CRC/CRC8.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CUEToolsCodecsConfig.cs">
<Link>CUETools.Codecs/CUEToolsCodecsConfig.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CUEToolsFormat.cs">
<Link>CUETools.Codecs/CUEToolsFormat.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CUEToolsTagger.cs">
<Link>CUETools.Codecs/CUEToolsTagger.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CUEToolsUDC.cs">
<Link>CUETools.Codecs/CUEToolsUDC.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CUEToolsUDCList.cs">
<Link>CUETools.Codecs/CUEToolsUDCList.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CyclicBuffer.cs">
<Link>CUETools.Codecs/CyclicBuffer.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CyclicBufferInputStream.cs">
<Link>CUETools.Codecs/CyclicBufferInputStream.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\CyclicBufferOutputStream.cs">
<Link>CUETools.Codecs/CyclicBufferOutputStream.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\DefaultValueForMode.cs">
<Link>CUETools.Codecs/DefaultValueForMode.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\DummyWriter.cs">
<Link>CUETools.Codecs/DummyWriter.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\IAudioDest.cs">
<Link>CUETools.Codecs/IAudioDest.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\IAudioFilter.cs">
<Link>CUETools.Codecs/IAudioFilter.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\IAudioSource.cs">
<Link>CUETools.Codecs/IAudioSource.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\IWavePlayer.cs">
<Link>CUETools.Codecs/IWavePlayer.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\LPC.cs">
<Link>CUETools.Codecs/LPC.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\LpcContext.cs">
<Link>CUETools.Codecs/LpcContext.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\NullStream.cs">
<Link>CUETools.Codecs/NullStream.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\PlaybackState.cs">
<Link>CUETools.Codecs/PlaybackState.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\SilenceGenerator.cs">
<Link>CUETools.Codecs/SilenceGenerator.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\SRDescriptionAttribute.cs">
<Link>CUETools.Codecs/SRDescriptionAttribute.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\UserDefinedEncoderSettings.cs">
<Link>CUETools.Codecs/UserDefinedEncoderSettings.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\UserDefinedReader.cs">
<Link>CUETools.Codecs/UserDefinedReader.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\UserDefinedWriter.cs">
<Link>CUETools.Codecs/UserDefinedWriter.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\WAVReader.cs">
<Link>CUETools.Codecs/WAVReader.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\WAVWriter.cs">
<Link>CUETools.Codecs/WAVWriter.cs</Link>
</Compile>
<Compile Include="..\cuetoolsnet\CUETools.Codecs\WAVWriterSettings.cs">
<Link>CUETools.Codecs/WAVWriterSettings.cs</Link>
</Compile>
<Compile Include="AppleRle.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TeleDiskLzh.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\Properties\Resources.resx">
<Link>CUETools.Codecs.FLAKE/Properties/Resources.resx</Link>
</Content>
<Content Include="..\cuetoolsnet\CUETools.Codecs.FLAKE\Properties\Resources.ru-RU.resx">
<Link>CUETools.Codecs.FLAKE/Properties/Resources.ru-RU.resx</Link>
</Content>
<Content Include="..\LICENSE.LGPL">
<Link>LICENSE.LGPL</Link>
</Content>

View File

@@ -504,15 +504,10 @@ namespace DiscImageChef.Core
case CommonTypes.MediaType.CBM_1571:
trkFormat = "Commodore GCR";
break;
case CommonTypes.MediaType.SHARP_525:
case CommonTypes.MediaType.SHARP_525_9:
case CommonTypes.MediaType.SHARP_35: break;
case CommonTypes.MediaType.SHARP_35_9: break;
case CommonTypes.MediaType.ECMA_99_15:
case CommonTypes.MediaType.ECMA_99_26:
case CommonTypes.MediaType.ECMA_100:
case CommonTypes.MediaType.ECMA_125:
case CommonTypes.MediaType.ECMA_147:
case CommonTypes.MediaType.ECMA_99_8:
trkFormat = "ISO MFM";
break;

View File

@@ -115,7 +115,7 @@ namespace DiscImageChef.Decoders
/// <summary>
/// Converts this tag to Sony format
/// </summary>
public SonyTag Sony()
public SonyTag ToSony()
{
return new SonyTag
{

View File

@@ -54,6 +54,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="DiscFerret.cs" />
<Compile Include="DiscImageChef.cs" />
<Compile Include="Enums.cs" />
<Compile Include="Exceptions.cs" />
<Compile Include="HDCopy.cs" />

File diff suppressed because it is too large Load Diff

View File

@@ -37,20 +37,20 @@ namespace DiscImageChef.DiscImages
/// <summary>
/// Track (as partitioning element) types.
/// </summary>
public enum TrackType
public enum TrackType : byte
{
/// <summary>Audio track</summary>
Audio,
Audio = 0,
/// <summary>Data track (not any of the below defined ones)</summary>
Data,
Data = 1,
/// <summary>Data track, compact disc mode 1</summary>
CdMode1,
CdMode1 = 2,
/// <summary>Data track, compact disc mode 2, formless</summary>
CdMode2Formless,
CdMode2Formless = 3,
/// <summary>Data track, compact disc mode 2, form 1</summary>
CdMode2Form1,
CdMode2Form1 = 4,
/// <summary>Data track, compact disc mode 2, form 2</summary>
CdMode2Form2
CdMode2Form2 = 5
}
/// <summary>

View File

@@ -98,16 +98,11 @@ namespace DiscImageChef.Filesystems.CPM
case MediaType.NEC_525_HD:
case MediaType.NEC_35_HD_8:
case MediaType.NEC_35_HD_15:
case MediaType.SHARP_525:
case MediaType.SHARP_525_9:
case MediaType.SHARP_35:
case MediaType.SHARP_35_9:
case MediaType.ECMA_99_8:
case MediaType.ECMA_99_15:
case MediaType.ECMA_99_26:
case MediaType.ECMA_100:
case MediaType.ECMA_125:
case MediaType.ECMA_147:
case MediaType.ECMA_54:
case MediaType.ECMA_59:
case MediaType.ECMA_66:

View File

@@ -75,7 +75,6 @@ namespace DiscImageChef.Metadata
case CommonTypes.MediaType.ECMA_99_26:
case CommonTypes.MediaType.FDFORMAT_525_DD:
case CommonTypes.MediaType.FDFORMAT_525_HD:
case CommonTypes.MediaType.SHARP_525:
// According to ECMA-99 et al
dmns.Height = 133.3;
dmns.HeightSpecified = true;
@@ -101,14 +100,10 @@ namespace DiscImageChef.Metadata
case CommonTypes.MediaType.CBM_35_DD:
case CommonTypes.MediaType.CBM_AMIGA_35_DD:
case CommonTypes.MediaType.CBM_AMIGA_35_HD:
case CommonTypes.MediaType.ECMA_100:
case CommonTypes.MediaType.ECMA_125:
case CommonTypes.MediaType.ECMA_147:
case CommonTypes.MediaType.FDFORMAT_35_DD:
case CommonTypes.MediaType.FDFORMAT_35_HD:
case CommonTypes.MediaType.NEC_35_HD_8:
case CommonTypes.MediaType.NEC_35_HD_15:
case CommonTypes.MediaType.SHARP_35:
case CommonTypes.MediaType.Floptical:
case CommonTypes.MediaType.HiFD:
case CommonTypes.MediaType.UHD144:

View File

@@ -603,14 +603,6 @@ namespace DiscImageChef.Metadata
discType = "3.5\" floppy";
discSubType = "NEC triple-density";
break;
case CommonTypes.MediaType.SHARP_525:
discType = "5.25\" floppy";
discSubType = "Sharp";
break;
case CommonTypes.MediaType.SHARP_35:
discType = "3.5\" floppy";
discSubType = "Sharp";
break;
case CommonTypes.MediaType.SHARP_525_9:
discType = "5.25\" floppy";
discSubType = "Sharp (9 sectors per track)";
@@ -652,18 +644,6 @@ namespace DiscImageChef.Metadata
discType = "5.25\" floppy";
discSubType = "ECMA-99";
break;
case CommonTypes.MediaType.ECMA_100:
discType = "3.5\" floppy";
discSubType = "ECMA-99";
break;
case CommonTypes.MediaType.ECMA_125:
discType = "3.5\" floppy";
discSubType = "ECMA-125";
break;
case CommonTypes.MediaType.ECMA_147:
discType = "3.5\" floppy";
discSubType = "ECMA-147";
break;
case CommonTypes.MediaType.FDFORMAT_525_DD:
discType = "5.25\" floppy";
discSubType = "FDFORMAT double-density";

1
cuetoolsnet Submodule

Submodule cuetoolsnet added at 42adab0138

853
templates/dicformat.bt Normal file
View File

@@ -0,0 +1,853 @@
//------------------------------------------------
//--- 010 Editor v8.0.1 Binary Template
//
// File: dicformat.bt
// Authors: Natalia Portillo
// Version: 1.0
// Purpose: DiscImageChef format
// Category: Misc
// File Mask: *.dicf
// ID Bytes: 44 49 43 4D 46 52 4D 54 // DICMFRMT
// History:
// 1.0 2018-01-26 Natalia Portillo: Initial release
//------------------------------------------------
#define DIC_MAGIC 0x544D52464D434944
enum <uint> MediaType
{
Unknown = 0,
UnknownMO = 1,
GENERIC_HDD = 2,
Microdrive = 3,
Zone_HDD = 4,
FlashDrive = 5,
CD = 10,
CDDA = 11,
CDG = 12,
CDEG = 13,
CDI = 14,
CDROM = 15,
CDROMXA = 16,
CDPLUS = 17,
CDMO = 18,
CDR = 19,
CDRW = 20,
CDMRW = 21,
VCD = 22,
SVCD = 23,
PCD = 24,
SACD = 25,
DDCD = 26,
DDCDR = 27,
DDCDRW = 28,
DTSCD = 29,
CDMIDI = 30,
CDV = 31,
PD650 = 32,
PD650_WORM = 33,
DVDROM = 40,
DVDR = 41,
DVDRW = 42,
DVDPR = 43,
DVDPRW = 44,
DVDPRWDL = 45,
DVDRDL = 46,
DVDPRDL = 47,
DVDRAM = 48,
DVDRWDL = 49,
DVDDownload = 50,
HDDVDROM = 51,
HDDVDRAM = 52,
HDDVDR = 53,
HDDVDRW = 54,
HDDVDRDL = 55,
HDDVDRWDL = 56,
BDROM = 60,
BDR = 61,
BDRE = 62,
BDRXL = 63,
BDREXL = 64,
EVD = 70,
FVD = 71,
HVD = 72,
CBHD = 73,
HDVMD = 74,
VCDHD = 75,
SVOD = 76,
FDDVD = 77,
LD = 80,
LDROM = 81,
LDROM2 = 82,
LVROM = 83,
MegaLD = 84,
HiMD = 90,
MD = 91,
MDData = 92,
MDData2 = 93,
UDO = 100,
UDO2 = 101,
UDO2_WORM = 102,
PlayStationMemoryCard = 110,
PlayStationMemoryCard2 = 111,
PS1CD = 112,
PS2CD = 113,
PS2DVD = 114,
PS3DVD = 115,
PS3BD = 116,
PS4BD = 117,
UMD = 118,
XGD = 130,
XGD2 = 131,
XGD3 = 132,
XGD4 = 133,
MEGACD = 150,
SATURNCD = 151,
GDROM = 152,
GDR = 153,
SegaCard = 154,
HuCard = 170,
SuperCDROM2 = 171,
JaguarCD = 172,
ThreeDO = 173,
Apple32SS = 180,
Apple32DS = 181,
Apple33SS = 182,
Apple33DS = 183,
AppleSonySS = 184,
AppleSonyDS = 185,
AppleFileWare = 186,
DOS_525_SS_DD_8 = 190,
DOS_525_SS_DD_9 = 191,
DOS_525_DS_DD_8 = 192,
DOS_525_DS_DD_9 = 193,
DOS_525_HD = 194,
DOS_35_SS_DD_8 = 195,
DOS_35_SS_DD_9 = 196,
DOS_35_DS_DD_8 = 197,
DOS_35_DS_DD_9 = 198,
DOS_35_HD = 199,
DOS_35_ED = 200,
DMF = 201,
DMF_82 = 202,
XDF_525 = 203,
XDF_35 = 204,
IBM23FD = 210,
IBM33FD_128 = 211,
IBM33FD_256 = 212,
IBM33FD_512 = 213,
IBM43FD_128 = 214,
IBM43FD_256 = 215,
IBM53FD_256 = 216,
IBM53FD_512 = 217,
IBM53FD_1024 = 218,
RX01 = 220,
RX02 = 221,
RX03 = 222,
RX50 = 223,
ACORN_525_SS_SD_40 = 230,
ACORN_525_SS_SD_80 = 231,
ACORN_525_SS_DD_40 = 232,
ACORN_525_SS_DD_80 = 233,
ACORN_525_DS_DD = 234,
ACORN_35_DS_DD = 235,
ACORN_35_DS_HD = 236,
ATARI_525_SD = 240,
ATARI_525_ED = 241,
ATARI_525_DD = 242,
ATARI_35_SS_DD = 243,
ATARI_35_DS_DD = 244,
ATARI_35_SS_DD_11 = 245,
ATARI_35_DS_DD_11 = 246,
CBM_35_DD = 250,
CBM_AMIGA_35_DD = 251,
CBM_AMIGA_35_HD = 252,
CBM_1540 = 253,
CBM_1540_Ext = 254,
CBM_1571 = 255,
NEC_8_SD = 260,
NEC_8_DD = 261,
NEC_525_SS = 262,
NEC_525_DS = 263,
NEC_525_HD = 264,
NEC_35_HD_8 = 265,
NEC_35_HD_15 = 266,
NEC_35_TD = 267,
SHARP_525 = NEC_525_HD,
SHARP_525_9 = 268,
SHARP_35 = NEC_35_HD_8,
SHARP_35_9 = 269,
ECMA_99_8 = 270,
ECMA_99_15 = 271,
ECMA_99_26 = 272,
ECMA_100 = DOS_35_DS_DD_9,
ECMA_125 = DOS_35_HD,
ECMA_147 = DOS_35_ED,
ECMA_54 = 273,
ECMA_59 = 274,
ECMA_66 = 275,
ECMA_69_8 = 276,
ECMA_69_15 = 277,
ECMA_69_26 = 278,
ECMA_70 = 279,
ECMA_78 = 280,
ECMA_78_2 = 281,
FDFORMAT_525_DD = 290,
FDFORMAT_525_HD = 291,
FDFORMAT_35_DD = 292,
FDFORMAT_35_HD = 293,
Apricot_35 = 309,
ADR2120 = 310,
ADR260 = 311,
ADR30 = 312,
ADR50 = 313,
AIT1 = 320,
AIT1Turbo = 321,
AIT2 = 322,
AIT2Turbo = 323,
AIT3 = 324,
AIT3Ex = 325,
AIT3Turbo = 326,
AIT4 = 327,
AIT5 = 328,
AITETurbo = 329,
SAIT1 = 330,
SAIT2 = 331,
Bernoulli = 340,
Bernoulli2 = 341,
Ditto = 342,
DittoMax = 343,
Jaz = 344,
Jaz2 = 345,
PocketZip = 346,
REV120 = 347,
REV35 = 348,
REV70 = 349,
ZIP100 = 350,
ZIP250 = 351,
ZIP750 = 352,
CompactCassette = 360,
Data8 = 361,
MiniDV = 362,
CFast = 370,
CompactFlash = 371,
CompactFlashType2 = 372,
DigitalAudioTape = 380,
DAT160 = 381,
DAT320 = 382,
DAT72 = 383,
DDS1 = 384,
DDS2 = 385,
DDS3 = 386,
DDS4 = 387,
CompactTapeI = 390,
CompactTapeII = 391,
DECtapeII = 392,
DLTtapeIII = 393,
DLTtapeIIIxt = 394,
DLTtapeIV = 395,
DLTtapeS4 = 396,
SDLT1 = 397,
SDLT2 = 398,
VStapeI = 399,
Exatape15m = 400,
Exatape22m = 401,
Exatape22mAME = 402,
Exatape28m = 403,
Exatape40m = 404,
Exatape45m = 405,
Exatape54m = 406,
Exatape75m = 407,
Exatape76m = 408,
Exatape80m = 409,
Exatape106m = 410,
Exatape160mXL = 411,
Exatape112m = 412,
Exatape125m = 413,
Exatape150m = 414,
Exatape170m = 415,
Exatape225m = 416,
ExpressCard34 = 420,
ExpressCard54 = 421,
PCCardTypeI = 422,
PCCardTypeII = 423,
PCCardTypeIII = 424,
PCCardTypeIV = 425,
EZ135 = 430,
EZ230 = 431,
Quest = 432,
SparQ = 433,
SQ100 = 434,
SQ200 = 435,
SQ300 = 436,
SQ310 = 437,
SQ327 = 438,
SQ400 = 439,
SQ800 = 440,
SQ1500 = 441,
SQ2000 = 442,
SyJet = 443,
FamicomGamePak = 450,
GameBoyAdvanceGamePak = 451,
GameBoyGamePak = 452,
GOD = 453,
N64DD = 454,
N64GamePak = 455,
NESGamePak = 456,
Nintendo3DSGameCard = 457,
NintendoDiskCard = 458,
NintendoDSGameCard = 459,
NintendoDSiGameCard = 460,
SNESGamePak = 461,
SNESGamePakUS = 462,
WOD = 463,
WUOD = 464,
SwitchGameCard = 465,
IBM3470 = 470,
IBM3480 = 471,
IBM3490 = 472,
IBM3490E = 473,
IBM3592 = 474,
LTO = 480,
LTO2 = 481,
LTO3 = 482,
LTO3WORM = 483,
LTO4 = 484,
LTO4WORM = 485,
LTO5 = 486,
LTO5WORM = 487,
LTO6 = 488,
LTO6WORM = 489,
LTO7 = 490,
LTO7WORM = 491,
MemoryStick = 510,
MemoryStickDuo = 511,
MemoryStickMicro = 512,
MemoryStickPro = 513,
MemoryStickProDuo = 514,
microSD = 520,
miniSD = 521,
SecureDigital = 522,
MMC = 530,
MMCmicro = 531,
RSMMC = 532,
MMCplus = 533,
MMCmobile = 534,
MLR1 = 540,
MLR1SL = 541,
MLR3 = 542,
SLR1 = 543,
SLR2 = 544,
SLR3 = 545,
SLR32 = 546,
SLR32SL = 547,
SLR4 = 548,
SLR5 = 549,
SLR5SL = 550,
SLR6 = 551,
SLRtape7 = 552,
SLRtape7SL = 553,
SLRtape24 = 554,
SLRtape24SL = 555,
SLRtape40 = 556,
SLRtape50 = 557,
SLRtape60 = 558,
SLRtape75 = 559,
SLRtape100 = 560,
SLRtape140 = 561,
QIC11 = 570,
QIC120 = 571,
QIC1350 = 572,
QIC150 = 573,
QIC24 = 574,
QIC3010 = 575,
QIC3020 = 576,
QIC3080 = 577,
QIC3095 = 578,
QIC320 = 579,
QIC40 = 580,
QIC525 = 581,
QIC80 = 582,
STK4480 = 590,
STK4490 = 591,
STK9490 = 592,
T9840A = 593,
T9840B = 594,
T9840C = 595,
T9840D = 596,
T9940A = 597,
T9940B = 598,
T10000A = 599,
T10000B = 600,
T10000C = 601,
T10000D = 602,
Travan = 610,
Travan1Ex = 611,
Travan3 = 612,
Travan3Ex = 613,
Travan4 = 614,
Travan5 = 615,
Travan7 = 616,
VXA1 = 620,
VXA2 = 621,
VXA3 = 622,
ECMA_153 = 630,
ECMA_153_512 = 631,
ECMA_154 = 632,
ECMA_183_512 = 633,
ECMA_183 = 634,
ECMA_184_512 = 635,
ECMA_184 = 636,
ECMA_189 = 637,
ECMA_190 = 638,
ECMA_195 = 639,
ECMA_195_512 = 640,
ECMA_201 = 641,
ECMA_201_ROM = 642,
ECMA_223 = 643,
ECMA_223_512 = 644,
ECMA_238 = 645,
ECMA_239 = 646,
ECMA_260 = 647,
ECMA_260_Double = 648,
ECMA_280 = 649,
ECMA_317 = 650,
ECMA_322 = 651,
ECMA_322_2k = 652,
GigaMo = 653,
GigaMo2 = 654,
CompactFloppy = 660,
DemiDiskette = 661,
Floptical = 662,
HiFD = 663,
QuickDisk = 664,
UHD144 = 665,
VideoFloppy = 666,
Wafer = 667,
ZXMicrodrive = 668,
BeeCard = 670,
Borsu = 671,
DataStore = 672,
DIR = 673,
DST = 674,
DTF = 675,
DTF2 = 676,
Flextra3020 = 677,
Flextra3225 = 678,
HiTC1 = 679,
HiTC2 = 680,
LT1 = 681,
MiniCard = 872,
Orb = 683,
Orb5 = 684,
SmartMedia = 685,
xD = 686,
XQD = 687,
DataPlay = 688,
AppleProfile = 690,
AppleWidget = 691,
AppleHD20 = 692,
PriamDataTower = 693,
RA60 = 700,
RA80 = 701,
RA81 = 702,
RC25 = 703,
RD31 = 704,
RD32 = 705,
RD51 = 706,
RD52 = 707,
RD53 = 708,
RD54 = 709,
RK06 = 710,
RK06_18 = 711,
RK07 = 712,
RK07_18 = 713,
RM02 = 714,
RM03 = 715,
RM05 = 716,
RP02 = 717,
RP02_18 = 718,
RP03 = 719,
RP03_18 = 720,
RP04 = 721,
RP04_18 = 722,
RP05 = 723,
RP05_18 = 724,
RP06 = 725,
RP06_18 = 726,
LS120 = 730,
LS240 = 731,
FD32MB = 732,
RDX = 733,
RDX320 = 734,
};
enum <ushort> CompressionType
{
None = 0,
Lzma = 1,
Flac = 2
};
enum <ushort> DataType
{
NoData = 0,
UserData = 1,
CompactDiscPartialToc = 2,
CompactDiscSessionInfo = 3,
CompactDiscToc = 4,
CompactDiscPma = 5,
CompactDiscAtip = 6,
CompactDiscLeadInCdText = 7,
DvdPfi = 8,
DvdLeadInCmi = 9,
DvdDiscKey = 10,
DvdBca = 11,
DvdDmi = 12,
DvdMediaIdentifier = 13,
DvdMediaKeyBlock = 14,
DvdRamDds = 15,
DvdRamMediumStatus = 16,
DvdRamSpareArea = 17,
DvdRRmd = 18,
DvdRPrerecordedInfo = 19,
DvdRMediaIdentifier = 20,
DvdRPfi = 21,
DvdAdip = 22,
HdDvdCpi = 23,
HdDvdMediumStatus = 24,
DvdDlLayerCapacity = 25,
DvdDlMiddleZoneAddress = 26,
DvdDlJumpIntervalSize = 27,
DvdDlManualLayerJumpLba = 28,
BlurayDi = 29,
BlurayBca = 30,
BlurayDds = 31,
BlurayCartridgeStatus = 32,
BluraySpareArea = 33,
AacsVolumeIdentifier = 34,
AacsSerialNumber = 35,
AacsMediaIdentifier = 36,
AacsMediaKeyBlock = 37,
AacsDataKeys = 38,
AacsLbaExtents = 39,
CprmMediaKeyBlock = 40,
HybridRecognizedLayers = 41,
ScsiMmcWriteProtection = 42,
ScsiMmcDiscInformation = 43,
ScsiMmcTrackResourcesInformation = 44,
ScsiMmcPowResourcesInformation = 45,
ScsiInquiry = 46,
ScsiModePage2A = 47,
AtaIdentify = 48,
AtapiIdentify = 49,
PcmciaCis = 50,
SecureDigitalCid = 51,
SecureDigitalCsd = 52,
SecureDigitalScr = 53,
SecureDigitalOcr = 54,
MultiMediaCardCid = 55,
MultiMediaCardCsd = 56,
MultiMediaCardOcr = 57,
MultiMediaCardExtendedCsd = 58,
XboxSecuritySector = 59,
FloppyLeadOut = 60,
DvdDiscControlBlock = 61,
CompactDiscLeadIn = 62,
CompactDiscLeadOut = 63,
ScsiModeSense6 = 64,
ScsiModeSense10 = 65,
UsbDescriptors = 66,
XboxDmi = 67,
XboxPfi = 68,
CdSectorPrefix = 69,
CdSectorSuffix = 70,
CdSectorSubchannel = 71,
AppleProfileTag = 72,
AppleSonyTag = 73,
PriamDataTowerTag = 74
};
enum <uint> BlockType
{
DataBlock = 0x4B4C4244,
DeDuplicationTable = 0X2A544444,
Index = 0X58444E49,
GeometryBlock = 0x4D4F4547,
MetadataBlock = 0x4154454D,
TracksBlock = 0x534B5254,
CicmBlock = 0x4D434943,
ChecksumBlock = 0x4D534B43,
DataPositionMeasurementBlock = 0x2A4D5044,
SnapshotBlock = 0x50414E53,
ParentBlock = 0x50524E54,
DumpHardwareBlock = 0x2A504D44,
TapeFileBlock = 0x454C4654
};
enum <byte> TrackType
{
Audio = 0,
Data = 1,
CdMode1 = 2,
CdMode2Formless = 3,
CdMode2Form1 = 4,
CdMode2Form2 = 5
};
typedef struct
{
char identifier[8];
wchar_t application[32];
byte imageMajorVersion;
byte imageMinorVersion;
byte applicationMajorVersion;
byte applicationMinorVersion;
MediaType mediaType;
uint64 indexOffset;
FILETIME creationTime;
FILETIME lastWrittenTime;
} DicHeader;
typedef struct
{
BlockType identifier;
DataType type;
CompressionType compression;
byte shift;
uint64 entries;
uint64 cmpLength;
uint64 length;
uint64 cmpCrc64 <format=hex>;
uint64 crc64 <format=hex>;
} DdtHeader;
typedef struct
{
BlockType blockType;
DataType dataType;
uint64 offset;
} IndexEntry;
typedef struct
{
BlockType identifier;
ushort entries;
uint64 crc64 <format=hex>;
IndexEntry items[entries];
} Index;
typedef struct
{
BlockType identifier;
DataType type;
CompressionType compression;
uint sectorSize;
uint cmpLength;
uint length;
uint64 cmpCrc64 <format=hex>;
uint64 crc64 <format=hex>;
} BlockHeader;
typedef struct
{
BlockType identifier;
uint cylinders;
uint heads;
uint sectorsPerTrack;
} GeometryBlock;
typedef struct
{
BlockType identifier;
uint blockSize;
int mediaSequence;
int lastMediaSequence;
uint creatorOffset;
uint creatorLength;
uint commentsOffset;
uint commentsLength;
uint mediaTitleOffset;
uint mediaTitleLength;
uint mediaManufacturerOffset;
uint mediaManufacturerLength;
uint mediaModelOffset;
uint mediaModelLength;
uint mediaSerialNumberOffset;
uint mediaSerialNumberLength;
uint mediaBarcodeOffset;
uint mediaBarcodeLength;
uint mediaPartNumberOffset;
uint mediaPartNumberLength;
uint driveManufacturerOffset;
uint driveManufacturerLength;
uint driveModelOffset;
uint driveModelLength;
uint driveSerialNumberOffset;
uint driveSerialNumberLength;
uint driveFirmwareRevisionOffset;
uint driveFirmwareRevisionLength;
} MetadataBlock;
typedef struct
{
byte sequence;
TrackType type;
long start;
long end;
long pregap;
byte session;
char isrc[13];
byte flags;
} TrackEntry;
typedef struct
{
BlockType identifier;
ushort entries;
uint64 crc64;
TrackEntry tracks[entries];
} TracksHeader;
LittleEndian();
local int i;
Assert(ReadUInt64() == DIC_MAGIC, "Incorrect signature!");
DicHeader header;
FSeek(header.indexOffset);
Index index;
for(i = 0; i < index.entries; i++)
{
FSeek(index.items[i].offset);
switch(index.items[i].blockType)
{
case 0x4B4C4244:
BlockHeader dataBlock;
break;
case 0x2A544444:
DdtHeader deduplicationTable;
break;
case 0x4D4F4547:
GeometryBlock geometry;
break;
case 0x4154454D:
MetadataBlock metadata;
if(metadata.creatorOffset > 0)
{
FSeek(index.items[i].offset + metadata.creatorOffset);
wchar_t Creator[metadata.creatorLength / 2];
}
if(metadata.commentsOffset > 0)
{
FSeek(index.items[i].offset + metadata.commentsOffset);
wchar_t Comments[metadata.commentsLength / 2];
}
if(metadata.mediaTitleOffset > 0)
{
FSeek(index.items[i].offset + metadata.mediaTitleOffset);
wchar_t MediaTitle[metadata.mediaTitleLength / 2];
}
if(metadata.mediaManufacturerOffset > 0)
{
FSeek(index.items[i].offset + metadata.mediaManufacturerOffset);
wchar_t MediaManufacturer[metadata.mediaManufacturerLength / 2];
}
if(metadata.mediaModelOffset > 0)
{
FSeek(index.items[i].offset + metadata.mediaModelOffset);
wchar_t MediaModel[metadata.mediaModelLength / 2];
}
if(metadata.mediaSerialNumberOffset > 0)
{
FSeek(index.items[i].offset + metadata.mediaSerialNumberOffset);
wchar_t MediaSerialNumber[metadata.mediaSerialNumberLength / 2];
}
if(metadata.mediaBarcodeOffset > 0)
{
FSeek(index.items[i].offset + metadata.mediaBarcodeOffset);
wchar_t MediaBarcode[metadata.mediaBarcodeLength / 2];
}
if(metadata.mediaPartNumberOffset > 0)
{
FSeek(index.items[i].offset + metadata.mediaPartNumberOffset);
wchar_t MediaPartNumber[metadata.mediaPartNumberLength / 2];
}
if(metadata.driveManufacturerOffset > 0)
{
FSeek(index.items[i].offset + metadata.driveManufacturerOffset);
wchar_t DriveManufacturer[metadata.driveManufacturerLength / 2];
}
if(metadata.driveModelOffset > 0)
{
FSeek(index.items[i].offset + metadata.driveModelOffset);
wchar_t DriveModel[metadata.driveModelLength / 2];
}
if(metadata.driveSerialNumberOffset > 0)
{
FSeek(index.items[i].offset + metadata.driveSerialNumberOffset);
wchar_t DriveSerialNumber[metadata.driveSerialNumberLength / 2];
}
if(metadata.driveFirmwareRevisionOffset > 0)
{
FSeek(index.items[i].offset + metadata.driveFirmwareRevisionOffset);
wchar_t DriveFirmwareRevision[metadata.driveFirmwareRevisionLength / 2];
}
break;
case 0x534B5254:
TracksHeader tracks;
break;
}
}