mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Fix detection of dual layer DVDs. Fixes #377
This commit is contained in:
@@ -312,7 +312,7 @@ namespace Aaru.Core.Devices.Dumping
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDR:
|
||||
dskType = decPfi.PartVersion == 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
dskType = decPfi.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRAM:
|
||||
@@ -324,7 +324,7 @@ namespace Aaru.Core.Devices.Dumping
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRW:
|
||||
dskType = decPfi.PartVersion == 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
dskType = decPfi.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
|
||||
break;
|
||||
case DiskCategory.HDDVDR:
|
||||
|
||||
@@ -191,7 +191,7 @@ namespace Aaru.Core.Media.Info
|
||||
{
|
||||
ReadCapacity = cmdBuf;
|
||||
Blocks = (ulong)((cmdBuf[0] << 24) + (cmdBuf[1] << 16) + (cmdBuf[2] << 8) + cmdBuf[3]);
|
||||
BlockSize = (uint)((cmdBuf[5] << 24) + (cmdBuf[5] << 16) + (cmdBuf[6] << 8) + cmdBuf[7]);
|
||||
BlockSize = (uint)((cmdBuf[5] << 24) + (cmdBuf[5] << 16) + (cmdBuf[6] << 8) + cmdBuf[7]);
|
||||
}
|
||||
|
||||
sense = dev.ReadCapacity16(out cmdBuf, out senseBuf, dev.Timeout, out _);
|
||||
@@ -278,7 +278,7 @@ namespace Aaru.Core.Media.Info
|
||||
{
|
||||
ReadCapacity = cmdBuf;
|
||||
Blocks = (ulong)((cmdBuf[0] << 24) + (cmdBuf[1] << 16) + (cmdBuf[2] << 8) + cmdBuf[3]);
|
||||
BlockSize = (uint)((cmdBuf[5] << 24) + (cmdBuf[5] << 16) + (cmdBuf[6] << 8) + cmdBuf[7]);
|
||||
BlockSize = (uint)((cmdBuf[5] << 24) + (cmdBuf[5] << 16) + (cmdBuf[6] << 8) + cmdBuf[7]);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -541,7 +541,7 @@ namespace Aaru.Core.Media.Info
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDR:
|
||||
MediaType = DecodedPfi.Value.PartVersion == 6 ? MediaType.DVDRDL
|
||||
MediaType = DecodedPfi.Value.PartVersion >= 6 ? MediaType.DVDRDL
|
||||
: MediaType.DVDR;
|
||||
|
||||
break;
|
||||
@@ -554,7 +554,7 @@ namespace Aaru.Core.Media.Info
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRW:
|
||||
MediaType = DecodedPfi.Value.PartVersion == 3 ? MediaType.DVDRWDL
|
||||
MediaType = DecodedPfi.Value.PartVersion >= 3 ? MediaType.DVDRWDL
|
||||
: MediaType.DVDRW;
|
||||
|
||||
break;
|
||||
|
||||
@@ -282,11 +282,11 @@ namespace Aaru.Core
|
||||
}
|
||||
|
||||
if(dskType == MediaType.DVDR &&
|
||||
pfi.Value.PartVersion == 6)
|
||||
pfi.Value.PartVersion >= 6)
|
||||
dskType = MediaType.DVDRDL;
|
||||
|
||||
if(dskType == MediaType.DVDRW &&
|
||||
pfi.Value.PartVersion == 3)
|
||||
pfi.Value.PartVersion >= 3)
|
||||
dskType = MediaType.DVDRWDL;
|
||||
|
||||
if(dskType == MediaType.GOD &&
|
||||
|
||||
@@ -405,7 +405,7 @@ namespace Aaru.DiscImages
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDR:
|
||||
_imageInfo.MediaType = pfi0.Value.PartVersion == 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
_imageInfo.MediaType = pfi0.Value.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRAM:
|
||||
@@ -418,7 +418,7 @@ namespace Aaru.DiscImages
|
||||
break;
|
||||
case DiskCategory.DVDRW:
|
||||
_imageInfo.MediaType =
|
||||
pfi0.Value.PartVersion == 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
pfi0.Value.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
|
||||
break;
|
||||
case DiskCategory.HDDVDR:
|
||||
|
||||
@@ -532,43 +532,40 @@ namespace Aaru.DiscImages
|
||||
chars.FileFilter =
|
||||
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
path.ToLower(CultureInfo.
|
||||
CurrentCulture)));
|
||||
CurrentCulture)));
|
||||
}
|
||||
else if(filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
path.ToUpper(CultureInfo.
|
||||
CurrentCulture))) !=
|
||||
null)
|
||||
CurrentCulture))) != null)
|
||||
{
|
||||
chars.FilePath = path.ToUpper(CultureInfo.CurrentCulture);
|
||||
|
||||
chars.FileFilter =
|
||||
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
path.ToUpper(CultureInfo.
|
||||
CurrentCulture)));
|
||||
CurrentCulture)));
|
||||
}
|
||||
else if(filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
dataFile.Filename.ToLower(CultureInfo.
|
||||
CurrentCulture))) !=
|
||||
null)
|
||||
CurrentCulture))) != null)
|
||||
{
|
||||
chars.FilePath = dataFile.Filename.ToLower(CultureInfo.CurrentCulture);
|
||||
|
||||
chars.FileFilter =
|
||||
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
dataFile.Filename.ToLower(CultureInfo.
|
||||
CurrentCulture)));
|
||||
CurrentCulture)));
|
||||
}
|
||||
else if(filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
dataFile.Filename.ToUpper(CultureInfo.
|
||||
CurrentCulture))) !=
|
||||
null)
|
||||
CurrentCulture))) != null)
|
||||
{
|
||||
chars.FilePath = dataFile.Filename.ToUpper(CultureInfo.CurrentCulture);
|
||||
|
||||
chars.FileFilter =
|
||||
filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
dataFile.Filename.ToUpper(CultureInfo.
|
||||
CurrentCulture)));
|
||||
CurrentCulture)));
|
||||
}
|
||||
else if(filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(),
|
||||
dataFile.Filename)) != null)
|
||||
@@ -773,8 +770,8 @@ namespace Aaru.DiscImages
|
||||
track.TrackEndSector = (ulong)(trk.sectors + trk.startLba);
|
||||
|
||||
foreach(DataFileCharacteristics chars in _filePaths.Where(chars => trk.startLba >= chars.StartLba &&
|
||||
trk.startLba + trk.sectors <=
|
||||
chars.StartLba + chars.Sectors))
|
||||
trk.startLba + trk.sectors <=
|
||||
chars.StartLba + chars.Sectors))
|
||||
{
|
||||
track.TrackFilter = chars.FileFilter;
|
||||
track.TrackFile = chars.FileFilter.GetFilename();
|
||||
@@ -916,7 +913,7 @@ namespace Aaru.DiscImages
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDR:
|
||||
_imageInfo.MediaType = pfi0.Value.PartVersion == 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
_imageInfo.MediaType = pfi0.Value.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRAM:
|
||||
@@ -928,7 +925,7 @@ namespace Aaru.DiscImages
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRW:
|
||||
_imageInfo.MediaType = pfi0.Value.PartVersion == 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
_imageInfo.MediaType = pfi0.Value.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
|
||||
break;
|
||||
case DiskCategory.HDDVDR:
|
||||
|
||||
@@ -386,7 +386,7 @@ namespace Aaru.DiscImages
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDR:
|
||||
_imageInfo.MediaType = decPfi.PartVersion == 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
_imageInfo.MediaType = decPfi.PartVersion >= 6 ? MediaType.DVDRDL : MediaType.DVDR;
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRAM:
|
||||
@@ -398,7 +398,7 @@ namespace Aaru.DiscImages
|
||||
|
||||
break;
|
||||
case DiskCategory.DVDRW:
|
||||
_imageInfo.MediaType = decPfi.PartVersion == 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
_imageInfo.MediaType = decPfi.PartVersion >= 3 ? MediaType.DVDRWDL : MediaType.DVDRW;
|
||||
|
||||
break;
|
||||
case DiskCategory.HDDVDR:
|
||||
|
||||
Reference in New Issue
Block a user