diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs index f2e1898be..f2e986ff2 100644 --- a/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs +++ b/Aaru.Core/Devices/Dumping/CompactDisc/Tags.cs @@ -67,12 +67,12 @@ namespace Aaru.Core.Devices.Dumping if(!sense) { - ATIP.CDATIP? atip = ATIP.Decode(cmdBuf); + ATIP.CDATIP atip = ATIP.Decode(cmdBuf); - if(atip.HasValue) + if(atip != null) { // Only CD-R and CD-RW have ATIP - mediaType = atip.Value.DiscType ? MediaType.CDRW : MediaType.CDR; + mediaType = atip.DiscType ? MediaType.CDRW : MediaType.CDR; tmpBuf = new byte[cmdBuf.Length - 4]; Array.Copy(cmdBuf, 4, tmpBuf, 0, cmdBuf.Length - 4); diff --git a/Aaru.Core/Media/Info/ScsiInfo.cs b/Aaru.Core/Media/Info/ScsiInfo.cs index 7edd8cc5c..01a0434aa 100644 --- a/Aaru.Core/Media/Info/ScsiInfo.cs +++ b/Aaru.Core/Media/Info/ScsiInfo.cs @@ -1092,10 +1092,12 @@ namespace Aaru.Core.Media.Info Atip = cmdBuf; DecodedAtip = ATIP.Decode(cmdBuf); - if(DecodedAtip.HasValue) + if(DecodedAtip != null) // Only CD-R and CD-RW have ATIP - MediaType = DecodedAtip.Value.DiscType ? MediaType.CDRW : MediaType.CDR; + MediaType = DecodedAtip.DiscType ? MediaType.CDRW : MediaType.CDR; + else + Atip = null; } // We got a TOC, get information about a recorded/mastered CD @@ -1489,7 +1491,7 @@ namespace Aaru.Core.Media.Info public byte[] Pma { get; } public byte[] CdTextLeadIn { get; } public TOC.CDTOC? DecodedToc { get; } - public ATIP.CDATIP? DecodedAtip { get; } + public ATIP.CDATIP DecodedAtip { get; } public Session.CDSessionInfo? DecodedSession { get; } public FullTOC.CDFullTOC? FullToc { get; } public CDTextOnLeadIn.CDText? DecodedCdTextLeadIn { get; } diff --git a/Aaru.Core/Sidecar/OpticalDisc.cs b/Aaru.Core/Sidecar/OpticalDisc.cs index e42554db7..3819c7c0e 100644 --- a/Aaru.Core/Sidecar/OpticalDisc.cs +++ b/Aaru.Core/Sidecar/OpticalDisc.cs @@ -117,13 +117,13 @@ namespace Aaru.Core Size = (ulong)image.ReadDiskTag(MediaTagType.CD_ATIP).Length }; - ATIP.CDATIP? atip = ATIP.Decode(image.ReadDiskTag(MediaTagType.CD_ATIP)); + ATIP.CDATIP atip = ATIP.Decode(image.ReadDiskTag(MediaTagType.CD_ATIP)); - if(atip.HasValue) - if(atip.Value.DDCD) - dskType = atip.Value.DiscType ? MediaType.DDCDRW : MediaType.DDCDR; + if(atip != null) + if(atip.DDCD) + dskType = atip.DiscType ? MediaType.DDCDRW : MediaType.DDCDR; else - dskType = atip.Value.DiscType ? MediaType.CDRW : MediaType.CDR; + dskType = atip.DiscType ? MediaType.CDRW : MediaType.CDR; break; case MediaTagType.DVD_BCA: diff --git a/Aaru.Decoders b/Aaru.Decoders index a90d19ee1..3c540f41b 160000 --- a/Aaru.Decoders +++ b/Aaru.Decoders @@ -1 +1 @@ -Subproject commit a90d19ee110eb855839c67352a33bf4e9b5f6326 +Subproject commit 3c540f41b0fa586b876325cdde84ed2f5fedf39f diff --git a/Aaru.Gui/ViewModels/Panels/ImageInfoViewModel.cs b/Aaru.Gui/ViewModels/Panels/ImageInfoViewModel.cs index 5e6ae06b6..3c07bfb7a 100644 --- a/Aaru.Gui/ViewModels/Panels/ImageInfoViewModel.cs +++ b/Aaru.Gui/ViewModels/Panels/ImageInfoViewModel.cs @@ -252,7 +252,7 @@ namespace Aaru.Gui.ViewModels.Panels FullTOC.CDFullTOC? decodedFullToc = null; byte[] pma = null; byte[] atip = null; - ATIP.CDATIP? decodedAtip = null; + ATIP.CDATIP decodedAtip = null; byte[] cdtext = null; CDTextOnLeadIn.CDText? decodedCdText = null; string mediaCatalogueNumber = null; diff --git a/Aaru.Gui/ViewModels/Tabs/CompactDiscInfoViewModel.cs b/Aaru.Gui/ViewModels/Tabs/CompactDiscInfoViewModel.cs index 800b0e1e8..03f66a667 100644 --- a/Aaru.Gui/ViewModels/Tabs/CompactDiscInfoViewModel.cs +++ b/Aaru.Gui/ViewModels/Tabs/CompactDiscInfoViewModel.cs @@ -55,7 +55,7 @@ namespace Aaru.Gui.ViewModels.Tabs public CompactDiscInfoViewModel(byte[] toc, byte[] atip, byte[] compactDiscInformation, byte[] session, byte[] rawToc, byte[] pma, byte[] cdTextLeadIn, TOC.CDTOC? decodedToc, - ATIP.CDATIP? decodedAtip, Session.CDSessionInfo? decodedSession, + ATIP.CDATIP decodedAtip, Session.CDSessionInfo? decodedSession, FullTOC.CDFullTOC? fullToc, CDTextOnLeadIn.CDText? decodedCdTextLeadIn, DiscInformation.StandardDiscInformation? decodedCompactDiscInformation, string mcn, Dictionary isrcs, Window view) @@ -92,7 +92,7 @@ namespace Aaru.Gui.ViewModels.Tabs if(decodedCdTextLeadIn.HasValue) CdTextText = CDTextOnLeadIn.Prettify(decodedCdTextLeadIn); - if(decodedAtip.HasValue) + if(decodedAtip != null) CdAtipText = ATIP.Prettify(atip); if(!string.IsNullOrEmpty(mcn)) diff --git a/Aaru.Images/BlindWrite5/Read.cs b/Aaru.Images/BlindWrite5/Read.cs index 1a0f48c99..2526cc32f 100644 --- a/Aaru.Images/BlindWrite5/Read.cs +++ b/Aaru.Images/BlindWrite5/Read.cs @@ -1046,9 +1046,9 @@ namespace Aaru.DiscImages atipTmp[0] = (byte)((_atip.Length & 0xFF00) >> 8); atipTmp[1] = (byte)(_atip.Length & 0xFF); - ATIP.CDATIP atip0 = ATIP.Decode(atipTmp).Value; + ATIP.CDATIP atip0 = ATIP.Decode(atipTmp); - _imageInfo.MediaType = atip0.DiscType ? MediaType.CDRW : MediaType.CDR; + _imageInfo.MediaType = atip0?.DiscType ?? false ? MediaType.CDRW : MediaType.CDR; if(atip0.LeadInStartMin == 97) { diff --git a/Aaru.Images/ZZZRawImage/Read.cs b/Aaru.Images/ZZZRawImage/Read.cs index c9476685c..f8fb9ac64 100644 --- a/Aaru.Images/ZZZRawImage/Read.cs +++ b/Aaru.Images/ZZZRawImage/Read.cs @@ -495,10 +495,10 @@ namespace Aaru.DiscImages // Only CD-R and CD-RW have ATIP if(_mediaTags.TryGetValue(MediaTagType.CD_ATIP, out byte[] atipBuf)) { - ATIP.CDATIP? atip = ATIP.Decode(atipBuf); + ATIP.CDATIP atip = ATIP.Decode(atipBuf); - if(atip.HasValue) - _imageInfo.MediaType = atip.Value.DiscType ? MediaType.CDRW : MediaType.CDR; + if(atip != null) + _imageInfo.MediaType = atip.DiscType ? MediaType.CDRW : MediaType.CDR; } if(_mediaTags.TryGetValue(MediaTagType.Floppy_LeadOut, out byte[] leadout)) diff --git a/Aaru/Commands/Media/Info.cs b/Aaru/Commands/Media/Info.cs index 27f5662d9..55d601cb1 100644 --- a/Aaru/Commands/Media/Info.cs +++ b/Aaru/Commands/Media/Info.cs @@ -469,7 +469,7 @@ namespace Aaru.Commands.Media DataFile.WriteTo("Media-Info command", outputPrefix, "_atip.bin", "SCSI READ TOC/PMA/ATIP", scsiInfo.Atip); - if(scsiInfo.DecodedAtip.HasValue) + if(scsiInfo.DecodedAtip != null) AaruConsole.WriteLine("ATIP:\n{0}", ATIP.Prettify(scsiInfo.DecodedAtip)); }