Add support for CD-i Ready in dicformat.

This commit is contained in:
2018-07-27 21:48:40 +01:00
parent 9e4c20513c
commit 60eff0fda8
4 changed files with 9 additions and 7 deletions

View File

@@ -133,6 +133,7 @@ namespace DiscImageChef.DiscImages
case MediaType.CDG: case MediaType.CDG:
case MediaType.CDEG: case MediaType.CDEG:
case MediaType.CDI: case MediaType.CDI:
case MediaType.CDIREADY:
case MediaType.CDROM: case MediaType.CDROM:
case MediaType.CDROMXA: case MediaType.CDROMXA:
case MediaType.CDPLUS: case MediaType.CDPLUS:

View File

@@ -1017,7 +1017,7 @@ namespace DiscImageChef.DiscImages
{ {
Track trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector && Track trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector &&
sectorAddress <= t.TrackEndSector); sectorAddress <= t.TrackEndSector);
if(trk.TrackSequence == 0) if(trk.TrackSequence == 0 && trk.TrackStartSector == 0 && trk.TrackEndSector == 0)
throw new ArgumentOutOfRangeException(nameof(sectorAddress), throw new ArgumentOutOfRangeException(nameof(sectorAddress),
"Can't found track containing requested sector"); "Can't found track containing requested sector");
@@ -1230,7 +1230,7 @@ namespace DiscImageChef.DiscImages
case XmlMediaType.OpticalDisc: case XmlMediaType.OpticalDisc:
Track trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector && Track trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector &&
sectorAddress <= t.TrackEndSector); sectorAddress <= t.TrackEndSector);
if(trk.TrackSequence == 0) if(trk.TrackSequence == 0 && trk.TrackStartSector == 0 && trk.TrackEndSector == 0)
throw new ArgumentOutOfRangeException(nameof(sectorAddress), throw new ArgumentOutOfRangeException(nameof(sectorAddress),
"Can't found track containing requested sector"); "Can't found track containing requested sector");
@@ -1296,7 +1296,7 @@ namespace DiscImageChef.DiscImages
case XmlMediaType.OpticalDisc: case XmlMediaType.OpticalDisc:
Track trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector && Track trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector &&
sectorAddress <= t.TrackEndSector); sectorAddress <= t.TrackEndSector);
if(trk.TrackSequence == 0) if(trk.TrackSequence == 0 && trk.TrackStartSector == 0 && trk.TrackEndSector == 0)
throw new ArgumentOutOfRangeException(nameof(sectorAddress), throw new ArgumentOutOfRangeException(nameof(sectorAddress),
"Can't found track containing requested sector"); "Can't found track containing requested sector");

View File

@@ -809,7 +809,7 @@ namespace DiscImageChef.DiscImages
{ {
trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector && trk = Tracks.FirstOrDefault(t => sectorAddress >= t.TrackStartSector &&
sectorAddress <= t.TrackEndSector); sectorAddress <= t.TrackEndSector);
if(trk.TrackSequence == 0) if(trk.TrackSequence == 0 && trk.TrackStartSector == 0 && trk.TrackEndSector == 0)
throw new ArgumentOutOfRangeException(nameof(sectorAddress), throw new ArgumentOutOfRangeException(nameof(sectorAddress),
"Can't found track containing requested sector"); "Can't found track containing requested sector");
} }
@@ -987,7 +987,7 @@ namespace DiscImageChef.DiscImages
Tracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector && Tracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector); sectorAddress <= trk.TrackEndSector);
if(track.TrackSequence == 0) if(track.TrackSequence == 0 && track.TrackStartSector == 0 && track.TrackEndSector == 0)
{ {
ErrorMessage = $"Can't found track containing {sectorAddress}"; ErrorMessage = $"Can't found track containing {sectorAddress}";
return false; return false;
@@ -1152,7 +1152,7 @@ namespace DiscImageChef.DiscImages
Tracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector && Tracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector); sectorAddress <= trk.TrackEndSector);
if(track.TrackSequence == 0) if(track.TrackSequence == 0 && track.TrackStartSector == 0 && track.TrackEndSector == 0)
{ {
ErrorMessage = $"Can't found track containing {sectorAddress}"; ErrorMessage = $"Can't found track containing {sectorAddress}";
return false; return false;
@@ -2420,7 +2420,7 @@ namespace DiscImageChef.DiscImages
track = Tracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector && track = Tracks.FirstOrDefault(trk => sectorAddress >= trk.TrackStartSector &&
sectorAddress <= trk.TrackEndSector); sectorAddress <= trk.TrackEndSector);
if(track.TrackSequence == 0) if(track.TrackSequence == 0 && track.TrackStartSector == 0 && track.TrackEndSector == 0)
{ {
ErrorMessage = $"Can't found track containing {sectorAddress}"; ErrorMessage = $"Can't found track containing {sectorAddress}";
return false; return false;

View File

@@ -47,6 +47,7 @@ enum <uint> MediaType
CDV = 31, CDV = 31,
PD650 = 32, PD650 = 32,
PD650_WORM = 33, PD650_WORM = 33,
CDIREADY = 34,
DVDROM = 40, DVDROM = 40,
DVDR = 41, DVDR = 41,