diff --git a/Aaru.Core/Media/Detection/MMC.cs b/Aaru.Core/Media/Detection/MMC.cs index 0d004b2ac..d9309aca6 100644 --- a/Aaru.Core/Media/Detection/MMC.cs +++ b/Aaru.Core/Media/Detection/MMC.cs @@ -299,26 +299,29 @@ namespace Aaru.Core.Media.Detection } } - if(hasDataTrack && - hasAudioTrack && - allFirstSessionTracksAreAudio && - sessions == 2) - mediaType = MediaType.CDPLUS; + if(mediaType != MediaType.CDI) + { + if(hasDataTrack && + hasAudioTrack && + allFirstSessionTracksAreAudio && + sessions == 2) + mediaType = MediaType.CDPLUS; - if(!hasDataTrack && - hasAudioTrack && - sessions == 1) - mediaType = MediaType.CDDA; + if(!hasDataTrack && + hasAudioTrack && + sessions == 1) + mediaType = MediaType.CDDA; - if(hasDataTrack && - !hasAudioTrack && - sessions == 1) - mediaType = MediaType.CDROM; + if(hasDataTrack && + !hasAudioTrack && + sessions == 1) + mediaType = MediaType.CDROM; - if(hasVideoTrack && - !hasDataTrack && - sessions == 1) - mediaType = MediaType.CDV; + if(hasVideoTrack && + !hasDataTrack && + sessions == 1) + mediaType = MediaType.CDV; + } if((mediaType == MediaType.CD || mediaType == MediaType.CDROM) && hasDataTrack) { diff --git a/Aaru.Core/Media/Info/ScsiInfo.cs b/Aaru.Core/Media/Info/ScsiInfo.cs index 9edd4e4b9..c3415809d 100644 --- a/Aaru.Core/Media/Info/ScsiInfo.cs +++ b/Aaru.Core/Media/Info/ScsiInfo.cs @@ -1124,7 +1124,7 @@ namespace Aaru.Core.Media.Info AaruConsole.DebugWriteLine("Media-Info command", "READ TOC/PMA/ATIP: Session info\n{0}", Sense.PrettifySense(senseBuf)); } - else + else if(cmdBuf.Length > 4) { Session = cmdBuf; DecodedSession = Decoders.CD.Session.Decode(cmdBuf); @@ -1143,7 +1143,7 @@ namespace Aaru.Core.Media.Info AaruConsole.DebugWriteLine("Media-Info command", "READ TOC/PMA/ATIP: Raw TOC\n{0}", Sense.PrettifySense(senseBuf)); } - else + else if(cmdBuf.Length > 4) { RawToc = cmdBuf; @@ -1155,7 +1155,7 @@ namespace Aaru.Core.Media.Info if(sense) AaruConsole.DebugWriteLine("Media-Info command", "READ TOC/PMA/ATIP: PMA\n{0}", Sense.PrettifySense(senseBuf)); - else + else if(cmdBuf.Length > 4) Pma = cmdBuf; sense = dev.ReadCdText(out cmdBuf, out senseBuf, dev.Timeout, out _); @@ -1165,7 +1165,7 @@ namespace Aaru.Core.Media.Info AaruConsole.DebugWriteLine("Media-Info command", "READ TOC/PMA/ATIP: CD-TEXT\n{0}", Sense.PrettifySense(senseBuf)); } - else + else if(cmdBuf.Length > 4) { CdTextLeadIn = cmdBuf; DecodedCdTextLeadIn = CDTextOnLeadIn.Decode(cmdBuf); diff --git a/Aaru.Decoders b/Aaru.Decoders index b7c9b6b1f..78d0ae75e 160000 --- a/Aaru.Decoders +++ b/Aaru.Decoders @@ -1 +1 @@ -Subproject commit b7c9b6b1fb5304359ab5fe5256860a4c400743c8 +Subproject commit 78d0ae75e2ce8ea9d8693a61620e1a8c2a182d89