mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Add test for inter-session reading in multi-session discs to device reports.
This commit is contained in:
5
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
5
.idea/.idea.DiscImageChef/.idea/contentModel.xml
generated
@@ -330,6 +330,8 @@
|
|||||||
<e p="20181225152947_StoreMmcGetConfigurationResponse.cs" t="Include" />
|
<e p="20181225152947_StoreMmcGetConfigurationResponse.cs" t="Include" />
|
||||||
<e p="20181225214500_StoreReadResultsInReportDatabase.Designer.cs" t="Include" />
|
<e p="20181225214500_StoreReadResultsInReportDatabase.Designer.cs" t="Include" />
|
||||||
<e p="20181225214500_StoreReadResultsInReportDatabase.cs" t="Include" />
|
<e p="20181225214500_StoreReadResultsInReportDatabase.cs" t="Include" />
|
||||||
|
<e p="20190102061236_AddMultisessionLeadTest.Designer.cs" t="Include" />
|
||||||
|
<e p="20190102061236_AddMultisessionLeadTest.cs" t="Include" />
|
||||||
<e p="DicContextModelSnapshot.cs" t="Include" />
|
<e p="DicContextModelSnapshot.cs" t="Include" />
|
||||||
</e>
|
</e>
|
||||||
<e p="Models" t="Include">
|
<e p="Models" t="Include">
|
||||||
@@ -1853,6 +1855,9 @@
|
|||||||
<e p="201812252219066_StoreReadResultsInReportDatabase.Designer.cs" t="Include" />
|
<e p="201812252219066_StoreReadResultsInReportDatabase.Designer.cs" t="Include" />
|
||||||
<e p="201812252219066_StoreReadResultsInReportDatabase.cs" t="Include" />
|
<e p="201812252219066_StoreReadResultsInReportDatabase.cs" t="Include" />
|
||||||
<e p="201812252219066_StoreReadResultsInReportDatabase.resx" t="Include" />
|
<e p="201812252219066_StoreReadResultsInReportDatabase.resx" t="Include" />
|
||||||
|
<e p="201901022133012_AddMultisessionLeadTest.Designer.cs" t="Include" />
|
||||||
|
<e p="201901022133012_AddMultisessionLeadTest.cs" t="Include" />
|
||||||
|
<e p="201901022133012_AddMultisessionLeadTest.resx" t="Include" />
|
||||||
<e p="Configuration.cs" t="Include" />
|
<e p="Configuration.cs" t="Include" />
|
||||||
</e>
|
</e>
|
||||||
<e p="Models" t="Include">
|
<e p="Models" t="Include">
|
||||||
|
|||||||
@@ -1338,6 +1338,11 @@ namespace DiscImageChef.CommonTypes.Metadata
|
|||||||
public bool? SupportsReadLongRetry { get; set; }
|
public bool? SupportsReadLongRetry { get; set; }
|
||||||
public bool? SupportsSeek { get; set; }
|
public bool? SupportsSeek { get; set; }
|
||||||
|
|
||||||
|
public bool? CanReadingIntersessionLeadIn { get; set; }
|
||||||
|
public bool? CanReadingIntersessionLeadOut { get; set; }
|
||||||
|
public byte[] IntersessionLeadInData { get; set; }
|
||||||
|
public byte[] IntersessionLeadOutData { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public long? BlocksSql
|
public long? BlocksSql
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -31,9 +31,11 @@
|
|||||||
// ****************************************************************************/
|
// ****************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using DiscImageChef.CommonTypes.Metadata;
|
using DiscImageChef.CommonTypes.Metadata;
|
||||||
using DiscImageChef.Console;
|
using DiscImageChef.Console;
|
||||||
|
using DiscImageChef.Decoders.CD;
|
||||||
using DiscImageChef.Decoders.SCSI;
|
using DiscImageChef.Decoders.SCSI;
|
||||||
using DiscImageChef.Decoders.SCSI.MMC;
|
using DiscImageChef.Decoders.SCSI.MMC;
|
||||||
using DiscImageChef.Devices;
|
using DiscImageChef.Devices;
|
||||||
@@ -1210,6 +1212,129 @@ namespace DiscImageChef.Core.Devices.Report
|
|||||||
|
|
||||||
if(mediaTest.SupportsHLDTSTReadRawDVD == true && debug) mediaTest.HLDTSTReadRawDVDData = buffer;
|
if(mediaTest.SupportsHLDTSTReadRawDVD == true && debug) mediaTest.HLDTSTReadRawDVDData = buffer;
|
||||||
|
|
||||||
|
// This is for checking multi-session support, and inter-session lead-in/out reading, as Enhanced CD are
|
||||||
|
if(mediaType == "Enhanced CD (aka E-CD, CD-Plus or CD+)")
|
||||||
|
{
|
||||||
|
DicConsole.WriteLine("Querying CD Full TOC...");
|
||||||
|
mediaTest.CanReadFullTOC = !dev.ReadRawToc(out buffer, out senseBuffer, 1, dev.Timeout, out _);
|
||||||
|
DicConsole.DebugWriteLine("SCSI Report", "Sense = {0}", !mediaTest.CanReadFullTOC);
|
||||||
|
if(debug) mediaTest.FullTocData = buffer;
|
||||||
|
|
||||||
|
if(mediaTest.CanReadFullTOC == true)
|
||||||
|
{
|
||||||
|
FullTOC.CDFullTOC? decodedTocNullable = FullTOC.Decode(buffer);
|
||||||
|
|
||||||
|
mediaTest.CanReadFullTOC = decodedTocNullable.HasValue;
|
||||||
|
|
||||||
|
if(mediaTest.CanReadFullTOC == true)
|
||||||
|
{
|
||||||
|
FullTOC.CDFullTOC decodedToc = decodedTocNullable.Value;
|
||||||
|
|
||||||
|
if(!decodedToc.TrackDescriptors.Any(t => t.SessionNumber > 1))
|
||||||
|
{
|
||||||
|
DicConsole
|
||||||
|
.ErrorWriteLine("Could not find second session. Have you inserted the correct type of disc?");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
FullTOC.TrackDataDescriptor firstSessionLeadOutTrack =
|
||||||
|
decodedToc.TrackDescriptors.FirstOrDefault(t => t.SessionNumber == 1 && t.POINT == 0xA2);
|
||||||
|
FullTOC.TrackDataDescriptor secondSessionFirstTrack =
|
||||||
|
decodedToc.TrackDescriptors.FirstOrDefault(t => t.SessionNumber > 1 && t.POINT <= 99);
|
||||||
|
|
||||||
|
if(firstSessionLeadOutTrack.SessionNumber == 0 || secondSessionFirstTrack.SessionNumber == 0)
|
||||||
|
{
|
||||||
|
DicConsole
|
||||||
|
.ErrorWriteLine("Could not find second session. Have you inserted the correct type of disc?");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
DicConsole.DebugWriteLine("SCSI Report",
|
||||||
|
"First session Lead-Out starts at {0:D2}:{1:D2}:{2:D2}",
|
||||||
|
firstSessionLeadOutTrack.PMIN, firstSessionLeadOutTrack.PSEC,
|
||||||
|
firstSessionLeadOutTrack.PFRAME);
|
||||||
|
DicConsole.DebugWriteLine("SCSI Report", "Second session starts at {0:D2}:{1:D2}:{2:D2}",
|
||||||
|
secondSessionFirstTrack.PMIN, secondSessionFirstTrack.PSEC,
|
||||||
|
secondSessionFirstTrack.PFRAME);
|
||||||
|
|
||||||
|
// Skip Lead-Out pre-gap
|
||||||
|
uint firstSessionLeadOutLba = (uint)(firstSessionLeadOutTrack.PMIN * 60 * 75 +
|
||||||
|
firstSessionLeadOutTrack.PSEC * 75 +
|
||||||
|
firstSessionLeadOutTrack.PFRAME + 150);
|
||||||
|
|
||||||
|
// Skip second session track pre-gap
|
||||||
|
uint secondSessionLeadInLba = (uint)(secondSessionFirstTrack.PMIN * 60 * 75 +
|
||||||
|
secondSessionFirstTrack.PSEC * 75 +
|
||||||
|
secondSessionFirstTrack.PFRAME - 300);
|
||||||
|
|
||||||
|
DicConsole.WriteLine("Trying SCSI READ CD in first session Lead-Out...");
|
||||||
|
mediaTest.CanReadingIntersessionLeadOut = !dev.ReadCd(out buffer, out senseBuffer,
|
||||||
|
firstSessionLeadOutLba, 2448, 1,
|
||||||
|
MmcSectorTypes.AllTypes, false, false,
|
||||||
|
false, MmcHeaderCodes.AllHeaders, true,
|
||||||
|
false, MmcErrorField.None,
|
||||||
|
MmcSubchannel.Raw, dev.Timeout, out _);
|
||||||
|
|
||||||
|
if(mediaTest.CanReadingIntersessionLeadOut == false)
|
||||||
|
{
|
||||||
|
mediaTest.CanReadingIntersessionLeadOut = !dev.ReadCd(out buffer, out senseBuffer,
|
||||||
|
firstSessionLeadOutLba, 2368, 1,
|
||||||
|
MmcSectorTypes.AllTypes, false, false,
|
||||||
|
false, MmcHeaderCodes.AllHeaders,
|
||||||
|
true, false, MmcErrorField.None,
|
||||||
|
MmcSubchannel.Q16, dev.Timeout,
|
||||||
|
out _);
|
||||||
|
|
||||||
|
if(mediaTest.CanReadingIntersessionLeadOut == false)
|
||||||
|
mediaTest.CanReadingIntersessionLeadOut = !dev.ReadCd(out buffer, out senseBuffer,
|
||||||
|
firstSessionLeadOutLba, 2352, 1,
|
||||||
|
MmcSectorTypes.AllTypes, false,
|
||||||
|
false, false,
|
||||||
|
MmcHeaderCodes.AllHeaders, true,
|
||||||
|
false, MmcErrorField.None,
|
||||||
|
MmcSubchannel.None, dev.Timeout,
|
||||||
|
out _);
|
||||||
|
}
|
||||||
|
|
||||||
|
DicConsole.DebugWriteLine("SCSI Report", "Sense = {0}",
|
||||||
|
!mediaTest.CanReadingIntersessionLeadOut);
|
||||||
|
if(debug) mediaTest.IntersessionLeadOutData = buffer;
|
||||||
|
|
||||||
|
DicConsole.WriteLine("Trying SCSI READ CD in second session Lead-In...");
|
||||||
|
mediaTest.CanReadingIntersessionLeadIn = !dev.ReadCd(out buffer, out senseBuffer,
|
||||||
|
secondSessionLeadInLba, 2448, 1,
|
||||||
|
MmcSectorTypes.AllTypes, false, false,
|
||||||
|
false, MmcHeaderCodes.AllHeaders, true,
|
||||||
|
false, MmcErrorField.None,
|
||||||
|
MmcSubchannel.Raw, dev.Timeout, out _);
|
||||||
|
|
||||||
|
if(mediaTest.CanReadingIntersessionLeadIn == false)
|
||||||
|
{
|
||||||
|
mediaTest.CanReadingIntersessionLeadIn = !dev.ReadCd(out buffer, out senseBuffer,
|
||||||
|
secondSessionLeadInLba, 2368, 1,
|
||||||
|
MmcSectorTypes.AllTypes, false, false,
|
||||||
|
false, MmcHeaderCodes.AllHeaders, true,
|
||||||
|
false, MmcErrorField.None,
|
||||||
|
MmcSubchannel.Q16, dev.Timeout, out _);
|
||||||
|
|
||||||
|
if(mediaTest.CanReadingIntersessionLeadIn == false)
|
||||||
|
mediaTest.CanReadingIntersessionLeadIn = !dev.ReadCd(out buffer, out senseBuffer,
|
||||||
|
secondSessionLeadInLba, 2352, 1,
|
||||||
|
MmcSectorTypes.AllTypes, false,
|
||||||
|
false, false,
|
||||||
|
MmcHeaderCodes.AllHeaders, true,
|
||||||
|
false, MmcErrorField.None,
|
||||||
|
MmcSubchannel.None, dev.Timeout,
|
||||||
|
out _);
|
||||||
|
}
|
||||||
|
|
||||||
|
DicConsole.DebugWriteLine("SCSI Report", "Sense = {0}",
|
||||||
|
!mediaTest.CanReadingIntersessionLeadIn);
|
||||||
|
if(debug) mediaTest.IntersessionLeadInData = buffer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return mediaTest;
|
return mediaTest;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,6 +90,8 @@
|
|||||||
<Compile Include="Migrations\20181225152947_StoreMmcGetConfigurationResponse.Designer.cs" />
|
<Compile Include="Migrations\20181225152947_StoreMmcGetConfigurationResponse.Designer.cs" />
|
||||||
<Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.cs" />
|
<Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.cs" />
|
||||||
<Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.Designer.cs" />
|
<Compile Include="Migrations\20181225214500_StoreReadResultsInReportDatabase.Designer.cs" />
|
||||||
|
<Compile Include="Migrations\20190102061236_AddMultisessionLeadTest.cs" />
|
||||||
|
<Compile Include="Migrations\20190102061236_AddMultisessionLeadTest.Designer.cs" />
|
||||||
<Compile Include="Migrations\DicContextModelSnapshot.cs" />
|
<Compile Include="Migrations\DicContextModelSnapshot.cs" />
|
||||||
<Compile Include="Models\CdOffset.cs" />
|
<Compile Include="Models\CdOffset.cs" />
|
||||||
<Compile Include="Models\Command.cs" />
|
<Compile Include="Models\Command.cs" />
|
||||||
|
|||||||
1559
DiscImageChef.Database/Migrations/20190102061236_AddMultisessionLeadTest.Designer.cs
generated
Normal file
1559
DiscImageChef.Database/Migrations/20190102061236_AddMultisessionLeadTest.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace DiscImageChef.Database.Migrations
|
||||||
|
{
|
||||||
|
public partial class AddMultisessionLeadTest : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<bool>("CanReadingIntersessionLeadIn", "TestedMedia", nullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<bool>("CanReadingIntersessionLeadOut", "TestedMedia", nullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<byte[]>("IntersessionLeadInData", "TestedMedia", nullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<byte[]>("IntersessionLeadOutData", "TestedMedia", nullable: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn("CanReadingIntersessionLeadIn", "TestedMedia");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn("CanReadingIntersessionLeadOut", "TestedMedia");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn("IntersessionLeadInData", "TestedMedia");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn("IntersessionLeadOutData", "TestedMedia");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -709,6 +709,10 @@ namespace DiscImageChef.Database.Migrations
|
|||||||
|
|
||||||
b.Property<bool?>("CanReadTOC");
|
b.Property<bool?>("CanReadTOC");
|
||||||
|
|
||||||
|
b.Property<bool?>("CanReadingIntersessionLeadIn");
|
||||||
|
|
||||||
|
b.Property<bool?>("CanReadingIntersessionLeadOut");
|
||||||
|
|
||||||
b.Property<byte[]>("CmiData");
|
b.Property<byte[]>("CmiData");
|
||||||
|
|
||||||
b.Property<byte[]>("CorrectedSubchannelData");
|
b.Property<byte[]>("CorrectedSubchannelData");
|
||||||
@@ -743,6 +747,10 @@ namespace DiscImageChef.Database.Migrations
|
|||||||
|
|
||||||
b.Property<byte[]>("IdentifyData");
|
b.Property<byte[]>("IdentifyData");
|
||||||
|
|
||||||
|
b.Property<byte[]>("IntersessionLeadInData");
|
||||||
|
|
||||||
|
b.Property<byte[]>("IntersessionLeadOutData");
|
||||||
|
|
||||||
b.Property<ulong?>("LBA48Sectors");
|
b.Property<ulong?>("LBA48Sectors");
|
||||||
|
|
||||||
b.Property<long?>("LBA48SectorsSql");
|
b.Property<long?>("LBA48SectorsSql");
|
||||||
|
|||||||
@@ -256,6 +256,10 @@
|
|||||||
<Compile Include="Migrations\201812252219066_StoreReadResultsInReportDatabase.Designer.cs">
|
<Compile Include="Migrations\201812252219066_StoreReadResultsInReportDatabase.Designer.cs">
|
||||||
<DependentUpon>201812252219066_StoreReadResultsInReportDatabase.cs</DependentUpon>
|
<DependentUpon>201812252219066_StoreReadResultsInReportDatabase.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Migrations\201901022133012_AddMultisessionLeadTest.cs" />
|
||||||
|
<Compile Include="Migrations\201901022133012_AddMultisessionLeadTest.Designer.cs">
|
||||||
|
<DependentUpon>201901022133012_AddMultisessionLeadTest.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Migrations\Configuration.cs" />
|
<Compile Include="Migrations\Configuration.cs" />
|
||||||
<Compile Include="Models\CdOffset.cs" />
|
<Compile Include="Models\CdOffset.cs" />
|
||||||
<Compile Include="Models\Command.cs" />
|
<Compile Include="Models\Command.cs" />
|
||||||
@@ -380,6 +384,9 @@
|
|||||||
<EmbeddedResource Include="Migrations\201812252219066_StoreReadResultsInReportDatabase.resx">
|
<EmbeddedResource Include="Migrations\201812252219066_StoreReadResultsInReportDatabase.resx">
|
||||||
<DependentUpon>201812252219066_StoreReadResultsInReportDatabase.cs</DependentUpon>
|
<DependentUpon>201812252219066_StoreReadResultsInReportDatabase.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\201901022133012_AddMultisessionLeadTest.resx">
|
||||||
|
<DependentUpon>201901022133012_AddMultisessionLeadTest.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||||
|
|||||||
29
DiscImageChef.Server/Migrations/201901022133012_AddMultisessionLeadTest.Designer.cs
generated
Normal file
29
DiscImageChef.Server/Migrations/201901022133012_AddMultisessionLeadTest.Designer.cs
generated
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace DiscImageChef.Server.Migrations
|
||||||
|
{
|
||||||
|
using System.CodeDom.Compiler;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||||
|
public sealed partial class AddMultisessionLeadTest : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(AddMultisessionLeadTest));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "201901022133012_AddMultisessionLeadTest"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
namespace DiscImageChef.Server.Migrations
|
||||||
|
{
|
||||||
|
public partial class AddMultisessionLeadTest : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
AddColumn("dbo.TestedMedias", "CanReadingIntersessionLeadIn", c => c.Boolean());
|
||||||
|
AddColumn("dbo.TestedMedias", "CanReadingIntersessionLeadOut", c => c.Boolean());
|
||||||
|
AddColumn("dbo.TestedMedias", "IntersessionLeadInData", c => c.Binary());
|
||||||
|
AddColumn("dbo.TestedMedias", "IntersessionLeadOutData", c => c.Binary());
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropColumn("dbo.TestedMedias", "IntersessionLeadOutData");
|
||||||
|
DropColumn("dbo.TestedMedias", "IntersessionLeadInData");
|
||||||
|
DropColumn("dbo.TestedMedias", "CanReadingIntersessionLeadOut");
|
||||||
|
DropColumn("dbo.TestedMedias", "CanReadingIntersessionLeadIn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -317,6 +317,7 @@ namespace DiscImageChef.Commands
|
|||||||
{
|
{
|
||||||
mediaTypes.Add("CD-ROM");
|
mediaTypes.Add("CD-ROM");
|
||||||
mediaTypes.Add("Audio CD");
|
mediaTypes.Add("Audio CD");
|
||||||
|
mediaTypes.Add("Enhanced CD (aka E-CD, CD-Plus or CD+)");
|
||||||
if(report.SCSI.MultiMediaDevice.ModeSense2A.ReadCDR) mediaTypes.Add("CD-R");
|
if(report.SCSI.MultiMediaDevice.ModeSense2A.ReadCDR) mediaTypes.Add("CD-R");
|
||||||
if(report.SCSI.MultiMediaDevice.ModeSense2A.ReadCDRW)
|
if(report.SCSI.MultiMediaDevice.ModeSense2A.ReadCDRW)
|
||||||
{
|
{
|
||||||
@@ -434,6 +435,8 @@ namespace DiscImageChef.Commands
|
|||||||
mediaTypes.Add("CD-RW High Speed (marked between 8x and 12x)");
|
mediaTypes.Add("CD-RW High Speed (marked between 8x and 12x)");
|
||||||
if(!mediaTypes.Contains("CD-RW (marked 4x or lower)"))
|
if(!mediaTypes.Contains("CD-RW (marked 4x or lower)"))
|
||||||
mediaTypes.Add("CD-RW (marked 4x or lower)");
|
mediaTypes.Add("CD-RW (marked 4x or lower)");
|
||||||
|
if(!mediaTypes.Contains("Enhanced CD (aka E-CD, CD-Plus or CD+)"))
|
||||||
|
mediaTypes.Add("Enhanced CD (aka E-CD, CD-Plus or CD+)");
|
||||||
}
|
}
|
||||||
|
|
||||||
mediaTypes.Sort();
|
mediaTypes.Sort();
|
||||||
@@ -587,6 +590,8 @@ namespace DiscImageChef.Commands
|
|||||||
mediaTest = reporter.ReportMmcMedia(mediaType, tryPlextor, tryPioneer, tryNec,
|
mediaTest = reporter.ReportMmcMedia(mediaType, tryPlextor, tryPioneer, tryNec,
|
||||||
tryHldtst);
|
tryHldtst);
|
||||||
|
|
||||||
|
if(mediaTest is null) continue;
|
||||||
|
|
||||||
if(mediaTest.SupportsReadLong == true &&
|
if(mediaTest.SupportsReadLong == true &&
|
||||||
mediaTest.LongBlockSize == mediaTest.BlockSize)
|
mediaTest.LongBlockSize == mediaTest.BlockSize)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user