mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Code restyling.
This commit is contained in:
@@ -43,55 +43,73 @@ namespace Aaru.DiscImages
|
||||
public partial class CisCopy
|
||||
{
|
||||
public bool Create(string path, MediaType mediaType, Dictionary<string, string> options, ulong sectors,
|
||||
uint sectorSize)
|
||||
uint sectorSize)
|
||||
{
|
||||
if(sectorSize != 512)
|
||||
{
|
||||
ErrorMessage = "Unsupported sector size";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!SupportedMediaTypes.Contains(mediaType))
|
||||
{
|
||||
ErrorMessage = $"Unsupport media format {mediaType}";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
imageInfo = new ImageInfo {MediaType = mediaType, SectorSize = sectorSize, Sectors = sectors};
|
||||
imageInfo = new ImageInfo
|
||||
{
|
||||
MediaType = mediaType, SectorSize = sectorSize, Sectors = sectors
|
||||
};
|
||||
|
||||
try { writingStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); }
|
||||
try
|
||||
{
|
||||
writingStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
ErrorMessage = $"Could not create new image file, exception {e.Message}";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
DiskType diskType;
|
||||
|
||||
switch(mediaType)
|
||||
{
|
||||
case MediaType.DOS_35_DS_DD_9:
|
||||
diskType = DiskType.MF2DD;
|
||||
|
||||
break;
|
||||
case MediaType.DOS_35_HD:
|
||||
diskType = DiskType.MF2HD;
|
||||
|
||||
break;
|
||||
case MediaType.DOS_525_DS_DD_8:
|
||||
diskType = DiskType.MD2DD8;
|
||||
|
||||
break;
|
||||
case MediaType.DOS_525_DS_DD_9:
|
||||
diskType = DiskType.MD2DD;
|
||||
|
||||
break;
|
||||
case MediaType.DOS_525_HD:
|
||||
diskType = DiskType.MD2HD;
|
||||
|
||||
break;
|
||||
case MediaType.DOS_525_SS_DD_8:
|
||||
diskType = DiskType.MD1DD8;
|
||||
|
||||
break;
|
||||
case MediaType.DOS_525_SS_DD_9:
|
||||
diskType = DiskType.MD1DD;
|
||||
|
||||
break;
|
||||
default:
|
||||
ErrorMessage = $"Unsupport media format {mediaType}";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -106,21 +124,28 @@ namespace Aaru.DiscImages
|
||||
case DiskType.MD2DD8:
|
||||
case DiskType.MD2DD:
|
||||
tracks = 80;
|
||||
|
||||
break;
|
||||
case DiskType.MF2DD:
|
||||
case DiskType.MD2HD:
|
||||
case DiskType.MF2HD:
|
||||
tracks = 160;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
int headstep = 1;
|
||||
if(diskType == DiskType.MD1DD || diskType == DiskType.MD1DD8) headstep = 2;
|
||||
int headstep = 1;
|
||||
|
||||
if(diskType == DiskType.MD1DD ||
|
||||
diskType == DiskType.MD1DD8)
|
||||
headstep = 2;
|
||||
|
||||
for(int i = 0; i < tracks; i += headstep)
|
||||
{
|
||||
writingStream.WriteByte((byte)TrackType.Copied);
|
||||
if(headstep == 2) writingStream.WriteByte(0);
|
||||
|
||||
if(headstep == 2)
|
||||
writingStream.WriteByte(0);
|
||||
}
|
||||
|
||||
writingStream.WriteByte((byte)Compression.None);
|
||||
@@ -128,12 +153,14 @@ namespace Aaru.DiscImages
|
||||
|
||||
IsWriting = true;
|
||||
ErrorMessage = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool WriteMediaTag(byte[] data, MediaTagType tag)
|
||||
{
|
||||
ErrorMessage = "Writing media tags is not supported.";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -142,18 +169,21 @@ namespace Aaru.DiscImages
|
||||
if(!IsWriting)
|
||||
{
|
||||
ErrorMessage = "Tried to write on a non-writable image";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(data.Length != 512)
|
||||
{
|
||||
ErrorMessage = "Incorrect data size";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(sectorAddress >= imageInfo.Sectors)
|
||||
{
|
||||
ErrorMessage = "Tried to write past image size";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -161,6 +191,7 @@ namespace Aaru.DiscImages
|
||||
writingStream.Write(data, 0, data.Length);
|
||||
|
||||
ErrorMessage = "";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -169,18 +200,21 @@ namespace Aaru.DiscImages
|
||||
if(!IsWriting)
|
||||
{
|
||||
ErrorMessage = "Tried to write on a non-writable image";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(data.Length % 512 != 0)
|
||||
{
|
||||
ErrorMessage = "Incorrect data size";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(sectorAddress + length > imageInfo.Sectors)
|
||||
{
|
||||
ErrorMessage = "Tried to write past image size";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -188,18 +222,21 @@ namespace Aaru.DiscImages
|
||||
writingStream.Write(data, 0, data.Length);
|
||||
|
||||
ErrorMessage = "";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool WriteSectorLong(byte[] data, ulong sectorAddress)
|
||||
{
|
||||
ErrorMessage = "Writing sectors with tags is not supported.";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool WriteSectorsLong(byte[] data, ulong sectorAddress, uint length)
|
||||
{
|
||||
ErrorMessage = "Writing sectors with tags is not supported.";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -208,6 +245,7 @@ namespace Aaru.DiscImages
|
||||
if(!IsWriting)
|
||||
{
|
||||
ErrorMessage = "Image is not opened for writing";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -216,6 +254,7 @@ namespace Aaru.DiscImages
|
||||
|
||||
IsWriting = false;
|
||||
ErrorMessage = "";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -226,12 +265,14 @@ namespace Aaru.DiscImages
|
||||
public bool WriteSectorTag(byte[] data, ulong sectorAddress, SectorTagType tag)
|
||||
{
|
||||
ErrorMessage = "Unsupported feature";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool WriteSectorsTag(byte[] data, ulong sectorAddress, uint length, SectorTagType tag)
|
||||
{
|
||||
ErrorMessage = "Unsupported feature";
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user