mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Implement "dump-media" command in GUI.
This commit is contained in:
2
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
2
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
@@ -1597,6 +1597,8 @@
|
|||||||
<e p="Forms" t="Include">
|
<e p="Forms" t="Include">
|
||||||
<e p="frmConsole.xeto" t="Include" />
|
<e p="frmConsole.xeto" t="Include" />
|
||||||
<e p="frmConsole.xeto.cs" t="Include" />
|
<e p="frmConsole.xeto.cs" t="Include" />
|
||||||
|
<e p="frmDump.xeto" t="Include" />
|
||||||
|
<e p="frmDump.xeto.cs" t="Include" />
|
||||||
<e p="frmMain.xeto" t="Include" />
|
<e p="frmMain.xeto" t="Include" />
|
||||||
<e p="frmMain.xeto.cs" t="Include" />
|
<e p="frmMain.xeto.cs" t="Include" />
|
||||||
</e>
|
</e>
|
||||||
|
|||||||
@@ -18,280 +18,280 @@
|
|||||||
<NrtShowRevision>true</NrtShowRevision>
|
<NrtShowRevision>true</NrtShowRevision>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Claunia.Encoding" Version="1.6.1"/>
|
<PackageReference Include="Claunia.Encoding" Version="1.6.1" />
|
||||||
<PackageReference Include="Eto.Forms" Version="2.4.1"/>
|
<PackageReference Include="Eto.Forms" Version="2.4.1" />
|
||||||
<PackageReference Include="Eto.Serialization.Xaml" Version="2.4.1"/>
|
<PackageReference Include="Eto.Serialization.Xaml" Version="2.4.1" />
|
||||||
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.2.2-beta"/>
|
<PackageReference Include="Unclassified.NetRevisionTask" Version="0.2.2-beta" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\DiscImageChef.Core\DiscImageChef.Core.csproj"/>
|
<ProjectReference Include="..\DiscImageChef.Core\DiscImageChef.Core.csproj" />
|
||||||
<ProjectReference Include="..\DiscImageChef.Devices\DiscImageChef.Devices.csproj"/>
|
<ProjectReference Include="..\DiscImageChef.Devices\DiscImageChef.Devices.csproj" />
|
||||||
<ProjectReference Include="..\DiscImageChef.Checksums\DiscImageChef.Checksums.csproj"/>
|
<ProjectReference Include="..\DiscImageChef.Checksums\DiscImageChef.Checksums.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT1.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT1.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT1.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT1.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT1Turbo.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT1Turbo.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT1Turbo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT1Turbo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT2Turbo.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT2Turbo.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT2Turbo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT2Turbo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT3Ex.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT3Ex.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT3Ex.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT3Ex.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT3.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT3.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT3.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT3.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT3Turbo.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT3Turbo.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT3Turbo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT3Turbo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT4.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT4.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT4.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT4.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT5.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT5.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AIT5.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AIT5.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AITETurbo.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AITETurbo.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\AITETurbo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\AITETurbo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDRE.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDRE.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDRE.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDRE.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDREXL.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDREXL.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDREXL.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDREXL.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDR.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDR.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDR.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDR.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDRXL.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDRXL.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\BDRXL.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\BDRXL.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CD32.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CD32.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CD32.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CD32.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDDA.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDDA.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDDA.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDDA.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDEG.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDEG.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDEG.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDEG.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDG.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDG.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDI.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDI.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDIREADY.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDIREADY.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDIREADY.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDIREADY.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDI.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDI.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDMIDI.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDMIDI.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDMIDI.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDMIDI.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDPLUS.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDPLUS.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDPLUS.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDPLUS.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDROM2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDROM2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDROM2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDROM2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDR.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDR.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDR.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDR.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDRW.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDRW.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDRW.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDRW.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDTV.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDTV.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDTV.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDTV.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDV.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDV.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CDV.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CDV.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CompactCassette.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CompactCassette.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\CompactCassette.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\CompactCassette.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DAT160.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DAT160.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DAT160.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DAT160.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DAT320.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DAT320.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DAT320.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DAT320.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DAT72.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DAT72.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DAT72.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DAT72.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS1.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS1.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS1.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS1.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS3.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS3.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS3.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS3.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS4.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS4.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DDS4.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DDS4.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DigitalAudioTape.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DigitalAudioTape.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DigitalAudioTape.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DigitalAudioTape.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DittoMax.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DittoMax.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DittoMax.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DittoMax.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Ditto.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Ditto.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Ditto.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Ditto.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIII.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIII.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIII.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIII.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIIIxt.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIIIxt.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIIIxt.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIIIxt.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIV.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIV.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIV.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeIV.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeS4.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeS4.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeS4.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DLTtapeS4.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDDownload.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDDownload.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDDownload.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDDownload.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDPRDL.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDPRDL.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDPRDL.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDPRDL.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDPR.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDPR.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDPR.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDPR.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDPRW.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDPRW.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDPRW.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDPRW.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDRAM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDRAM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDRAM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDRAM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDR.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDR.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDR.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDR.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDRW.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDRW.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\DVDRW.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\DVDRW.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard34.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard34.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard34.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard34.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard54.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard54.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard54.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ExpressCard54.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\GDROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\GDROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\GDROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\GDROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\GDR.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\GDR.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\GDR.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\GDR.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\GOD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\GOD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\GOD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\GOD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRAM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRAM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRAM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRAM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRDL.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRDL.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRDL.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRDL.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDR.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDR.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDR.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDR.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRWDL.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRWDL.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRWDL.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRWDL.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRW.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRW.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRW.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\HDDVDRW.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\JaguarCD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\JaguarCD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\JaguarCD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\JaguarCD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Jaz2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Jaz2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Jaz2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Jaz2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Jaz.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Jaz.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Jaz.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Jaz.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LDROM2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LDROM2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LDROM2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LDROM2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LDROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LDROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LDROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LDROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO3.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO3.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO3.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO3.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO3WORM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO3WORM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO3WORM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO3WORM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO4.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO4.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO4.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO4.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO4WORM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO4WORM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO4WORM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO4WORM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO5.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO5.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO5.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO5.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO5WORM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO5WORM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO5WORM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO5WORM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO6.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO6.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO6.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO6.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO6WORM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO6WORM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO6WORM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO6WORM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO7.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO7.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO7.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO7.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO7WORM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO7WORM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO7WORM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO7WORM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LTO.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LTO.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LVROM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LVROM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\LVROM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\LVROM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MDData2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MDData2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MDData2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MDData2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MDData.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MDData.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MDData.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MDData.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MEGACD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MEGACD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MEGACD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MEGACD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MegaLD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MegaLD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MegaLD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MegaLD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickDuo.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickDuo.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickDuo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickDuo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickMicro.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickMicro.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickMicro.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickMicro.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStick.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStick.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickProDuo.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickProDuo.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickProDuo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickProDuo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickPro.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickPro.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickPro.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStickPro.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\MemoryStick.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\MemoryStick.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\miniSD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\miniSD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\miniSD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\miniSD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\NeoGeoCD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\NeoGeoCD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\NeoGeoCD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\NeoGeoCD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Nintendo3DSGameCard.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Nintendo3DSGameCard.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Nintendo3DSGameCard.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Nintendo3DSGameCard.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Nintendo_64_Logo.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Nintendo_64_Logo.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Nuon.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Nuon.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Nuon.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Nuon.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PCD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PCD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PCD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PCD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PCFX.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PCFX.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PCFX.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PCFX.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PD650.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PD650.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PD650.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PD650.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PD650_WORM.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PD650_WORM.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PD650_WORM.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PD650_WORM.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Pippin.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Pippin.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Pippin.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Pippin.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Playdia.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Playdia.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\Playdia.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\Playdia.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PlayStationMemoryCard.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PlayStationVitaGameCard.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PlayStationVitaGameCard.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PlayStationVitaGameCard.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PlayStationVitaGameCard.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PocketZip.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PocketZip.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PocketZip.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PocketZip.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS1CD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS1CD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS1CD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS1CD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS2CD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS2CD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS2CD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS2CD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS2DVD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS2DVD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS2DVD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS2DVD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS3BD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS3BD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS3BD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS3BD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS3DVD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS3DVD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS3DVD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS3DVD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS4BD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS4BD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\PS4BD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\PS4BD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SACD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SACD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SACD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SACD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SAIT1.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SAIT1.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SAIT1.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SAIT1.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SAIT2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SAIT2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SAIT2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SAIT2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SATURNCD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SATURNCD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SATURNCD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SATURNCD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SecureDigital.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SecureDigital.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SecureDigital.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SecureDigital.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SmartMedia.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SmartMedia.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SmartMedia.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SmartMedia.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SuperCDROM2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SuperCDROM2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SuperCDROM2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SuperCDROM2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SVCD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SVCD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SVCD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SVCD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SwitchGameCard.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SwitchGameCard.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\SwitchGameCard.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\SwitchGameCard.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ThreeDO.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ThreeDO.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ThreeDO.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ThreeDO.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\VCD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\VCD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\VCD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\VCD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\WOD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\WOD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\WOD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\WOD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\WUOD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\WUOD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\WUOD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\WUOD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD2.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD2.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD2.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD2.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD3.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD3.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD3.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD3.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD4.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD4.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD4.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD4.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\XGD.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\XGD.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ZIP100.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ZIP100.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ZIP100.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ZIP100.svg" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ZIP250.png"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ZIP250.png" />
|
||||||
<EmbeddedResource Include="Assets\Logos\Media\ZIP250.svg"/>
|
<EmbeddedResource Include="Assets\Logos\Media\ZIP250.svg" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
74
DiscImageChef.Gui/Forms/frmDump.xeto
Normal file
74
DiscImageChef.Gui/Forms/frmDump.xeto
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><!--
|
||||||
|
// /***************************************************************************
|
||||||
|
// The Disc Image Chef
|
||||||
|
// ============================================================================
|
||||||
|
//
|
||||||
|
// Filename : frmMain.xeto
|
||||||
|
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||||
|
//
|
||||||
|
// Component : Main window.
|
||||||
|
//
|
||||||
|
// ==[ Description ] ==========================================================
|
||||||
|
//
|
||||||
|
// Defines the structure for the main GUI window.
|
||||||
|
//
|
||||||
|
// ==[ License ] ==============================================================
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// ============================================================================
|
||||||
|
// Copyright © 2011-2018 Natalia Portillo
|
||||||
|
// ****************************************************************************/
|
||||||
|
-->
|
||||||
|
<Form xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
Title="DiscImageChef" ClientSize="600, 450" Padding="10">
|
||||||
|
<StackLayout Orientation="Vertical" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
|
||||||
|
<Label Text="Output format"/>
|
||||||
|
<ComboBox ID="cmbFormat" ReadOnly="True" SelectedIndexChanged="OnCmbFormatSelectedIndexChanged"/>
|
||||||
|
<StackLayout Orientation="Horizontal" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
|
||||||
|
<StackLayoutItem Expand="True">
|
||||||
|
<TextBox ID="txtDestination" ReadOnly="True"/>
|
||||||
|
</StackLayoutItem>
|
||||||
|
<Button ID="btnDestination" Text="Choose..." Click="OnBtnDestinationClick" Enabled="False"/>
|
||||||
|
</StackLayout>
|
||||||
|
<CheckBox ID="chkStopOnError" Text="Stop media dump on first error"/>
|
||||||
|
<CheckBox ID="chkForce" Text="Continue dumping whatever happens"/>
|
||||||
|
<StackLayout Orientation="Horizontal" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
|
||||||
|
<NumericStepper ID="stpRetries" MinValue="0"/>
|
||||||
|
<Label Text="Retry passes"/>
|
||||||
|
</StackLayout>
|
||||||
|
<CheckBox ID="chkPersistent" Text="Try to recover partial or incorrect data"/>
|
||||||
|
<CheckBox ID="chkResume" Text="Create/use resume mapfile" CheckedChanged="OnChkResumeCheckedChanged"/>
|
||||||
|
<CheckBox ID="chkTrack1Pregap" Text="Try to read track 1 pregap"/>
|
||||||
|
<StackLayout Orientation="Horizontal" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
|
||||||
|
<NumericStepper ID="stpSkipped" MinValue="1"/>
|
||||||
|
<Label Text="Skipped sectors on error"/>
|
||||||
|
</StackLayout>
|
||||||
|
<CheckBox ID="chkSidecar" Text="Create CICM XML metadata sidecar" CheckedChanged="OnChkSidecarCheckedChanged"/>
|
||||||
|
<CheckBox ID="chkTrim" Text="Trim errors from skipped sectors"/>
|
||||||
|
<CheckBox ID="chkExistingMetadata" Text="Take metadata from existing CICM XML sidecar"
|
||||||
|
CheckedChanged="OnChkExistingMetadataCheckedChanged"/>
|
||||||
|
<Label ID="lblEncoding" Text="Encoding to use on metadata sidecar creation"/>
|
||||||
|
<ComboBox ID="cmbEncoding" ReadOnly="True"/>
|
||||||
|
<GroupBox ID="grpOptions" Text="Options" Visible="False"/>
|
||||||
|
<StackLayout Orientation="Horizontal">
|
||||||
|
<StackLayoutItem HorizontalAlignment="Right">
|
||||||
|
<Button ID="btnCancel" Click="OnBtnCancelClick" Text="Cancel"/>
|
||||||
|
</StackLayoutItem>
|
||||||
|
<StackLayoutItem HorizontalAlignment="Right">
|
||||||
|
<Button ID="btnDump" Click="OnBtnDumpClick" Text="Dump"/>
|
||||||
|
</StackLayoutItem>
|
||||||
|
</StackLayout>
|
||||||
|
</StackLayout>
|
||||||
|
</Form>
|
||||||
534
DiscImageChef.Gui/Forms/frmDump.xeto.cs
Normal file
534
DiscImageChef.Gui/Forms/frmDump.xeto.cs
Normal file
@@ -0,0 +1,534 @@
|
|||||||
|
// /***************************************************************************
|
||||||
|
// The Disc Image Chef
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Filename : frmMain.xeto.cs
|
||||||
|
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
||||||
|
//
|
||||||
|
// Component : Main window.
|
||||||
|
//
|
||||||
|
// --[ Description ] ----------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Implements main GUI window.
|
||||||
|
//
|
||||||
|
// --[ License ] --------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Copyright © 2011-2018 Natalia Portillo
|
||||||
|
// ****************************************************************************/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
using DiscImageChef.CommonTypes;
|
||||||
|
using DiscImageChef.CommonTypes.Interfaces;
|
||||||
|
using DiscImageChef.CommonTypes.Metadata;
|
||||||
|
using DiscImageChef.Core;
|
||||||
|
using DiscImageChef.Core.Devices.Dumping;
|
||||||
|
using DiscImageChef.Core.Logging;
|
||||||
|
using DiscImageChef.Core.Media.Info;
|
||||||
|
using DiscImageChef.Devices;
|
||||||
|
using Eto.Forms;
|
||||||
|
using Eto.Serialization.Xaml;
|
||||||
|
using Schemas;
|
||||||
|
using DeviceInfo = DiscImageChef.Core.Devices.Info.DeviceInfo;
|
||||||
|
using MediaType = DiscImageChef.CommonTypes.MediaType;
|
||||||
|
|
||||||
|
namespace DiscImageChef.Gui.Forms
|
||||||
|
{
|
||||||
|
public class frmDump : Form
|
||||||
|
{
|
||||||
|
string devicePath;
|
||||||
|
string outputPrefix;
|
||||||
|
Resume resume;
|
||||||
|
CICMMetadataType sidecar;
|
||||||
|
|
||||||
|
public frmDump(string devicePath, DeviceInfo deviceInfo, ScsiInfo scsiInfo = null)
|
||||||
|
{
|
||||||
|
MediaType mediaType;
|
||||||
|
XamlReader.Load(this);
|
||||||
|
|
||||||
|
// Defaults
|
||||||
|
chkStopOnError.Checked = false;
|
||||||
|
chkForce.Checked = false;
|
||||||
|
chkPersistent.Checked = true;
|
||||||
|
chkResume.Checked = true;
|
||||||
|
chkTrack1Pregap.Checked = false;
|
||||||
|
chkSidecar.Checked = true;
|
||||||
|
chkTrim.Checked = true;
|
||||||
|
chkExistingMetadata.Checked = false;
|
||||||
|
stpRetries.Value = 5;
|
||||||
|
stpSkipped.Value = 512;
|
||||||
|
|
||||||
|
if(scsiInfo != null) mediaType = scsiInfo.MediaType;
|
||||||
|
else
|
||||||
|
switch(deviceInfo.Type)
|
||||||
|
{
|
||||||
|
case DeviceType.SecureDigital:
|
||||||
|
mediaType = MediaType.SecureDigital;
|
||||||
|
break;
|
||||||
|
case DeviceType.MMC:
|
||||||
|
mediaType = MediaType.MMC;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if(deviceInfo.IsPcmcia) mediaType = MediaType.PCCardTypeII;
|
||||||
|
else if(deviceInfo.IsCompactFlash) mediaType = MediaType.CompactFlash;
|
||||||
|
else mediaType = MediaType.GENERIC_HDD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ObservableCollection<IWritableImage> lstPlugins = new ObservableCollection<IWritableImage>();
|
||||||
|
PluginBase plugins = GetPluginBase.Instance;
|
||||||
|
foreach(IWritableImage plugin in
|
||||||
|
plugins.WritableImages.Values.Where(p => p.SupportedMediaTypes.Contains(mediaType)))
|
||||||
|
lstPlugins.Add(plugin);
|
||||||
|
cmbFormat.ItemTextBinding = Binding.Property((IWritableImage p) => p.Name);
|
||||||
|
cmbFormat.ItemKeyBinding = Binding.Property((IWritableImage p) => p.Id.ToString());
|
||||||
|
cmbFormat.DataStore = lstPlugins;
|
||||||
|
|
||||||
|
List<CommonEncodingInfo> encodings = Encoding
|
||||||
|
.GetEncodings().Select(info => new CommonEncodingInfo
|
||||||
|
{
|
||||||
|
Name = info.Name,
|
||||||
|
DisplayName =
|
||||||
|
info.GetEncoding().EncodingName
|
||||||
|
}).ToList();
|
||||||
|
encodings.AddRange(Claunia.Encoding.Encoding.GetEncodings()
|
||||||
|
.Select(info => new CommonEncodingInfo
|
||||||
|
{
|
||||||
|
Name = info.Name, DisplayName = info.DisplayName
|
||||||
|
}));
|
||||||
|
|
||||||
|
ObservableCollection<CommonEncodingInfo> lstEncodings = new ObservableCollection<CommonEncodingInfo>();
|
||||||
|
foreach(CommonEncodingInfo info in encodings.OrderBy(t => t.DisplayName)) lstEncodings.Add(info);
|
||||||
|
cmbEncoding.ItemTextBinding = Binding.Property((CommonEncodingInfo p) => p.DisplayName);
|
||||||
|
cmbEncoding.ItemKeyBinding = Binding.Property((CommonEncodingInfo p) => p.Name);
|
||||||
|
cmbEncoding.DataStore = lstEncodings;
|
||||||
|
|
||||||
|
switch(mediaType)
|
||||||
|
{
|
||||||
|
case MediaType.CD:
|
||||||
|
case MediaType.CDDA:
|
||||||
|
case MediaType.CDG:
|
||||||
|
case MediaType.CDEG:
|
||||||
|
case MediaType.CDI:
|
||||||
|
case MediaType.CDROM:
|
||||||
|
case MediaType.CDROMXA:
|
||||||
|
case MediaType.CDPLUS:
|
||||||
|
case MediaType.CDMO:
|
||||||
|
case MediaType.CDR:
|
||||||
|
case MediaType.CDRW:
|
||||||
|
case MediaType.CDMRW:
|
||||||
|
case MediaType.VCD:
|
||||||
|
case MediaType.SVCD:
|
||||||
|
case MediaType.PCD:
|
||||||
|
case MediaType.DDCD:
|
||||||
|
case MediaType.DDCDR:
|
||||||
|
case MediaType.DDCDRW:
|
||||||
|
case MediaType.DTSCD:
|
||||||
|
case MediaType.CDMIDI:
|
||||||
|
case MediaType.CDV:
|
||||||
|
case MediaType.CDIREADY:
|
||||||
|
case MediaType.FMTOWNS:
|
||||||
|
case MediaType.PS1CD:
|
||||||
|
case MediaType.PS2CD:
|
||||||
|
case MediaType.MEGACD:
|
||||||
|
case MediaType.SATURNCD:
|
||||||
|
case MediaType.GDROM:
|
||||||
|
case MediaType.GDR:
|
||||||
|
case MediaType.MilCD:
|
||||||
|
case MediaType.SuperCDROM2:
|
||||||
|
case MediaType.JaguarCD:
|
||||||
|
case MediaType.ThreeDO:
|
||||||
|
case MediaType.PCFX:
|
||||||
|
case MediaType.NeoGeoCD:
|
||||||
|
case MediaType.CDTV:
|
||||||
|
case MediaType.CD32:
|
||||||
|
case MediaType.Playdia:
|
||||||
|
case MediaType.Pippin:
|
||||||
|
chkTrack1Pregap.Visible = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
chkTrack1Pregap.Visible = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.devicePath = devicePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnCmbFormatSelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
txtDestination.Text = "";
|
||||||
|
|
||||||
|
if(!(cmbFormat.SelectedValue is IWritableImage plugin))
|
||||||
|
{
|
||||||
|
grpOptions.Visible = false;
|
||||||
|
btnDestination.Enabled = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
btnDestination.Enabled = true;
|
||||||
|
|
||||||
|
if(!plugin.SupportedOptions.Any())
|
||||||
|
{
|
||||||
|
grpOptions.Content = null;
|
||||||
|
grpOptions.Visible = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
grpOptions.Visible = true;
|
||||||
|
|
||||||
|
StackLayout stkOptions = new StackLayout {Orientation = Orientation.Vertical};
|
||||||
|
|
||||||
|
foreach((string name, Type type, string description, object @default) option in plugin.SupportedOptions)
|
||||||
|
switch(option.type.ToString())
|
||||||
|
{
|
||||||
|
case "System.Boolean":
|
||||||
|
CheckBox optBoolean = new CheckBox();
|
||||||
|
optBoolean.ID = "opt" + option.name;
|
||||||
|
optBoolean.Text = option.description;
|
||||||
|
optBoolean.Checked = (bool)option.@default;
|
||||||
|
stkOptions.Items.Add(optBoolean);
|
||||||
|
break;
|
||||||
|
case "System.SByte":
|
||||||
|
case "System.Int16":
|
||||||
|
case "System.Int32":
|
||||||
|
case "System.Int64":
|
||||||
|
StackLayout stkNumber = new StackLayout();
|
||||||
|
stkNumber.Orientation = Orientation.Horizontal;
|
||||||
|
NumericStepper optNumber = new NumericStepper();
|
||||||
|
optNumber.ID = "opt" + option.name;
|
||||||
|
optNumber.Value = Convert.ToDouble(option.@default);
|
||||||
|
stkNumber.Items.Add(optNumber);
|
||||||
|
Label lblNumber = new Label();
|
||||||
|
lblNumber.Text = option.description;
|
||||||
|
stkNumber.Items.Add(lblNumber);
|
||||||
|
stkOptions.Items.Add(stkNumber);
|
||||||
|
break;
|
||||||
|
case "System.Byte":
|
||||||
|
case "System.UInt16":
|
||||||
|
case "System.UInt32":
|
||||||
|
case "System.UInt64":
|
||||||
|
StackLayout stkUnsigned = new StackLayout();
|
||||||
|
stkUnsigned.Orientation = Orientation.Horizontal;
|
||||||
|
NumericStepper optUnsigned = new NumericStepper();
|
||||||
|
optUnsigned.ID = "opt" + option.name;
|
||||||
|
optUnsigned.MinValue = 0;
|
||||||
|
optUnsigned.Value = Convert.ToDouble(option.@default);
|
||||||
|
stkUnsigned.Items.Add(optUnsigned);
|
||||||
|
Label lblUnsigned = new Label();
|
||||||
|
lblUnsigned.Text = option.description;
|
||||||
|
stkUnsigned.Items.Add(lblUnsigned);
|
||||||
|
stkOptions.Items.Add(stkUnsigned);
|
||||||
|
break;
|
||||||
|
case "System.Single":
|
||||||
|
case "System.Double":
|
||||||
|
StackLayout stkFloat = new StackLayout();
|
||||||
|
stkFloat.Orientation = Orientation.Horizontal;
|
||||||
|
NumericStepper optFloat = new NumericStepper();
|
||||||
|
optFloat.ID = "opt" + option.name;
|
||||||
|
optFloat.DecimalPlaces = 2;
|
||||||
|
optFloat.Value = Convert.ToDouble(option.@default);
|
||||||
|
stkFloat.Items.Add(optFloat);
|
||||||
|
Label lblFloat = new Label();
|
||||||
|
lblFloat.Text = option.description;
|
||||||
|
stkFloat.Items.Add(lblFloat);
|
||||||
|
stkOptions.Items.Add(stkFloat);
|
||||||
|
break;
|
||||||
|
case "System.Guid":
|
||||||
|
// TODO
|
||||||
|
break;
|
||||||
|
case "System.String":
|
||||||
|
StackLayout stkString = new StackLayout();
|
||||||
|
stkString.Orientation = Orientation.Horizontal;
|
||||||
|
Label lblString = new Label();
|
||||||
|
lblString.Text = option.description;
|
||||||
|
stkString.Items.Add(lblString);
|
||||||
|
TextBox optString = new TextBox();
|
||||||
|
optString.ID = "opt" + option.name;
|
||||||
|
optString.Text = (string)option.@default;
|
||||||
|
stkString.Items.Add(optString);
|
||||||
|
stkOptions.Items.Add(stkString);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
grpOptions.Content = stkOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnBtnDestinationClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if(!(cmbFormat.SelectedValue is IWritableImage plugin)) return;
|
||||||
|
|
||||||
|
SaveFileDialog dlgDestination = new SaveFileDialog {Title = "Choose destination file"};
|
||||||
|
dlgDestination.Filters.Add(new FileFilter(plugin.Name, plugin.KnownExtensions.ToArray()));
|
||||||
|
|
||||||
|
DialogResult result = dlgDestination.ShowDialog(this);
|
||||||
|
|
||||||
|
if(result != DialogResult.Ok)
|
||||||
|
{
|
||||||
|
txtDestination.Text = "";
|
||||||
|
outputPrefix = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(string.IsNullOrEmpty(Path.GetExtension(dlgDestination.FileName)))
|
||||||
|
dlgDestination.FileName += plugin.KnownExtensions.First();
|
||||||
|
|
||||||
|
txtDestination.Text = dlgDestination.FileName;
|
||||||
|
outputPrefix = Path.Combine(Path.GetDirectoryName(dlgDestination.FileName),
|
||||||
|
Path.GetFileNameWithoutExtension(dlgDestination.FileName));
|
||||||
|
chkResume.Checked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnChkSidecarCheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
cmbEncoding.Visible = chkSidecar.Checked.Value;
|
||||||
|
lblEncoding.Visible = chkSidecar.Checked.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnChkExistingMetadataCheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if(chkExistingMetadata.Checked == false)
|
||||||
|
{
|
||||||
|
sidecar = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenFileDialog dlgMetadata =
|
||||||
|
new OpenFileDialog {Title = "Choose existing metadata sidecar", CheckFileExists = true};
|
||||||
|
dlgMetadata.Filters.Add(new FileFilter("CICM XML metadata", ".xml"));
|
||||||
|
|
||||||
|
DialogResult result = dlgMetadata.ShowDialog(this);
|
||||||
|
|
||||||
|
if(result != DialogResult.Ok)
|
||||||
|
{
|
||||||
|
chkExistingMetadata.Checked = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
XmlSerializer sidecarXs = new XmlSerializer(typeof(CICMMetadataType));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
StreamReader sr = new StreamReader(dlgMetadata.FileName);
|
||||||
|
sidecar = (CICMMetadataType)sidecarXs.Deserialize(sr);
|
||||||
|
sr.Close();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MessageBox.Show("Incorrect metadata sidecar file...", MessageBoxType.Error);
|
||||||
|
chkExistingMetadata.Checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnChkResumeCheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if(chkResume.Checked == false) return;
|
||||||
|
|
||||||
|
if(outputPrefix != null) CheckResumeFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheckResumeFile()
|
||||||
|
{
|
||||||
|
Resume resume = null;
|
||||||
|
XmlSerializer xs = new XmlSerializer(typeof(Resume));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
StreamReader sr = new StreamReader(outputPrefix + ".resume.xml");
|
||||||
|
resume = (Resume)xs.Deserialize(sr);
|
||||||
|
sr.Close();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
MessageBox.Show("Incorrect resume file, cannot use it...", MessageBoxType.Error);
|
||||||
|
chkResume.Checked = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(resume == null || resume.NextBlock <= resume.LastBlock || resume.BadBlocks.Count != 0) return;
|
||||||
|
|
||||||
|
MessageBox.Show("Media already dumped correctly, please choose another destination...",
|
||||||
|
MessageBoxType.Warning);
|
||||||
|
chkResume.Checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnBtnCancelClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnBtnDumpClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Device dev;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dev = new Device(devicePath);
|
||||||
|
|
||||||
|
if(dev.Error)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"Error {dev.LastError} opening device.", MessageBoxType.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception exception)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"Exception {exception.Message} opening device.", MessageBoxType.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Statistics.AddDevice(dev);
|
||||||
|
|
||||||
|
if(!(cmbFormat.SelectedValue is IWritableImage outputFormat))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Cannot open output plugin.", MessageBoxType.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Encoding encoding = null;
|
||||||
|
|
||||||
|
if(cmbEncoding.SelectedValue is CommonEncodingInfo encodingInfo)
|
||||||
|
try { encoding = Claunia.Encoding.Encoding.GetEncoding(encodingInfo.Name); }
|
||||||
|
catch(ArgumentException)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Specified encoding is not supported.", MessageBoxType.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DumpLog dumpLog = new DumpLog(outputPrefix + ".log", dev);
|
||||||
|
|
||||||
|
dumpLog.WriteLine("Output image format: {0}.", outputFormat.Name);
|
||||||
|
|
||||||
|
Dictionary<string, string> parsedOptions = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
if(grpOptions.Content is StackLayout stkOptions)
|
||||||
|
foreach(Control option in stkOptions.Children)
|
||||||
|
{
|
||||||
|
string value;
|
||||||
|
|
||||||
|
switch(option)
|
||||||
|
{
|
||||||
|
case CheckBox optBoolean:
|
||||||
|
value = optBoolean.Checked?.ToString();
|
||||||
|
break;
|
||||||
|
case NumericStepper optNumber:
|
||||||
|
value = optNumber.Value.ToString(CultureInfo.CurrentCulture);
|
||||||
|
break;
|
||||||
|
case TextBox optString:
|
||||||
|
value = optString.Text;
|
||||||
|
break;
|
||||||
|
default: continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string key = option.ID.Substring(3);
|
||||||
|
|
||||||
|
parsedOptions.Add(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(dev.Type)
|
||||||
|
{
|
||||||
|
case DeviceType.ATA:
|
||||||
|
Ata.Dump(dev, devicePath, outputFormat, (ushort)stpRetries.Value, chkForce.Checked == true,
|
||||||
|
false, /*options.Raw,*/
|
||||||
|
chkPersistent.Checked == true, chkStopOnError.Checked == true, ref resume, ref dumpLog,
|
||||||
|
encoding, outputPrefix, txtDestination.Text, parsedOptions, sidecar,
|
||||||
|
(uint)stpSkipped.Value, chkExistingMetadata.Checked == false, chkTrim.Checked == false);
|
||||||
|
break;
|
||||||
|
case DeviceType.MMC:
|
||||||
|
case DeviceType.SecureDigital:
|
||||||
|
SecureDigital.Dump(dev, devicePath, outputFormat, (ushort)stpRetries.Value,
|
||||||
|
chkForce.Checked == true, false, /*options.Raw,*/
|
||||||
|
chkPersistent.Checked == true, chkStopOnError.Checked == true, ref resume,
|
||||||
|
ref dumpLog, encoding, outputPrefix, txtDestination.Text, parsedOptions, sidecar,
|
||||||
|
(uint)stpSkipped.Value, chkExistingMetadata.Checked == false,
|
||||||
|
chkTrim.Checked == false);
|
||||||
|
break;
|
||||||
|
case DeviceType.NVMe:
|
||||||
|
NvMe.Dump(dev, devicePath, outputFormat, (ushort)stpRetries.Value, chkForce.Checked == true,
|
||||||
|
false, /*options.Raw,*/
|
||||||
|
chkPersistent.Checked == true, chkStopOnError.Checked == true, ref resume, ref dumpLog,
|
||||||
|
encoding, outputPrefix, txtDestination.Text, parsedOptions, sidecar,
|
||||||
|
(uint)stpSkipped.Value, chkExistingMetadata.Checked == false, chkTrim.Checked == false);
|
||||||
|
break;
|
||||||
|
case DeviceType.ATAPI:
|
||||||
|
case DeviceType.SCSI:
|
||||||
|
Scsi.Dump(dev, devicePath, outputFormat, (ushort)stpRetries.Value, chkForce.Checked == true,
|
||||||
|
false, /*options.Raw,*/
|
||||||
|
chkPersistent.Checked == true,
|
||||||
|
chkStopOnError.Checked == true, ref resume, ref dumpLog,
|
||||||
|
chkTrack1Pregap.Checked == true,
|
||||||
|
encoding, outputPrefix, txtDestination.Text,
|
||||||
|
parsedOptions, sidecar, (uint)stpSkipped.Value, chkExistingMetadata.Checked == false,
|
||||||
|
chkTrim.Checked == false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dumpLog.WriteLine("Unknown device type.");
|
||||||
|
dumpLog.Close();
|
||||||
|
MessageBox.Show("Unknown device type.", MessageBoxType.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(resume != null && chkResume.Checked == true)
|
||||||
|
{
|
||||||
|
resume.LastWriteDate = DateTime.UtcNow;
|
||||||
|
resume.BadBlocks.Sort();
|
||||||
|
|
||||||
|
if(File.Exists(outputPrefix + ".resume.xml")) File.Delete(outputPrefix + ".resume.xml");
|
||||||
|
|
||||||
|
FileStream fs = new FileStream(outputPrefix + ".resume.xml", FileMode.Create, FileAccess.ReadWrite);
|
||||||
|
XmlSerializer xs = new XmlSerializer(resume.GetType());
|
||||||
|
xs.Serialize(fs, resume);
|
||||||
|
fs.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
dumpLog.Close();
|
||||||
|
|
||||||
|
Statistics.AddCommand("dump-media");
|
||||||
|
|
||||||
|
dev.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
class CommonEncodingInfo
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string DisplayName { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#region XAML IDs
|
||||||
|
ComboBox cmbFormat;
|
||||||
|
TextBox txtDestination;
|
||||||
|
Button btnDestination;
|
||||||
|
CheckBox chkStopOnError;
|
||||||
|
CheckBox chkForce;
|
||||||
|
CheckBox chkPersistent;
|
||||||
|
CheckBox chkResume;
|
||||||
|
CheckBox chkTrack1Pregap;
|
||||||
|
CheckBox chkSidecar;
|
||||||
|
CheckBox chkTrim;
|
||||||
|
CheckBox chkExistingMetadata;
|
||||||
|
ComboBox cmbEncoding;
|
||||||
|
GroupBox grpOptions;
|
||||||
|
NumericStepper stpRetries;
|
||||||
|
NumericStepper stpSkipped;
|
||||||
|
Label lblEncoding;
|
||||||
|
Button btnCancel;
|
||||||
|
Button btnDump;
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -282,7 +282,7 @@ namespace DiscImageChef.Gui.Forms
|
|||||||
Values = new[]
|
Values = new[]
|
||||||
{
|
{
|
||||||
scsiInfo.MediaType, deviceItem.Values[1],
|
scsiInfo.MediaType, deviceItem.Values[1],
|
||||||
new pnlScsiInfo(scsiInfo)
|
new pnlScsiInfo(scsiInfo, (string)deviceItem.Values[1])
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ using DiscImageChef.Decoders.SCSI.MMC;
|
|||||||
using DiscImageChef.Decoders.SCSI.SSC;
|
using DiscImageChef.Decoders.SCSI.SSC;
|
||||||
using DiscImageChef.Decoders.Xbox;
|
using DiscImageChef.Decoders.Xbox;
|
||||||
using DiscImageChef.Gui.Controls;
|
using DiscImageChef.Gui.Controls;
|
||||||
|
using DiscImageChef.Gui.Forms;
|
||||||
using Eto.Drawing;
|
using Eto.Drawing;
|
||||||
using Eto.Forms;
|
using Eto.Forms;
|
||||||
using Eto.Serialization.Xaml;
|
using Eto.Serialization.Xaml;
|
||||||
@@ -56,9 +57,10 @@ namespace DiscImageChef.Gui.Panels
|
|||||||
{
|
{
|
||||||
public class pnlScsiInfo : Panel
|
public class pnlScsiInfo : Panel
|
||||||
{
|
{
|
||||||
|
string devicePath;
|
||||||
ScsiInfo scsiInfo;
|
ScsiInfo scsiInfo;
|
||||||
|
|
||||||
public pnlScsiInfo(ScsiInfo scsiInfo)
|
public pnlScsiInfo(ScsiInfo scsiInfo, string devicePath)
|
||||||
{
|
{
|
||||||
XamlReader.Load(this);
|
XamlReader.Load(this);
|
||||||
|
|
||||||
@@ -425,6 +427,8 @@ namespace DiscImageChef.Gui.Panels
|
|||||||
grpBluraySpareAreaInformation.Visible || grpBlurayPowResources.Visible ||
|
grpBluraySpareAreaInformation.Visible || grpBlurayPowResources.Visible ||
|
||||||
grpBlurayTrackResources.Visible || btnSaveBlurayRawDfl.Visible ||
|
grpBlurayTrackResources.Visible || btnSaveBlurayRawDfl.Visible ||
|
||||||
btnSaveBlurayPac.Visible;
|
btnSaveBlurayPac.Visible;
|
||||||
|
|
||||||
|
this.devicePath = devicePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveElement(byte[] data)
|
void SaveElement(byte[] data)
|
||||||
@@ -688,6 +692,9 @@ namespace DiscImageChef.Gui.Panels
|
|||||||
scsiInfo.MediaType == MediaType.XGD3) &&
|
scsiInfo.MediaType == MediaType.XGD3) &&
|
||||||
scsiInfo.DeviceInfo.ScsiInquiry?.KreonPresent != true)
|
scsiInfo.DeviceInfo.ScsiInquiry?.KreonPresent != true)
|
||||||
MessageBox.Show("Dumping Xbox discs require a Kreon drive.", MessageBoxType.Error);
|
MessageBox.Show("Dumping Xbox discs require a Kreon drive.", MessageBoxType.Error);
|
||||||
|
|
||||||
|
frmDump dumpForm = new frmDump(devicePath, scsiInfo.DeviceInfo, scsiInfo);
|
||||||
|
dumpForm.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region XAML controls
|
#region XAML controls
|
||||||
|
|||||||
Reference in New Issue
Block a user