REFACTOR: Remove redundant parentheses.

This commit is contained in:
2017-12-20 17:26:28 +00:00
parent a4650c61aa
commit b0936d51c5
160 changed files with 1096 additions and 1106 deletions

View File

@@ -562,7 +562,7 @@ namespace DiscImageChef.DiscImages
if(!data && !firstdata) ImageInfo.MediaType = MediaType.CDDA;
else if(firstaudio && data && sessions.Count > 1 && mode2) ImageInfo.MediaType = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(firstdata && audio || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(!audio) ImageInfo.MediaType = MediaType.CDROM;
else ImageInfo.MediaType = MediaType.CD;
}
@@ -839,8 +839,8 @@ namespace DiscImageChef.DiscImages
if(track.point == kvp.Key && alcTrackExtras.TryGetValue(track.point, out extra))
{
if((sectorAddress - kvp.Value) < extra.sectors)
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < extra.sectors)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -861,8 +861,8 @@ namespace DiscImageChef.DiscImages
if(track.point == kvp.Key && alcTrackExtras.TryGetValue(track.point, out extra))
{
if((sectorAddress - kvp.Value) < extra.sectors)
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < extra.sectors)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -1002,7 +1002,7 @@ namespace DiscImageChef.DiscImages
case SectorTagType.CdSectorSubchannel:
case SectorTagType.CdSectorSubHeader:
case SectorTagType.CdSectorSync: break;
case SectorTagType.CdTrackFlags: return new byte[] {((byte)(_track.adrCtl & 0x0F))};
case SectorTagType.CdTrackFlags: return new byte[] {(byte)(_track.adrCtl & 0x0F)};
default: throw new ArgumentException("Unsupported tag requested", nameof(tag));
}
@@ -1323,8 +1323,8 @@ namespace DiscImageChef.DiscImages
if(track.point == kvp.Key && alcTrackExtras.TryGetValue(track.point, out extra))
{
if((sectorAddress - kvp.Value) < extra.sectors)
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < extra.sectors)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}

View File

@@ -107,7 +107,7 @@ namespace DiscImageChef.DiscImages
for(int t = 0; t < 35; t++)
{
for(int s = 0; s < 16; s++)
Array.Copy(tmp, (t * 16 * 256) + (s * 256), deinterleaved, (t * 16 * 256) + (offsets[s] * 256),
Array.Copy(tmp, t * 16 * 256 + s * 256, deinterleaved, t * 16 * 256 + offsets[s] * 256,
256);
}

View File

@@ -161,7 +161,7 @@ namespace DiscImageChef.DiscImages
// Deleted record, just skip it
case RecordType.Deleted:
DicConsole.DebugWriteLine("Apridisk plugin", "Found deleted record at {0}", stream.Position);
stream.Seek((record.headerSize - recordSize) + record.dataSize, SeekOrigin.Current);
stream.Seek(record.headerSize - recordSize + record.dataSize, SeekOrigin.Current);
break;
case RecordType.Comment:
DicConsole.DebugWriteLine("Apridisk plugin", "Found comment record at {0}", stream.Position);
@@ -198,7 +198,7 @@ namespace DiscImageChef.DiscImages
if(record.head > totalHeads) totalHeads = record.head;
if(record.sector > maxSector) maxSector = record.sector;
stream.Seek((record.headerSize - recordSize) + record.dataSize, SeekOrigin.Current);
stream.Seek(record.headerSize - recordSize + record.dataSize, SeekOrigin.Current);
break;
default:
throw new
@@ -255,7 +255,7 @@ namespace DiscImageChef.DiscImages
case RecordType.Deleted:
case RecordType.Comment:
case RecordType.Creator:
stream.Seek((record.headerSize - recordSize) + record.dataSize, SeekOrigin.Current);
stream.Seek(record.headerSize - recordSize + record.dataSize, SeekOrigin.Current);
headersizes += record.headerSize + record.dataSize;
break;
case RecordType.Sector:
@@ -454,8 +454,8 @@ namespace DiscImageChef.DiscImages
(ushort cylinder, byte head, byte sector) LbaToChs(ulong lba)
{
ushort cylinder = (ushort)(lba / (ImageInfo.Heads * ImageInfo.SectorsPerTrack));
byte head = (byte)((lba / ImageInfo.SectorsPerTrack) % ImageInfo.Heads);
byte sector = (byte)((lba % ImageInfo.SectorsPerTrack) + 1);
byte head = (byte)(lba / ImageInfo.SectorsPerTrack % ImageInfo.Heads);
byte sector = (byte)(lba % ImageInfo.SectorsPerTrack + 1);
return (cylinder, head, sector);
}

View File

@@ -189,7 +189,7 @@ namespace DiscImageChef.DiscImages
break;
default:
ImageInfo.MediaType = MediaType.GENERIC_HDD;
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
break;

View File

@@ -868,7 +868,7 @@ namespace DiscImageChef.DiscImages
if(!data && !firstdata) ImageInfo.MediaType = MediaType.CDDA;
else if(firstaudio && data && sessions.Count > 1 && mode2) ImageInfo.MediaType = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(firstdata && audio || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(!audio) ImageInfo.MediaType = MediaType.CDROM;
else ImageInfo.MediaType = MediaType.CD;
@@ -949,8 +949,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector + 1))
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -969,8 +969,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector + 1))
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -997,13 +997,13 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector - _track.TrackStartSector + 1))
if(length + sectorAddress > _track.TrackEndSector - _track.TrackStartSector + 1)
throw new ArgumentOutOfRangeException(nameof(length),
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;
@@ -1083,13 +1083,13 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector - _track.TrackStartSector + 1))
if(length + sectorAddress > _track.TrackEndSector - _track.TrackStartSector + 1)
throw new ArgumentOutOfRangeException(nameof(length),
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;
@@ -1257,8 +1257,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector + 1))
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1285,13 +1285,13 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector - _track.TrackStartSector + 1))
if(length + sectorAddress > _track.TrackEndSector - _track.TrackStartSector + 1)
throw new ArgumentOutOfRangeException(nameof(length),
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;

View File

@@ -738,8 +738,8 @@ namespace DiscImageChef.DiscImages
long sectorSize = dataFile.Length / dataFile.Sectors;
if(sectorSize > 2352)
{
if((sectorSize - 2352) == 16) chars.Subchannel = TrackSubchannelType.Q16Interleaved;
else if((sectorSize - 2352) == 96) chars.Subchannel = TrackSubchannelType.PackedInterleaved;
if(sectorSize - 2352 == 16) chars.Subchannel = TrackSubchannelType.Q16Interleaved;
else if(sectorSize - 2352 == 96) chars.Subchannel = TrackSubchannelType.PackedInterleaved;
else
{
DicConsole.ErrorWriteLine("BlindWrite5 found unknown subchannel size: {0}", sectorSize - 2352);
@@ -868,13 +868,13 @@ namespace DiscImageChef.DiscImages
foreach(DataFileCharacteristics chars in filePaths)
{
if(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();
if(trk.startLba >= 0)
track.TrackFileOffset = (ulong)((trk.startLba - chars.StartLba) * chars.SectorSize);
else track.TrackFileOffset = (ulong)((trk.startLba * -1) * chars.SectorSize);
else track.TrackFileOffset = (ulong)(trk.startLba * -1 * chars.SectorSize);
track.TrackFileType = "BINARY";
if(chars.Subchannel != TrackSubchannelType.None)
{
@@ -903,7 +903,7 @@ namespace DiscImageChef.DiscImages
partition.Description = track.TrackDescription;
partition.Size = (track.TrackEndSector - track.TrackStartSector) *
(ulong)track.TrackRawBytesPerSector;
partition.Length = (track.TrackEndSector - track.TrackStartSector);
partition.Length = track.TrackEndSector - track.TrackStartSector;
partition.Sequence = track.TrackSequence;
partition.Offset = offsetBytes;
partition.Start = track.TrackStartSector;
@@ -1065,7 +1065,7 @@ namespace DiscImageChef.DiscImages
if(!data && !firstdata) ImageInfo.MediaType = MediaType.CDDA;
else if(firstaudio && data && sessions.Count > 1 && mode2) ImageInfo.MediaType = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(firstdata && audio || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(!audio) ImageInfo.MediaType = MediaType.CDROM;
else ImageInfo.MediaType = MediaType.CD;
}
@@ -1265,8 +1265,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector))
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1285,8 +1285,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector))
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -1315,7 +1315,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector))
if(length + sectorAddress > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",
@@ -1323,7 +1323,7 @@ namespace DiscImageChef.DiscImages
foreach(DataFileCharacteristics _chars in filePaths)
{
if((long)sectorAddress >= _chars.StartLba && length < ((ulong)_chars.Sectors - sectorAddress))
if((long)sectorAddress >= _chars.StartLba && length < (ulong)_chars.Sectors - sectorAddress)
{
chars = _chars;
break;
@@ -1442,7 +1442,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector))
if(length + sectorAddress > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",
@@ -1450,7 +1450,7 @@ namespace DiscImageChef.DiscImages
foreach(DataFileCharacteristics _chars in filePaths)
{
if((long)sectorAddress >= _chars.StartLba && length < ((ulong)_chars.Sectors - sectorAddress))
if((long)sectorAddress >= _chars.StartLba && length < (ulong)_chars.Sectors - sectorAddress)
{
chars = _chars;
break;
@@ -1735,8 +1735,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector))
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1765,7 +1765,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector))
if(length + sectorAddress > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",
@@ -1773,7 +1773,7 @@ namespace DiscImageChef.DiscImages
foreach(DataFileCharacteristics _chars in filePaths)
{
if((long)sectorAddress >= _chars.StartLba && length < ((ulong)_chars.Sectors - sectorAddress))
if((long)sectorAddress >= _chars.StartLba && length < (ulong)_chars.Sectors - sectorAddress)
{
chars = _chars;
break;

View File

@@ -650,7 +650,7 @@ namespace DiscImageChef.DiscImages
ulong.Parse(startString[2]);
}
currenttrack.Trackfile.Offset += (startSectors * currenttrack.Bps);
currenttrack.Trackfile.Offset += startSectors * currenttrack.Bps;
if(matchAudioFile.Groups["length"].Value != "")
{
@@ -870,7 +870,7 @@ namespace DiscImageChef.DiscImages
partition.Name = discimage.Tracks[i].Title;
partition.Start = discimage.Tracks[i].StartSector;
partition.Size = (discimage.Tracks[i].Sectors - index0Len) * discimage.Tracks[i].Bps;
partition.Length = (discimage.Tracks[i].Sectors - index0Len);
partition.Length = discimage.Tracks[i].Sectors - index0Len;
partition.Sequence = partitionSequence;
partition.Offset = byteOffset;
partition.Type = discimage.Tracks[i].Tracktype;
@@ -1078,8 +1078,8 @@ namespace DiscImageChef.DiscImages
{
if(cdrdaoTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < cdrdaoTrack.Sectors)
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < cdrdaoTrack.Sectors)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1099,8 +1099,8 @@ namespace DiscImageChef.DiscImages
{
if(cdrdaoTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < cdrdaoTrack.Sectors)
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < cdrdaoTrack.Sectors)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -1412,8 +1412,8 @@ namespace DiscImageChef.DiscImages
{
if(cdrdaoTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < cdrdaoTrack.Sectors)
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < cdrdaoTrack.Sectors)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}

View File

@@ -619,7 +619,7 @@ namespace DiscImageChef.DiscImages
// Check if file exists
if(currentfile.Datafilter == null)
{
if(datafile[0] == '/' || (datafile[0] == '/' && datafile[1] == '.')
if(datafile[0] == '/' || datafile[0] == '/' && datafile[1] == '.'
) // UNIX absolute path
{
Regex unixpath = new Regex("^(.+)/([^/]+)$");
@@ -648,9 +648,9 @@ namespace DiscImageChef.DiscImages
FeatureUnsupportedImageException(string.Format("File \"{0}\" not found.",
matchFile.Groups[1].Value));
}
else if((datafile[1] == ':' && datafile[2] == '\\') ||
(datafile[0] == '\\' && datafile[1] == '\\') ||
((datafile[0] == '.' && datafile[1] == '\\'))) // Windows absolute path
else if(datafile[1] == ':' && datafile[2] == '\\' ||
datafile[0] == '\\' && datafile[1] == '\\' ||
datafile[0] == '.' && datafile[1] == '\\') // Windows absolute path
{
Regex winpath =
new
@@ -747,13 +747,13 @@ namespace DiscImageChef.DiscImages
int index = int.Parse(matchIndex.Groups[1].Value);
ulong offset = CdrWinMsftoLba(matchIndex.Groups[2].Value);
if((index != 0 && index != 1) && currenttrack.Indexes.Count == 0)
if(index != 0 && index != 1 && currenttrack.Indexes.Count == 0)
throw new
FeatureUnsupportedImageException(string
.Format("Found INDEX {0} before INDEX 00 or INDEX 01",
index));
if((index == 0 || (index == 1 && !currenttrack.Indexes.ContainsKey(0))))
if(index == 0 || index == 1 && !currenttrack.Indexes.ContainsKey(0))
{
if((int)(currenttrack.Sequence - 2) >= 0 && offset > 1)
{
@@ -773,7 +773,7 @@ namespace DiscImageChef.DiscImages
}
}
if((index == 0 || (index == 1 && !currenttrack.Indexes.ContainsKey(0))) &&
if((index == 0 || index == 1 && !currenttrack.Indexes.ContainsKey(0)) &&
currenttrack.Sequence == 1)
{
DicConsole.DebugWriteLine("CDRWin plugin",
@@ -972,7 +972,7 @@ namespace DiscImageChef.DiscImages
else if(cdi) discimage.Disktype = MediaType.CDI;
else if(firstaudio && data && discimage.Sessions.Count > 1 && mode2)
discimage.Disktype = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) discimage.Disktype = MediaType.CDROMXA;
else if(firstdata && audio || mode2) discimage.Disktype = MediaType.CDROMXA;
else if(!audio) discimage.Disktype = MediaType.CDROM;
else discimage.Disktype = MediaType.CD;
}
@@ -1180,7 +1180,7 @@ namespace DiscImageChef.DiscImages
partition.Name = discimage.Tracks[i].Title;
partition.Start = sectorOffset;
partition.Size = (discimage.Tracks[i].Sectors - index0Len) * discimage.Tracks[i].Bps;
partition.Length = (discimage.Tracks[i].Sectors - index0Len);
partition.Length = discimage.Tracks[i].Sectors - index0Len;
partition.Sequence = partitionSequence;
partition.Offset = byteOffset;
partition.Type = discimage.Tracks[i].Tracktype;
@@ -1401,8 +1401,8 @@ namespace DiscImageChef.DiscImages
{
if(cdrwinTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < cdrwinTrack.Sectors)
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < cdrwinTrack.Sectors)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1421,8 +1421,8 @@ namespace DiscImageChef.DiscImages
{
if(cdrwinTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < cdrwinTrack.Sectors)
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < cdrwinTrack.Sectors)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -1752,8 +1752,8 @@ namespace DiscImageChef.DiscImages
{
if(cdrwinTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < cdrwinTrack.Sectors)
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < cdrwinTrack.Sectors)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -2100,7 +2100,7 @@ namespace DiscImageChef.DiscImages
second = ulong.Parse(msfElements[1]);
frame = ulong.Parse(msfElements[2]);
sectors = (minute * 60 * 75) + (second * 75) + frame;
sectors = minute * 60 * 75 + second * 75 + frame;
return sectors;
}

View File

@@ -660,7 +660,7 @@ namespace DiscImageChef.DiscImages
hunkTable = new ulong[hdrV1.totalhunks];
uint hunkSectorCount = (uint)Math.Ceiling(((double)hdrV1.totalhunks * 8) / 512);
uint hunkSectorCount = (uint)Math.Ceiling((double)hdrV1.totalhunks * 8 / 512);
byte[] hunkSectorBytes = new byte[512];
HunkSector hunkSector = new HunkSector();
@@ -676,11 +676,11 @@ namespace DiscImageChef.DiscImages
handle.Free();
// This restores the order of elements
Array.Reverse(hunkSector.hunkEntry);
if(hunkTable.Length >= (i * 512) / 8 + 512 / 8)
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, (i * 512) / 8, 512 / 8);
if(hunkTable.Length >= i * 512 / 8 + 512 / 8)
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, i * 512 / 8, 512 / 8);
else
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, (i * 512) / 8,
hunkTable.Length - (i * 512) / 8);
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, i * 512 / 8,
hunkTable.Length - i * 512 / 8);
}
DateTime end = DateTime.UtcNow;
@@ -733,7 +733,7 @@ namespace DiscImageChef.DiscImages
hunkTable = new ulong[hdrV2.totalhunks];
// How many sectors uses the BAT
uint hunkSectorCount = (uint)Math.Ceiling(((double)hdrV2.totalhunks * 8) / 512);
uint hunkSectorCount = (uint)Math.Ceiling((double)hdrV2.totalhunks * 8 / 512);
byte[] hunkSectorBytes = new byte[512];
HunkSector hunkSector = new HunkSector();
@@ -749,11 +749,11 @@ namespace DiscImageChef.DiscImages
handle.Free();
// This restores the order of elements
Array.Reverse(hunkSector.hunkEntry);
if(hunkTable.Length >= (i * 512) / 8 + 512 / 8)
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, (i * 512) / 8, 512 / 8);
if(hunkTable.Length >= i * 512 / 8 + 512 / 8)
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, i * 512 / 8, 512 / 8);
else
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, (i * 512) / 8,
hunkTable.Length - (i * 512) / 8);
Array.Copy(hunkSector.hunkEntry, 0, hunkTable, i * 512 / 8,
hunkTable.Length - i * 512 / 8);
}
DateTime end = DateTime.UtcNow;
@@ -910,7 +910,7 @@ namespace DiscImageChef.DiscImages
hunkTableSmall = new uint[hdrV5.logicalbytes / hdrV5.hunkbytes];
uint hunkSectorCount = (uint)Math.Ceiling(((double)hunkTableSmall.Length * 4) / 512);
uint hunkSectorCount = (uint)Math.Ceiling((double)hunkTableSmall.Length * 4 / 512);
byte[] hunkSectorBytes = new byte[512];
HunkSectorSmall hunkSector = new HunkSectorSmall();
@@ -929,11 +929,11 @@ namespace DiscImageChef.DiscImages
handle.Free();
// This restores the order of elements
Array.Reverse(hunkSector.hunkEntry);
if(hunkTableSmall.Length >= (i * 512) / 4 + 512 / 4)
Array.Copy(hunkSector.hunkEntry, 0, hunkTableSmall, (i * 512) / 4, 512 / 4);
if(hunkTableSmall.Length >= i * 512 / 4 + 512 / 4)
Array.Copy(hunkSector.hunkEntry, 0, hunkTableSmall, i * 512 / 4, 512 / 4);
else
Array.Copy(hunkSector.hunkEntry, 0, hunkTableSmall, (i * 512) / 4,
hunkTableSmall.Length - (i * 512) / 4);
Array.Copy(hunkSector.hunkEntry, 0, hunkTableSmall, i * 512 / 4,
hunkTableSmall.Length - i * 512 / 4);
}
DateTime end = DateTime.UtcNow;
@@ -1519,7 +1519,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.XmlMediaType = XmlMediaType.OpticalDisc;
foreach(Track _trk in tracks.Values)
ImageInfo.Sectors += (_trk.TrackEndSector - _trk.TrackStartSector + 1);
ImageInfo.Sectors += _trk.TrackEndSector - _trk.TrackStartSector + 1;
}
else if(isGdrom)
{
@@ -1529,7 +1529,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.XmlMediaType = XmlMediaType.OpticalDisc;
foreach(Track _trk in tracks.Values)
ImageInfo.Sectors += (_trk.TrackEndSector - _trk.TrackStartSector + 1);
ImageInfo.Sectors += _trk.TrackEndSector - _trk.TrackStartSector + 1;
}
else throw new ImageNotSupportedException("Image does not represent a known media, aborting");
}
@@ -1545,7 +1545,7 @@ namespace DiscImageChef.DiscImages
partition.Description = _track.TrackDescription;
partition.Size = (_track.TrackEndSector - _track.TrackStartSector + 1) *
(ulong)_track.TrackRawBytesPerSector;
partition.Length = (_track.TrackEndSector - _track.TrackStartSector + 1);
partition.Length = _track.TrackEndSector - _track.TrackStartSector + 1;
partition.Sequence = _track.TrackSequence;
partition.Offset = partPos;
partition.Start = _track.TrackStartSector;
@@ -1657,14 +1657,14 @@ namespace DiscImageChef.DiscImages
switch(mapVersion)
{
case 1:
ulong offset = (hunkTable[hunkNo] & 0x00000FFFFFFFFFFF);
ulong offset = hunkTable[hunkNo] & 0x00000FFFFFFFFFFF;
ulong length = hunkTable[hunkNo] >> 44;
byte[] compHunk = new byte[length];
imageStream.Seek((long)offset, SeekOrigin.Begin);
imageStream.Read(compHunk, 0, compHunk.Length);
if(length == (sectorsPerHunk * ImageInfo.SectorSize)) { hunk = compHunk; }
if(length == sectorsPerHunk * ImageInfo.SectorSize) { hunk = compHunk; }
else if((ChdCompression)hdrCompression > ChdCompression.Zlib)
throw new ImageNotSupportedException(string.Format("Unsupported compression {0}",
(ChdCompression)hdrCompression));
@@ -1706,7 +1706,7 @@ namespace DiscImageChef.DiscImages
DeflateStream zStream =
new DeflateStream(new MemoryStream(zHunk), CompressionMode.Decompress);
hunk = new byte[bytesPerHunk];
int read = zStream.Read(hunk, 0, (int)(bytesPerHunk));
int read = zStream.Read(hunk, 0, (int)bytesPerHunk);
if(read != bytesPerHunk)
throw new
IOException(string
@@ -1922,7 +1922,7 @@ namespace DiscImageChef.DiscImages
}
ulong hunkNo = sectorAddress / sectorsPerHunk;
ulong secOff = (sectorAddress * sectorSize) % (sectorsPerHunk * sectorSize);
ulong secOff = sectorAddress * sectorSize % (sectorsPerHunk * sectorSize);
byte[] hunk = GetHunk(hunkNo);
@@ -2027,7 +2027,7 @@ namespace DiscImageChef.DiscImages
sectorSize = (uint)track.TrackRawBytesPerSector;
ulong hunkNo = sectorAddress / sectorsPerHunk;
ulong secOff = (sectorAddress * sectorSize) % (sectorsPerHunk * sectorSize);
ulong secOff = sectorAddress * sectorSize % (sectorsPerHunk * sectorSize);
byte[] hunk = GetHunk(hunkNo);
@@ -2304,7 +2304,7 @@ namespace DiscImageChef.DiscImages
sectorSize = (uint)track.TrackRawBytesPerSector;
ulong hunkNo = sectorAddress / sectorsPerHunk;
ulong secOff = (sectorAddress * sectorSize) % (sectorsPerHunk * sectorSize);
ulong secOff = sectorAddress * sectorSize % (sectorsPerHunk * sectorSize);
byte[] hunk = GetHunk(hunkNo);

View File

@@ -801,9 +801,9 @@ namespace DiscImageChef.DiscImages
Partition partition = new Partition();
partition.Description = track.TrackDescription;
partition.Size = ((track.TrackEndSector - track.TrackStartSector) + 1) *
partition.Size = (track.TrackEndSector - track.TrackStartSector + 1) *
(ulong)track.TrackRawBytesPerSector;
partition.Length = (track.TrackEndSector - track.TrackStartSector) + 1;
partition.Length = track.TrackEndSector - track.TrackStartSector + 1;
ImageInfo.Sectors += partition.Length;
partition.Sequence = track.TrackSequence;
partition.Offset = track.TrackFileOffset;
@@ -848,7 +848,7 @@ namespace DiscImageChef.DiscImages
if(!data && !firstdata) ImageInfo.MediaType = MediaType.CDDA;
else if(firstaudio && data && sessions.Count > 1 && mode2) ImageInfo.MediaType = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(firstdata && audio || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(!audio) ImageInfo.MediaType = MediaType.CDROM;
else ImageInfo.MediaType = MediaType.CD;
@@ -871,7 +871,7 @@ namespace DiscImageChef.DiscImages
static ulong GetLba(int hour, int minute, int second, int frame)
{
return (ulong)((hour * 60 * 60 * 75) + (minute * 60 * 75) + (second * 75) + frame - 150);
return (ulong)(hour * 60 * 60 * 75 + minute * 60 * 75 + second * 75 + frame - 150);
}
public override bool ImageHasPartitions()
@@ -944,7 +944,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == kvp.Key)
{
if(sectorAddress <= _track.TrackEndSector)
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -965,7 +965,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == kvp.Key)
{
if(sectorAddress <= _track.TrackEndSector)
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -993,7 +993,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if((length + sectorAddress) - 1 > _track.TrackEndSector)
if(length + sectorAddress - 1 > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0} {2}) than present in track ({1}), won't cross tracks",
@@ -1082,7 +1082,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if((length + sectorAddress) - 1 > (_track.TrackEndSector))
if(length + sectorAddress - 1 > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",
@@ -1333,8 +1333,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < ((track.TrackEndSector - track.TrackStartSector) + 1))
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector + 1)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1362,7 +1362,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if((length + sectorAddress) - 1 > (_track.TrackEndSector))
if(length + sectorAddress - 1 > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",

View File

@@ -207,7 +207,7 @@ namespace DiscImageChef.DiscImages
ushort magic = BitConverter.ToUInt16(hdr, 0);
if(magic != COPYQM_MAGIC || hdr[0x02] != COPYQM_MARK || (133 + hdr[0x6F]) >= stream.Length) return false;
if(magic != COPYQM_MAGIC || hdr[0x02] != COPYQM_MARK || 133 + hdr[0x6F] >= stream.Length) return false;
return true;
}
@@ -277,7 +277,7 @@ namespace DiscImageChef.DiscImages
byte[] repeatedArray = new byte[runLength * -1];
ArrayHelpers.ArrayFill(repeatedArray, repeatedByte);
for(int i = 0; i < (runLength * -1); i++)
for(int i = 0; i < runLength * -1; i++)
{
decodedImage.WriteByte(repeatedByte);
calculatedDataCrc = copyQmCrcTable[(repeatedByte ^ calculatedDataCrc) & 0x3F] ^
@@ -297,9 +297,9 @@ namespace DiscImageChef.DiscImages
}
// In case there is omitted data
long sectors = (header.sectorsPerTrack) * header.heads * header.totalCylinders;
long sectors = header.sectorsPerTrack * header.heads * header.totalCylinders;
long fillingLen = (sectors * header.sectorSize) - decodedImage.Length;
long fillingLen = sectors * header.sectorSize - decodedImage.Length;
if(fillingLen > 0)
{
@@ -320,7 +320,7 @@ namespace DiscImageChef.DiscImages
headerChecksumOk = ((-1 * sum) & 0xFF) == header.headerChecksum;
DicConsole.DebugWriteLine("CopyQM plugin", "Calculated header checksum = 0x{0:X2}, {1}",
((-1 * sum) & 0xFF), headerChecksumOk);
(-1 * sum) & 0xFF, headerChecksumOk);
DicConsole.DebugWriteLine("CopyQM plugin", "Calculated data CRC = 0x{0:X8}, {1}", calculatedDataCrc,
calculatedDataCrc == header.crc);
@@ -456,7 +456,7 @@ namespace DiscImageChef.DiscImages
public override bool? VerifyMediaImage()
{
return (calculatedDataCrc == header.crc) && headerChecksumOk;
return calculatedDataCrc == header.crc && headerChecksumOk;
}
public override bool ImageHasPartitions()

View File

@@ -81,7 +81,7 @@ namespace DiscImageChef.DiscImages
const int TAG_SECTOR_SIZE = 12;
const int DATA_SIZE = SECTORS_PER_BLOCK * SECTOR_SIZE;
const int TAG_SIZE = SECTORS_PER_BLOCK * TAG_SECTOR_SIZE;
const int BUFFER_SIZE = (SECTORS_PER_BLOCK * SECTOR_SIZE) + (SECTORS_PER_BLOCK * TAG_SECTOR_SIZE);
const int BUFFER_SIZE = SECTORS_PER_BLOCK * SECTOR_SIZE + SECTORS_PER_BLOCK * TAG_SECTOR_SIZE;
#endregion
#region Internal Structures
@@ -142,7 +142,7 @@ namespace DiscImageChef.DiscImages
if(header.srcCmp > COMPRESS_NONE) return false;
int expectedMaxSize = 84 + (header.srcSize * 2 * 524);
int expectedMaxSize = 84 + header.srcSize * 2 * 524;
switch(header.srcType)
{
@@ -195,7 +195,7 @@ namespace DiscImageChef.DiscImages
if(header.srcCmp > COMPRESS_NONE) return false;
int expectedMaxSize = 84 + (header.srcSize * 2 * 524);
int expectedMaxSize = 84 + header.srcSize * 2 * 524;
switch(header.srcType)
{
@@ -488,9 +488,9 @@ namespace DiscImageChef.DiscImages
for(uint i = 0; i < length; i++)
{
Array.Copy(data, i * (ImageInfo.SectorSize), buffer, i * (ImageInfo.SectorSize + TAG_SECTOR_SIZE),
Array.Copy(data, i * ImageInfo.SectorSize, buffer, i * (ImageInfo.SectorSize + TAG_SECTOR_SIZE),
ImageInfo.SectorSize);
Array.Copy(tags, i * (TAG_SECTOR_SIZE), buffer,
Array.Copy(tags, i * TAG_SECTOR_SIZE, buffer,
i * (ImageInfo.SectorSize + TAG_SECTOR_SIZE) + ImageInfo.SectorSize, TAG_SECTOR_SIZE);
}

View File

@@ -622,7 +622,7 @@ namespace DiscImageChef.DiscImages
if(!data && !firstdata) ImageInfo.MediaType = MediaType.CDDA;
else if(firstaudio && data && sessions.Count > 1 && mode2) ImageInfo.MediaType = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(firstdata && audio || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(!audio) ImageInfo.MediaType = MediaType.CDROM;
else ImageInfo.MediaType = MediaType.CD;
}
@@ -712,7 +712,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == kvp.Key)
{
if(sectorAddress < _track.TrackEndSector)
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -733,7 +733,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == kvp.Key)
{
if(sectorAddress < _track.TrackEndSector)
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -761,7 +761,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector))
if(length + sectorAddress > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",
@@ -863,7 +863,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector))
if(length + sectorAddress > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",
@@ -1080,8 +1080,8 @@ namespace DiscImageChef.DiscImages
{
if(track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (track.TrackEndSector - track.TrackStartSector))
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < track.TrackEndSector - track.TrackStartSector)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1109,7 +1109,7 @@ namespace DiscImageChef.DiscImages
if(_track.TrackSequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if(length + sectorAddress > (_track.TrackEndSector))
if(length + sectorAddress > _track.TrackEndSector)
throw new ArgumentOutOfRangeException(nameof(length),
string
.Format("Requested more sectors ({0}) than present in track ({1}), won't cross tracks",

View File

@@ -402,22 +402,22 @@ namespace DiscImageChef.DiscImages
twiggy = true;
Stream datastream = imageFilter.GetDataForkStream();
datastream.Seek((dataOffset), SeekOrigin.Begin);
datastream.Seek(dataOffset, SeekOrigin.Begin);
datastream.Read(data, 0, (int)header.DataSize);
Stream tagstream = imageFilter.GetDataForkStream();
tagstream.Seek((tagOffset), SeekOrigin.Begin);
tagstream.Seek(tagOffset, SeekOrigin.Begin);
tagstream.Read(tags, 0, (int)header.TagSize);
ushort mfsMagic = BigEndianBitConverter.ToUInt16(data, (int)((data.Length / 2) + 0x400));
ushort mfsAllBlocks = BigEndianBitConverter.ToUInt16(data, (int)((data.Length / 2) + 0x412));
ushort mfsMagic = BigEndianBitConverter.ToUInt16(data, (int)(data.Length / 2 + 0x400));
ushort mfsAllBlocks = BigEndianBitConverter.ToUInt16(data, (int)(data.Length / 2 + 0x412));
// Detect a Macintosh Twiggy
if(mfsMagic == 0xD2D7 && mfsAllBlocks == 422)
{
DicConsole.DebugWriteLine("DC42 plugin", "Macintosh Twiggy detected, reversing disk sides");
Array.Copy(data, (header.DataSize / 2), twiggyCache, 0, header.DataSize / 2);
Array.Copy(tags, (header.TagSize / 2), twiggyCacheTags, 0, header.TagSize / 2);
Array.Copy(data, header.DataSize / 2, twiggyCache, 0, header.DataSize / 2);
Array.Copy(tags, header.TagSize / 2, twiggyCacheTags, 0, header.TagSize / 2);
Array.Copy(data, 0, twiggyCache, header.DataSize / 2, header.DataSize / 2);
Array.Copy(tags, 0, twiggyCacheTags, header.TagSize / 2, header.TagSize / 2);
}
@@ -588,7 +588,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.SectorsPerTrack = 16;
break;
default:
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
break;
@@ -638,7 +638,7 @@ namespace DiscImageChef.DiscImages
DicConsole.DebugWriteLine("DC42 plugin", "Reading data");
Stream datastream = dc42ImageFilter.GetDataForkStream();
datastream.Seek((dataOffset), SeekOrigin.Begin);
datastream.Seek(dataOffset, SeekOrigin.Begin);
datastream.Read(data, 0, (int)header.DataSize);
DicConsole.DebugWriteLine("DC42 plugin", "Calculating data checksum");
@@ -650,7 +650,7 @@ namespace DiscImageChef.DiscImages
{
DicConsole.DebugWriteLine("DC42 plugin", "Reading tags");
Stream tagstream = dc42ImageFilter.GetDataForkStream();
tagstream.Seek((tagOffset), SeekOrigin.Begin);
tagstream.Seek(tagOffset, SeekOrigin.Begin);
tagstream.Read(tags, 0, (int)header.TagSize);
DicConsole.DebugWriteLine("DC42 plugin", "Calculating tag checksum");
@@ -762,9 +762,9 @@ namespace DiscImageChef.DiscImages
for(uint i = 0; i < length; i++)
{
Array.Copy(data, i * (ImageInfo.SectorSize), buffer, i * (ImageInfo.SectorSize + bptag),
Array.Copy(data, i * ImageInfo.SectorSize, buffer, i * (ImageInfo.SectorSize + bptag),
ImageInfo.SectorSize);
Array.Copy(tags, i * (bptag), buffer, i * (ImageInfo.SectorSize + bptag) + ImageInfo.SectorSize, bptag);
Array.Copy(tags, i * bptag, buffer, i * (ImageInfo.SectorSize + bptag) + ImageInfo.SectorSize, bptag);
}
return buffer;

View File

@@ -211,7 +211,7 @@ namespace DiscImageChef.DiscImages
if(tmpFooter.bpb.sptrack * tmpFooter.bpb.cylinders * tmpFooter.bpb.heads !=
tmpFooter.bpb.sectors) return false;
if((tmpFooter.bpb.sectors * tmpFooter.bpb.bps) + Marshal.SizeOf(tmpFooter) != stream.Length)
if(tmpFooter.bpb.sectors * tmpFooter.bpb.bps + Marshal.SizeOf(tmpFooter) != stream.Length)
return false;
return true;
@@ -242,7 +242,7 @@ namespace DiscImageChef.DiscImages
if(footer.bpb.sptrack * footer.bpb.cylinders * footer.bpb.heads != footer.bpb.sectors) return false;
if((footer.bpb.sectors * footer.bpb.bps) + Marshal.SizeOf(footer) != stream.Length) return false;
if(footer.bpb.sectors * footer.bpb.bps + Marshal.SizeOf(footer) != stream.Length) return false;
ImageInfo.Cylinders = footer.bpb.cylinders;
ImageInfo.Heads = footer.bpb.heads;

View File

@@ -257,23 +257,23 @@ namespace DiscImageChef.DiscImages
.Trim(new[] {'"'})));
currentTrack.Trackfile = currentTrack.Trackfilter.GetFilename();
if((currentTrack.StartSector - currentStart) > 0)
if(currentTrack.StartSector - currentStart > 0)
{
if(currentTrack.StartSector == 45000)
{
highDensity = true;
offsetmap.Add(0, currentStart);
densitySeparationSectors = (currentTrack.StartSector - currentStart);
densitySeparationSectors = currentTrack.StartSector - currentStart;
currentStart = currentTrack.StartSector;
}
else
{
currentTrack.Pregap = (currentTrack.StartSector - currentStart);
currentTrack.StartSector -= (currentTrack.StartSector - currentStart);
currentTrack.Pregap = currentTrack.StartSector - currentStart;
currentTrack.StartSector -= currentTrack.StartSector - currentStart;
}
}
if(((currentTrack.Trackfilter.GetDataForkLength() - currentTrack.Offset) % currentTrack.Bps) !=
if((currentTrack.Trackfilter.GetDataForkLength() - currentTrack.Offset) % currentTrack.Bps !=
0) throw new ImageNotSupportedException("Track size not a multiple of sector size");
currentTrack.Sectors =
@@ -309,7 +309,7 @@ namespace DiscImageChef.DiscImages
if(_sessions[s].StartSector > trk.StartSector)
_sessions[s].StartSector = trk.StartSector;
if(_sessions[s].EndSector < (trk.Sectors + trk.StartSector - 1))
if(_sessions[s].EndSector < trk.Sectors + trk.StartSector - 1)
_sessions[s].EndSector = trk.Sectors + trk.StartSector - 1;
}
}
@@ -330,7 +330,7 @@ namespace DiscImageChef.DiscImages
if(_sessions[s].StartSector > trk.StartSector)
_sessions[s].StartSector = trk.StartSector;
if(_sessions[s].EndSector < (trk.Sectors + trk.StartSector - 1))
if(_sessions[s].EndSector < trk.Sectors + trk.StartSector - 1)
_sessions[s].EndSector = trk.Sectors + trk.StartSector - 1;
}
}
@@ -506,8 +506,8 @@ namespace DiscImageChef.DiscImages
{
if(gdiTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < gdiTrack.Sectors)
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < gdiTrack.Sectors)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -515,8 +515,8 @@ namespace DiscImageChef.DiscImages
ulong transitionStart;
offsetmap.TryGetValue(0, out transitionStart);
if(sectorAddress >= transitionStart && sectorAddress < (densitySeparationSectors + transitionStart))
return ReadSectors((sectorAddress - transitionStart), length, 0);
if(sectorAddress >= transitionStart && sectorAddress < densitySeparationSectors + transitionStart)
return ReadSectors(sectorAddress - transitionStart, length, 0);
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
}
@@ -531,8 +531,8 @@ namespace DiscImageChef.DiscImages
{
if(gdiTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < gdiTrack.Sectors)
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < gdiTrack.Sectors)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -540,8 +540,8 @@ namespace DiscImageChef.DiscImages
ulong transitionStart;
offsetmap.TryGetValue(0, out transitionStart);
if(sectorAddress >= transitionStart && sectorAddress < (densitySeparationSectors + transitionStart))
return ReadSectorsTag((sectorAddress - transitionStart), length, 0, tag);
if(sectorAddress >= transitionStart && sectorAddress < densitySeparationSectors + transitionStart)
return ReadSectorsTag(sectorAddress - transitionStart, length, 0, tag);
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
}
@@ -550,7 +550,7 @@ namespace DiscImageChef.DiscImages
{
if(track == 0)
{
if((sectorAddress + length) > densitySeparationSectors)
if(sectorAddress + length > densitySeparationSectors)
throw new ArgumentOutOfRangeException(nameof(length),
"Requested more sectors than present in track, won't cross tracks");
@@ -573,7 +573,7 @@ namespace DiscImageChef.DiscImages
if(_track.Sequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if((sectorAddress + length) > _track.Sectors)
if(sectorAddress + length > _track.Sectors)
throw new ArgumentOutOfRangeException(nameof(length),
"Requested more sectors than present in track, won't cross tracks");
@@ -658,7 +658,7 @@ namespace DiscImageChef.DiscImages
{
if(track == 0)
{
if((sectorAddress + length) > densitySeparationSectors)
if(sectorAddress + length > densitySeparationSectors)
throw new ArgumentOutOfRangeException(nameof(length),
"Requested more sectors than present in track, won't cross tracks");
@@ -838,8 +838,8 @@ namespace DiscImageChef.DiscImages
{
if(gdiTrack.Sequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < gdiTrack.Sectors)
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < gdiTrack.Sectors)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -852,7 +852,7 @@ namespace DiscImageChef.DiscImages
{
if(track == 0)
{
if((sectorAddress + length) > densitySeparationSectors)
if(sectorAddress + length > densitySeparationSectors)
throw new ArgumentOutOfRangeException(nameof(length),
"Requested more sectors than present in track, won't cross tracks");
@@ -875,7 +875,7 @@ namespace DiscImageChef.DiscImages
if(_track.Sequence == 0)
throw new ArgumentOutOfRangeException(nameof(track), "Track does not exist in disc image");
if((sectorAddress + length) > _track.Sectors)
if(sectorAddress + length > _track.Sectors)
throw new ArgumentOutOfRangeException(nameof(length),
"Requested more sectors than present in track, won't cross tracks");

View File

@@ -215,12 +215,12 @@ namespace DiscImageChef.DiscImages
* We know the image is from a DOS floppy disk, so assume
* some sane cylinder and sectors-per-track count.
*/
if((fheader.sectorsPerTrack < 8) || (fheader.sectorsPerTrack > 40)) return false;
if(fheader.sectorsPerTrack < 8 || fheader.sectorsPerTrack > 40) return false;
if((fheader.lastCylinder < 37) || (fheader.lastCylinder >= 82)) return false;
if(fheader.lastCylinder < 37 || fheader.lastCylinder >= 82) return false;
// Validate the trackmap. First two tracks need to be present
if((fheader.trackMap[0] != 1) || (fheader.trackMap[1] != 1)) return false;
if(fheader.trackMap[0] != 1 || fheader.trackMap[1] != 1) return false;
// all other tracks must be either present (=1) or absent (=0)
for(int i = 0; i < 2 * 82; i++) { if(fheader.trackMap[i] > 1) return false; }
@@ -375,7 +375,7 @@ namespace DiscImageChef.DiscImages
{
foreach(MediaTypeTableEntry ent in mediaTypes)
{
if((ent.Tracks == ImageInfo.Cylinders) && (ent.SectorsPerTrack == ImageInfo.SectorsPerTrack))
if(ent.Tracks == ImageInfo.Cylinders && ent.SectorsPerTrack == ImageInfo.SectorsPerTrack)
return ent.MediaType;
}

View File

@@ -325,19 +325,19 @@ namespace DiscImageChef.DiscImages
bChnk.sector += (uint)ImageInfo.Sectors;
// TODO: Handle compressed chunks
if((bChnk.type == CHUNK_TYPE_KENCODE))
if(bChnk.type == CHUNK_TYPE_KENCODE)
throw new ImageNotSupportedException("Chunks compressed with KenCode are not yet supported.");
if((bChnk.type == CHUNK_TYPE_RLE))
if(bChnk.type == CHUNK_TYPE_RLE)
throw new ImageNotSupportedException("Chunks compressed with RLE are not yet supported.");
if((bChnk.type == CHUNK_TYPE_LZH))
if(bChnk.type == CHUNK_TYPE_LZH)
throw new ImageNotSupportedException("Chunks compressed with LZH are not yet supported.");
if((bChnk.type == CHUNK_TYPE_STUFFIT))
if(bChnk.type == CHUNK_TYPE_STUFFIT)
throw new ImageNotSupportedException("Chunks compressed with StuffIt! are not yet supported.");
// TODO: Handle compressed chunks
if((bChnk.type > CHUNK_TYPE_COPY && bChnk.type < CHUNK_TYPE_KENCODE) ||
(bChnk.type > CHUNK_TYPE_ADC && bChnk.type < CHUNK_TYPE_STUFFIT) ||
(bChnk.type > CHUNK_TYPE_STUFFIT && bChnk.type < CHUNK_TYPE_END) ||
if(bChnk.type > CHUNK_TYPE_COPY && bChnk.type < CHUNK_TYPE_KENCODE ||
bChnk.type > CHUNK_TYPE_ADC && bChnk.type < CHUNK_TYPE_STUFFIT ||
bChnk.type > CHUNK_TYPE_STUFFIT && bChnk.type < CHUNK_TYPE_END ||
bChnk.type == 1)
throw new ImageNotSupportedException(string.Format("Unsupported chunk type 0x{0:X8} found",
bChnk.type));
@@ -458,7 +458,7 @@ namespace DiscImageChef.DiscImages
break;
default:
ImageInfo.MediaType = MediaType.GENERIC_HDD;
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
break;

View File

@@ -1009,20 +1009,20 @@ namespace DiscImageChef.DiscImages
entry.Second = tmpbuffer[6];
entry.Frame = tmpbuffer[7];
DicConsole.DebugWriteLine("Nero plugin", "Cuesheet entry {0}", (i / 8) + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = {1:X2}", (i / 8) + 1,
DicConsole.DebugWriteLine("Nero plugin", "Cuesheet entry {0}", i / 8 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = {1:X2}", i / 8 + 1,
entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].TrackNumber = {1:X2}",
(i / 8) + 1, entry.TrackNumber);
i / 8 + 1, entry.TrackNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].IndexNumber = {1:X2}",
(i / 8) + 1, entry.IndexNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Dummy = {1:X4}", (i / 8) + 1,
i / 8 + 1, entry.IndexNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Dummy = {1:X4}", i / 8 + 1,
entry.Dummy);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Minute = {1:X2}", (i / 8) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Minute = {1:X2}", i / 8 + 1,
entry.Minute);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Second = {1:X2}", (i / 8) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Second = {1:X2}", i / 8 + 1,
entry.Second);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Frame = {1:X2}", (i / 8) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Frame = {1:X2}", i / 8 + 1,
entry.Frame);
neroCuesheetV1.Entries.Add(entry);
@@ -1051,16 +1051,16 @@ namespace DiscImageChef.DiscImages
entry.Dummy = tmpbuffer[3];
entry.LbaStart = BigEndianBitConverter.ToInt32(tmpbuffer, 4);
DicConsole.DebugWriteLine("Nero plugin", "Cuesheet entry {0}", (i / 8) + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = 0x{1:X2}", (i / 8) + 1,
DicConsole.DebugWriteLine("Nero plugin", "Cuesheet entry {0}", i / 8 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = 0x{1:X2}", i / 8 + 1,
entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].TrackNumber = {1:X2}",
(i / 8) + 1, entry.TrackNumber);
i / 8 + 1, entry.TrackNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].IndexNumber = {1:X2}",
(i / 8) + 1, entry.IndexNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Dummy = {1:X2}", (i / 8) + 1,
i / 8 + 1, entry.IndexNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Dummy = {1:X2}", i / 8 + 1,
entry.Dummy);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].LBAStart = {1}", (i / 8) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].LBAStart = {1}", i / 8 + 1,
entry.LbaStart);
neroCuesheetV2.Entries.Add(entry);
@@ -1105,7 +1105,7 @@ namespace DiscImageChef.DiscImages
upc = neroDaov1.Upc;
tmpbuffer = new byte[30];
for(int i = 0; i < (neroDaov1.ChunkSizeBe - 22); i += 30)
for(int i = 0; i < neroDaov1.ChunkSizeBe - 22; i += 30)
{
NeroV1DaoEntry entry = new NeroV1DaoEntry();
imageStream.Read(tmpbuffer, 0, 30);
@@ -1118,21 +1118,21 @@ namespace DiscImageChef.DiscImages
entry.Index1 = BigEndianBitConverter.ToUInt32(tmpbuffer, 22);
entry.EndOfTrack = BigEndianBitConverter.ToUInt32(tmpbuffer, 26);
DicConsole.DebugWriteLine("Nero plugin", "Disc-At-Once entry {0}", (i / 32) + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].ISRC = \"{1}\"", (i / 32) + 1,
DicConsole.DebugWriteLine("Nero plugin", "Disc-At-Once entry {0}", i / 32 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].ISRC = \"{1}\"", i / 32 + 1,
StringHandlers.CToString(entry.Isrc));
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].SectorSize = {1}",
(i / 32) + 1, entry.SectorSize);
i / 32 + 1, entry.SectorSize);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = {1} (0x{2:X4})",
(i / 32) + 1, (DaoMode)entry.Mode, entry.Mode);
i / 32 + 1, (DaoMode)entry.Mode, entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Unknown = 0x{1:X4}",
(i / 32) + 1, entry.Unknown);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index0 = {1}", (i / 32) + 1,
i / 32 + 1, entry.Unknown);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index0 = {1}", i / 32 + 1,
entry.Index0);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index1 = {1}", (i / 32) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index1 = {1}", i / 32 + 1,
entry.Index1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].EndOfTrack = {1}",
(i / 32) + 1, entry.EndOfTrack);
i / 32 + 1, entry.EndOfTrack);
neroDaov1.Tracks.Add(entry);
@@ -1199,7 +1199,7 @@ namespace DiscImageChef.DiscImages
DicConsole.DebugWriteLine("Nero plugin", "neroDAOV2.LastTrack = {0}", neroDaov2.LastTrack);
tmpbuffer = new byte[42];
for(int i = 0; i < (neroDaov2.ChunkSizeBe - 22); i += 42)
for(int i = 0; i < neroDaov2.ChunkSizeBe - 22; i += 42)
{
NeroV2DaoEntry entry = new NeroV2DaoEntry();
imageStream.Read(tmpbuffer, 0, 42);
@@ -1212,21 +1212,21 @@ namespace DiscImageChef.DiscImages
entry.Index1 = BigEndianBitConverter.ToUInt64(tmpbuffer, 26);
entry.EndOfTrack = BigEndianBitConverter.ToUInt64(tmpbuffer, 34);
DicConsole.DebugWriteLine("Nero plugin", "Disc-At-Once entry {0}", (i / 32) + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].ISRC = \"{1}\"", (i / 32) + 1,
DicConsole.DebugWriteLine("Nero plugin", "Disc-At-Once entry {0}", i / 32 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].ISRC = \"{1}\"", i / 32 + 1,
StringHandlers.CToString(entry.Isrc));
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].SectorSize = {1}",
(i / 32) + 1, entry.SectorSize);
i / 32 + 1, entry.SectorSize);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = {1} (0x{2:X4})",
(i / 32) + 1, (DaoMode)entry.Mode, entry.Mode);
i / 32 + 1, (DaoMode)entry.Mode, entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Unknown = {1:X2}",
(i / 32) + 1, entry.Unknown);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index0 = {1}", (i / 32) + 1,
i / 32 + 1, entry.Unknown);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index0 = {1}", i / 32 + 1,
entry.Index0);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index1 = {1}", (i / 32) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Index1 = {1}", i / 32 + 1,
entry.Index1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].EndOfTrack = {1}",
(i / 32) + 1, entry.EndOfTrack);
i / 32 + 1, entry.EndOfTrack);
neroDaov2.Tracks.Add(entry);
@@ -1268,7 +1268,7 @@ namespace DiscImageChef.DiscImages
neroCdtxt.Packs = new List<NeroCdTextPack>();
byte[] tmpbuffer = new byte[18];
for(int i = 0; i < (neroCdtxt.ChunkSize); i += 18)
for(int i = 0; i < neroCdtxt.ChunkSize; i += 18)
{
NeroCdTextPack entry = new NeroCdTextPack();
imageStream.Read(tmpbuffer, 0, 18);
@@ -1281,18 +1281,18 @@ namespace DiscImageChef.DiscImages
Array.Copy(tmpbuffer, 4, entry.Text, 0, 12);
entry.Crc = BigEndianBitConverter.ToUInt16(tmpbuffer, 16);
DicConsole.DebugWriteLine("Nero plugin", "CD-TEXT entry {0}", (i / 18) + 1);
DicConsole.DebugWriteLine("Nero plugin", "CD-TEXT entry {0}", i / 18 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].PackType = 0x{1:X2}",
(i / 18) + 1, entry.PackType);
i / 18 + 1, entry.PackType);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].TrackNumber = 0x{1:X2}",
(i / 18) + 1, entry.TrackNumber);
i / 18 + 1, entry.TrackNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].PackNumber = 0x{1:X2}",
(i / 18) + 1, entry.PackNumber);
i / 18 + 1, entry.PackNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].BlockNumber = 0x{1:X2}",
(i / 18) + 1, entry.BlockNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Text = \"{1}\"", (i / 18) + 1,
i / 18 + 1, entry.BlockNumber);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Text = \"{1}\"", i / 18 + 1,
StringHandlers.CToString(entry.Text));
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].CRC = 0x{1:X4}", (i / 18) + 1,
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].CRC = 0x{1:X4}", i / 18 + 1,
entry.Crc);
neroCdtxt.Packs.Add(entry);
@@ -1311,7 +1311,7 @@ namespace DiscImageChef.DiscImages
neroTaov1.Tracks = new List<NeroV1TaoEntry>();
byte[] tmpbuffer = new byte[20];
for(int i = 0; i < (neroTaov1.ChunkSize); i += 20)
for(int i = 0; i < neroTaov1.ChunkSize; i += 20)
{
NeroV1TaoEntry entry = new NeroV1TaoEntry();
imageStream.Read(tmpbuffer, 0, 20);
@@ -1322,17 +1322,17 @@ namespace DiscImageChef.DiscImages
entry.StartLba = BigEndianBitConverter.ToUInt32(tmpbuffer, 12);
entry.Unknown = BigEndianBitConverter.ToUInt32(tmpbuffer, 16);
DicConsole.DebugWriteLine("Nero plugin", "Track-at-Once entry {0}", (i / 20) + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Offset = {1}", (i / 20) + 1,
DicConsole.DebugWriteLine("Nero plugin", "Track-at-Once entry {0}", i / 20 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Offset = {1}", i / 20 + 1,
entry.Offset);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Length = {1} bytes",
(i / 20) + 1, entry.Length);
i / 20 + 1, entry.Length);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = {1} (0x{2:X4})",
(i / 20) + 1, (DaoMode)entry.Mode, entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].StartLBA = {1}", (i / 20) + 1,
i / 20 + 1, (DaoMode)entry.Mode, entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].StartLBA = {1}", i / 20 + 1,
entry.StartLba);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Unknown = 0x{1:X4}",
(i / 20) + 1, entry.Unknown);
i / 20 + 1, entry.Unknown);
neroTaov1.Tracks.Add(entry);
@@ -1372,7 +1372,7 @@ namespace DiscImageChef.DiscImages
neroTaov2.Tracks = new List<NeroV2TaoEntry>();
byte[] tmpbuffer = new byte[32];
for(int i = 0; i < (neroTaov2.ChunkSize); i += 32)
for(int i = 0; i < neroTaov2.ChunkSize; i += 32)
{
NeroV2TaoEntry entry = new NeroV2TaoEntry();
imageStream.Read(tmpbuffer, 0, 32);
@@ -1384,18 +1384,18 @@ namespace DiscImageChef.DiscImages
entry.Unknown = BigEndianBitConverter.ToUInt32(tmpbuffer, 24);
entry.Sectors = BigEndianBitConverter.ToUInt32(tmpbuffer, 28);
DicConsole.DebugWriteLine("Nero plugin", "Track-at-Once entry {0}", (i / 32) + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Offset = {1}", (i / 32) + 1,
DicConsole.DebugWriteLine("Nero plugin", "Track-at-Once entry {0}", i / 32 + 1);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Offset = {1}", i / 32 + 1,
entry.Offset);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Length = {1} bytes",
(i / 32) + 1, entry.Length);
i / 32 + 1, entry.Length);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Mode = {1} (0x{2:X4})",
(i / 32) + 1, (DaoMode)entry.Mode, entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].StartLBA = {1}", (i / 32) + 1,
i / 32 + 1, (DaoMode)entry.Mode, entry.Mode);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].StartLBA = {1}", i / 32 + 1,
entry.StartLba);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Unknown = 0x{1:X4}",
(i / 32) + 1, entry.Unknown);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Sectors = {1}", (i / 32) + 1,
i / 32 + 1, entry.Unknown);
DicConsole.DebugWriteLine("Nero plugin", "\t _entry[{0}].Sectors = {1}", i / 32 + 1,
entry.Sectors);
neroTaov2.Tracks.Add(entry);
@@ -1594,7 +1594,7 @@ namespace DiscImageChef.DiscImages
_track.Indexes.Add(0, neroTrack.Index0 / neroTrack.SectorSize);
_track.Indexes.Add(1, neroTrack.Index1 / neroTrack.SectorSize);
_track.TrackDescription = StringHandlers.CToString(neroTrack.Isrc);
_track.TrackEndSector = (neroTrack.Length / neroTrack.SectorSize) + neroTrack.StartLba - 1;
_track.TrackEndSector = neroTrack.Length / neroTrack.SectorSize + neroTrack.StartLba - 1;
_track.TrackPregap = (neroTrack.Index1 - neroTrack.Index0) / neroTrack.SectorSize;
_track.TrackSequence = neroTrack.Sequence;
_track.TrackSession = currentsession;
@@ -1716,13 +1716,13 @@ namespace DiscImageChef.DiscImages
partition = new Partition();
partition.Description = string.Format("Track {0} Index 1", _track.TrackSequence);
partition.Size = (neroTrack.EndOfTrack - neroTrack.Index1);
partition.Size = neroTrack.EndOfTrack - neroTrack.Index1;
partition.Name = StringHandlers.CToString(neroTrack.Isrc);
partition.Length = partition.Size / neroTrack.SectorSize;
partition.Sequence = partitionSequence;
partition.Offset = partitionStartByte;
partition.Start = neroTrack.StartLba +
((neroTrack.Index1 - neroTrack.Index0) / neroTrack.SectorSize);
(neroTrack.Index1 - neroTrack.Index0) / neroTrack.SectorSize;
partition.Type = NeroTrackModeToTrackType((DaoMode)neroTrack.Mode).ToString();
imagePartitions.Add(partition);
partitionSequence++;
@@ -1747,12 +1747,10 @@ namespace DiscImageChef.DiscImages
(DaoMode)neroTracks.ElementAt(i).Value.Mode == DaoMode.AudioSub);
// First track is data
firstdata |= i == 0 && ((DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.Audio &&
(DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.AudioSub);
firstdata |= i == 0 && (DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.Audio && (DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.AudioSub;
// Any non first track is data
data |= i != 0 && ((DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.Audio &&
(DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.AudioSub);
data |= i != 0 && (DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.Audio && (DaoMode)neroTracks.ElementAt(i).Value.Mode != DaoMode.AudioSub;
// Any non first track is audio
audio |= i != 0 && ((DaoMode)neroTracks.ElementAt(i).Value.Mode == DaoMode.Audio ||
@@ -1772,7 +1770,7 @@ namespace DiscImageChef.DiscImages
if(!data && !firstdata) ImageInfo.MediaType = MediaType.CDDA;
else if(firstaudio && data && imageSessions.Count > 1 && mode2)
ImageInfo.MediaType = MediaType.CDPLUS;
else if((firstdata && audio) || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(firstdata && audio || mode2) ImageInfo.MediaType = MediaType.CDROMXA;
else if(!audio) ImageInfo.MediaType = MediaType.CDROM;
else ImageInfo.MediaType = MediaType.CD;
}
@@ -1851,8 +1849,8 @@ namespace DiscImageChef.DiscImages
{
if(_track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (_track.TrackEndSector - _track.TrackStartSector))
return ReadSectors((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < _track.TrackEndSector - _track.TrackStartSector)
return ReadSectors(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}
@@ -1872,8 +1870,8 @@ namespace DiscImageChef.DiscImages
{
if(_track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (_track.TrackEndSector - _track.TrackStartSector))
return ReadSectorsTag((sectorAddress - kvp.Value), length, kvp.Key, tag);
if(sectorAddress - kvp.Value < _track.TrackEndSector - _track.TrackStartSector)
return ReadSectorsTag(sectorAddress - kvp.Value, length, kvp.Key, tag);
}
}
}
@@ -2237,8 +2235,8 @@ namespace DiscImageChef.DiscImages
{
if(_track.TrackSequence == kvp.Key)
{
if((sectorAddress - kvp.Value) < (_track.TrackEndSector - _track.TrackStartSector))
return ReadSectorsLong((sectorAddress - kvp.Value), length, kvp.Key);
if(sectorAddress - kvp.Value < _track.TrackEndSector - _track.TrackStartSector)
return ReadSectorsLong(sectorAddress - kvp.Value, length, kvp.Key);
}
}
}

View File

@@ -208,7 +208,7 @@ namespace DiscImageChef.DiscImages
clusterBytes = pHdr.cluster_size * 512;
if(pHdr.data_off > 0) dataOffset = pHdr.data_off * 512;
else dataOffset = ((stream.Position / clusterBytes) + (stream.Position % clusterBytes)) * clusterBytes;
else dataOffset = (stream.Position / clusterBytes + stream.Position % clusterBytes) * clusterBytes;
sectorCache = new Dictionary<ulong, byte[]>();
@@ -224,7 +224,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.ImageSize = pHdr.sectors * 512;
ImageInfo.Cylinders = pHdr.cylinders;
ImageInfo.Heads = pHdr.heads;
ImageInfo.SectorsPerTrack = (uint)((ImageInfo.Sectors / ImageInfo.Cylinders) / ImageInfo.Heads);
ImageInfo.SectorsPerTrack = (uint)(ImageInfo.Sectors / ImageInfo.Cylinders / ImageInfo.Heads);
imageStream = stream;
return true;

View File

@@ -289,7 +289,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.MediaType = MediaType.GENERIC_HDD;
ImageInfo.ImageSize = qHdr.size;
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
@@ -355,7 +355,7 @@ namespace DiscImageChef.DiscImages
compSizeMask = (ulong)(1 << qHdr.cluster_bits) - 1;
compSizeMask <<= 63 - qHdr.cluster_bits;
offMask = (~compSizeMask) ^ QCOW_COMPRESSED;
offMask = ~compSizeMask ^ QCOW_COMPRESSED;
ulong realOff = offset & offMask;
ulong compSize = (offset & compSizeMask) >> (63 - qHdr.cluster_bits);

View File

@@ -336,7 +336,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.ImageSize = qHdr.size;
ImageInfo.ImageVersion = string.Format("{0}", qHdr.version);
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
@@ -402,8 +402,8 @@ namespace DiscImageChef.DiscImages
compSizeMask = (ulong)(1 << (int)(qHdr.cluster_bits - 8)) - 1;
byte countbits = (byte)(qHdr.cluster_bits - 8);
compSizeMask <<= (62 - countbits);
offMask = (~compSizeMask) & QCOW_FLAGS_MASK;
compSizeMask <<= 62 - countbits;
offMask = ~compSizeMask & QCOW_FLAGS_MASK;
ulong realOff = offset & offMask;
ulong compSize = (((offset & compSizeMask) >> (62 - countbits)) + 1) * 512;

View File

@@ -242,7 +242,7 @@ namespace DiscImageChef.DiscImages
throw new NotImplementedException("Differencing images not yet supported");
clusterSectors = qHdr.cluster_size / 512;
tableSize = (qHdr.cluster_size * qHdr.table_size) / 8;
tableSize = qHdr.cluster_size * qHdr.table_size / 8;
DicConsole.DebugWriteLine("QED plugin", "qHdr.clusterSectors = {0}", clusterSectors);
DicConsole.DebugWriteLine("QED plugin", "qHdr.tableSize = {0}", tableSize);
@@ -280,7 +280,7 @@ namespace DiscImageChef.DiscImages
DicConsole.DebugWriteLine("QED plugin", "qHdr.l2Mask = {0:X}", l2Mask);
DicConsole.DebugWriteLine("QED plugin", "qHdr.sectorMask = {0:X}", sectorMask);
maxL2TableCache = MAX_CACHE_SIZE / (tableSize);
maxL2TableCache = MAX_CACHE_SIZE / tableSize;
maxClusterCache = MAX_CACHE_SIZE / qHdr.cluster_size;
imageStream = stream;
@@ -298,7 +298,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.MediaType = MediaType.GENERIC_HDD;
ImageInfo.ImageSize = qHdr.image_size;
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
@@ -468,9 +468,9 @@ namespace DiscImageChef.DiscImages
bool IsPowerOfTwo(uint x)
{
while(((x & 1) == 0) && x > 1) x >>= 1;
while((x & 1) == 0 && x > 1) x >>= 1;
return (x == 1);
return x == 1;
}
static int Ctz32(uint val)

View File

@@ -154,7 +154,7 @@ namespace DiscImageChef.DiscImages
if(ImageInfo.Cylinders == 0 || ImageInfo.Heads == 0 || ImageInfo.SectorsPerTrack == 0)
{
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
}

View File

@@ -207,7 +207,7 @@ namespace DiscImageChef.DiscImages
while(b >= 0);
// In case there is omitted data
sectors = (header.sectorsPerTrack) * header.heads * header.cylinders;
sectors = header.sectorsPerTrack * header.heads * header.cylinders;
DicConsole.DebugWriteLine("SaveDskF plugin", "Calculated checksum = 0x{0:X8}, {1}", calculatedChk,
calculatedChk == header.checksum);

View File

@@ -90,7 +90,7 @@ namespace DiscImageChef.DiscImages
// This format is expanding, so length can be smaller
// Just grow it, I won't risk false positives...
return stream.Length == (cylinders * 8 * 33 * 256) + 256;
return stream.Length == cylinders * 8 * 33 * 256 + 256;
}
public override bool OpenImage(Filter imageFilter)
@@ -113,7 +113,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.ImageCreationTime = imageFilter.GetCreationTime();
ImageInfo.ImageLastModificationTime = imageFilter.GetLastWriteTime();
ImageInfo.ImageName = Path.GetFileNameWithoutExtension(imageFilter.GetFilename());
ImageInfo.Sectors = (ulong)((stream.Length / 256) - 1);
ImageInfo.Sectors = (ulong)(stream.Length / 256 - 1);
ImageInfo.XmlMediaType = XmlMediaType.BlockMedia;
ImageInfo.SectorSize = 256;
ImageInfo.Cylinders = (uint)cylinders;

View File

@@ -642,8 +642,8 @@ namespace DiscImageChef.DiscImages
DicConsole.DebugWriteLine("TeleDisk plugin", "\t\tSector CRC (plus headers): 0x{0:X2}",
teleDiskSector.Crc);
uint lba = (uint)((teleDiskSector.Cylinder * header.Sides * ImageInfo.SectorsPerTrack) +
(teleDiskSector.Head * ImageInfo.SectorsPerTrack) + (teleDiskSector.SectorNumber - 1));
uint lba = (uint)(teleDiskSector.Cylinder * header.Sides * ImageInfo.SectorsPerTrack +
teleDiskSector.Head * ImageInfo.SectorsPerTrack + (teleDiskSector.SectorNumber - 1));
if((teleDiskSector.Flags & FLAGS_SECTOR_DATALESS) != FLAGS_SECTOR_DATALESS &&
(teleDiskSector.Flags & FLAGS_SECTOR_SKIPPED) != FLAGS_SECTOR_SKIPPED)
{
@@ -807,8 +807,8 @@ namespace DiscImageChef.DiscImages
(ushort cylinder, byte head, byte sector) LbaToChs(ulong lba)
{
ushort cylinder = (ushort)(lba / (ImageInfo.Heads * ImageInfo.SectorsPerTrack));
byte head = (byte)((lba / ImageInfo.SectorsPerTrack) % ImageInfo.Heads);
byte sector = (byte)((lba % ImageInfo.SectorsPerTrack) + 1);
byte head = (byte)(lba / ImageInfo.SectorsPerTrack % ImageInfo.Heads);
byte sector = (byte)(lba % ImageInfo.SectorsPerTrack + 1);
return (cylinder, head, sector);
}
@@ -1001,7 +1001,7 @@ namespace DiscImageChef.DiscImages
{
length = encodedData[ins + 1];
Array.Copy(encodedData, ins + 2, decodedData, outs, length);
ins += (2 + length);
ins += 2 + length;
outs += length;
}
else
@@ -1013,7 +1013,7 @@ namespace DiscImageChef.DiscImages
piece = new byte[length * run];
ArrayHelpers.ArrayFill(piece, part);
Array.Copy(piece, 0, decodedData, outs, piece.Length);
ins += (2 + length);
ins += 2 + length;
outs += piece.Length;
}
}
@@ -1347,10 +1347,10 @@ namespace DiscImageChef.DiscImages
/* Huffman coding parameters */
const int N_CHAR = (256 - THRESHOLD + F);
const int N_CHAR = 256 - THRESHOLD + F;
/* character code (= 0..N_CHAR-1) */
const int T = (N_CHAR * 2 - 1); /* Size of table */
const int R = (T - 1); /* root position */
const int T = N_CHAR * 2 - 1; /* Size of table */
const int R = T - 1; /* root position */
const int MAX_FREQ = 0x8000;
/* update when cumulative frequency */
/* reaches to this value */
@@ -1442,7 +1442,7 @@ namespace DiscImageChef.DiscImages
{
tdctl.Ibufndx = 0;
tdctl.Ibufcnt = (ushort)data_read(out tdctl.Inbuf, BUFSZ);
if(tdctl.Ibufcnt <= 0) return (-1);
if(tdctl.Ibufcnt <= 0) return -1;
}
while(getlen <= 8)
@@ -1452,31 +1452,31 @@ namespace DiscImageChef.DiscImages
getlen += 8;
}
return (0);
return 0;
}
int GetBit() /* get one bit */
{
short i;
if(next_word() < 0) return (-1);
if(next_word() < 0) return -1;
i = (short)getbuf;
getbuf <<= 1;
getlen--;
if(i < 0) return (1);
else return (0);
if(i < 0) return 1;
else return 0;
}
int GetByte() /* get a byte */
{
ushort i;
if(next_word() != 0) return (-1);
if(next_word() != 0) return -1;
i = getbuf;
getbuf <<= 8;
getlen -= 8;
i = (ushort)(i >> 8);
return ((int)i);
return (int)i;
}
/* initialize freq tree */
@@ -1602,7 +1602,7 @@ namespace DiscImageChef.DiscImages
*/
while(c < T)
{
if((ret = GetBit()) < 0) return (-1);
if((ret = GetBit()) < 0) return -1;
c += (ushort)ret;
c = (ushort)son[c];
@@ -1619,7 +1619,7 @@ namespace DiscImageChef.DiscImages
ushort i, j, c;
/* decode upper 6 bits from given table */
if((bit = (short)GetByte()) < 0) return (-1);
if((bit = (short)GetByte()) < 0) return -1;
i = (ushort)bit;
c = (ushort)(d_code[i] << 6);
@@ -1629,7 +1629,7 @@ namespace DiscImageChef.DiscImages
j -= 2;
while(j-- > 0)
{
if((bit = (short)GetBit()) < 0) return (-1);
if((bit = (short)GetBit()) < 0) return -1;
i = (ushort)((i << 1) + bit);
}
@@ -1666,18 +1666,18 @@ namespace DiscImageChef.DiscImages
{
if(tdctl.Bufcnt == 0)
{
if((c = DecodeChar()) < 0) return (count); // fatal error
if((c = DecodeChar()) < 0) return count; // fatal error
if(c < 256)
{
buf[count] = (byte)c;
text_buf[tdctl.R++] = (byte)c;
tdctl.R &= (N - 1);
tdctl.R &= N - 1;
count++;
}
else
{
if((pos = DecodePosition()) < 0) return (count); // fatal error
if((pos = DecodePosition()) < 0) return count; // fatal error
tdctl.Bufpos = (ushort)((tdctl.R - pos - 1) & (N - 1));
tdctl.Bufcnt = (ushort)(c - 255 + THRESHOLD);
@@ -1693,7 +1693,7 @@ namespace DiscImageChef.DiscImages
buf[count] = (byte)c;
tdctl.Bufndx++;
text_buf[tdctl.R++] = (byte)c;
tdctl.R &= (N - 1);
tdctl.R &= N - 1;
count++;
}
// reset bufcnt after copy string from text_buf[]
@@ -1701,7 +1701,7 @@ namespace DiscImageChef.DiscImages
}
}
return (count); // count == len, success
return count; // count == len, success
}
#endregion LZH decompression from MAME
}

View File

@@ -465,18 +465,18 @@ namespace DiscImageChef.DiscImages
if(bChnk.type == CHUNK_TYPE_COMMNT) continue;
// TODO: Handle compressed chunks
if((bChnk.type == CHUNK_TYPE_KENCODE))
if(bChnk.type == CHUNK_TYPE_KENCODE)
throw new
ImageNotSupportedException("Chunks compressed with KenCode are not yet supported.");
if((bChnk.type == CHUNK_TYPE_RLE))
if(bChnk.type == CHUNK_TYPE_RLE)
throw new ImageNotSupportedException("Chunks compressed with RLE are not yet supported.");
if((bChnk.type == CHUNK_TYPE_LZH))
if(bChnk.type == CHUNK_TYPE_LZH)
throw new ImageNotSupportedException("Chunks compressed with LZH are not yet supported.");
if((bChnk.type == CHUNK_TYPE_LZFSE))
if(bChnk.type == CHUNK_TYPE_LZFSE)
throw new ImageNotSupportedException("Chunks compressed with lzfse are not yet supported.");
if((bChnk.type > CHUNK_TYPE_NOCOPY && bChnk.type < CHUNK_TYPE_COMMNT) ||
(bChnk.type > CHUNK_TYPE_LZFSE && bChnk.type < CHUNK_TYPE_END))
if(bChnk.type > CHUNK_TYPE_NOCOPY && bChnk.type < CHUNK_TYPE_COMMNT ||
bChnk.type > CHUNK_TYPE_LZFSE && bChnk.type < CHUNK_TYPE_END)
throw new ImageNotSupportedException(string.Format("Unsupported chunk type 0x{0:X8} found",
bChnk.type));
@@ -499,7 +499,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.ImageSize = ImageInfo.Sectors * SECTOR_SIZE;
ImageInfo.ImageVersion = string.Format("{0}", footer.version);
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;

View File

@@ -375,8 +375,8 @@ namespace DiscImageChef.DiscImages
(ushort cylinder, byte head, byte sector) LbaToChs(ulong lba)
{
ushort cylinder = (ushort)(lba / (ImageInfo.Heads * ImageInfo.SectorsPerTrack));
byte head = (byte)((lba / ImageInfo.SectorsPerTrack) % ImageInfo.Heads);
byte sector = (byte)((lba % ImageInfo.SectorsPerTrack) + 1);
byte head = (byte)(lba / ImageInfo.SectorsPerTrack % ImageInfo.Heads);
byte sector = (byte)(lba % ImageInfo.SectorsPerTrack + 1);
return (cylinder, head, sector);
}

View File

@@ -248,15 +248,15 @@ namespace DiscImageChef.DiscImages
if(sectorCache.TryGetValue(sectorAddress, out sector)) return sector;
ulong index = (sectorAddress * vHdr.sectorSize) / vHdr.blockSize;
ulong secOff = (sectorAddress * vHdr.sectorSize) % vHdr.blockSize;
ulong index = sectorAddress * vHdr.sectorSize / vHdr.blockSize;
ulong secOff = sectorAddress * vHdr.sectorSize % vHdr.blockSize;
uint ibmOff = ibm[index];
ulong imageOff;
if(ibmOff == VDI_EMPTY) return new byte[vHdr.sectorSize];
imageOff = vHdr.offsetData + (ibmOff * vHdr.blockSize);
imageOff = vHdr.offsetData + ibmOff * vHdr.blockSize;
byte[] cluster = new byte[vHdr.blockSize];
imageStream.Seek((long)imageOff, SeekOrigin.Begin);

View File

@@ -394,7 +394,7 @@ namespace DiscImageChef.DiscImages
byte[] headerCookieBytes = new byte[8];
byte[] footerCookieBytes = new byte[8];
if((imageStream.Length % 2) == 0) imageStream.Seek(-512, SeekOrigin.End);
if(imageStream.Length % 2 == 0) imageStream.Seek(-512, SeekOrigin.End);
else imageStream.Seek(-511, SeekOrigin.End);
imageStream.Read(footerCookieBytes, 0, 8);
@@ -405,7 +405,7 @@ namespace DiscImageChef.DiscImages
headerCookie = BigEndianBitConverter.ToUInt64(headerCookieBytes, 0);
footerCookie = BigEndianBitConverter.ToUInt64(footerCookieBytes, 0);
return (headerCookie == IMAGE_COOKIE || footerCookie == IMAGE_COOKIE);
return headerCookie == IMAGE_COOKIE || footerCookie == IMAGE_COOKIE;
}
public override bool OpenImage(Filter imageFilter)
@@ -417,7 +417,7 @@ namespace DiscImageChef.DiscImages
imageStream.Seek(0, SeekOrigin.Begin);
imageStream.Read(header, 0, 512);
if((imageStream.Length % 2) == 0)
if(imageStream.Length % 2 == 0)
{
footer = new byte[512];
imageStream.Seek(-512, SeekOrigin.End);
@@ -488,7 +488,7 @@ namespace DiscImageChef.DiscImages
thisFooter.UniqueId = BigEndianBitConverter.ToGuid(usableHeader, 0x44);
thisFooter.SavedState = usableHeader[0x54];
thisFooter.Reserved = new byte[usableHeader.Length - 0x55];
Array.Copy(usableHeader, 0x55, thisFooter.Reserved, 0, (usableHeader.Length - 0x55));
Array.Copy(usableHeader, 0x55, thisFooter.Reserved, 0, usableHeader.Length - 0x55);
thisDateTime = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
thisDateTime = thisDateTime.AddSeconds(thisFooter.Timestamp);
@@ -517,7 +517,7 @@ namespace DiscImageChef.DiscImages
DicConsole.DebugWriteLine("VirtualPC plugin", "footer.currentSize = {0}", thisFooter.CurrentSize);
DicConsole.DebugWriteLine("VirtualPC plugin", "footer.diskGeometry = 0x{0:X8} (C/H/S: {1}/{2}/{3})",
thisFooter.DiskGeometry, (thisFooter.DiskGeometry & 0xFFFF0000) >> 16,
(thisFooter.DiskGeometry & 0xFF00) >> 8, (thisFooter.DiskGeometry & 0xFF));
(thisFooter.DiskGeometry & 0xFF00) >> 8, thisFooter.DiskGeometry & 0xFF);
DicConsole.DebugWriteLine("VirtualPC plugin", "footer.diskType = 0x{0:X8}", thisFooter.DiskType);
DicConsole.DebugWriteLine("VirtualPC plugin", "footer.checksum = 0x{0:X8}", thisFooter.Checksum);
DicConsole.DebugWriteLine("VirtualPC plugin", "footer.uniqueId = {0}", thisFooter.UniqueId);
@@ -544,7 +544,7 @@ namespace DiscImageChef.DiscImages
{
ImageInfo.ImageApplicationVersion = string.Format("{0}.{1:D2}",
(thisFooter.CreatorVersion & 0xFFFF0000) >> 16,
(thisFooter.CreatorVersion & 0x0000FFFF));
thisFooter.CreatorVersion & 0x0000FFFF);
switch(thisFooter.CreatorHostOs)
{
case CREATOR_MACINTOSH:
@@ -657,7 +657,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.Cylinders = (thisFooter.DiskGeometry & 0xFFFF0000) >> 16;
ImageInfo.Heads = (thisFooter.DiskGeometry & 0xFF00) >> 8;
ImageInfo.SectorsPerTrack = (thisFooter.DiskGeometry & 0xFF);
ImageInfo.SectorsPerTrack = thisFooter.DiskGeometry & 0xFF;
if(thisFooter.DiskType == TYPE_DYNAMIC || thisFooter.DiskType == TYPE_DIFFERENCING)
{
@@ -782,7 +782,7 @@ namespace DiscImageChef.DiscImages
*/
// How many sectors uses the BAT
uint batSectorCount = (uint)Math.Ceiling(((double)thisDynamic.MaxTableEntries * 4) / 512);
uint batSectorCount = (uint)Math.Ceiling((double)thisDynamic.MaxTableEntries * 4 / 512);
byte[] batSectorBytes = new byte[512];
BatSector batSector = new BatSector();
@@ -799,11 +799,11 @@ namespace DiscImageChef.DiscImages
handle.Free();
// This restores the order of elements
Array.Reverse(batSector.blockPointer);
if(blockAllocationTable.Length >= (i * 512) / 4 + 512 / 4)
Array.Copy(batSector.blockPointer, 0, blockAllocationTable, (i * 512) / 4, 512 / 4);
if(blockAllocationTable.Length >= i * 512 / 4 + 512 / 4)
Array.Copy(batSector.blockPointer, 0, blockAllocationTable, i * 512 / 4, 512 / 4);
else
Array.Copy(batSector.blockPointer, 0, blockAllocationTable, (i * 512) / 4,
blockAllocationTable.Length - (i * 512) / 4);
Array.Copy(batSector.blockPointer, 0, blockAllocationTable, i * 512 / 4,
blockAllocationTable.Length - i * 512 / 4);
}
DateTime endTime = DateTime.UtcNow;
@@ -817,13 +817,11 @@ namespace DiscImageChef.DiscImages
*/
// Get the roundest number of sectors needed to store the block bitmap
bitmapSize = (uint)Math.Ceiling((
// How many sectors do a block store
((double)thisDynamic.BlockSize / 512)
// 1 bit per sector on the bitmap
/ 8
// and aligned to 512 byte boundary
/ 512));
bitmapSize = (uint)Math.Ceiling((double)thisDynamic.BlockSize / 512
// 1 bit per sector on the bitmap
/ 8
// and aligned to 512 byte boundary
/ 512);
DicConsole.DebugWriteLine("VirtualPC plugin", "Bitmap is {0} sectors", bitmapSize);
}
@@ -1095,7 +1093,7 @@ namespace DiscImageChef.DiscImages
uint sectorOffset = blockAllocationTable[blockNumber] + bitmapSize + sectorInBlock;
thisStream = thisFilter.GetDataForkStream();
thisStream.Seek((sectorOffset * 512), SeekOrigin.Begin);
thisStream.Seek(sectorOffset * 512, SeekOrigin.Begin);
thisStream.Read(data, 0, 512);
return data;
@@ -1141,7 +1139,7 @@ namespace DiscImageChef.DiscImages
// Sector number inside of block
uint sectorInBlock = (uint)(sectorAddress % (thisDynamic.BlockSize / 512));
// How many sectors before reaching end of block
uint remainingInBlock = (thisDynamic.BlockSize / 512) - sectorInBlock;
uint remainingInBlock = thisDynamic.BlockSize / 512 - sectorInBlock;
// Data that can be read in this block
byte[] prefix;
@@ -1167,7 +1165,7 @@ namespace DiscImageChef.DiscImages
if(sectorOffset != 0xFFFFFFFF)
{
thisStream = thisFilter.GetDataForkStream();
thisStream.Seek((sectorOffset * 512), SeekOrigin.Begin);
thisStream.Seek(sectorOffset * 512, SeekOrigin.Begin);
thisStream.Read(prefix, 0, (int)(512 * sectorsToReadHere));
}
// If it is unallocated, just fill with zeroes

View File

@@ -649,20 +649,20 @@ namespace DiscImageChef.DiscImages
hasParent = true;
}
chunkRatio = (long)((Math.Pow(2, 23) * logicalSectorSize) / vFileParms.blockSize);
chunkRatio = (long)(Math.Pow(2, 23) * logicalSectorSize / vFileParms.blockSize);
dataBlocks = virtualDiskSize / vFileParms.blockSize;
if((virtualDiskSize % vFileParms.blockSize) > 0) dataBlocks++;
if(virtualDiskSize % vFileParms.blockSize > 0) dataBlocks++;
long batEntries;
if(hasParent)
{
long sectorBitmapBlocks = (long)dataBlocks / chunkRatio;
if((dataBlocks % (ulong)chunkRatio) > 0) sectorBitmapBlocks++;
if(dataBlocks % (ulong)chunkRatio > 0) sectorBitmapBlocks++;
sectorBitmapPointers = new ulong[sectorBitmapBlocks];
batEntries = sectorBitmapBlocks * (chunkRatio - 1);
}
else batEntries = (long)(dataBlocks + ((dataBlocks - 1) / (ulong)chunkRatio));
else batEntries = (long)(dataBlocks + (dataBlocks - 1) / (ulong)chunkRatio);
DicConsole.DebugWriteLine("VHDX plugin", "Reading BAT");
@@ -739,7 +739,7 @@ namespace DiscImageChef.DiscImages
// TODO: Separate image application from version, need several samples.
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
@@ -754,7 +754,7 @@ namespace DiscImageChef.DiscImages
if(index > sectorBitmap.LongLength) return false;
return ((sectorBitmap[index] & val) == val);
return (sectorBitmap[index] & val) == val;
}
public override bool ImageHasPartitions()
@@ -832,8 +832,8 @@ namespace DiscImageChef.DiscImages
if(sectorCache.TryGetValue(sectorAddress, out sector)) return sector;
ulong index = (sectorAddress * logicalSectorSize) / vFileParms.blockSize;
ulong secOff = (sectorAddress * logicalSectorSize) % vFileParms.blockSize;
ulong index = sectorAddress * logicalSectorSize / vFileParms.blockSize;
ulong secOff = sectorAddress * logicalSectorSize % vFileParms.blockSize;
ulong blkPtr = blockAllocationTable[index];
ulong blkFlags = blkPtr & BAT_FLAGS_MASK;
@@ -859,7 +859,7 @@ namespace DiscImageChef.DiscImages
if(!blockCache.TryGetValue(blkPtr & BAT_FILE_OFFSET_MASK, out block))
{
block = new byte[vFileParms.blockSize];
imageStream.Seek((long)((blkPtr & BAT_FILE_OFFSET_MASK)), SeekOrigin.Begin);
imageStream.Seek((long)(blkPtr & BAT_FILE_OFFSET_MASK), SeekOrigin.Begin);
imageStream.Read(block, 0, block.Length);
if(blockCache.Count >= maxBlockCache) blockCache.Clear();

View File

@@ -703,7 +703,7 @@ namespace DiscImageChef.DiscImages
}
else if(!matchedCyls || !matchedHds || !matchedSpt)
{
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
}
@@ -766,7 +766,7 @@ namespace DiscImageChef.DiscImages
}
ulong index = sectorAddress / grainSize;
ulong secOff = (sectorAddress % grainSize) * SECTOR_SIZE;
ulong secOff = sectorAddress % grainSize * SECTOR_SIZE;
uint grainOff = gTable[index];
@@ -788,7 +788,7 @@ namespace DiscImageChef.DiscImages
{
grain = new byte[SECTOR_SIZE * grainSize];
dataStream = currentExtent.Filter.GetDataForkStream();
dataStream.Seek((long)(((grainOff - extentStartSector) * SECTOR_SIZE)), SeekOrigin.Begin);
dataStream.Seek((long)((grainOff - extentStartSector) * SECTOR_SIZE), SeekOrigin.Begin);
dataStream.Read(grain, 0, grain.Length);
if(grainCache.Count >= maxCachedGrains) grainCache.Clear();

View File

@@ -78,7 +78,7 @@ namespace DiscImageChef.DiscImages
public override bool IdentifyImage(Filter imageFilter)
{
// Check if file is not multiple of 512
if((imageFilter.GetDataForkLength() % 512) != 0)
if(imageFilter.GetDataForkLength() % 512 != 0)
{
extension = Path.GetExtension(imageFilter.GetFilename()).ToLower();
@@ -123,7 +123,7 @@ namespace DiscImageChef.DiscImages
stream.Seek(0, SeekOrigin.Begin);
extension = Path.GetExtension(imageFilter.GetFilename()).ToLower();
if(extension == ".iso" && (imageFilter.GetDataForkLength() % 2048) == 0) ImageInfo.SectorSize = 2048;
if(extension == ".iso" && imageFilter.GetDataForkLength() % 2048 == 0) ImageInfo.SectorSize = 2048;
else if(extension == ".d81" && imageFilter.GetDataForkLength() == 819200) ImageInfo.SectorSize = 256;
else if((extension == ".adf" || extension == ".adl" || extension == ".ssd" || extension == ".dsd") &&
(imageFilter.GetDataForkLength() == 163840 || imageFilter.GetDataForkLength() == 327680 ||
@@ -639,7 +639,7 @@ namespace DiscImageChef.DiscImages
ImageInfo.SectorsPerTrack = 32;
break;
default:
ImageInfo.Cylinders = (uint)((ImageInfo.Sectors / 16) / 63);
ImageInfo.Cylinders = (uint)(ImageInfo.Sectors / 16 / 63);
ImageInfo.Heads = 16;
ImageInfo.SectorsPerTrack = 63;
break;