diff --git a/DiscImageChef/ImagePlugins/CDRWin.cs b/DiscImageChef/ImagePlugins/CDRWin.cs index 3c9f37ede..0c7f4bd24 100644 --- a/DiscImageChef/ImagePlugins/CDRWin.cs +++ b/DiscImageChef/ImagePlugins/CDRWin.cs @@ -284,20 +284,6 @@ namespace DiscImageChef.ImagePlugins #endregion - #region Accesible variables - - ImageInfo _imageInfo; - - public ImageInfo ImageInfo - { - get - { - return _imageInfo; - } - } - - #endregion - #region Methods public CDRWin(PluginBase Core) @@ -305,23 +291,23 @@ namespace DiscImageChef.ImagePlugins Name = "CDRWin cuesheet"; PluginUUID = new Guid("664568B2-15D4-4E64-8A7A-20BDA8B8386F"); imagePath = ""; - _imageInfo = new ImageInfo(); - _imageInfo.readableSectorTags = new List(); - _imageInfo.readableDiskTags = new List(); - _imageInfo.imageHasPartitions = true; - _imageInfo.imageHasSessions = true; - _imageInfo.imageVersion = null; - _imageInfo.imageApplicationVersion = null; - _imageInfo.imageName = null; - _imageInfo.imageCreator = null; - _imageInfo.diskManufacturer = null; - _imageInfo.diskModel = null; - _imageInfo.diskPartNumber = null; - _imageInfo.diskSequence = 0; - _imageInfo.lastDiskSequence = 0; - _imageInfo.driveManufacturer = null; - _imageInfo.driveModel = null; - _imageInfo.driveSerialNumber = null; + ImageInfo = new ImageInfo(); + ImageInfo.readableSectorTags = new List(); + ImageInfo.readableDiskTags = new List(); + ImageInfo.imageHasPartitions = true; + ImageInfo.imageHasSessions = true; + ImageInfo.imageVersion = null; + ImageInfo.imageApplicationVersion = null; + ImageInfo.imageName = null; + ImageInfo.imageCreator = null; + ImageInfo.diskManufacturer = null; + ImageInfo.diskModel = null; + ImageInfo.diskPartNumber = null; + ImageInfo.diskSequence = 0; + ImageInfo.lastDiskSequence = 0; + ImageInfo.driveManufacturer = null; + ImageInfo.driveModel = null; + ImageInfo.driveSerialNumber = null; } // Due to .cue format, this method must parse whole file, ignoring errors (those will be thrown by OpenImage()). @@ -1219,37 +1205,37 @@ namespace DiscImageChef.ImagePlugins } foreach (CDRWinTrack track in discimage.tracks) - _imageInfo.imageSize += track.bps * track.sectors; + ImageInfo.imageSize += track.bps * track.sectors; foreach (CDRWinTrack track in discimage.tracks) - _imageInfo.sectors += track.sectors; + ImageInfo.sectors += track.sectors; if (discimage.disktype == DiskType.CDG || discimage.disktype == DiskType.CDEG || discimage.disktype == DiskType.CDMIDI) - _imageInfo.sectorSize = 2448; // CD+G subchannels ARE user data, as CD+G are useless without them + ImageInfo.sectorSize = 2448; // CD+G subchannels ARE user data, as CD+G are useless without them else if (discimage.disktype != DiskType.CDROMXA && discimage.disktype != DiskType.CDDA && discimage.disktype != DiskType.CDI && discimage.disktype != DiskType.CDPLUS) - _imageInfo.sectorSize = 2048; // Only data tracks + ImageInfo.sectorSize = 2048; // Only data tracks else - _imageInfo.sectorSize = 2352; // All others + ImageInfo.sectorSize = 2352; // All others if (discimage.mcn != null) - _imageInfo.readableDiskTags.Add(DiskTagType.CD_MCN); + ImageInfo.readableDiskTags.Add(DiskTagType.CD_MCN); if (discimage.cdtextfile != null) - _imageInfo.readableDiskTags.Add(DiskTagType.CD_TEXT); + ImageInfo.readableDiskTags.Add(DiskTagType.CD_TEXT); // Detect ISOBuster extensions if (discimage.disktypestr != null || discimage.comment.ToLower().Contains("isobuster") || discimage.sessions.Count > 1) - _imageInfo.imageApplication = "ISOBuster"; + ImageInfo.imageApplication = "ISOBuster"; else - _imageInfo.imageApplication = "CDRWin"; + ImageInfo.imageApplication = "CDRWin"; FileInfo fi = new FileInfo(discimage.tracks[0].trackfile.datafile); - _imageInfo.imageCreationTime = fi.CreationTimeUtc; - _imageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; + ImageInfo.imageCreationTime = fi.CreationTimeUtc; + ImageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; - _imageInfo.imageComments = discimage.comment; - _imageInfo.diskSerialNumber = discimage.mcn; - _imageInfo.diskBarcode = discimage.barcode; - _imageInfo.diskType = discimage.disktype; + ImageInfo.imageComments = discimage.comment; + ImageInfo.diskSerialNumber = discimage.mcn; + ImageInfo.diskBarcode = discimage.barcode; + ImageInfo.diskType = discimage.disktype; foreach (CDRWinTrack track in discimage.tracks) { @@ -1257,60 +1243,60 @@ namespace DiscImageChef.ImagePlugins { case CDRWinTrackTypeAudio: { - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDTrackFlags)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDTrackFlags); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDTrackFlags)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDTrackFlags); break; } case CDRWinTrackTypeCDG: { - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDTrackFlags)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDTrackFlags); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubchannel)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubchannel); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDTrackFlags)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDTrackFlags); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubchannel)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubchannel); break; } case CDRWinTrackTypeMode2Formless: case CDRWinTrackTypeCDI: { - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubHeader)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubHeader); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorEDC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorEDC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubHeader)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubHeader); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorEDC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorEDC); break; } case CDRWinTrackTypeMode2Raw: case CDRWinTrackTypeCDIRaw: { - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSync)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorSync); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorHeader)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorHeader); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubHeader)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubHeader); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorEDC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorEDC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSync)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorSync); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorHeader)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorHeader); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubHeader)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubHeader); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorEDC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorEDC); break; } case CDRWinTrackTypeMode1Raw: { - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSync)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorSync); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorHeader)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorHeader); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubHeader)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubHeader); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorECC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorECC); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorECC_P)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorECC_P); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorECC_Q)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorECC_Q); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDSectorEDC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDSectorEDC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSync)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorSync); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorHeader)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorHeader); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorSubHeader)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorSubHeader); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorECC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorECC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorECC_P)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorECC_P); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorECC_Q)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorECC_Q); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDSectorEDC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDSectorEDC); break; } } @@ -1329,22 +1315,22 @@ namespace DiscImageChef.ImagePlugins public override bool ImageHasPartitions() { - return _imageInfo.imageHasPartitions; + return ImageInfo.imageHasPartitions; } public override UInt64 GetImageSize() { - return _imageInfo.imageSize; + return ImageInfo.imageSize; } public override UInt64 GetSectors() { - return _imageInfo.sectors; + return ImageInfo.sectors; } public override UInt32 GetSectorSize() { - return _imageInfo.sectorSize; + return ImageInfo.sectorSize; } public override byte[] ReadDiskTag(DiskTagType tag) @@ -1874,47 +1860,47 @@ namespace DiscImageChef.ImagePlugins public override string GetImageVersion() { - return _imageInfo.imageVersion; + return ImageInfo.imageVersion; } public override string GetImageApplication() { - return _imageInfo.imageApplication; + return ImageInfo.imageApplication; } public override string GetImageApplicationVersion() { - return _imageInfo.imageApplicationVersion; + return ImageInfo.imageApplicationVersion; } public override DateTime GetImageCreationTime() { - return _imageInfo.imageCreationTime; + return ImageInfo.imageCreationTime; } public override DateTime GetImageLastModificationTime() { - return _imageInfo.imageLastModificationTime; + return ImageInfo.imageLastModificationTime; } public override string GetImageComments() { - return _imageInfo.imageComments; + return ImageInfo.imageComments; } public override string GetDiskSerialNumber() { - return _imageInfo.diskSerialNumber; + return ImageInfo.diskSerialNumber; } public override string GetDiskBarcode() { - return _imageInfo.diskBarcode; + return ImageInfo.diskBarcode; } public override DiskType GetDiskType() { - return _imageInfo.diskType; + return ImageInfo.diskType; } public override List GetPartitions() @@ -2202,52 +2188,52 @@ namespace DiscImageChef.ImagePlugins public override int GetDiskSequence() { - return _imageInfo.diskSequence; + return ImageInfo.diskSequence; } public override int GetLastDiskSequence() { - return _imageInfo.lastDiskSequence; + return ImageInfo.lastDiskSequence; } public override string GetDriveManufacturer() { - return _imageInfo.driveManufacturer; + return ImageInfo.driveManufacturer; } public override string GetDriveModel() { - return _imageInfo.driveModel; + return ImageInfo.driveModel; } public override string GetDriveSerialNumber() { - return _imageInfo.driveSerialNumber; + return ImageInfo.driveSerialNumber; } public override string GetDiskPartNumber() { - return _imageInfo.diskPartNumber; + return ImageInfo.diskPartNumber; } public override string GetDiskManufacturer() { - return _imageInfo.diskManufacturer; + return ImageInfo.diskManufacturer; } public override string GetDiskModel() { - return _imageInfo.diskModel; + return ImageInfo.diskModel; } public override string GetImageName() { - return _imageInfo.imageName; + return ImageInfo.imageName; } public override string GetImageCreator() { - return _imageInfo.imageCreator; + return ImageInfo.imageCreator; } #endregion diff --git a/DiscImageChef/ImagePlugins/DiskCopy42.cs b/DiscImageChef/ImagePlugins/DiskCopy42.cs index 2d2f173c5..a5d442169 100644 --- a/DiscImageChef/ImagePlugins/DiskCopy42.cs +++ b/DiscImageChef/ImagePlugins/DiskCopy42.cs @@ -126,44 +126,30 @@ namespace DiscImageChef.ImagePlugins #endregion - #region Accesible variables - - ImageInfo _imageInfo; - - public ImageInfo ImageInfo - { - get - { - return _imageInfo; - } - } - - #endregion - public DiskCopy42(PluginBase Core) { Name = "Apple DiskCopy 4.2"; PluginUUID = new Guid("0240B7B1-E959-4CDC-B0BD-386D6E467B88"); - _imageInfo = new ImageInfo(); - _imageInfo.readableSectorTags = new List(); - _imageInfo.readableDiskTags = new List(); - _imageInfo.imageHasPartitions = false; - _imageInfo.imageHasSessions = false; - _imageInfo.imageVersion = "4.2"; - _imageInfo.imageApplication = "Apple DiskCopy"; - _imageInfo.imageApplicationVersion = "4.2"; - _imageInfo.imageCreator = null; - _imageInfo.imageComments = null; - _imageInfo.diskManufacturer = null; - _imageInfo.diskModel = null; - _imageInfo.diskSerialNumber = null; - _imageInfo.diskBarcode = null; - _imageInfo.diskPartNumber = null; - _imageInfo.diskSequence = 0; - _imageInfo.lastDiskSequence = 0; - _imageInfo.driveManufacturer = null; - _imageInfo.driveModel = null; - _imageInfo.driveSerialNumber = null; + ImageInfo = new ImageInfo(); + ImageInfo.readableSectorTags = new List(); + ImageInfo.readableDiskTags = new List(); + ImageInfo.imageHasPartitions = false; + ImageInfo.imageHasSessions = false; + ImageInfo.imageVersion = "4.2"; + ImageInfo.imageApplication = "Apple DiskCopy"; + ImageInfo.imageApplicationVersion = "4.2"; + ImageInfo.imageCreator = null; + ImageInfo.imageComments = null; + ImageInfo.diskManufacturer = null; + ImageInfo.diskModel = null; + ImageInfo.diskSerialNumber = null; + ImageInfo.diskBarcode = null; + ImageInfo.diskPartNumber = null; + ImageInfo.diskSequence = 0; + ImageInfo.lastDiskSequence = 0; + ImageInfo.driveManufacturer = null; + ImageInfo.driveModel = null; + ImageInfo.driveSerialNumber = null; } public override bool IdentifyImage(string imagePath) @@ -321,15 +307,15 @@ namespace DiscImageChef.ImagePlugins dataOffset = 0x54; tagOffset = header.tagSize != 0 ? 0x54 + header.dataSize : 0; - _imageInfo.sectorSize = 512; + ImageInfo.sectorSize = 512; bptag = (uint)(header.tagSize != 0 ? 12 : 0); dc42ImagePath = imagePath; - _imageInfo.sectors = header.dataSize / 512; + ImageInfo.sectors = header.dataSize / 512; if (header.tagSize != 0) { - if (header.tagSize / 12 != _imageInfo.sectors) + if (header.tagSize / 12 != ImageInfo.sectors) { if (MainClass.isDebug) Console.WriteLine("DEBUG (DC42 plugin): header.tagSize / 12 != sectors"); @@ -337,36 +323,36 @@ namespace DiscImageChef.ImagePlugins return false; } - _imageInfo.readableSectorTags.Add(SectorTagType.AppleSectorTag); + ImageInfo.readableSectorTags.Add(SectorTagType.AppleSectorTag); } - _imageInfo.imageSize = _imageInfo.sectors * _imageInfo.sectorSize + _imageInfo.sectors * bptag; - _imageInfo.imageCreationTime = fi.CreationTimeUtc; - _imageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; - _imageInfo.imageName = header.diskName; + ImageInfo.imageSize = ImageInfo.sectors * ImageInfo.sectorSize + ImageInfo.sectors * bptag; + ImageInfo.imageCreationTime = fi.CreationTimeUtc; + ImageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; + ImageInfo.imageName = header.diskName; switch (header.format) { case kSonyFormat400K: - _imageInfo.diskType = DiskType.AppleSonySS; + ImageInfo.diskType = DiskType.AppleSonySS; break; case kSonyFormat800K: - _imageInfo.diskType = DiskType.AppleSonyDS; + ImageInfo.diskType = DiskType.AppleSonyDS; break; case kSonyFormat720K: - _imageInfo.diskType = DiskType.DOS_35_DS_DD_9; + ImageInfo.diskType = DiskType.DOS_35_DS_DD_9; break; case kSonyFormat1440K: - _imageInfo.diskType = DiskType.DOS_35_HD; + ImageInfo.diskType = DiskType.DOS_35_HD; break; case kSonyFormat1680K: - _imageInfo.diskType = DiskType.DMF; + ImageInfo.diskType = DiskType.DMF; break; case kSigmaFormatTwiggy: - _imageInfo.diskType = DiskType.AppleFileWare; + ImageInfo.diskType = DiskType.AppleFileWare; break; default: - _imageInfo.diskType = DiskType.Unknown; + ImageInfo.diskType = DiskType.Unknown; break; } @@ -452,22 +438,22 @@ namespace DiscImageChef.ImagePlugins public override bool ImageHasPartitions() { - return _imageInfo.imageHasPartitions; + return ImageInfo.imageHasPartitions; } public override UInt64 GetImageSize() { - return _imageInfo.imageSize; + return ImageInfo.imageSize; } public override UInt64 GetSectors() { - return _imageInfo.sectors; + return ImageInfo.sectors; } public override UInt32 GetSectorSize() { - return _imageInfo.sectorSize; + return ImageInfo.sectorSize; } public override byte[] ReadSector(UInt64 sectorAddress) @@ -482,19 +468,19 @@ namespace DiscImageChef.ImagePlugins public override byte[] ReadSectors(UInt64 sectorAddress, UInt32 length) { - if (sectorAddress > _imageInfo.sectors - 1) + if (sectorAddress > ImageInfo.sectors - 1) throw new ArgumentOutOfRangeException("sectorAddress", "Sector address not found"); - if (sectorAddress + length > _imageInfo.sectors) + if (sectorAddress + length > ImageInfo.sectors) throw new ArgumentOutOfRangeException("length", "Requested more sectors than available"); - byte[] buffer = new byte[length * _imageInfo.sectorSize]; + byte[] buffer = new byte[length * ImageInfo.sectorSize]; FileStream stream = new FileStream(dc42ImagePath, FileMode.Open, FileAccess.Read); - stream.Seek((long)(dataOffset + sectorAddress * _imageInfo.sectorSize), SeekOrigin.Begin); + stream.Seek((long)(dataOffset + sectorAddress * ImageInfo.sectorSize), SeekOrigin.Begin); - stream.Read(buffer, 0, (int)(length * _imageInfo.sectorSize)); + stream.Read(buffer, 0, (int)(length * ImageInfo.sectorSize)); stream.Close(); @@ -509,10 +495,10 @@ namespace DiscImageChef.ImagePlugins if (header.tagSize == 0) throw new FeatureNotPresentImageException("Disk image does not have tags"); - if (sectorAddress > _imageInfo.sectors - 1) + if (sectorAddress > ImageInfo.sectors - 1) throw new ArgumentOutOfRangeException("sectorAddress", "Sector address not found"); - if (sectorAddress + length > _imageInfo.sectors) + if (sectorAddress + length > ImageInfo.sectors) throw new ArgumentOutOfRangeException("length", "Requested more sectors than available"); byte[] buffer = new byte[length * bptag]; @@ -535,10 +521,10 @@ namespace DiscImageChef.ImagePlugins public override byte[] ReadSectorsLong(UInt64 sectorAddress, UInt32 length) { - if (sectorAddress > _imageInfo.sectors - 1) + if (sectorAddress > ImageInfo.sectors - 1) throw new ArgumentOutOfRangeException("sectorAddress", "Sector address not found"); - if (sectorAddress + length > _imageInfo.sectors) + if (sectorAddress + length > ImageInfo.sectors) throw new ArgumentOutOfRangeException("length", "Requested more sectors than available"); byte[] data = ReadSectors(sectorAddress, length); @@ -547,8 +533,8 @@ namespace DiscImageChef.ImagePlugins for (uint i = 0; i < length; i++) { - 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(data, i * (ImageInfo.sectorSize), buffer, i * (ImageInfo.sectorSize + bptag), ImageInfo.sectorSize); + Array.Copy(tags, i * (bptag), buffer, i * (ImageInfo.sectorSize + bptag) + ImageInfo.sectorSize, bptag); } return buffer; @@ -561,37 +547,37 @@ namespace DiscImageChef.ImagePlugins public override string GetImageVersion() { - return _imageInfo.imageVersion; + return ImageInfo.imageVersion; } public override string GetImageApplication() { - return _imageInfo.imageApplication; + return ImageInfo.imageApplication; } public override string GetImageApplicationVersion() { - return _imageInfo.imageApplicationVersion; + return ImageInfo.imageApplicationVersion; } public override DateTime GetImageCreationTime() { - return _imageInfo.imageCreationTime; + return ImageInfo.imageCreationTime; } public override DateTime GetImageLastModificationTime() { - return _imageInfo.imageLastModificationTime; + return ImageInfo.imageLastModificationTime; } public override string GetImageName() { - return _imageInfo.imageName; + return ImageInfo.imageName; } public override DiskType GetDiskType() { - return _imageInfo.diskType; + return ImageInfo.diskType; } #region Unsupported features @@ -603,62 +589,62 @@ namespace DiscImageChef.ImagePlugins public override string GetImageCreator() { - return _imageInfo.imageCreator; + return ImageInfo.imageCreator; } public override string GetImageComments() { - return _imageInfo.imageComments; + return ImageInfo.imageComments; } public override string GetDiskManufacturer() { - return _imageInfo.diskManufacturer; + return ImageInfo.diskManufacturer; } public override string GetDiskModel() { - return _imageInfo.diskModel; + return ImageInfo.diskModel; } public override string GetDiskSerialNumber() { - return _imageInfo.diskSerialNumber; + return ImageInfo.diskSerialNumber; } public override string GetDiskBarcode() { - return _imageInfo.diskBarcode; + return ImageInfo.diskBarcode; } public override string GetDiskPartNumber() { - return _imageInfo.diskPartNumber; + return ImageInfo.diskPartNumber; } public override int GetDiskSequence() { - return _imageInfo.diskSequence; + return ImageInfo.diskSequence; } public override int GetLastDiskSequence() { - return _imageInfo.lastDiskSequence; + return ImageInfo.lastDiskSequence; } public override string GetDriveManufacturer() { - return _imageInfo.driveManufacturer; + return ImageInfo.driveManufacturer; } public override string GetDriveModel() { - return _imageInfo.driveModel; + return ImageInfo.driveModel; } public override string GetDriveSerialNumber() { - return _imageInfo.driveSerialNumber; + return ImageInfo.driveSerialNumber; } public override List GetPartitions() diff --git a/DiscImageChef/ImagePlugins/Nero.cs b/DiscImageChef/ImagePlugins/Nero.cs index f74b93b30..0159ea2b2 100644 --- a/DiscImageChef/ImagePlugins/Nero.cs +++ b/DiscImageChef/ImagePlugins/Nero.cs @@ -859,20 +859,6 @@ namespace DiscImageChef.ImagePlugins #endregion - #region Accesible variables - - ImageInfo _imageInfo; - - public ImageInfo ImageInfo - { - get - { - return _imageInfo; - } - } - - #endregion - #region Methods public Nero(PluginBase Core) @@ -881,9 +867,9 @@ namespace DiscImageChef.ImagePlugins PluginUUID = new Guid("D160F9FF-5941-43FC-B037-AD81DD141F05"); _imagePath = ""; imageNewFormat = false; - _imageInfo = new ImageInfo(); - _imageInfo.readableSectorTags = new List(); - _imageInfo.readableDiskTags = new List(); + ImageInfo = new ImageInfo(); + ImageInfo.readableSectorTags = new List(); + ImageInfo.readableDiskTags = new List(); neroSessions = new Dictionary(); neroTracks = new Dictionary(); offsetmap = new Dictionary(); @@ -993,9 +979,9 @@ namespace DiscImageChef.ImagePlugins imageTracks = new List(); TrackISRCs = new Dictionary(); - _imageInfo.diskType = DiskType.CD; - _imageInfo.sectors = 0; - _imageInfo.sectorSize = 0; + ImageInfo.diskType = DiskType.CD; + ImageInfo.sectors = 0; + ImageInfo.sectorSize = 0; while (parsing) { @@ -1110,11 +1096,11 @@ namespace DiscImageChef.ImagePlugins neroDAOV1.LastTrack = tmpbuffer[21]; neroDAOV1.Tracks = new List(); - if (!_imageInfo.readableDiskTags.Contains(DiskTagType.CD_MCN)) - _imageInfo.readableDiskTags.Add(DiskTagType.CD_MCN); + if (!ImageInfo.readableDiskTags.Contains(DiskTagType.CD_MCN)) + ImageInfo.readableDiskTags.Add(DiskTagType.CD_MCN); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); if (MainClass.isDebug) { @@ -1155,8 +1141,8 @@ namespace DiscImageChef.ImagePlugins neroDAOV1.Tracks.Add(_entry); - if (_entry.SectorSize > _imageInfo.sectorSize) - _imageInfo.sectorSize = _entry.SectorSize; + if (_entry.SectorSize > ImageInfo.sectorSize) + ImageInfo.sectorSize = _entry.SectorSize; TrackISRCs.Add(currenttrack, _entry.ISRC); @@ -1168,13 +1154,13 @@ namespace DiscImageChef.ImagePlugins _neroTrack.Offset = _entry.Index0; _neroTrack.Sectors = _neroTrack.Length / _entry.SectorSize; _neroTrack.SectorSize = _entry.SectorSize; - _neroTrack.StartLBA = _imageInfo.sectors; + _neroTrack.StartLBA = ImageInfo.sectors; _neroTrack.Index0 = _entry.Index0; _neroTrack.Index1 = _entry.Index1; _neroTrack.Sequence = currenttrack; neroTracks.Add(currenttrack, _neroTrack); - _imageInfo.sectors += _neroTrack.Sectors; + ImageInfo.sectors += _neroTrack.Sectors; currenttrack++; } @@ -1200,11 +1186,11 @@ namespace DiscImageChef.ImagePlugins neroDAOV2.LastTrack = tmpbuffer[21]; neroDAOV2.Tracks = new List(); - if (!_imageInfo.readableDiskTags.Contains(DiskTagType.CD_MCN)) - _imageInfo.readableDiskTags.Add(DiskTagType.CD_MCN); + if (!ImageInfo.readableDiskTags.Contains(DiskTagType.CD_MCN)) + ImageInfo.readableDiskTags.Add(DiskTagType.CD_MCN); - if (!_imageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) - _imageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); + if (!ImageInfo.readableSectorTags.Contains(SectorTagType.CDTrackISRC)) + ImageInfo.readableSectorTags.Add(SectorTagType.CDTrackISRC); UPC = neroDAOV2.UPC; @@ -1245,8 +1231,8 @@ namespace DiscImageChef.ImagePlugins neroDAOV2.Tracks.Add(_entry); - if (_entry.SectorSize > _imageInfo.sectorSize) - _imageInfo.sectorSize = _entry.SectorSize; + if (_entry.SectorSize > ImageInfo.sectorSize) + ImageInfo.sectorSize = _entry.SectorSize; TrackISRCs.Add(currenttrack, _entry.ISRC); @@ -1258,13 +1244,13 @@ namespace DiscImageChef.ImagePlugins _neroTrack.Offset = _entry.Index0; _neroTrack.Sectors = _neroTrack.Length / _entry.SectorSize; _neroTrack.SectorSize = _entry.SectorSize; - _neroTrack.StartLBA = _imageInfo.sectors; + _neroTrack.StartLBA = ImageInfo.sectors; _neroTrack.Index0 = _entry.Index0; _neroTrack.Index1 = _entry.Index1; _neroTrack.Sequence = currenttrack; neroTracks.Add(currenttrack, _neroTrack); - _imageInfo.sectors += _neroTrack.Sectors; + ImageInfo.sectors += _neroTrack.Sectors; currenttrack++; } @@ -1345,8 +1331,8 @@ namespace DiscImageChef.ImagePlugins neroTAOV1.Tracks.Add(_entry); - if (NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode) > _imageInfo.sectorSize) - _imageInfo.sectorSize = NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); + if (NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode) > ImageInfo.sectorSize) + ImageInfo.sectorSize = NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); NeroTrack _neroTrack = new NeroTrack(); _neroTrack.EndOfTrack = _entry.Offset + _entry.Length; @@ -1356,13 +1342,13 @@ namespace DiscImageChef.ImagePlugins _neroTrack.Offset = _entry.Offset; _neroTrack.Sectors = _neroTrack.Length / NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); _neroTrack.SectorSize = NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); - _neroTrack.StartLBA = _imageInfo.sectors; + _neroTrack.StartLBA = ImageInfo.sectors; _neroTrack.Index0 = _entry.Offset; _neroTrack.Index1 = _entry.Offset; _neroTrack.Sequence = currenttrack; neroTracks.Add(currenttrack, _neroTrack); - _imageInfo.sectors += _neroTrack.Sectors; + ImageInfo.sectors += _neroTrack.Sectors; currenttrack++; } @@ -1405,8 +1391,8 @@ namespace DiscImageChef.ImagePlugins neroTAOV2.Tracks.Add(_entry); - if (NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode) > _imageInfo.sectorSize) - _imageInfo.sectorSize = NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); + if (NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode) > ImageInfo.sectorSize) + ImageInfo.sectorSize = NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); NeroTrack _neroTrack = new NeroTrack(); _neroTrack.EndOfTrack = _entry.Offset + _entry.Length; @@ -1416,13 +1402,13 @@ namespace DiscImageChef.ImagePlugins _neroTrack.Offset = _entry.Offset; _neroTrack.Sectors = _neroTrack.Length / NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); _neroTrack.SectorSize = NeroTrackModeToBytesPerSector((DAOMode)_entry.Mode); - _neroTrack.StartLBA = _imageInfo.sectors; + _neroTrack.StartLBA = ImageInfo.sectors; _neroTrack.Index0 = _entry.Offset; _neroTrack.Index1 = _entry.Offset; _neroTrack.Sequence = currenttrack; neroTracks.Add(currenttrack, _neroTrack); - _imageInfo.sectors += _neroTrack.Sectors; + ImageInfo.sectors += _neroTrack.Sectors; currenttrack++; } @@ -1463,7 +1449,7 @@ namespace DiscImageChef.ImagePlugins if (MainClass.isDebug) Console.WriteLine("DEBUG (Nero plugin): \tMedia type is {0} ({1})", (NeroMediaTypes)neroMediaTyp.Type, neroMediaTyp.Type); - _imageInfo.diskType = NeroMediaTypeToDiskType((NeroMediaTypes)neroMediaTyp.Type); + ImageInfo.diskType = NeroMediaTypeToDiskType((NeroMediaTypes)neroMediaTyp.Type); break; } @@ -1535,36 +1521,36 @@ namespace DiscImageChef.ImagePlugins } } - _imageInfo.imageHasPartitions = true; - _imageInfo.imageHasSessions = true; - _imageInfo.imageCreator = null; - _imageInfo.imageCreationTime = imageInfo.CreationTimeUtc; - _imageInfo.imageLastModificationTime = imageInfo.LastWriteTimeUtc; - _imageInfo.imageName = Path.GetFileNameWithoutExtension(imagePath); - _imageInfo.imageComments = null; - _imageInfo.diskManufacturer = null; - _imageInfo.diskModel = null; - _imageInfo.diskSerialNumber = null; - _imageInfo.diskBarcode = null; - _imageInfo.diskPartNumber = null; - _imageInfo.driveManufacturer = null; - _imageInfo.driveModel = null; - _imageInfo.driveSerialNumber = null; - _imageInfo.diskSequence = 0; - _imageInfo.lastDiskSequence = 0; + ImageInfo.imageHasPartitions = true; + ImageInfo.imageHasSessions = true; + ImageInfo.imageCreator = null; + ImageInfo.imageCreationTime = imageInfo.CreationTimeUtc; + ImageInfo.imageLastModificationTime = imageInfo.LastWriteTimeUtc; + ImageInfo.imageName = Path.GetFileNameWithoutExtension(imagePath); + ImageInfo.imageComments = null; + ImageInfo.diskManufacturer = null; + ImageInfo.diskModel = null; + ImageInfo.diskSerialNumber = null; + ImageInfo.diskBarcode = null; + ImageInfo.diskPartNumber = null; + ImageInfo.driveManufacturer = null; + ImageInfo.driveModel = null; + ImageInfo.driveSerialNumber = null; + ImageInfo.diskSequence = 0; + ImageInfo.lastDiskSequence = 0; if (imageNewFormat) { - _imageInfo.imageSize = footerV2.FirstChunkOffset; - _imageInfo.imageVersion = "Nero Burning ROM >= 5.5"; - _imageInfo.imageApplication = "Nero Burning ROM"; - _imageInfo.imageApplicationVersion = ">= 5.5"; + ImageInfo.imageSize = footerV2.FirstChunkOffset; + ImageInfo.imageVersion = "Nero Burning ROM >= 5.5"; + ImageInfo.imageApplication = "Nero Burning ROM"; + ImageInfo.imageApplicationVersion = ">= 5.5"; } else { - _imageInfo.imageSize = footerV1.FirstChunkOffset; - _imageInfo.imageVersion = "Nero Burning ROM <= 5.0"; - _imageInfo.imageApplication = "Nero Burning ROM"; - _imageInfo.imageApplicationVersion = "<= 5.0"; + ImageInfo.imageSize = footerV1.FirstChunkOffset; + ImageInfo.imageVersion = "Nero Burning ROM <= 5.0"; + ImageInfo.imageApplication = "Nero Burning ROM"; + ImageInfo.imageApplicationVersion = "<= 5.0"; } if (neroSessions.Count == 0) @@ -1687,17 +1673,17 @@ namespace DiscImageChef.ImagePlugins public override UInt64 GetImageSize() { - return _imageInfo.imageSize; + return ImageInfo.imageSize; } public override UInt64 GetSectors() { - return _imageInfo.sectors; + return ImageInfo.sectors; } public override UInt32 GetSectorSize() { - return _imageInfo.sectorSize; + return ImageInfo.sectorSize; } public override byte[] ReadDiskTag(DiskTagType tag) @@ -2228,37 +2214,37 @@ namespace DiscImageChef.ImagePlugins public override string GetImageVersion() { - return _imageInfo.imageVersion; + return ImageInfo.imageVersion; } public override string GetImageApplication() { - return _imageInfo.imageApplication; + return ImageInfo.imageApplication; } public override string GetImageApplicationVersion() { - return _imageInfo.imageApplicationVersion; + return ImageInfo.imageApplicationVersion; } public override DateTime GetImageCreationTime() { - return _imageInfo.imageCreationTime; + return ImageInfo.imageCreationTime; } public override DateTime GetImageLastModificationTime() { - return _imageInfo.imageLastModificationTime; + return ImageInfo.imageLastModificationTime; } public override string GetDiskBarcode() { - return _imageInfo.diskBarcode; + return ImageInfo.diskBarcode; } public override DiskType GetDiskType() { - return _imageInfo.diskType; + return ImageInfo.diskType; } public override List GetPartitions() diff --git a/DiscImageChef/ImagePlugins/TeleDisk.cs b/DiscImageChef/ImagePlugins/TeleDisk.cs index 51792505d..8ffac2953 100644 --- a/DiscImageChef/ImagePlugins/TeleDisk.cs +++ b/DiscImageChef/ImagePlugins/TeleDisk.cs @@ -201,42 +201,28 @@ namespace DiscImageChef.ImagePlugins #endregion - #region Accesible variables - - ImageInfo _imageInfo; - - public ImageInfo ImageInfo - { - get - { - return _imageInfo; - } - } - - #endregion - public TeleDisk(PluginBase Core) { Name = "Sydex TeleDisk"; PluginUUID = new Guid("0240B7B1-E959-4CDC-B0BD-386D6E467B88"); - _imageInfo = new ImageInfo(); - _imageInfo.readableSectorTags = new List(); - _imageInfo.readableDiskTags = new List(); - _imageInfo.imageHasPartitions = false; - _imageInfo.imageHasSessions = false; - _imageInfo.imageApplication = "Sydex TeleDisk"; - _imageInfo.imageComments = null; - _imageInfo.imageCreator = null; - _imageInfo.diskManufacturer = null; - _imageInfo.diskModel = null; - _imageInfo.diskSerialNumber = null; - _imageInfo.diskBarcode = null; - _imageInfo.diskPartNumber = null; - _imageInfo.diskSequence = 0; - _imageInfo.lastDiskSequence = 0; - _imageInfo.driveManufacturer = null; - _imageInfo.driveModel = null; - _imageInfo.driveSerialNumber = null; + ImageInfo = new ImageInfo(); + ImageInfo.readableSectorTags = new List(); + ImageInfo.readableDiskTags = new List(); + ImageInfo.imageHasPartitions = false; + ImageInfo.imageHasSessions = false; + ImageInfo.imageApplication = "Sydex TeleDisk"; + ImageInfo.imageComments = null; + ImageInfo.imageCreator = null; + ImageInfo.diskManufacturer = null; + ImageInfo.diskModel = null; + ImageInfo.diskSerialNumber = null; + ImageInfo.diskBarcode = null; + ImageInfo.diskPartNumber = null; + ImageInfo.diskSequence = 0; + ImageInfo.lastDiskSequence = 0; + ImageInfo.driveManufacturer = null; + ImageInfo.driveModel = null; + ImageInfo.driveSerialNumber = null; ADiskCRCHasFailed = false; SectorsWhereCRCHasFailed = new List(); } @@ -327,9 +313,9 @@ namespace DiscImageChef.ImagePlugins header.sides = headerBytes[9]; header.crc = BitConverter.ToUInt16(headerBytes, 10); - _imageInfo.imageName = Path.GetFileNameWithoutExtension(imagePath); - _imageInfo.imageVersion = String.Format("{0}.{1}", (header.version & 0xF0) >> 4, header.version & 0x0F); - _imageInfo.imageApplication = _imageInfo.imageVersion; + ImageInfo.imageName = Path.GetFileNameWithoutExtension(imagePath); + ImageInfo.imageVersion = String.Format("{0}.{1}", (header.version & 0xF0) >> 4, header.version & 0x0F); + ImageInfo.imageApplication = ImageInfo.imageVersion; byte[] headerBytesForCRC = new byte[10]; Array.Copy(headerBytes, headerBytesForCRC, 10); @@ -374,7 +360,7 @@ namespace DiscImageChef.ImagePlugins if (header.signature == tdAdvCompMagic) throw new NotImplementedException("TeleDisk Advanced Compression support not yet implemented"); - _imageInfo.imageCreationTime = DateTime.MinValue; + ImageInfo.imageCreationTime = DateTime.MinValue; if ((header.stepping & CommentBlockPresent) == CommentBlockPresent) { @@ -425,27 +411,27 @@ namespace DiscImageChef.ImagePlugins commentBlock[i] = 0x0A; } - _imageInfo.imageComments = System.Text.Encoding.ASCII.GetString(commentBlock); + ImageInfo.imageComments = System.Text.Encoding.ASCII.GetString(commentBlock); if (MainClass.isDebug) { Console.WriteLine("DEBUG (TeleDisk plugin): Comment"); - Console.WriteLine("DEBUG (TeleDisk plugin): {0}", _imageInfo.imageComments); + Console.WriteLine("DEBUG (TeleDisk plugin): {0}", ImageInfo.imageComments); } - _imageInfo.imageCreationTime = new DateTime(commentHeader.year + 1900, commentHeader.month + 1, commentHeader.day, + ImageInfo.imageCreationTime = new DateTime(commentHeader.year + 1900, commentHeader.month + 1, commentHeader.day, commentHeader.hour, commentHeader.minute, commentHeader.second, DateTimeKind.Unspecified); } FileInfo fi = new FileInfo(imagePath); - if (_imageInfo.imageCreationTime == DateTime.MinValue) - _imageInfo.imageCreationTime = fi.CreationTimeUtc; - _imageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; + if (ImageInfo.imageCreationTime == DateTime.MinValue) + ImageInfo.imageCreationTime = fi.CreationTimeUtc; + ImageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; if (MainClass.isDebug) { - Console.WriteLine("DEBUG (TeleDisk plugin): Image created on {0}", _imageInfo.imageCreationTime); - Console.WriteLine("DEBUG (TeleDisk plugin): Image modified on {0}", _imageInfo.imageLastModificationTime); + Console.WriteLine("DEBUG (TeleDisk plugin): Image created on {0}", ImageInfo.imageCreationTime); + Console.WriteLine("DEBUG (TeleDisk plugin): Image modified on {0}", ImageInfo.imageLastModificationTime); } if (MainClass.isDebug) @@ -453,9 +439,9 @@ namespace DiscImageChef.ImagePlugins totalDiskSize = 0; byte spt = 0; - _imageInfo.imageSize = 0; + ImageInfo.imageSize = 0; sectorsData = new Dictionary(); - _imageInfo.sectorSize = 0; + ImageInfo.sectorSize = 0; while (true) { TDTrackHeader TDTrack = new TDTrackHeader(); @@ -534,7 +520,7 @@ namespace DiscImageChef.ImagePlugins stream.Read(dataSizeBytes, 0, 2); TDData.dataSize = BitConverter.ToUInt16(dataSizeBytes, 0); TDData.dataSize--; // Sydex decided to including dataEncoding byte as part of it - _imageInfo.imageSize += TDData.dataSize; + ImageInfo.imageSize += TDData.dataSize; TDData.dataEncoding = (byte)stream.ReadByte(); data = new byte[TDData.dataSize]; stream.Read(data, 0, TDData.dataSize); @@ -614,13 +600,13 @@ namespace DiscImageChef.ImagePlugins totalDiskSize += (uint)decodedData.Length; } } - if (decodedData.Length > _imageInfo.sectorSize) - _imageInfo.sectorSize = (uint)decodedData.Length; + if (decodedData.Length > ImageInfo.sectorSize) + ImageInfo.sectorSize = (uint)decodedData.Length; } } - _imageInfo.sectors = (ulong)sectorsData.Count; - _imageInfo.diskType = DecodeTeleDiskDiskType(); + ImageInfo.sectors = (ulong)sectorsData.Count; + ImageInfo.diskType = DecodeTeleDiskDiskType(); stream.Close(); return true; @@ -628,22 +614,22 @@ namespace DiscImageChef.ImagePlugins public override bool ImageHasPartitions() { - return _imageInfo.imageHasPartitions; + return ImageInfo.imageHasPartitions; } public override UInt64 GetImageSize() { - return _imageInfo.imageSize; + return ImageInfo.imageSize; } public override UInt64 GetSectors() { - return _imageInfo.sectors; + return ImageInfo.sectors; } public override UInt32 GetSectorSize() { - return _imageInfo.sectorSize; + return ImageInfo.sectorSize; } public override byte[] ReadSector(UInt64 sectorAddress) @@ -707,37 +693,37 @@ namespace DiscImageChef.ImagePlugins public override string GetImageVersion() { - return _imageInfo.imageVersion; + return ImageInfo.imageVersion; } public override string GetImageApplication() { - return _imageInfo.imageApplication; + return ImageInfo.imageApplication; } public override string GetImageApplicationVersion() { - return _imageInfo.imageApplicationVersion; + return ImageInfo.imageApplicationVersion; } public override DateTime GetImageCreationTime() { - return _imageInfo.imageCreationTime; + return ImageInfo.imageCreationTime; } public override DateTime GetImageLastModificationTime() { - return _imageInfo.imageLastModificationTime; + return ImageInfo.imageLastModificationTime; } public override string GetImageName() { - return _imageInfo.imageName; + return ImageInfo.imageName; } public override DiskType GetDiskType() { - return _imageInfo.diskType; + return ImageInfo.diskType; } public override bool? VerifySector(UInt64 sectorAddress) @@ -924,7 +910,7 @@ namespace DiscImageChef.ImagePlugins case 163840: { // Acorn disk uses 256 bytes/sector - if (_imageInfo.sectorSize == 256) + if (ImageInfo.sectorSize == 256) return DiskType.ACORN_525_SS_DD_40; else // DOS disks use 512 bytes/sector return DiskType.DOS_525_SS_DD_8; @@ -932,7 +918,7 @@ namespace DiscImageChef.ImagePlugins case 184320: { // Atari disk uses 256 bytes/sector - if (_imageInfo.sectorSize == 256) + if (ImageInfo.sectorSize == 256) return DiskType.ATARI_525_DD; else // DOS disks use 512 bytes/sector return DiskType.DOS_525_SS_DD_9; @@ -940,7 +926,7 @@ namespace DiscImageChef.ImagePlugins case 327680: { // Acorn disk uses 256 bytes/sector - if (_imageInfo.sectorSize == 256) + if (ImageInfo.sectorSize == 256) return DiskType.ACORN_525_SS_DD_80; else // DOS disks use 512 bytes/sector return DiskType.DOS_525_DS_DD_8; @@ -1060,7 +1046,7 @@ namespace DiscImageChef.ImagePlugins case 512512: { // DEC disk uses 256 bytes/sector - if (_imageInfo.sectorSize == 256) + if (ImageInfo.sectorSize == 256) return DiskType.RX02; else // ECMA disks use 128 bytes/sector return DiskType.ECMA_59; @@ -1112,62 +1098,62 @@ namespace DiscImageChef.ImagePlugins public override string GetImageCreator() { - return _imageInfo.imageCreator; + return ImageInfo.imageCreator; } public override string GetImageComments() { - return _imageInfo.imageComments; + return ImageInfo.imageComments; } public override string GetDiskManufacturer() { - return _imageInfo.diskManufacturer; + return ImageInfo.diskManufacturer; } public override string GetDiskModel() { - return _imageInfo.diskModel; + return ImageInfo.diskModel; } public override string GetDiskSerialNumber() { - return _imageInfo.diskSerialNumber; + return ImageInfo.diskSerialNumber; } public override string GetDiskBarcode() { - return _imageInfo.diskBarcode; + return ImageInfo.diskBarcode; } public override string GetDiskPartNumber() { - return _imageInfo.diskPartNumber; + return ImageInfo.diskPartNumber; } public override int GetDiskSequence() { - return _imageInfo.diskSequence; + return ImageInfo.diskSequence; } public override int GetLastDiskSequence() { - return _imageInfo.lastDiskSequence; + return ImageInfo.lastDiskSequence; } public override string GetDriveManufacturer() { - return _imageInfo.driveManufacturer; + return ImageInfo.driveManufacturer; } public override string GetDriveModel() { - return _imageInfo.driveModel; + return ImageInfo.driveModel; } public override string GetDriveSerialNumber() { - return _imageInfo.driveSerialNumber; + return ImageInfo.driveSerialNumber; } public override List GetPartitions() diff --git a/DiscImageChef/ImagePlugins/ZZZRawImage.cs b/DiscImageChef/ImagePlugins/ZZZRawImage.cs index 46c8f661f..d4056ff10 100644 --- a/DiscImageChef/ImagePlugins/ZZZRawImage.cs +++ b/DiscImageChef/ImagePlugins/ZZZRawImage.cs @@ -52,45 +52,31 @@ namespace DiscImageChef.ImagePlugins #endregion - #region Accesible variables - - ImageInfo _imageInfo; - - public ImageInfo ImageInfo - { - get - { - return _imageInfo; - } - } - - #endregion - public ZZZRawImage(PluginBase Core) { Name = "Raw Disk Image"; // Non-random UUID to recognize this specific plugin PluginUUID = new Guid("12345678-AAAA-BBBB-CCCC-123456789000"); - _imageInfo = new ImageInfo(); - _imageInfo.readableSectorTags = new List(); - _imageInfo.readableDiskTags = new List(); - _imageInfo.imageHasPartitions = false; - _imageInfo.imageHasSessions = false; - _imageInfo.imageVersion = null; - _imageInfo.imageApplication = null; - _imageInfo.imageApplicationVersion = null; - _imageInfo.imageCreator = null; - _imageInfo.imageComments = null; - _imageInfo.diskManufacturer = null; - _imageInfo.diskModel = null; - _imageInfo.diskSerialNumber = null; - _imageInfo.diskBarcode = null; - _imageInfo.diskPartNumber = null; - _imageInfo.diskSequence = 0; - _imageInfo.lastDiskSequence = 0; - _imageInfo.driveManufacturer = null; - _imageInfo.driveModel = null; - _imageInfo.driveSerialNumber = null; + ImageInfo = new ImageInfo(); + ImageInfo.readableSectorTags = new List(); + ImageInfo.readableDiskTags = new List(); + ImageInfo.imageHasPartitions = false; + ImageInfo.imageHasSessions = false; + ImageInfo.imageVersion = null; + ImageInfo.imageApplication = null; + ImageInfo.imageApplicationVersion = null; + ImageInfo.imageCreator = null; + ImageInfo.imageComments = null; + ImageInfo.diskManufacturer = null; + ImageInfo.diskModel = null; + ImageInfo.diskSerialNumber = null; + ImageInfo.diskBarcode = null; + ImageInfo.diskPartNumber = null; + ImageInfo.diskSequence = 0; + ImageInfo.lastDiskSequence = 0; + ImageInfo.driveManufacturer = null; + ImageInfo.driveModel = null; + ImageInfo.driveSerialNumber = null; } public override bool IdentifyImage(string imagePath) @@ -136,7 +122,7 @@ namespace DiscImageChef.ImagePlugins FileInfo fi = new FileInfo(imagePath); string extension = Path.GetExtension(imagePath).ToLower(); if (extension == ".iso" && (fi.Length % 2048) == 0) - _imageInfo.sectorSize = 2048; + ImageInfo.sectorSize = 2048; else { switch (fi.Length) @@ -146,7 +132,7 @@ namespace DiscImageChef.ImagePlugins case 495872: case 92160: case 133120: - _imageInfo.sectorSize = 128; + ImageInfo.sectorSize = 128; break; case 116480: case 287488: // T0S0 = 128bps @@ -165,138 +151,138 @@ namespace DiscImageChef.ImagePlugins case 80384: // T0S0 = 128bps case 325632: // T0S0 = 128bps, T0S1 = 256bps case 653312: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectorSize = 256; + ImageInfo.sectorSize = 256; break; case 81664: - _imageInfo.sectorSize = 319; + ImageInfo.sectorSize = 319; break; case 306432: // T0S0 = 128bps case 1146624: // T0S0 = 128bps, T0S1 = 256bps case 1177344: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectorSize = 512; + ImageInfo.sectorSize = 512; break; case 1222400: // T0S0 = 128bps, T0S1 = 256bps case 1304320: // T0S0 = 128bps, T0S1 = 256bps case 1255168: // T0S0 = 128bps, T0S1 = 256bps case 1261568: case 1310720: - _imageInfo.sectorSize = 1024; + ImageInfo.sectorSize = 1024; break; default: - _imageInfo.sectorSize = 512; + ImageInfo.sectorSize = 512; break; } } - _imageInfo.imageSize = (ulong)fi.Length; - _imageInfo.imageCreationTime = fi.CreationTimeUtc; - _imageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; - _imageInfo.imageName = Path.GetFileNameWithoutExtension(imagePath); + ImageInfo.imageSize = (ulong)fi.Length; + ImageInfo.imageCreationTime = fi.CreationTimeUtc; + ImageInfo.imageLastModificationTime = fi.LastWriteTimeUtc; + ImageInfo.imageName = Path.GetFileNameWithoutExtension(imagePath); differentTrackZeroSize = false; rawImagePath = imagePath; switch (fi.Length) { case 242944: - _imageInfo.sectors = 1898; + ImageInfo.sectors = 1898; break; case 256256: - _imageInfo.sectors = 2002; + ImageInfo.sectors = 2002; break; case 495872: - _imageInfo.sectors = 3874; + ImageInfo.sectors = 3874; break; case 116480: - _imageInfo.sectors = 455; + ImageInfo.sectors = 455; break; case 287488: // T0S0 = 128bps - _imageInfo.sectors = 1136; + ImageInfo.sectors = 1136; differentTrackZeroSize = true; break; case 988416: // T0S0 = 128bps - _imageInfo.sectors = 3874; + ImageInfo.sectors = 3874; differentTrackZeroSize = true; break; case 995072: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 3900; + ImageInfo.sectors = 3900; differentTrackZeroSize = true; break; case 1021696: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 4004; + ImageInfo.sectors = 4004; differentTrackZeroSize = true; break; case 81664: - _imageInfo.sectors = 256; + ImageInfo.sectors = 256; break; case 306432: // T0S0 = 128bps - _imageInfo.sectors = 618; + ImageInfo.sectors = 618; differentTrackZeroSize = true; break; case 1146624: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 2272; + ImageInfo.sectors = 2272; differentTrackZeroSize = true; break; case 1177344: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 2332; + ImageInfo.sectors = 2332; differentTrackZeroSize = true; break; case 1222400: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 1236; + ImageInfo.sectors = 1236; differentTrackZeroSize = true; break; case 1304320: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 1316; + ImageInfo.sectors = 1316; differentTrackZeroSize = true; break; case 1255168: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 1268; + ImageInfo.sectors = 1268; differentTrackZeroSize = true; break; case 80384: // T0S0 = 128bps - _imageInfo.sectors = 322; + ImageInfo.sectors = 322; differentTrackZeroSize = true; break; case 325632: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 1280; + ImageInfo.sectors = 1280; differentTrackZeroSize = true; break; case 653312: // T0S0 = 128bps, T0S1 = 256bps - _imageInfo.sectors = 2560; + ImageInfo.sectors = 2560; differentTrackZeroSize = true; break; case 1880064: // IBM XDF, 3,5", real number of sectors - _imageInfo.sectors = 670; - _imageInfo.sectorSize = 8192; // Biggest sector size + ImageInfo.sectors = 670; + ImageInfo.sectorSize = 8192; // Biggest sector size differentTrackZeroSize = true; break; default: - _imageInfo.sectors = _imageInfo.imageSize / _imageInfo.sectorSize; + ImageInfo.sectors = ImageInfo.imageSize / ImageInfo.sectorSize; break; } - _imageInfo.diskType = CalculateDiskType(); + ImageInfo.diskType = CalculateDiskType(); return true; } public override bool ImageHasPartitions() { - return _imageInfo.imageHasPartitions; + return ImageInfo.imageHasPartitions; } public override UInt64 GetImageSize() { - return _imageInfo.imageSize; + return ImageInfo.imageSize; } public override UInt64 GetSectors() { - return _imageInfo.sectors; + return ImageInfo.sectors; } public override UInt32 GetSectorSize() { - return _imageInfo.sectorSize; + return ImageInfo.sectorSize; } public override byte[] ReadSector(UInt64 sectorAddress) @@ -312,19 +298,19 @@ namespace DiscImageChef.ImagePlugins } else { - if (sectorAddress > _imageInfo.sectors - 1) + if (sectorAddress > ImageInfo.sectors - 1) throw new ArgumentOutOfRangeException("sectorAddress", "Sector address not found"); - if (sectorAddress + length > _imageInfo.sectors) + if (sectorAddress + length > ImageInfo.sectors) throw new ArgumentOutOfRangeException("length", "Requested more sectors than available"); - byte[] buffer = new byte[length * _imageInfo.sectorSize]; + byte[] buffer = new byte[length * ImageInfo.sectorSize]; FileStream stream = new FileStream(rawImagePath, FileMode.Open, FileAccess.Read); - stream.Seek((long)(sectorAddress * _imageInfo.sectorSize), SeekOrigin.Begin); + stream.Seek((long)(sectorAddress * ImageInfo.sectorSize), SeekOrigin.Begin); - stream.Read(buffer, 0, (int)(length * _imageInfo.sectorSize)); + stream.Read(buffer, 0, (int)(length * ImageInfo.sectorSize)); stream.Close(); @@ -340,22 +326,22 @@ namespace DiscImageChef.ImagePlugins public override DateTime GetImageCreationTime() { - return _imageInfo.imageCreationTime; + return ImageInfo.imageCreationTime; } public override DateTime GetImageLastModificationTime() { - return _imageInfo.imageLastModificationTime; + return ImageInfo.imageLastModificationTime; } public override string GetImageName() { - return _imageInfo.imageName; + return ImageInfo.imageName; } public override DiskType GetDiskType() { - return _imageInfo.diskType; + return ImageInfo.diskType; } public override bool? VerifySector(UInt64 sectorAddress) @@ -399,27 +385,27 @@ namespace DiscImageChef.ImagePlugins DiskType CalculateDiskType() { - if (_imageInfo.sectorSize == 2048) + if (ImageInfo.sectorSize == 2048) { - if (_imageInfo.sectors <= 360000) + if (ImageInfo.sectors <= 360000) return DiskType.CD; - if (_imageInfo.sectors <= 2295104) + if (ImageInfo.sectors <= 2295104) return DiskType.DVDPR; - if (_imageInfo.sectors <= 2298496) + if (ImageInfo.sectors <= 2298496) return DiskType.DVDR; - if (_imageInfo.sectors <= 4171712) + if (ImageInfo.sectors <= 4171712) return DiskType.DVDRDL; - if (_imageInfo.sectors <= 4173824) + if (ImageInfo.sectors <= 4173824) return DiskType.DVDPRDL; - if (_imageInfo.sectors <= 24438784) + if (ImageInfo.sectors <= 24438784) return DiskType.BDR; - if (_imageInfo.sectors <= 62500864) + if (ImageInfo.sectors <= 62500864) return DiskType.BDRXL; return DiskType.Unknown; } else { - switch (_imageInfo.imageSize) + switch (ImageInfo.imageSize) { case 80384: return DiskType.ECMA_66; @@ -559,17 +545,17 @@ namespace DiscImageChef.ImagePlugins public override string GetImageVersion() { - return _imageInfo.imageVersion; + return ImageInfo.imageVersion; } public override string GetImageApplication() { - return _imageInfo.imageApplication; + return ImageInfo.imageApplication; } public override string GetImageApplicationVersion() { - return _imageInfo.imageApplicationVersion; + return ImageInfo.imageApplicationVersion; } public override byte[] ReadDiskTag(DiskTagType tag) @@ -579,62 +565,62 @@ namespace DiscImageChef.ImagePlugins public override string GetImageCreator() { - return _imageInfo.imageCreator; + return ImageInfo.imageCreator; } public override string GetImageComments() { - return _imageInfo.imageComments; + return ImageInfo.imageComments; } public override string GetDiskManufacturer() { - return _imageInfo.diskManufacturer; + return ImageInfo.diskManufacturer; } public override string GetDiskModel() { - return _imageInfo.diskModel; + return ImageInfo.diskModel; } public override string GetDiskSerialNumber() { - return _imageInfo.diskSerialNumber; + return ImageInfo.diskSerialNumber; } public override string GetDiskBarcode() { - return _imageInfo.diskBarcode; + return ImageInfo.diskBarcode; } public override string GetDiskPartNumber() { - return _imageInfo.diskPartNumber; + return ImageInfo.diskPartNumber; } public override int GetDiskSequence() { - return _imageInfo.diskSequence; + return ImageInfo.diskSequence; } public override int GetLastDiskSequence() { - return _imageInfo.lastDiskSequence; + return ImageInfo.lastDiskSequence; } public override string GetDriveManufacturer() { - return _imageInfo.driveManufacturer; + return ImageInfo.driveManufacturer; } public override string GetDriveModel() { - return _imageInfo.driveModel; + return ImageInfo.driveModel; } public override string GetDriveSerialNumber() { - return _imageInfo.driveSerialNumber; + return ImageInfo.driveSerialNumber; } public override List GetPartitions()