diff --git a/DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs b/DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs index f17c40943..e2604fd36 100644 --- a/DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs +++ b/DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs @@ -1384,8 +1384,6 @@ namespace DiscImageChef.CommonTypes } default: return MediaType.UnknownMO; } - - return MediaType.UnknownMO; } // MultiMedia Device case 0x05: diff --git a/DiscImageChef.DiscImages/BlindWrite4.cs b/DiscImageChef.DiscImages/BlindWrite4.cs index 3f81cc668..01b4ff24b 100644 --- a/DiscImageChef.DiscImages/BlindWrite4.cs +++ b/DiscImageChef.DiscImages/BlindWrite4.cs @@ -593,47 +593,33 @@ namespace DiscImageChef.DiscImages { filtersList = new FiltersList(); - do - { - subFilter = - filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile)); - if(subFilter != null) break; - + subFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile)); + if(subFilter == null) subFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile.ToLower(CultureInfo .CurrentCulture))); - if(subFilter != null) break; - + if(subFilter == null) subFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile.ToUpper(CultureInfo .CurrentCulture))); - if(subFilter != null) break; - + if(subFilter == null) subFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile.Split(new[] {'\\'}, StringSplitOptions .RemoveEmptyEntries) .Last())); - if(subFilter != null) break; - + if(subFilter == null) subFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile.Split(new[] {'\\'}, StringSplitOptions .RemoveEmptyEntries) .Last().ToLower(CultureInfo.CurrentCulture))); - if(subFilter != null) break; - + if(subFilter == null) subFilter = filtersList.GetFilter(Path.Combine(imageFilter.GetParentFolder(), header.SubchannelFile.Split(new[] {'\\'}, StringSplitOptions .RemoveEmptyEntries) .Last().ToUpper(CultureInfo.CurrentCulture))); - if(subFilter != null) break; - - subFilter = null; - break; - } - while(true); } tracks = new List(); @@ -808,7 +794,8 @@ namespace DiscImageChef.DiscImages session.StartTrack = uint.MaxValue; session.StartSector = uint.MaxValue; - foreach(Track track in tracks.Where(track => track.TrackSession == i)) { + foreach(Track track in tracks.Where(track => track.TrackSession == i)) + { if(track.TrackSequence < session.StartTrack) session.StartTrack = track.TrackSequence; if(track.TrackSequence > session.EndTrack) session.StartTrack = track.TrackSequence; if(track.TrackStartSector < session.StartSector) session.StartSector = track.TrackStartSector; @@ -929,14 +916,28 @@ namespace DiscImageChef.DiscImages public override byte[] ReadSectors(ulong sectorAddress, uint length) { - foreach(KeyValuePair kvp in from kvp in offsetmap where sectorAddress >= kvp.Value from track in tracks where track.TrackSequence == kvp.Key where sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1 select kvp) return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key); + foreach(KeyValuePair kvp in from kvp in offsetmap + where sectorAddress >= kvp.Value + from track in tracks + where track.TrackSequence == kvp.Key + where sectorAddress - kvp.Value < + track.TrackEndSector - track.TrackStartSector + 1 + select kvp) + return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key); throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found"); } public override byte[] ReadSectorsTag(ulong sectorAddress, uint length, SectorTagType tag) { - foreach(KeyValuePair kvp in from kvp in offsetmap where sectorAddress >= kvp.Value from track in tracks where track.TrackSequence == kvp.Key where sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1 select kvp) return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag); + foreach(KeyValuePair kvp in from kvp in offsetmap + where sectorAddress >= kvp.Value + from track in tracks + where track.TrackSequence == kvp.Key + where sectorAddress - kvp.Value < + track.TrackEndSector - track.TrackStartSector + 1 + select kvp) + return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag); throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found"); } @@ -947,7 +948,8 @@ namespace DiscImageChef.DiscImages _track.TrackSequence = 0; - foreach(Track bwTrack in tracks.Where(bwTrack => bwTrack.TrackSequence == track)) { + foreach(Track bwTrack in tracks.Where(bwTrack => bwTrack.TrackSequence == track)) + { _track = bwTrack; break; } @@ -960,8 +962,7 @@ namespace DiscImageChef.DiscImages string .Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks", length + sectorAddress, - _track.TrackEndSector - _track.TrackStartSector + - 1)); + _track.TrackEndSector - _track.TrackStartSector + 1)); uint sectorOffset; uint sectorSize; @@ -1027,7 +1028,8 @@ namespace DiscImageChef.DiscImages _track.TrackSequence = 0; - foreach(Track bwTrack in tracks.Where(bwTrack => bwTrack.TrackSequence == track)) { + foreach(Track bwTrack in tracks.Where(bwTrack => bwTrack.TrackSequence == track)) + { _track = bwTrack; break; } @@ -1040,8 +1042,7 @@ namespace DiscImageChef.DiscImages string .Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks", length + sectorAddress, - _track.TrackEndSector - _track.TrackStartSector + - 1)); + _track.TrackEndSector - _track.TrackStartSector + 1)); uint sectorOffset; uint sectorSize; @@ -1199,7 +1200,14 @@ namespace DiscImageChef.DiscImages public override byte[] ReadSectorsLong(ulong sectorAddress, uint length) { - foreach(KeyValuePair kvp in from kvp in offsetmap where sectorAddress >= kvp.Value from track in tracks where track.TrackSequence == kvp.Key where sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1 select kvp) return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key); + foreach(KeyValuePair kvp in from kvp in offsetmap + where sectorAddress >= kvp.Value + from track in tracks + where track.TrackSequence == kvp.Key + where sectorAddress - kvp.Value < + track.TrackEndSector - track.TrackStartSector + 1 + select kvp) + return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key); throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found"); } @@ -1210,7 +1218,8 @@ namespace DiscImageChef.DiscImages _track.TrackSequence = 0; - foreach(Track bwTrack in tracks.Where(bwTrack => bwTrack.TrackSequence == track)) { + foreach(Track bwTrack in tracks.Where(bwTrack => bwTrack.TrackSequence == track)) + { _track = bwTrack; break; } @@ -1223,8 +1232,7 @@ namespace DiscImageChef.DiscImages string .Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks", length + sectorAddress, - _track.TrackEndSector - _track.TrackStartSector + - 1)); + _track.TrackEndSector - _track.TrackStartSector + 1)); uint sectorOffset; uint sectorSize; diff --git a/DiscImageChef.DiscImages/CDRDAO.cs b/DiscImageChef.DiscImages/CDRDAO.cs index f79169ce5..5610c0784 100644 --- a/DiscImageChef.DiscImages/CDRDAO.cs +++ b/DiscImageChef.DiscImages/CDRDAO.cs @@ -1234,8 +1234,6 @@ namespace DiscImageChef.DiscImages sectorOffset = 2048; sectorSize = 96; break; - - throw new ArgumentException("No tags in image for requested track", nameof(tag)); case CDRDAO_TRACK_TYPE_MODE2_FORM2: case CDRDAO_TRACK_TYPE_MODE2_MIX: if(tag != SectorTagType.CdSectorSubchannel) @@ -1244,8 +1242,6 @@ namespace DiscImageChef.DiscImages sectorOffset = 2336; sectorSize = 96; break; - - throw new ArgumentException("No tags in image for requested track", nameof(tag)); case CDRDAO_TRACK_TYPE_AUDIO: if(tag != SectorTagType.CdSectorSubchannel) throw new ArgumentException("No tags in image for requested track", nameof(tag)); @@ -1253,8 +1249,6 @@ namespace DiscImageChef.DiscImages sectorOffset = 2352; sectorSize = 96; break; - - throw new ArgumentException("No tags in image for requested track", nameof(tag)); case CDRDAO_TRACK_TYPE_MODE1_RAW: { switch(tag) @@ -1321,8 +1315,6 @@ namespace DiscImageChef.DiscImages sectorOffset = 2352; sectorSize = 96; break; - - throw new FeatureSupportedButNotImplementedImageException("Feature not yet implemented"); default: throw new FeatureSupportedButNotImplementedImageException("Unsupported track type"); } diff --git a/DiscImageChef.DiscImages/ZZZRawImage.cs b/DiscImageChef.DiscImages/ZZZRawImage.cs index 1924a9ca4..c1c03ef3f 100644 --- a/DiscImageChef.DiscImages/ZZZRawImage.cs +++ b/DiscImageChef.DiscImages/ZZZRawImage.cs @@ -112,8 +112,6 @@ namespace DiscImageChef.DiscImages case 1255168: return true; default: return false; } - - return true; } public override bool OpenImage(Filter imageFilter) diff --git a/DiscImageChef.Interop/DetectOS.cs b/DiscImageChef.Interop/DetectOS.cs index e812b4e5d..f495dcabc 100644 --- a/DiscImageChef.Interop/DetectOS.cs +++ b/DiscImageChef.Interop/DetectOS.cs @@ -205,9 +205,6 @@ namespace DiscImageChef.Interop } goto default; - - return string.Format("10.{0}.{1}", Environment.OSVersion.Version.Major - 4, - Environment.OSVersion.Version.Minor); case PlatformID.Win32NT: // From Windows 8.1 the reported version is simply falsified... if(Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Major >= 2 ||