diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes
index d2c24f9fb..4cdf541a0 160000
--- a/Aaru.CommonTypes
+++ b/Aaru.CommonTypes
@@ -1 +1 @@
-Subproject commit d2c24f9fb16d13657cf949ee97a35ffedaf2f1f9
+Subproject commit 4cdf541a0981a07044ce73e2f5656560d63dbe98
diff --git a/Aaru.Core/Checksum.cs b/Aaru.Core/Checksum.cs
index bd8ab477a..643cc1e67 100644
--- a/Aaru.Core/Checksum.cs
+++ b/Aaru.Core/Checksum.cs
@@ -34,8 +34,8 @@ using System;
using System.Collections.Generic;
using System.Threading;
using Aaru.Checksums;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Interfaces;
-using Schemas;
namespace Aaru.Core;
@@ -380,148 +380,101 @@ public sealed class Checksum
/// Finishes the checksums
/// Returns the checksum results
- public List End()
+ public List End()
{
- List chks = new();
+ List chks = new();
- ChecksumType chk;
-
- if(_enabled.HasFlag(EnableChecksum.All))
- {
- chk = new ChecksumType
+ if(_enabled.HasFlag(EnableChecksum.Adler32))
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.adler32,
+ Type = ChecksumType.Adler32,
Value = _adler32Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Crc16))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.crc16,
+ Type = ChecksumType.CRC16,
Value = _crc16Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Crc32))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.crc32,
+ Type = ChecksumType.CRC32,
Value = _crc32Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Crc64))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.crc64,
+ Type = ChecksumType.CRC64,
Value = _crc64Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Md5))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.md5,
+ Type = ChecksumType.Md5,
Value = _md5Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Sha1))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha1,
+ Type = ChecksumType.Sha1,
Value = _sha1Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Sha256))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha256,
+ Type = ChecksumType.Sha256,
Value = _sha256Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Sha384))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha384,
+ Type = ChecksumType.Sha384,
Value = _sha384Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Sha512))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha512,
+ Type = ChecksumType.Sha512,
Value = _sha512Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.SpamSum))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.spamsum,
+ Type = ChecksumType.SpamSum,
Value = _ssCtx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(_enabled.HasFlag(EnableChecksum.Fletcher16))
- {
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.fletcher16,
+ Type = ChecksumType.Fletcher16,
Value = _f16Ctx.End()
- };
-
- chks.Add(chk);
- }
+ });
if(!_enabled.HasFlag(EnableChecksum.Fletcher32))
return chks;
- chk = new ChecksumType
+ chks.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.fletcher32,
+ Type = ChecksumType.Fletcher32,
Value = _f32Ctx.End()
- };
-
- chks.Add(chk);
+ });
return chks;
}
- internal static List GetChecksums(byte[] data, EnableChecksum enabled = EnableChecksum.All)
+ internal static List GetChecksums(
+ byte[] data, EnableChecksum enabled = EnableChecksum.All)
{
IChecksum adler32CtxData = null;
IChecksum crc16CtxData = null;
@@ -718,140 +671,93 @@ public sealed class Checksum
f16ThreadData.IsAlive ||
f32ThreadData.IsAlive) {}
- List dataChecksums = new();
- ChecksumType chk;
+ List dataChecksums = new();
if(enabled.HasFlag(EnableChecksum.Adler32))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.adler32,
+ Type = ChecksumType.Adler32,
Value = adler32CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Crc16))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.crc16,
+ Type = ChecksumType.CRC16,
Value = crc16CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Crc32))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.crc32,
+ Type = ChecksumType.CRC32,
Value = crc32CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Crc64))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.crc64,
+ Type = ChecksumType.CRC64,
Value = crc64CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Md5))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.md5,
+ Type = ChecksumType.Md5,
Value = md5CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Sha1))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha1,
+ Type = ChecksumType.Sha1,
Value = sha1CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Sha256))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha256,
+ Type = ChecksumType.Sha256,
Value = sha256CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Sha384))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha384,
+ Type = ChecksumType.Sha384,
Value = sha384CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Sha512))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.sha512,
+ Type = ChecksumType.Sha512,
Value = sha512CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.SpamSum))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.spamsum,
+ Type = ChecksumType.SpamSum,
Value = ssctxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(enabled.HasFlag(EnableChecksum.Fletcher16))
- {
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.fletcher16,
+ Type = ChecksumType.Fletcher16,
Value = f16CtxData.End()
- };
-
- dataChecksums.Add(chk);
- }
+ });
if(!enabled.HasFlag(EnableChecksum.Fletcher32))
return dataChecksums;
- chk = new ChecksumType
+ dataChecksums.Add(new CommonTypes.AaruMetadata.Checksum
{
- type = ChecksumTypeType.fletcher32,
+ Type = ChecksumType.Fletcher32,
Value = f32CtxData.End()
- };
-
- dataChecksums.Add(chk);
+ });
return dataChecksums;
}
diff --git a/Aaru.Core/Devices/Dumping/ATA.cs b/Aaru.Core/Devices/Dumping/ATA.cs
index cf1dc7f75..fd2312199 100644
--- a/Aaru.Core/Devices/Dumping/ATA.cs
+++ b/Aaru.Core/Devices/Dumping/ATA.cs
@@ -34,8 +34,10 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Xml.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
@@ -44,7 +46,6 @@ using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.ATA;
using Aaru.Decoders.PCMCIA;
-using Schemas;
using Identify = Aaru.CommonTypes.Structs.Devices.ATA.Identify;
using Tuple = Aaru.Decoders.PCMCIA.Tuple;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -175,8 +176,8 @@ public partial class Dump
bool removable = !_dev.IsCompactFlash &&
ataId.GeneralConfiguration.HasFlag(Identify.GeneralConfigurationBit.Removable);
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(ataReader.IsLba, removable, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial,
_dev.PlatformId, ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision,
@@ -595,7 +596,7 @@ public partial class Dump
if(!error || recoveredError)
{
- mhddLog.Write(currentBlock, duration, 1);
+ mhddLog.Write(currentBlock, duration);
ibgLog.Write(currentBlock, currentSpeed * 1024);
DateTime writeStart = DateTime.Now;
@@ -612,7 +613,7 @@ public partial class Dump
else
{
_resume.BadBlocks.Add(currentBlock);
- mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration, 1);
+ mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration);
ibgLog.Write(currentBlock, 0);
DateTime writeStart = DateTime.Now;
@@ -679,12 +680,12 @@ public partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputFormat.SetMetadata(metadata))
+ if(!outputFormat.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputFormat.ErrorMessage);
if(_preSidecar != null)
- outputFormat.SetCicmMetadata(_preSidecar);
+ outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -745,14 +746,14 @@ public partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
+ Metadata sidecar = _sidecarClass.Create();
if(!_aborted)
{
if(_preSidecar != null)
{
- _preSidecar.BlockMedia = sidecar.BlockMedia;
- sidecar = _preSidecar;
+ _preSidecar.BlockMedias = sidecar.BlockMedias;
+ sidecar = _preSidecar;
}
if(_dev.IsUsb &&
@@ -761,15 +762,15 @@ public partial class Dump
_dumpLog.WriteLine(Localization.Core.Reading_USB_descriptors);
UpdateStatus?.Invoke(Localization.Core.Reading_USB_descriptors);
- sidecar.BlockMedia[0].USB = new USBType
+ sidecar.BlockMedias[0].Usb = new Usb
{
ProductID = _dev.UsbProductId,
VendorID = _dev.UsbVendorId,
- Descriptors = new DumpType
+ Descriptors = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)_dev.UsbDescriptors.Length,
- Checksums = Checksum.GetChecksums(_dev.UsbDescriptors).ToArray()
+ Checksums = Checksum.GetChecksums(_dev.UsbDescriptors)
}
};
}
@@ -780,13 +781,13 @@ public partial class Dump
_dumpLog.WriteLine(Localization.Core.Reading_PCMCIA_CIS);
UpdateStatus?.Invoke(Localization.Core.Reading_PCMCIA_CIS);
- sidecar.BlockMedia[0].PCMCIA = new PCMCIAType
+ sidecar.BlockMedias[0].Pcmcia = new Pcmcia
{
- CIS = new DumpType
+ Cis = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)_dev.Cis.Length,
- Checksums = Checksum.GetChecksums(_dev.Cis).ToArray()
+ Checksums = Checksum.GetChecksums(_dev.Cis)
}
};
@@ -804,12 +805,10 @@ public partial class Dump
if(manufacturerId != null)
{
- sidecar.BlockMedia[0].PCMCIA.ManufacturerCode =
+ sidecar.BlockMedias[0].Pcmcia.ManufacturerCode =
manufacturerId.ManufacturerID;
- sidecar.BlockMedia[0].PCMCIA.CardCode = manufacturerId.CardID;
- sidecar.BlockMedia[0].PCMCIA.ManufacturerCodeSpecified = true;
- sidecar.BlockMedia[0].PCMCIA.CardCodeSpecified = true;
+ sidecar.BlockMedias[0].Pcmcia.CardCode = manufacturerId.CardID;
}
break;
@@ -818,14 +817,14 @@ public partial class Dump
if(version != null)
{
- sidecar.BlockMedia[0].PCMCIA.Manufacturer = version.Manufacturer;
- sidecar.BlockMedia[0].PCMCIA.ProductName = version.Product;
+ sidecar.BlockMedias[0].Pcmcia.Manufacturer = version.Manufacturer;
+ sidecar.BlockMedias[0].Pcmcia.ProductName = version.Product;
- sidecar.BlockMedia[0].PCMCIA.Compliance =
+ sidecar.BlockMedias[0].Pcmcia.Compliance =
$"{version.MajorVersion}.{version.MinorVersion}";
- sidecar.BlockMedia[0].PCMCIA.AdditionalInformation =
- version.AdditionalInformation;
+ sidecar.BlockMedias[0].Pcmcia.AdditionalInformation =
+ new List(version.AdditionalInformation);
}
break;
@@ -835,13 +834,13 @@ public partial class Dump
if(_private)
DeviceReport.ClearIdentify(ataIdentify);
- sidecar.BlockMedia[0].ATA = new ATAType
+ sidecar.BlockMedias[0].ATA = new ATA
{
- Identify = new DumpType
+ Identify = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)cmdBuf.Length,
- Checksums = Checksum.GetChecksums(cmdBuf).ToArray()
+ Checksums = Checksum.GetChecksums(cmdBuf)
}
};
@@ -864,8 +863,8 @@ public partial class Dump
List<(ulong start, string type)> filesystems = new();
- if(sidecar.BlockMedia[0].FileSystemInformation != null)
- filesystems.AddRange(from partition in sidecar.BlockMedia[0].FileSystemInformation
+ if(sidecar.BlockMedias[0].FileSystemInformation != null)
+ filesystems.AddRange(from partition in sidecar.BlockMedias[0].FileSystemInformation
where partition.FileSystems != null
from fileSystem in partition.FileSystems
select (partition.StartSector, fileSystem.Type));
@@ -886,39 +885,40 @@ public partial class Dump
(string type, string subType) = CommonTypes.Metadata.MediaType.MediaTypeToString(mediaType);
- sidecar.BlockMedia[0].DiskType = type;
- sidecar.BlockMedia[0].DiskSubType = subType;
- sidecar.BlockMedia[0].Interface = "ATA";
- sidecar.BlockMedia[0].LogicalBlocks = blocks;
- sidecar.BlockMedia[0].PhysicalBlockSize = physicalSectorSize;
- sidecar.BlockMedia[0].LogicalBlockSize = blockSize;
- sidecar.BlockMedia[0].Manufacturer = _dev.Manufacturer;
- sidecar.BlockMedia[0].Model = _dev.Model;
+ sidecar.BlockMedias[0].MediaType = type;
+ sidecar.BlockMedias[0].MediaSubType = subType;
+ sidecar.BlockMedias[0].Interface = "ATA";
+ sidecar.BlockMedias[0].LogicalBlocks = blocks;
+ sidecar.BlockMedias[0].PhysicalBlockSize = physicalSectorSize;
+ sidecar.BlockMedias[0].LogicalBlockSize = blockSize;
+ sidecar.BlockMedias[0].Manufacturer = _dev.Manufacturer;
+ sidecar.BlockMedias[0].Model = _dev.Model;
if(!_private)
- sidecar.BlockMedia[0].Serial = _dev.Serial;
+ sidecar.BlockMedias[0].Serial = _dev.Serial;
- sidecar.BlockMedia[0].Size = blocks * blockSize;
+ sidecar.BlockMedias[0].Size = blocks * blockSize;
if(cylinders > 0 &&
heads > 0 &&
sectors > 0)
{
- sidecar.BlockMedia[0].Cylinders = cylinders;
- sidecar.BlockMedia[0].CylindersSpecified = true;
- sidecar.BlockMedia[0].Heads = heads;
- sidecar.BlockMedia[0].HeadsSpecified = true;
- sidecar.BlockMedia[0].SectorsPerTrack = sectors;
- sidecar.BlockMedia[0].SectorsPerTrackSpecified = true;
+ sidecar.BlockMedias[0].Cylinders = cylinders;
+ sidecar.BlockMedias[0].Heads = heads;
+ sidecar.BlockMedias[0].SectorsPerTrack = sectors;
}
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs b/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs
index 54a681d34..7e56ed65d 100644
--- a/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs
+++ b/Aaru.Core/Devices/Dumping/CompactDisc/CdiReady.cs
@@ -37,13 +37,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.Core.Logging;
using Aaru.Decoders.CD;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
namespace Aaru.Core.Devices.Dumping;
@@ -146,7 +146,7 @@ partial class Dump
/// Disc media catalogue number
/// List of subchannels not yet dumped correctly
/// List of smallest pregap relative address per track
- void ReadCdiReady(uint blockSize, ref double currentSpeed, DumpHardwareType currentTry, ExtentsULong extents,
+ void ReadCdiReady(uint blockSize, ref double currentSpeed, DumpHardware currentTry, ExtentsULong extents,
IbgLog ibgLog, ref double imageWriteDuration, ExtentsULong leadOutExtents, ref double maxSpeed,
MhddLog mhddLog, ref double minSpeed, uint subSize, MmcSubchannel supportedSubchannel,
ref double totalDuration, Track[] tracks, SubchannelLog subLog, MmcSubchannel desiredSubchannel,
@@ -242,7 +242,7 @@ partial class Dump
if(!sense &&
!_dev.Error)
{
- mhddLog.Write(i + r, cmdDuration, 1);
+ mhddLog.Write(i + r, cmdDuration);
ibgLog.Write(i + r, currentSpeed * 1024);
extents.Add(i + r, 1, true);
DateTime writeStart = DateTime.Now;
@@ -324,7 +324,7 @@ partial class Dump
FixOffsetData(offsetBytes, sectorSize, sectorsForOffset, supportedSubchannel, ref blocksToRead,
subSize, ref cmdBuf, blockSize, false);
- mhddLog.Write(i, cmdDuration, 1);
+ mhddLog.Write(i, cmdDuration);
ibgLog.Write(i, currentSpeed * 1024);
extents.Add(i, blocksToRead, true);
DateTime writeStart = DateTime.Now;
diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs
index 8eaa8aeae..a6da39236 100644
--- a/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs
+++ b/Aaru.Core/Devices/Dumping/CompactDisc/Data.cs
@@ -38,16 +38,16 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.Console;
using Aaru.Core.Logging;
using Aaru.Decoders.CD;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
using TrackType = Aaru.CommonTypes.Enums.TrackType;
namespace Aaru.Core.Devices.Dumping;
@@ -89,7 +89,7 @@ partial class Dump
/// List of subchannels not yet dumped correctly
/// List of smallest pregap relative address per track
void ReadCdData(ExtentsULong audioExtents, ulong blocks, uint blockSize, ref double currentSpeed,
- DumpHardwareType currentTry, ExtentsULong extents, IbgLog ibgLog, ref double imageWriteDuration,
+ DumpHardware currentTry, ExtentsULong extents, IbgLog ibgLog, ref double imageWriteDuration,
long lastSector, ExtentsULong leadOutExtents, ref double maxSpeed, MhddLog mhddLog,
ref double minSpeed, out bool newTrim, bool nextData, int offsetBytes, bool read6, bool read10,
bool read12, bool read16, bool readcd, int sectorsForOffset, uint subSize,
@@ -476,7 +476,7 @@ partial class Dump
if(!sense &&
!_dev.Error)
{
- mhddLog.Write(i + r, cmdDuration, 1);
+ mhddLog.Write(i + r, cmdDuration);
ibgLog.Write(i + r, currentSpeed * 1024);
extents.Add(i + r, 1, true);
DateTime writeStart = DateTime.Now;
@@ -596,7 +596,7 @@ partial class Dump
AaruConsole.DebugWriteLine("Dump-Media", Localization.Core.READ_error_0,
Sense.PrettifySense(senseBuf));
- mhddLog.Write(i + r, cmdDuration < 500 ? 65535 : cmdDuration, 1);
+ mhddLog.Write(i + r, cmdDuration < 500 ? 65535 : cmdDuration);
ibgLog.Write(i + r, 0);
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, 1, i + r);
diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs
index 8ff522c88..181e3dde4 100644
--- a/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs
+++ b/Aaru.Core/Devices/Dumping/CompactDisc/Dump.cs
@@ -39,10 +39,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.Console;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
@@ -50,7 +50,7 @@ using Aaru.Core.Media.Detection;
using Aaru.Database.Models;
using Aaru.Decoders.CD;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
using TrackType = Aaru.CommonTypes.Enums.TrackType;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -69,7 +69,7 @@ sealed partial class Dump
uint blockSize; // Size of the read sector in bytes
CdOffset cdOffset; // Read offset from database
byte[] cmdBuf; // Data buffer
- DumpHardwareType currentTry = null; // Current dump hardware try
+ DumpHardware currentTry = null; // Current dump hardware try
double currentSpeed = 0; // Current read speed
int? discOffset = null; // Disc write offset
DateTime dumpStart = DateTime.UtcNow; // Time of dump start
@@ -1380,14 +1380,14 @@ sealed partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputOptical.SetMetadata(metadata))
+ if(!outputOptical.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputOptical.ErrorMessage);
outputOptical.SetDumpHardware(_resume.Tries);
if(_preSidecar != null)
- outputOptical.SetCicmMetadata(_preSidecar);
+ outputOptical.SetMetadata(_preSidecar);
foreach(KeyValuePair isrc in isrcs)
{
diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs
index e31a9d254..f025dae8d 100644
--- a/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs
+++ b/Aaru.Core/Devices/Dumping/CompactDisc/Error.cs
@@ -37,16 +37,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Console;
using Aaru.Core.Logging;
using Aaru.Decoders.CD;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
using TrackType = Aaru.CommonTypes.Enums.TrackType;
namespace Aaru.Core.Devices.Dumping;
@@ -72,7 +72,7 @@ partial class Dump
/// Disc media catalogue number
/// List of subchannels not yet dumped correctly
/// List of smallest pregap relative address per track
- void RetryCdUserData(ExtentsULong audioExtents, uint blockSize, DumpHardwareType currentTry, ExtentsULong extents,
+ void RetryCdUserData(ExtentsULong audioExtents, uint blockSize, DumpHardware currentTry, ExtentsULong extents,
int offsetBytes, bool readcd, int sectorsForOffset, uint subSize,
MmcSubchannel supportedSubchannel, ref double totalDuration, SubchannelLog subLog,
MmcSubchannel desiredSubchannel, Track[] tracks, Dictionary isrcs,
diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs b/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs
index 806ab5fc6..392c1c8be 100644
--- a/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs
+++ b/Aaru.Core/Devices/Dumping/CompactDisc/LeadOuts.cs
@@ -38,13 +38,13 @@ using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.Core.Logging;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
namespace Aaru.Core.Devices.Dumping;
@@ -79,7 +79,7 @@ partial class Dump
// TODO: Use it
[SuppressMessage("ReSharper", "UnusedMember.Local")]
- void DumpCdLeadOuts(uint blockSize, ref double currentSpeed, DumpHardwareType currentTry, ExtentsULong extents,
+ void DumpCdLeadOuts(uint blockSize, ref double currentSpeed, DumpHardware currentTry, ExtentsULong extents,
IbgLog ibgLog, ref double imageWriteDuration, ExtentsULong leadOutExtents, ref double maxSpeed,
MhddLog mhddLog, ref double minSpeed, bool read6, bool read10, bool read12, bool read16,
bool readcd, MmcSubchannel supportedSubchannel, uint subSize, ref double totalDuration,
@@ -145,7 +145,7 @@ partial class Dump
if(!sense &&
!_dev.Error)
{
- mhddLog.Write(i, cmdDuration, 1);
+ mhddLog.Write(i, cmdDuration);
ibgLog.Write(i, currentSpeed * 1024);
extents.Add(i, _maximumReadable, true);
leadOutExtents.Remove(i);
@@ -252,7 +252,7 @@ partial class Dump
// TODO: Use it
[SuppressMessage("ReSharper", "UnusedMember.Local")]
- void RetryCdLeadOuts(uint blockSize, ref double currentSpeed, DumpHardwareType currentTry, ExtentsULong extents,
+ void RetryCdLeadOuts(uint blockSize, ref double currentSpeed, DumpHardware currentTry, ExtentsULong extents,
IbgLog ibgLog, ref double imageWriteDuration, ExtentsULong leadOutExtents, ref double maxSpeed,
MhddLog mhddLog, ref double minSpeed, bool read6, bool read10, bool read12, bool read16,
bool readcd, MmcSubchannel supportedSubchannel, uint subSize, ref double totalDuration,
@@ -380,7 +380,7 @@ partial class Dump
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
- mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, 1);
+ mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
ibgLog.Write(i, 0);
}
diff --git a/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs b/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs
index 74e1551ac..468a11ca2 100644
--- a/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs
+++ b/Aaru.Core/Devices/Dumping/CompactDisc/Trim.cs
@@ -37,14 +37,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.Core.Logging;
using Aaru.Decoders.CD;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
namespace Aaru.Core.Devices.Dumping;
@@ -74,7 +74,7 @@ partial class Dump
/// Disc media catalogue number
/// List of subchannels not yet dumped correctly
/// List of smallest pregap relative address per track
- void TrimCdUserData(ExtentsULong audioExtents, uint blockSize, DumpHardwareType currentTry, ExtentsULong extents,
+ void TrimCdUserData(ExtentsULong audioExtents, uint blockSize, DumpHardware currentTry, ExtentsULong extents,
bool newTrim, int offsetBytes, bool read6, bool read10, bool read12, bool read16, bool readcd,
int sectorsForOffset, uint subSize, MmcSubchannel supportedSubchannel, bool supportsLongSectors,
ref double totalDuration, SubchannelLog subLog, MmcSubchannel desiredSubchannel, Track[] tracks,
diff --git a/Aaru.Core/Devices/Dumping/Dump.cs b/Aaru.Core/Devices/Dumping/Dump.cs
index 0be945ae4..4459fae7c 100644
--- a/Aaru.Core/Devices/Dumping/Dump.cs
+++ b/Aaru.Core/Devices/Dumping/Dump.cs
@@ -39,13 +39,14 @@ using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
using Aaru.Core.Logging;
using Aaru.Database;
using Aaru.Devices;
-using Schemas;
+using File = System.IO.File;
namespace Aaru.Core.Devices.Dumping;
@@ -88,7 +89,7 @@ public partial class Dump
readonly IBaseWritableImage _outputPlugin;
readonly string _outputPrefix;
readonly bool _persistent;
- readonly CICMMetadataType _preSidecar;
+ readonly Metadata _preSidecar;
readonly bool _private;
readonly ushort _retryPasses;
readonly bool _retrySubchannel;
@@ -157,12 +158,11 @@ public partial class Dump
public Dump(bool doResume, Device dev, string devicePath, IBaseWritableImage outputPlugin, ushort retryPasses,
bool force, bool dumpRaw, bool persistent, bool stopOnError, Resume resume, DumpLog dumpLog,
Encoding encoding, string outputPrefix, string outputPath, Dictionary formatOptions,
- CICMMetadataType preSidecar, uint skip, bool metadata, bool trim, bool dumpFirstTrackPregap,
- bool fixOffset, bool debug, DumpSubchannel subchannel, int speed, bool @private,
- bool fixSubchannelPosition, bool retrySubchannel, bool fixSubchannel, bool fixSubchannelCrc,
- bool skipCdireadyHole, ErrorLog errorLog, bool generateSubchannels, uint maximumReadable,
- bool useBufferedReads, bool storeEncrypted, bool titleKeys, uint ignoreCdrRunOuts, bool createGraph,
- uint dimensions)
+ Metadata preSidecar, uint skip, bool metadata, bool trim, bool dumpFirstTrackPregap, bool fixOffset,
+ bool debug, DumpSubchannel subchannel, int speed, bool @private, bool fixSubchannelPosition,
+ bool retrySubchannel, bool fixSubchannel, bool fixSubchannelCrc, bool skipCdireadyHole,
+ ErrorLog errorLog, bool generateSubchannels, uint maximumReadable, bool useBufferedReads,
+ bool storeEncrypted, bool titleKeys, uint ignoreCdrRunOuts, bool createGraph, uint dimensions)
{
_doResume = doResume;
_dev = dev;
diff --git a/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs b/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs
index 4a9da8025..3503f476c 100644
--- a/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs
+++ b/Aaru.Core/Devices/Dumping/LinearMemory/Retrode.cs
@@ -423,7 +423,7 @@ public partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputBai.SetMetadata(metadata))
+ if(!outputBai.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputBai.ErrorMessage);
@@ -431,7 +431,7 @@ public partial class Dump
//outputBAI.SetDumpHardware();
if(_preSidecar != null)
- outputBai.SetCicmMetadata(_preSidecar);
+ outputBai.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
diff --git a/Aaru.Core/Devices/Dumping/MMC.cs b/Aaru.Core/Devices/Dumping/MMC.cs
index c6152b9da..8a6a10328 100644
--- a/Aaru.Core/Devices/Dumping/MMC.cs
+++ b/Aaru.Core/Devices/Dumping/MMC.cs
@@ -34,6 +34,7 @@
using System;
using System.Collections.Generic;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Decoders.Bluray;
@@ -43,7 +44,6 @@ using Aaru.Decoders.SCSI.MMC;
using Aaru.Decryption;
using Aaru.Decryption.DVD;
using Aaru.Devices;
-using Schemas;
using DDS = Aaru.Decoders.DVD.DDS;
using DMI = Aaru.Decoders.Xbox.DMI;
using DVDDecryption = Aaru.Decryption.DVD.Dump;
@@ -802,36 +802,35 @@ partial class Dump
}
// TODO: Move somewhere else
- internal static void AddMediaTagToSidecar(string outputPath, MediaTagType tagType, byte[] tag,
- ref CICMMetadataType sidecar)
+ internal static void AddMediaTagToSidecar(string outputPath, MediaTagType tagType, byte[] tag, ref Metadata sidecar)
{
switch(tagType)
{
case MediaTagType.DVD_PFI:
- sidecar.OpticalDisc[0].PFI = new DumpType
+ sidecar.OpticalDiscs[0].Pfi = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVD_DMI:
- sidecar.OpticalDisc[0].DMI = new DumpType
+ sidecar.OpticalDiscs[0].Dmi = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVD_CMI:
case MediaTagType.HDDVD_CPI:
- sidecar.OpticalDisc[0].CMI = new DumpType
+ sidecar.OpticalDiscs[0].Cmi = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
byte[] tmp = new byte[tag.Length + 4];
@@ -843,190 +842,190 @@ partial class Dump
if(cpy.HasValue &&
cpy.Value.CopyrightType != CopyrightType.NoProtection)
- sidecar.OpticalDisc[0].CopyProtection = cpy.Value.CopyrightType.ToString();
+ sidecar.OpticalDiscs[0].CopyProtection = cpy.Value.CopyrightType.ToString();
break;
case MediaTagType.DVD_BCA:
case MediaTagType.BD_BCA:
- sidecar.OpticalDisc[0].BCA = new DumpType
+ sidecar.OpticalDiscs[0].Bca = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.BD_DDS:
case MediaTagType.DVDRAM_DDS:
- sidecar.OpticalDisc[0].DDS = new DumpType
+ sidecar.OpticalDiscs[0].Dds = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVDRAM_SpareArea:
case MediaTagType.BD_SpareArea:
- sidecar.OpticalDisc[0].SAI = new DumpType
+ sidecar.OpticalDiscs[0].Sai = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVDR_PreRecordedInfo:
- sidecar.OpticalDisc[0].PRI = new DumpType
+ sidecar.OpticalDiscs[0].Pri = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVD_MediaIdentifier:
- sidecar.OpticalDisc[0].MediaID = new DumpType
+ sidecar.OpticalDiscs[0].MediaID = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVDR_PFI:
- sidecar.OpticalDisc[0].PFIR = new DumpType
+ sidecar.OpticalDiscs[0].Pfir = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DVD_ADIP:
- sidecar.OpticalDisc[0].ADIP = new DumpType
+ sidecar.OpticalDiscs[0].Adip = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.DCB:
- sidecar.OpticalDisc[0].DCB = new DumpType
+ sidecar.OpticalDiscs[0].Dcb = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.BD_DI:
- sidecar.OpticalDisc[0].DI = new DumpType
+ sidecar.OpticalDiscs[0].Di = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.Xbox_SecuritySector:
- sidecar.OpticalDisc[0].Xbox ??= new XboxType();
+ sidecar.OpticalDiscs[0].Xbox ??= new Xbox();
- sidecar.OpticalDisc[0].Xbox.SecuritySectors = new[]
+ sidecar.OpticalDiscs[0].Xbox.SecuritySectors = new List
{
- new XboxSecuritySectorsType
+ new()
{
RequestNumber = 0,
RequestVersion = 1,
- SecuritySectors = new DumpType
+ SecuritySectors = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
}
}
};
break;
case MediaTagType.Xbox_PFI:
- sidecar.OpticalDisc[0].Xbox ??= new XboxType();
+ sidecar.OpticalDiscs[0].Xbox ??= new Xbox();
- sidecar.OpticalDisc[0].Xbox.PFI = new DumpType
+ sidecar.OpticalDiscs[0].Xbox.Pfi = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.Xbox_DMI:
- sidecar.OpticalDisc[0].Xbox ??= new XboxType();
+ sidecar.OpticalDiscs[0].Xbox ??= new Xbox();
- sidecar.OpticalDisc[0].Xbox.DMI = new DumpType
+ sidecar.OpticalDiscs[0].Xbox.Dmi = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.CD_FullTOC:
- sidecar.OpticalDisc[0].TOC = new DumpType
+ sidecar.OpticalDiscs[0].Toc = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.CD_ATIP:
- sidecar.OpticalDisc[0].ATIP = new DumpType
+ sidecar.OpticalDiscs[0].Atip = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.CD_PMA:
- sidecar.OpticalDisc[0].PMA = new DumpType
+ sidecar.OpticalDiscs[0].Pma = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.CD_TEXT:
- sidecar.OpticalDisc[0].LeadInCdText = new DumpType
+ sidecar.OpticalDiscs[0].LeadInCdText = new CommonTypes.AaruMetadata.Dump
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
};
break;
case MediaTagType.CD_FirstTrackPregap:
- sidecar.OpticalDisc[0].FirstTrackPregrap = new[]
+ sidecar.OpticalDiscs[0].FirstTrackPregrap = new List
{
- new BorderType
+ new()
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
}
};
break;
case MediaTagType.CD_LeadIn:
- sidecar.OpticalDisc[0].LeadIn = new[]
+ sidecar.OpticalDiscs[0].LeadIn = new List
{
- new BorderType
+ new()
{
Image = outputPath,
Size = (ulong)tag.Length,
- Checksums = Checksum.GetChecksums(tag).ToArray()
+ Checksums = Checksum.GetChecksums(tag)
}
};
diff --git a/Aaru.Core/Devices/Dumping/Metadata.cs b/Aaru.Core/Devices/Dumping/Metadata.cs
index 5f9de9856..f8acf9152 100644
--- a/Aaru.Core/Devices/Dumping/Metadata.cs
+++ b/Aaru.Core/Devices/Dumping/Metadata.cs
@@ -34,12 +34,13 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Xml.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
-using Schemas;
using MediaType = Aaru.CommonTypes.MediaType;
namespace Aaru.Core.Devices.Dumping;
@@ -55,7 +56,7 @@ partial class Dump
/// Disc sessions
/// Total time spent doing checksums
/// Disc write offset
- void WriteOpticalSidecar(uint blockSize, ulong blocks, MediaType mediaType, LayersType layers,
+ void WriteOpticalSidecar(uint blockSize, ulong blocks, MediaType mediaType, Layers layers,
Dictionary mediaTags, int sessions, out double totalChkDuration,
int? discOffset)
{
@@ -91,8 +92,8 @@ partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
- DateTime end = DateTime.UtcNow;
+ Metadata sidecar = _sidecarClass.Create();
+ DateTime end = DateTime.UtcNow;
if(_aborted)
return;
@@ -105,14 +106,14 @@ partial class Dump
if(_preSidecar != null)
{
- _preSidecar.OpticalDisc = sidecar.OpticalDisc;
- sidecar = _preSidecar;
+ _preSidecar.OpticalDiscs = sidecar.OpticalDiscs;
+ sidecar = _preSidecar;
}
List<(ulong start, string type)> filesystems = new();
- if(sidecar.OpticalDisc[0].Track != null)
- filesystems.AddRange(from xmlTrack in sidecar.OpticalDisc[0].Track
+ if(sidecar.OpticalDiscs[0].Track != null)
+ filesystems.AddRange(from xmlTrack in sidecar.OpticalDiscs[0].Track
where xmlTrack.FileSystemInformation != null
from partition in xmlTrack.FileSystemInformation where partition.FileSystems != null
from fileSystem in partition.FileSystems
@@ -126,19 +127,16 @@ partial class Dump
}).Distinct())
_dumpLog.WriteLine(Localization.Core.Found_filesystem_0_at_sector_1, filesystem.type, filesystem.start);
- sidecar.OpticalDisc[0].Dimensions = Dimensions.DimensionsFromMediaType(mediaType);
+ sidecar.OpticalDiscs[0].Dimensions = Dimensions.DimensionsFromMediaType(mediaType);
(string type, string subType) discType = CommonTypes.Metadata.MediaType.MediaTypeToString(mediaType);
- sidecar.OpticalDisc[0].DiscType = discType.type;
- sidecar.OpticalDisc[0].DiscSubType = discType.subType;
- sidecar.OpticalDisc[0].DumpHardwareArray = _resume.Tries.ToArray();
- sidecar.OpticalDisc[0].Sessions = (uint)sessions;
- sidecar.OpticalDisc[0].Layers = layers;
+ sidecar.OpticalDiscs[0].DiscType = discType.type;
+ sidecar.OpticalDiscs[0].DiscSubType = discType.subType;
+ sidecar.OpticalDiscs[0].DumpHardware = _resume.Tries;
+ sidecar.OpticalDiscs[0].Sessions = (uint)sessions;
+ sidecar.OpticalDiscs[0].Layers = layers;
if(discOffset.HasValue)
- {
- sidecar.OpticalDisc[0].Offset = (int)(discOffset / 4);
- sidecar.OpticalDisc[0].OffsetSpecified = true;
- }
+ sidecar.OpticalDiscs[0].Offset = (int)(discOffset / 4);
if(mediaTags != null)
foreach(KeyValuePair tag in mediaTags.Where(tag => _outputPlugin.SupportedMediaTags.
@@ -147,10 +145,14 @@ partial class Dump
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
\ No newline at end of file
diff --git a/Aaru.Core/Devices/Dumping/MiniDisc.cs b/Aaru.Core/Devices/Dumping/MiniDisc.cs
index 342cde4fa..907c30af2 100644
--- a/Aaru.Core/Devices/Dumping/MiniDisc.cs
+++ b/Aaru.Core/Devices/Dumping/MiniDisc.cs
@@ -36,8 +36,10 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Xml.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
@@ -47,7 +49,6 @@ using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
-using Schemas;
using MediaType = Aaru.CommonTypes.MediaType;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -263,8 +264,10 @@ partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead));
_dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead);
- var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
- var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
+ var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private,
+ _dimensions);
+
+ var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
ret = outputFormat.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
// Cannot create image
@@ -342,8 +345,8 @@ partial class Dump
}
}
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, _dev.IsRemovable, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial,
_dev.PlatformId, ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision,
@@ -740,12 +743,12 @@ partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputFormat.SetMetadata(metadata))
+ if(!outputFormat.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputFormat.ErrorMessage);
if(_preSidecar != null)
- outputFormat.SetCicmMetadata(_preSidecar);
+ outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -793,7 +796,7 @@ partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
+ Metadata sidecar = _sidecarClass.Create();
end = DateTime.UtcNow;
if(!_aborted)
@@ -814,14 +817,14 @@ partial class Dump
if(_preSidecar != null)
{
- _preSidecar.BlockMedia = sidecar.BlockMedia;
- sidecar = _preSidecar;
+ _preSidecar.BlockMedias = sidecar.BlockMedias;
+ sidecar = _preSidecar;
}
List<(ulong start, string type)> filesystems = new();
- if(sidecar.BlockMedia[0].FileSystemInformation != null)
- filesystems.AddRange(from partition in sidecar.BlockMedia[0].FileSystemInformation
+ if(sidecar.BlockMedias[0].FileSystemInformation != null)
+ filesystems.AddRange(from partition in sidecar.BlockMedias[0].FileSystemInformation
where partition.FileSystems != null from fileSystem in partition.FileSystems
select (partition.StartSector, fileSystem.Type));
@@ -839,43 +842,47 @@ partial class Dump
filesystem.start);
}
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
(string type, string subType) xmlType = CommonTypes.Metadata.MediaType.MediaTypeToString(dskType);
- sidecar.BlockMedia[0].DiskType = xmlType.type;
- sidecar.BlockMedia[0].DiskSubType = xmlType.subType;
+ sidecar.BlockMedias[0].MediaType = xmlType.type;
+ sidecar.BlockMedias[0].MediaSubType = xmlType.subType;
if(!_dev.IsRemovable ||
_dev.IsUsb)
if(_dev.Type == DeviceType.ATAPI)
- sidecar.BlockMedia[0].Interface = "ATAPI";
+ sidecar.BlockMedias[0].Interface = "ATAPI";
else if(_dev.IsUsb)
- sidecar.BlockMedia[0].Interface = "USB";
+ sidecar.BlockMedias[0].Interface = "USB";
else if(_dev.IsFireWire)
- sidecar.BlockMedia[0].Interface = "FireWire";
+ sidecar.BlockMedias[0].Interface = "FireWire";
else
- sidecar.BlockMedia[0].Interface = "SCSI";
+ sidecar.BlockMedias[0].Interface = "SCSI";
- sidecar.BlockMedia[0].LogicalBlocks = blocks;
- sidecar.BlockMedia[0].PhysicalBlockSize = physicalBlockSize;
- sidecar.BlockMedia[0].LogicalBlockSize = blockSize;
- sidecar.BlockMedia[0].Manufacturer = _dev.Manufacturer;
- sidecar.BlockMedia[0].Model = _dev.Model;
+ sidecar.BlockMedias[0].LogicalBlocks = blocks;
+ sidecar.BlockMedias[0].PhysicalBlockSize = physicalBlockSize;
+ sidecar.BlockMedias[0].LogicalBlockSize = blockSize;
+ sidecar.BlockMedias[0].Manufacturer = _dev.Manufacturer;
+ sidecar.BlockMedias[0].Model = _dev.Model;
if(!_private)
- sidecar.BlockMedia[0].Serial = _dev.Serial;
+ sidecar.BlockMedias[0].Serial = _dev.Serial;
- sidecar.BlockMedia[0].Size = blocks * blockSize;
+ sidecar.BlockMedias[0].Size = blocks * blockSize;
if(_dev.IsRemovable)
- sidecar.BlockMedia[0].DumpHardwareArray = _resume.Tries.ToArray();
+ sidecar.BlockMedias[0].DumpHardware = _resume.Tries;
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs
index a3e5bb3b1..0b1ac6b44 100644
--- a/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs
+++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/MemoryStick.cs
@@ -36,8 +36,10 @@ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
-using System.Xml.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
@@ -47,7 +49,6 @@ using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
-using Schemas;
using MediaType = Aaru.CommonTypes.MediaType;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -158,8 +159,10 @@ public partial class Dump
bool ret;
- var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
- var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
+ var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private,
+ _dimensions);
+
+ var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
ret = outputFormat.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
// Cannot create image
@@ -177,8 +180,8 @@ public partial class Dump
start = DateTime.UtcNow;
double imageWriteDuration = 0;
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, _dev.IsRemovable, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial,
_dev.PlatformId, ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision,
@@ -591,14 +594,14 @@ public partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputFormat.SetMetadata(metadata))
+ if(!outputFormat.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputFormat.ErrorMessage);
outputFormat.SetDumpHardware(_resume.Tries);
if(_preSidecar != null)
- outputFormat.SetCicmMetadata(_preSidecar);
+ outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -646,7 +649,7 @@ public partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
+ Metadata sidecar = _sidecarClass.Create();
end = DateTime.UtcNow;
if(!_aborted)
@@ -667,14 +670,14 @@ public partial class Dump
if(_preSidecar != null)
{
- _preSidecar.BlockMedia = sidecar.BlockMedia;
- sidecar = _preSidecar;
+ _preSidecar.BlockMedias = sidecar.BlockMedias;
+ sidecar = _preSidecar;
}
List<(ulong start, string type)> filesystems = new();
- if(sidecar.BlockMedia[0].FileSystemInformation != null)
- filesystems.AddRange(from partition in sidecar.BlockMedia[0].FileSystemInformation
+ if(sidecar.BlockMedias[0].FileSystemInformation != null)
+ filesystems.AddRange(from partition in sidecar.BlockMedias[0].FileSystemInformation
where partition.FileSystems != null from fileSystem in partition.FileSystems
select (partition.StartSector, fileSystem.Type));
@@ -692,32 +695,36 @@ public partial class Dump
filesystem.start);
}
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
(string type, string subType) xmlType = CommonTypes.Metadata.MediaType.MediaTypeToString(dskType);
- sidecar.BlockMedia[0].DiskType = xmlType.type;
- sidecar.BlockMedia[0].DiskSubType = xmlType.subType;
- sidecar.BlockMedia[0].Interface = "USB";
- sidecar.BlockMedia[0].LogicalBlocks = blocks;
- sidecar.BlockMedia[0].PhysicalBlockSize = (int)blockSize;
- sidecar.BlockMedia[0].LogicalBlockSize = (int)blockSize;
- sidecar.BlockMedia[0].Manufacturer = _dev.Manufacturer;
- sidecar.BlockMedia[0].Model = _dev.Model;
+ sidecar.BlockMedias[0].MediaType = xmlType.type;
+ sidecar.BlockMedias[0].MediaSubType = xmlType.subType;
+ sidecar.BlockMedias[0].Interface = "USB";
+ sidecar.BlockMedias[0].LogicalBlocks = blocks;
+ sidecar.BlockMedias[0].PhysicalBlockSize = (int)blockSize;
+ sidecar.BlockMedias[0].LogicalBlockSize = (int)blockSize;
+ sidecar.BlockMedias[0].Manufacturer = _dev.Manufacturer;
+ sidecar.BlockMedias[0].Model = _dev.Model;
if(!_private)
- sidecar.BlockMedia[0].Serial = _dev.Serial;
+ sidecar.BlockMedias[0].Serial = _dev.Serial;
- sidecar.BlockMedia[0].Size = blocks * blockSize;
+ sidecar.BlockMedias[0].Size = blocks * blockSize;
if(_dev.IsRemovable)
- sidecar.BlockMedia[0].DumpHardwareArray = _resume.Tries.ToArray();
+ sidecar.BlockMedias[0].DumpHardware = _resume.Tries;
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
diff --git a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs
index 7562aadbf..3878353e1 100644
--- a/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs
+++ b/Aaru.Core/Devices/Dumping/PlayStationPortable/UMD.cs
@@ -36,16 +36,16 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Aaru.CommonTypes.Structs;
using Aaru.Console;
using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Devices;
-using Schemas;
+using Track = Aaru.CommonTypes.Structs.Track;
using TrackType = Aaru.CommonTypes.Enums.TrackType;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -158,8 +158,10 @@ public partial class Dump
bool ret;
- var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
- var ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0010);
+ var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private,
+ _dimensions);
+
+ var ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0010);
ret = outputOptical.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
// Cannot create image
@@ -191,8 +193,8 @@ public partial class Dump
}
});
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, _dev.IsRemovable, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial,
_dev.PlatformId, ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision,
@@ -589,14 +591,14 @@ public partial class Dump
MediaPartNumber = mediaPartNumber
};
- if(!outputOptical.SetMetadata(metadata))
+ if(!outputOptical.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputOptical.ErrorMessage);
outputOptical.SetDumpHardware(_resume.Tries);
if(_preSidecar != null)
- outputOptical.SetCicmMetadata(_preSidecar);
+ outputOptical.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
diff --git a/Aaru.Core/Devices/Dumping/ResumeSupport.cs b/Aaru.Core/Devices/Dumping/ResumeSupport.cs
index 1a1d98317..55e4506bc 100644
--- a/Aaru.Core/Devices/Dumping/ResumeSupport.cs
+++ b/Aaru.Core/Devices/Dumping/ResumeSupport.cs
@@ -32,9 +32,9 @@
using System;
using System.Collections.Generic;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Metadata;
-using Schemas;
using PlatformID = Aaru.CommonTypes.Interop.PlatformID;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -64,7 +64,7 @@ static class ResumeSupport
/// progress dump
///
internal static void Process(bool isLba, bool removable, ulong blocks, string manufacturer, string model,
- string serial, PlatformID platform, ref Resume resume, ref DumpHardwareType currentTry,
+ string serial, PlatformID platform, ref Resume resume, ref DumpHardware currentTry,
ref ExtentsULong extents, string firmware, bool @private, bool force,
bool isTape = false)
{
@@ -102,7 +102,7 @@ static class ResumeSupport
InvalidOperationException(string.Format(Localization.Core.Resume_file_different_number_of_blocks_not_continuing,
resume.LastBlock + 1, blocks));
- foreach(DumpHardwareType oldTry in resume.Tries)
+ foreach(DumpHardware oldTry in resume.Tries)
{
if(!removable &&
!force)
@@ -153,9 +153,9 @@ static class ResumeSupport
if(currentTry != null)
return;
- currentTry = new DumpHardwareType
+ currentTry = new DumpHardware
{
- Software = CommonTypes.Metadata.Version.GetSoftwareType(),
+ Software = CommonTypes.Metadata.Version.GetSoftware(),
Manufacturer = manufacturer,
Model = model,
Serial = serial,
@@ -169,16 +169,16 @@ static class ResumeSupport
{
resume = new Resume
{
- Tries = new List(),
+ Tries = new List(),
CreationDate = DateTime.UtcNow,
BadBlocks = new List(),
LastBlock = isTape ? 0 : blocks - 1,
Tape = isTape
};
- currentTry = new DumpHardwareType
+ currentTry = new DumpHardware
{
- Software = CommonTypes.Metadata.Version.GetSoftwareType(),
+ Software = CommonTypes.Metadata.Version.GetSoftware(),
Manufacturer = manufacturer,
Model = model,
Serial = serial,
diff --git a/Aaru.Core/Devices/Dumping/SSC.cs b/Aaru.Core/Devices/Dumping/SSC.cs
index 3491ab793..1e34106bf 100644
--- a/Aaru.Core/Devices/Dumping/SSC.cs
+++ b/Aaru.Core/Devices/Dumping/SSC.cs
@@ -36,21 +36,23 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using System.Threading;
-using System.Xml.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
-using Aaru.CommonTypes.Structs;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Decoders.SCSI.SSC;
using Aaru.Devices;
using Aaru.Helpers;
-using Schemas;
using MediaType = Aaru.CommonTypes.MediaType;
+using TapeFile = Aaru.CommonTypes.Structs.TapeFile;
+using TapePartition = Aaru.CommonTypes.Structs.TapePartition;
using Version = Aaru.CommonTypes.Interop.Version;
namespace Aaru.Core.Devices.Dumping;
@@ -498,8 +500,8 @@ partial class Dump
}
}
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, _dev.IsRemovable, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial,
_dev.PlatformId, ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision,
@@ -1306,12 +1308,12 @@ partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputTape.SetMetadata(metadata))
+ if(!outputTape.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputTape.ErrorMessage);
if(_preSidecar != null)
- outputTape.SetCicmMetadata(_preSidecar);
+ outputTape.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -1367,7 +1369,7 @@ partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
+ Metadata sidecar = _sidecarClass.Create();
end = DateTime.UtcNow;
if(!_aborted)
@@ -1388,14 +1390,14 @@ partial class Dump
if(_preSidecar != null)
{
- _preSidecar.BlockMedia = sidecar.BlockMedia;
- sidecar = _preSidecar;
+ _preSidecar.BlockMedias = sidecar.BlockMedias;
+ sidecar = _preSidecar;
}
List<(ulong start, string type)> filesystems = new();
- if(sidecar.BlockMedia[0].FileSystemInformation != null)
- filesystems.AddRange(from partition in sidecar.BlockMedia[0].FileSystemInformation
+ if(sidecar.BlockMedias[0].FileSystemInformation != null)
+ filesystems.AddRange(from partition in sidecar.BlockMedias[0].FileSystemInformation
where partition.FileSystems != null from fileSystem in partition.FileSystems
select (partition.StartSector, fileSystem.Type));
@@ -1413,44 +1415,48 @@ partial class Dump
filesystem.start);
}
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
(string type, string subType) xmlType = CommonTypes.Metadata.MediaType.MediaTypeToString(dskType);
- sidecar.BlockMedia[0].DiskType = xmlType.type;
- sidecar.BlockMedia[0].DiskSubType = xmlType.subType;
+ sidecar.BlockMedias[0].MediaType = xmlType.type;
+ sidecar.BlockMedias[0].MediaSubType = xmlType.subType;
// TODO: Implement device firmware revision
if(!_dev.IsRemovable ||
_dev.IsUsb)
if(_dev.Type == DeviceType.ATAPI)
- sidecar.BlockMedia[0].Interface = "ATAPI";
+ sidecar.BlockMedias[0].Interface = "ATAPI";
else if(_dev.IsUsb)
- sidecar.BlockMedia[0].Interface = "USB";
+ sidecar.BlockMedias[0].Interface = "USB";
else if(_dev.IsFireWire)
- sidecar.BlockMedia[0].Interface = "FireWire";
+ sidecar.BlockMedias[0].Interface = "FireWire";
else
- sidecar.BlockMedia[0].Interface = "SCSI";
+ sidecar.BlockMedias[0].Interface = "SCSI";
- sidecar.BlockMedia[0].LogicalBlocks = blocks;
- sidecar.BlockMedia[0].Manufacturer = _dev.Manufacturer;
- sidecar.BlockMedia[0].Model = _dev.Model;
+ sidecar.BlockMedias[0].LogicalBlocks = blocks;
+ sidecar.BlockMedias[0].Manufacturer = _dev.Manufacturer;
+ sidecar.BlockMedias[0].Model = _dev.Model;
if(!_private)
- sidecar.BlockMedia[0].Serial = _dev.Serial;
+ sidecar.BlockMedias[0].Serial = _dev.Serial;
- sidecar.BlockMedia[0].Size = blocks * blockSize;
+ sidecar.BlockMedias[0].Size = blocks * blockSize;
if(_dev.IsRemovable)
- sidecar.BlockMedia[0].DumpHardwareArray = _resume.Tries.ToArray();
+ sidecar.BlockMedias[0].DumpHardware = _resume.Tries;
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
diff --git a/Aaru.Core/Devices/Dumping/Sbc/Data.cs b/Aaru.Core/Devices/Dumping/Sbc/Data.cs
index dcc861dd2..ad09b5000 100644
--- a/Aaru.Core/Devices/Dumping/Sbc/Data.cs
+++ b/Aaru.Core/Devices/Dumping/Sbc/Data.cs
@@ -27,6 +27,7 @@
using System;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
@@ -34,7 +35,6 @@ using Aaru.Core.Logging;
using Aaru.Decoders.DVD;
using Aaru.Decryption;
using Aaru.Decryption.DVD;
-using Schemas;
using DVDDecryption = Aaru.Decryption.DVD.Dump;
// ReSharper disable JoinDeclarationAndInitializer
@@ -62,7 +62,7 @@ partial class Dump
/// Set if we need to start a trim
/// DVD CSS decryption module
/// The DVD disc key
- void ReadSbcData(in ulong blocks, in uint maxBlocksToRead, in uint blockSize, DumpHardwareType currentTry,
+ void ReadSbcData(in ulong blocks, in uint maxBlocksToRead, in uint blockSize, DumpHardware currentTry,
ExtentsULong extents, ref double currentSpeed, ref double minSpeed, ref double maxSpeed,
ref double totalDuration, Reader scsiReader, MhddLog mhddLog, IbgLog ibgLog,
ref double imageWriteDuration, ref bool newTrim, ref DVDDecryption dvdDecrypt, byte[] discKey)
diff --git a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs
index c53af4e06..0fd14d72b 100644
--- a/Aaru.Core/Devices/Dumping/Sbc/Dump.cs
+++ b/Aaru.Core/Devices/Dumping/Sbc/Dump.cs
@@ -35,13 +35,14 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Xml.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
-using Aaru.CommonTypes.Structs;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Console;
using Aaru.Core.Graphics;
@@ -52,11 +53,12 @@ using Aaru.Decoders.DVD;
using Aaru.Decoders.SCSI;
using Aaru.Decoders.SCSI.MMC;
using Aaru.Devices;
-using Schemas;
using DeviceReport = Aaru.Core.Devices.Report.DeviceReport;
using DVDDecryption = Aaru.Decryption.DVD.Dump;
using MediaType = Aaru.CommonTypes.MediaType;
+using Track = Aaru.CommonTypes.Structs.Track;
using TrackType = Aaru.CommonTypes.Enums.TrackType;
+using Usb = Aaru.CommonTypes.AaruMetadata.Usb;
using Version = Aaru.CommonTypes.Interop.Version;
// ReSharper disable JoinDeclarationAndInitializer
@@ -369,8 +371,10 @@ partial class Dump
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead));
_dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead);
- var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
- var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
+ var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private,
+ _dimensions);
+
+ var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
bool imageCreated = false;
if(!opticalDisc)
@@ -697,8 +701,8 @@ partial class Dump
}
}
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, _dev.IsRemovable, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial,
_dev.PlatformId, ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision,
@@ -1023,12 +1027,12 @@ partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputFormat.SetMetadata(metadata))
+ if(!outputFormat.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputFormat.ErrorMessage);
if(_preSidecar != null)
- outputFormat.SetCicmMetadata(_preSidecar);
+ outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -1082,7 +1086,7 @@ partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
+ Metadata sidecar = _sidecarClass.Create();
end = DateTime.UtcNow;
if(!_aborted)
@@ -1103,8 +1107,8 @@ partial class Dump
if(_preSidecar != null)
{
- _preSidecar.BlockMedia = sidecar.BlockMedia;
- sidecar = _preSidecar;
+ _preSidecar.BlockMedias = sidecar.BlockMedias;
+ sidecar = _preSidecar;
}
// All USB flash drives report as removable, even if the media is not removable
@@ -1114,15 +1118,15 @@ partial class Dump
if(_dev.IsUsb &&
_dev.UsbDescriptors != null)
if(outputFormat.SupportedMediaTags.Contains(MediaTagType.USB_Descriptors))
- sidecar.BlockMedia[0].USB = new USBType
+ sidecar.BlockMedias[0].Usb = new Usb
{
ProductID = _dev.UsbProductId,
VendorID = _dev.UsbVendorId,
- Descriptors = new DumpType
+ Descriptors = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)_dev.UsbDescriptors.Length,
- Checksums = Checksum.GetChecksums(_dev.UsbDescriptors).ToArray()
+ Checksums = Checksum.GetChecksums(_dev.UsbDescriptors)
}
};
@@ -1134,13 +1138,13 @@ partial class Dump
if(!sense)
if(outputFormat.SupportedMediaTags.Contains(MediaTagType.ATAPI_IDENTIFY))
- sidecar.BlockMedia[0].ATA = new ATAType
+ sidecar.BlockMedias[0].ATA = new ATA
{
- Identify = new DumpType
+ Identify = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)cmdBuf.Length,
- Checksums = Checksum.GetChecksums(cmdBuf).ToArray()
+ Checksums = Checksum.GetChecksums(cmdBuf)
}
};
}
@@ -1150,13 +1154,13 @@ partial class Dump
if(!sense)
{
if(outputFormat.SupportedMediaTags.Contains(MediaTagType.SCSI_INQUIRY))
- sidecar.BlockMedia[0].SCSI = new SCSIType
+ sidecar.BlockMedias[0].SCSI = new SCSI
{
- Inquiry = new DumpType
+ Inquiry = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)cmdBuf.Length,
- Checksums = Checksum.GetChecksums(cmdBuf).ToArray()
+ Checksums = Checksum.GetChecksums(cmdBuf)
}
};
@@ -1171,25 +1175,25 @@ partial class Dump
if(pages != null)
{
- List evpds = new List();
+ List evpds = new();
foreach(byte page in pages)
{
dumpLog.WriteLine("Requesting page {0:X2}h.", page);
sense = dev.ScsiInquiry(out cmdBuf, out _, page);
if(sense) continue;
- EVPDType evpd = new EVPDType
+ Evpd evpd = new()
{
Image = $"{outputPrefix}.evpd_{page:X2}h.bin",
- Checksums = Checksum.GetChecksums(cmdBuf).ToArray(),
+ Checksums = Checksum.GetChecksums(cmdBuf),
Size = cmdBuf.Length
};
- evpd.Checksums = Checksum.GetChecksums(cmdBuf).ToArray();
+ evpd.Checksums = Checksum.GetChecksums(cmdBuf);
DataFile.WriteTo("SCSI Dump", evpd.Image, cmdBuf);
evpds.Add(evpd);
}
- if(evpds.Count > 0) sidecar.BlockMedia[0].SCSI.EVPD = evpds.ToArray();
+ if(evpds.Count > 0) sidecar.BlockMedias[0].SCSI.Evpds = evpds;
}
}
*/
@@ -1209,11 +1213,11 @@ partial class Dump
!_dev.Error)
if(Modes.DecodeMode10(cmdBuf, _dev.ScsiType).HasValue)
if(outputFormat.SupportedMediaTags.Contains(MediaTagType.SCSI_MODESENSE_10))
- sidecar.BlockMedia[0].SCSI.ModeSense10 = new DumpType
+ sidecar.BlockMedias[0].SCSI.ModeSense10 = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)cmdBuf.Length,
- Checksums = Checksum.GetChecksums(cmdBuf).ToArray()
+ Checksums = Checksum.GetChecksums(cmdBuf)
};
UpdateStatus?.Invoke(Localization.Core.Requesting_MODE_SENSE_6);
@@ -1233,19 +1237,19 @@ partial class Dump
!_dev.Error)
if(Modes.DecodeMode6(cmdBuf, _dev.ScsiType).HasValue)
if(outputFormat.SupportedMediaTags.Contains(MediaTagType.SCSI_MODESENSE_6))
- sidecar.BlockMedia[0].SCSI.ModeSense = new DumpType
+ sidecar.BlockMedias[0].SCSI.ModeSense = new CommonTypes.AaruMetadata.Dump
{
Image = _outputPath,
Size = (ulong)cmdBuf.Length,
- Checksums = Checksum.GetChecksums(cmdBuf).ToArray()
+ Checksums = Checksum.GetChecksums(cmdBuf)
};
}
}
List<(ulong start, string type)> filesystems = new();
- if(sidecar.BlockMedia[0].FileSystemInformation != null)
- filesystems.AddRange(from partition in sidecar.BlockMedia[0].FileSystemInformation
+ if(sidecar.BlockMedias[0].FileSystemInformation != null)
+ filesystems.AddRange(from partition in sidecar.BlockMedias[0].FileSystemInformation
where partition.FileSystems != null
from fileSystem in partition.FileSystems
select (partition.StartSector, fileSystem.Type));
@@ -1264,46 +1268,50 @@ partial class Dump
filesystem.start);
}
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(dskType);
(string type, string subType) xmlType = CommonTypes.Metadata.MediaType.MediaTypeToString(dskType);
- sidecar.BlockMedia[0].DiskType = xmlType.type;
- sidecar.BlockMedia[0].DiskSubType = xmlType.subType;
+ sidecar.BlockMedias[0].MediaType = xmlType.type;
+ sidecar.BlockMedias[0].MediaSubType = xmlType.subType;
// TODO: Implement device firmware revision
if(!_dev.IsRemovable ||
_dev.IsUsb)
if(_dev.Type == DeviceType.ATAPI)
- sidecar.BlockMedia[0].Interface = "ATAPI";
+ sidecar.BlockMedias[0].Interface = "ATAPI";
else if(_dev.IsUsb)
- sidecar.BlockMedia[0].Interface = "USB";
+ sidecar.BlockMedias[0].Interface = "USB";
else if(_dev.IsFireWire)
- sidecar.BlockMedia[0].Interface = "FireWire";
+ sidecar.BlockMedias[0].Interface = "FireWire";
else
- sidecar.BlockMedia[0].Interface = "SCSI";
+ sidecar.BlockMedias[0].Interface = "SCSI";
- sidecar.BlockMedia[0].LogicalBlocks = blocks;
- sidecar.BlockMedia[0].PhysicalBlockSize = physicalBlockSize;
- sidecar.BlockMedia[0].LogicalBlockSize = logicalBlockSize;
- sidecar.BlockMedia[0].Manufacturer = _dev.Manufacturer;
- sidecar.BlockMedia[0].Model = _dev.Model;
+ sidecar.BlockMedias[0].LogicalBlocks = blocks;
+ sidecar.BlockMedias[0].PhysicalBlockSize = physicalBlockSize;
+ sidecar.BlockMedias[0].LogicalBlockSize = logicalBlockSize;
+ sidecar.BlockMedias[0].Manufacturer = _dev.Manufacturer;
+ sidecar.BlockMedias[0].Model = _dev.Model;
if(!_private)
- sidecar.BlockMedia[0].Serial = _dev.Serial;
+ sidecar.BlockMedias[0].Serial = _dev.Serial;
- sidecar.BlockMedia[0].Size = blocks * blockSize;
+ sidecar.BlockMedias[0].Size = blocks * blockSize;
if(_dev.IsRemovable)
- sidecar.BlockMedia[0].DumpHardwareArray = _resume.Tries.ToArray();
+ sidecar.BlockMedias[0].DumpHardware = _resume.Tries;
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
}
diff --git a/Aaru.Core/Devices/Dumping/Sbc/Error.cs b/Aaru.Core/Devices/Dumping/Sbc/Error.cs
index 75a6ab0be..3a10e4cac 100644
--- a/Aaru.Core/Devices/Dumping/Sbc/Error.cs
+++ b/Aaru.Core/Devices/Dumping/Sbc/Error.cs
@@ -26,6 +26,7 @@
// ****************************************************************************/
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
@@ -36,7 +37,6 @@ using Aaru.Decoders.SCSI;
using Aaru.Decryption;
using Aaru.Decryption.DVD;
using Aaru.Devices;
-using Schemas;
using DVDDecryption = Aaru.Decryption.DVD.Dump;
// ReSharper disable JoinDeclarationAndInitializer
@@ -53,7 +53,7 @@ partial class Dump
/// Total time spent in commands
/// SCSI reader
/// Blank extents
- void RetrySbcData(Reader scsiReader, DumpHardwareType currentTry, ExtentsULong extents, ref double totalDuration,
+ void RetrySbcData(Reader scsiReader, DumpHardware currentTry, ExtentsULong extents, ref double totalDuration,
ExtentsULong blankExtents)
{
int pass = 1;
@@ -326,7 +326,7 @@ partial class Dump
}
if(newBlank)
- _resume.BlankExtents = ExtentsConverter.ToMetadata(blankExtents);
+ _resume.BlankExtents = ExtentsConverter.ToMetadata(blankExtents).ToArray();
EndProgress?.Invoke();
}
diff --git a/Aaru.Core/Devices/Dumping/Sbc/Optical.cs b/Aaru.Core/Devices/Dumping/Sbc/Optical.cs
index 6e8953de0..0a19a4a20 100644
--- a/Aaru.Core/Devices/Dumping/Sbc/Optical.cs
+++ b/Aaru.Core/Devices/Dumping/Sbc/Optical.cs
@@ -4,13 +4,13 @@
using System;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.Console;
using Aaru.Core.Logging;
using Aaru.Decoders.SCSI;
using Aaru.Helpers;
-using Schemas;
namespace Aaru.Core.Devices.Dumping;
@@ -35,7 +35,7 @@ partial class Dump
/// Total time spent writing to image
/// Set if we need to start a trim
/// Blank extents
- void ReadOpticalData(in ulong blocks, in uint maxBlocksToRead, in uint blockSize, DumpHardwareType currentTry,
+ void ReadOpticalData(in ulong blocks, in uint maxBlocksToRead, in uint blockSize, DumpHardware currentTry,
ExtentsULong extents, ref double currentSpeed, ref double minSpeed, ref double maxSpeed,
ref double totalDuration, Reader scsiReader, MhddLog mhddLog, IbgLog ibgLog,
ref double imageWriteDuration, ref bool newTrim, ref ExtentsULong blankExtents)
@@ -148,7 +148,7 @@ partial class Dump
}
if(_resume != null && canMediumScan)
- _resume.BlankExtents = ExtentsConverter.ToMetadata(blankExtents);
+ _resume.BlankExtents = ExtentsConverter.ToMetadata(blankExtents).ToArray();
EndProgress?.Invoke();
}
diff --git a/Aaru.Core/Devices/Dumping/Sbc/Trim.cs b/Aaru.Core/Devices/Dumping/Sbc/Trim.cs
index a900be3db..561251ab7 100644
--- a/Aaru.Core/Devices/Dumping/Sbc/Trim.cs
+++ b/Aaru.Core/Devices/Dumping/Sbc/Trim.cs
@@ -28,9 +28,9 @@
// ReSharper disable InlineOutVariableDeclaration
// ReSharper disable TooWideLocalVariableScope
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
-using Schemas;
namespace Aaru.Core.Devices.Dumping;
@@ -41,7 +41,7 @@ partial class Dump
/// Correctly dump extents
/// Resume information
/// Blank extents
- void TrimSbcData(Reader scsiReader, ExtentsULong extents, DumpHardwareType currentTry, ExtentsULong blankExtents)
+ void TrimSbcData(Reader scsiReader, ExtentsULong extents, DumpHardware currentTry, ExtentsULong blankExtents)
{
ulong[] tmpArray = _resume.BadBlocks.ToArray();
bool sense;
@@ -95,6 +95,6 @@ partial class Dump
}
if(newBlank)
- _resume.BlankExtents = ExtentsConverter.ToMetadata(blankExtents);
+ _resume.BlankExtents = ExtentsConverter.ToMetadata(blankExtents).ToArray();
}
}
\ No newline at end of file
diff --git a/Aaru.Core/Devices/Dumping/SecureDigital.cs b/Aaru.Core/Devices/Dumping/SecureDigital.cs
index 774ab3ba7..ffaf15fcd 100644
--- a/Aaru.Core/Devices/Dumping/SecureDigital.cs
+++ b/Aaru.Core/Devices/Dumping/SecureDigital.cs
@@ -36,8 +36,10 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Xml.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
@@ -46,7 +48,6 @@ using Aaru.Core.Graphics;
using Aaru.Core.Logging;
using Aaru.Decoders.MMC;
using Aaru.Decoders.SecureDigital;
-using Schemas;
using CSD = Aaru.Decoders.MMC.CSD;
using DeviceType = Aaru.CommonTypes.Enums.DeviceType;
using MediaType = Aaru.CommonTypes.MediaType;
@@ -418,8 +419,8 @@ public partial class Dump
if(_skip < blocksToRead)
_skip = blocksToRead;
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, false, blocks, _dev.Manufacturer, _dev.Model, _dev.Serial, _dev.PlatformId,
ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision, _private, _force);
@@ -457,8 +458,10 @@ public partial class Dump
}
}
- var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
- var ibgLog = new IbgLog(_outputPrefix + ".ibg", sdProfile);
+ var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private,
+ _dimensions);
+
+ var ibgLog = new IbgLog(_outputPrefix + ".ibg", sdProfile);
ret = outputFormat.Create(_outputPath,
_dev.Type == DeviceType.SecureDigital ? MediaType.SecureDigital : MediaType.MMC,
@@ -867,12 +870,12 @@ public partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputFormat.SetMetadata(metadata))
+ if(!outputFormat.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputFormat.ErrorMessage);
if(_preSidecar != null)
- outputFormat.SetCicmMetadata(_preSidecar);
+ outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -916,14 +919,14 @@ public partial class Dump
_sidecarClass.UpdateProgressEvent2 += UpdateProgress2;
_sidecarClass.EndProgressEvent2 += EndProgress2;
_sidecarClass.UpdateStatusEvent += UpdateStatus;
- CICMMetadataType sidecar = _sidecarClass.Create();
+ Metadata sidecar = _sidecarClass.Create();
if(!_aborted)
{
if(_preSidecar != null)
{
- _preSidecar.BlockMedia = sidecar.BlockMedia;
- sidecar = _preSidecar;
+ _preSidecar.BlockMedias = sidecar.BlockMedias;
+ sidecar = _preSidecar;
}
end = DateTime.UtcNow;
@@ -949,39 +952,43 @@ public partial class Dump
case DeviceType.MMC:
xmlType = CommonTypes.Metadata.MediaType.MediaTypeToString(MediaType.MMC);
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(MediaType.MMC);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(MediaType.MMC);
break;
case DeviceType.SecureDigital:
CommonTypes.Metadata.MediaType.MediaTypeToString(MediaType.SecureDigital);
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(MediaType.SecureDigital);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(MediaType.SecureDigital);
break;
}
- sidecar.BlockMedia[0].DiskType = xmlType.type;
- sidecar.BlockMedia[0].DiskSubType = xmlType.subType;
+ sidecar.BlockMedias[0].MediaType = xmlType.type;
+ sidecar.BlockMedias[0].MediaSubType = xmlType.subType;
// TODO: Implement device firmware revision
- sidecar.BlockMedia[0].LogicalBlocks = blocks;
- sidecar.BlockMedia[0].PhysicalBlockSize = physicalBlockSize > 0 ? physicalBlockSize : blockSize;
- sidecar.BlockMedia[0].LogicalBlockSize = blockSize;
- sidecar.BlockMedia[0].Manufacturer = _dev.Manufacturer;
- sidecar.BlockMedia[0].Model = _dev.Model;
+ sidecar.BlockMedias[0].LogicalBlocks = blocks;
+ sidecar.BlockMedias[0].PhysicalBlockSize = physicalBlockSize > 0 ? physicalBlockSize : blockSize;
+ sidecar.BlockMedias[0].LogicalBlockSize = blockSize;
+ sidecar.BlockMedias[0].Manufacturer = _dev.Manufacturer;
+ sidecar.BlockMedias[0].Model = _dev.Model;
if(!_private)
- sidecar.BlockMedia[0].Serial = _dev.Serial;
+ sidecar.BlockMedias[0].Serial = _dev.Serial;
- sidecar.BlockMedia[0].Size = blocks * blockSize;
+ sidecar.BlockMedias[0].Size = blocks * blockSize;
UpdateStatus?.Invoke(Localization.Core.Writing_metadata_sidecar);
- var xmlFs = new FileStream(_outputPrefix + ".cicm.xml", FileMode.Create);
+ var jsonFs = new FileStream(_outputPrefix + ".metadata.json", FileMode.Create);
- var xmlSer = new XmlSerializer(typeof(CICMMetadataType));
- xmlSer.Serialize(xmlFs, sidecar);
- xmlFs.Close();
+ JsonSerializer.Serialize(jsonFs, sidecar, new JsonSerializerOptions
+ {
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
+ WriteIndented = true
+ });
+
+ jsonFs.Close();
}
}
diff --git a/Aaru.Core/Devices/Dumping/XGD.cs b/Aaru.Core/Devices/Dumping/XGD.cs
index 88ca5ea23..fce741e4b 100644
--- a/Aaru.Core/Devices/Dumping/XGD.cs
+++ b/Aaru.Core/Devices/Dumping/XGD.cs
@@ -36,11 +36,11 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Extents;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Interop;
-using Aaru.CommonTypes.Structs;
using Aaru.CommonTypes.Structs.Devices.SCSI;
using Aaru.Console;
using Aaru.Core.Graphics;
@@ -49,9 +49,10 @@ using Aaru.Decoders.DVD;
using Aaru.Decoders.SCSI;
using Aaru.Decoders.Xbox;
using Aaru.Devices;
-using Schemas;
using Device = Aaru.Devices.Remote.Device;
+using Layers = Aaru.CommonTypes.AaruMetadata.Layers;
using PlatformID = Aaru.CommonTypes.Interop.PlatformID;
+using Track = Aaru.CommonTypes.Structs.Track;
using TrackType = Aaru.CommonTypes.Enums.TrackType;
using Version = Aaru.CommonTypes.Interop.Version;
@@ -498,8 +499,10 @@ partial class Dump
_dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead);
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead));
- var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
- var ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0010);
+ var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private,
+ _dimensions);
+
+ var ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0010);
ret = outputFormat.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
// Cannot create image
@@ -517,10 +520,10 @@ partial class Dump
start = DateTime.UtcNow;
double imageWriteDuration = 0;
- double cmdDuration = 0;
- uint saveBlocksToRead = blocksToRead;
- DumpHardwareType currentTry = null;
- ExtentsULong extents = null;
+ double cmdDuration = 0;
+ uint saveBlocksToRead = blocksToRead;
+ DumpHardware currentTry = null;
+ ExtentsULong extents = null;
ResumeSupport.Process(true, true, totalSize, _dev.Manufacturer, _dev.Model, _dev.Serial, _dev.PlatformId,
ref _resume, ref currentTry, ref extents, _dev.FirmwareRevision, _private, _force);
@@ -1262,12 +1265,12 @@ partial class Dump
ApplicationVersion = Version.GetVersion()
};
- if(!outputFormat.SetMetadata(metadata))
+ if(!outputFormat.SetImageInfo(metadata))
ErrorMessage?.Invoke(Localization.Core.Error_0_setting_metadata + Environment.NewLine +
outputFormat.ErrorMessage);
if(_preSidecar != null)
- outputFormat.SetCicmMetadata(_preSidecar);
+ outputFormat.SetMetadata(_preSidecar);
_dumpLog.WriteLine(Localization.Core.Closing_output_file);
UpdateStatus?.Invoke(Localization.Core.Closing_output_file);
@@ -1292,16 +1295,16 @@ partial class Dump
if(_metadata)
{
- var layers = new LayersType
+ var layers = new Layers
{
- type = LayersTypeType.OTP,
- typeSpecified = true,
- Sectors = new SectorsType[1]
- };
-
- layers.Sectors[0] = new SectorsType
- {
- Value = layerBreak
+ Type = LayerType.OTP,
+ Sectors = new List
+ {
+ new()
+ {
+ Value = layerBreak
+ }
+ }
};
WriteOpticalSidecar(blockSize, blocks, dskType, layers, mediaTags, 1, out totalChkDuration, null);
diff --git a/Aaru.Core/ImageInfo.cs b/Aaru.Core/ImageInfo.cs
index 51c626ed5..c59b78dbd 100644
--- a/Aaru.Core/ImageInfo.cs
+++ b/Aaru.Core/ImageInfo.cs
@@ -36,6 +36,7 @@ using System.Linq;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Structs;
@@ -49,12 +50,12 @@ using Aaru.Decoders.PCMCIA;
using Aaru.Decoders.SCSI;
using Aaru.Decoders.Xbox;
using Aaru.Helpers;
-using Schemas;
using Spectre.Console;
using DDS = Aaru.Decoders.DVD.DDS;
using DMI = Aaru.Decoders.Xbox.DMI;
using Inquiry = Aaru.Decoders.SCSI.Inquiry;
using Session = Aaru.CommonTypes.Structs.Session;
+using Track = Aaru.CommonTypes.Structs.Track;
using Tuple = Aaru.Decoders.PCMCIA.Tuple;
namespace Aaru.Core;
@@ -105,7 +106,7 @@ public static class ImageInfo
AaruConsole.WriteLine(Localization.Core.Last_modified_on_0, imageFormat.Info.LastModificationTime);
AaruConsole.WriteLine(Localization.Core.Contains_a_media_of_type_0_and_XML_type_1_WithMarkup,
- imageFormat.Info.MediaType, imageFormat.Info.XmlMediaType);
+ imageFormat.Info.MediaType, imageFormat.Info.MetadataMediaType);
AaruConsole.WriteLine(imageFormat.Info.HasPartitions ? Localization.Core.Has_partitions
: Localization.Core.Doesnt_have_partitions);
@@ -161,9 +162,9 @@ public static class ImageInfo
AaruConsole.WriteLine(Localization.Core.Drive_firmware_info_0_WithMarkup,
Markup.Escape(imageFormat.Info.DriveFirmwareRevision));
- if(imageFormat.Info.Cylinders > 0 &&
- imageFormat.Info is { Heads: > 0, SectorsPerTrack: > 0 } &&
- imageFormat.Info.XmlMediaType != XmlMediaType.OpticalDisc &&
+ if(imageFormat.Info.Cylinders > 0 &&
+ imageFormat.Info is { Heads: > 0, SectorsPerTrack: > 0 } &&
+ imageFormat.Info.MetadataMediaType != MetadataMediaType.OpticalDisc &&
imageFormat is not ITapeImage { IsTape: true })
AaruConsole.WriteLine(Localization.Core.Media_geometry_0_cylinders_1_heads_2_sectors_per_track_WithMarkup,
imageFormat.Info.Cylinders, imageFormat.Info.Heads, imageFormat.Info.SectorsPerTrack);
@@ -192,7 +193,7 @@ public static class ImageInfo
AaruConsole.WriteLine();
- if(imageFormat.Info.XmlMediaType == XmlMediaType.LinearMedia)
+ if(imageFormat.Info.MetadataMediaType == MetadataMediaType.LinearMedia)
PrintByteAddressableImageInfo(imageFormat as IByteAddressableImage);
else
PrintBlockImageInfo(imageFormat as IMediaImage);
@@ -208,7 +209,7 @@ public static class ImageInfo
int osLen = Localization.Core.Title_Operating_system.Length;
int sectorLen = Localization.Core.Title_Start.Length;
- foreach(DumpHardwareType dump in imageFormat.DumpHardware)
+ foreach(DumpHardware dump in imageFormat.DumpHardware)
{
if(dump.Manufacturer?.Length > manufacturerLen)
manufacturerLen = dump.Manufacturer.Length;
@@ -228,7 +229,7 @@ public static class ImageInfo
if(dump.Software?.OperatingSystem?.Length > osLen)
osLen = dump.Software.OperatingSystem.Length;
- foreach(ExtentType extent in dump.Extents)
+ foreach(Extent extent in dump.Extents)
{
if($"{extent.Start}".Length > sectorLen)
sectorLen = $"{extent.Start}".Length;
@@ -252,9 +253,9 @@ public static class ImageInfo
table.AddColumn(Localization.Core.Title_Start);
table.AddColumn(Localization.Core.Title_End);
- foreach(DumpHardwareType dump in imageFormat.DumpHardware)
+ foreach(DumpHardware dump in imageFormat.DumpHardware)
{
- foreach(ExtentType extent in dump.Extents)
+ foreach(Extent extent in dump.Extents)
table.AddRow(Markup.Escape(dump.Manufacturer ?? ""), Markup.Escape(dump.Model ?? ""),
Markup.Escape(dump.Serial ?? ""), Markup.Escape(dump.Software.Name ?? ""),
Markup.Escape(dump.Software.Version ?? ""),
@@ -527,7 +528,9 @@ public static class ImageInfo
if(errno == ErrorNumber.NoError)
{
- AaruConsole.WriteLine(Localization.Core.DVD_RAM_Disc_Definition_Structure_contained_in_image_WithMarkup);
+ AaruConsole.WriteLine(Localization.Core.
+ DVD_RAM_Disc_Definition_Structure_contained_in_image_WithMarkup);
+
AaruConsole.Write("{0}", DDS.Prettify(dds));
AaruConsole.WriteLine();
}
diff --git a/Aaru.Core/Sidecar/AudioMedia.cs b/Aaru.Core/Sidecar/AudioMedia.cs
index 4e0374bb8..75b76becd 100644
--- a/Aaru.Core/Sidecar/AudioMedia.cs
+++ b/Aaru.Core/Sidecar/AudioMedia.cs
@@ -35,8 +35,8 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Interfaces;
-using Schemas;
namespace Aaru.Core;
@@ -53,24 +53,24 @@ public sealed partial class Sidecar
/// Metadata sidecar
/// Encoding to be used for filesystem plugins
static void AudioMedia(IBaseImage image, Guid filterId, string imagePath, FileInfo fi, PluginBase plugins,
- List imgChecksums, ref CICMMetadataType sidecar, Encoding encoding)
+ List imgChecksums, ref Metadata sidecar,
+ Encoding encoding)
{
- sidecar.AudioMedia = new[]
+ sidecar.AudioMedia = new List
{
- new AudioMediaType
+ new()
{
- Checksums = imgChecksums.ToArray(),
- Image = new ImageType
+ Checksums = imgChecksums,
+ Image = new Image
{
- format = image.Format,
- offset = 0,
- offsetSpecified = true,
- Value = Path.GetFileName(imagePath)
+ Format = image.Format,
+ Offset = 0,
+ Value = Path.GetFileName(imagePath)
},
Size = (ulong)fi.Length,
- Sequence = new SequenceType
+ Sequence = new Sequence
{
- MediaTitle = image.Info.MediaTitle
+ Title = image.Info.MediaTitle
}
}
};
diff --git a/Aaru.Core/Sidecar/BlockMedia.cs b/Aaru.Core/Sidecar/BlockMedia.cs
index 49d7dbaaf..fc368a0da 100644
--- a/Aaru.Core/Sidecar/BlockMedia.cs
+++ b/Aaru.Core/Sidecar/BlockMedia.cs
@@ -36,19 +36,23 @@ using System.IO;
using System.Linq;
using System.Text;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
-using Aaru.CommonTypes.Structs;
using Aaru.CommonTypes.Structs.Devices.ATA;
using Aaru.Console;
using Aaru.Decoders.PCMCIA;
using Aaru.DiscImages;
using Aaru.Filters;
using Aaru.Helpers;
-using Schemas;
+using Directory = System.IO.Directory;
+using File = System.IO.File;
using MediaType = Aaru.CommonTypes.Metadata.MediaType;
+using Partition = Aaru.CommonTypes.Partition;
+using Pcmcia = Aaru.CommonTypes.AaruMetadata.Pcmcia;
using Tuple = Aaru.Decoders.PCMCIA.Tuple;
+using Usb = Aaru.CommonTypes.AaruMetadata.Usb;
namespace Aaru.Core;
@@ -64,27 +68,26 @@ public sealed partial class Sidecar
/// Metadata sidecar
/// Encoding to be used for filesystem plugins
void BlockMedia(IMediaImage image, Guid filterId, string imagePath, FileInfo fi, PluginBase plugins,
- List imgChecksums, ref CICMMetadataType sidecar, Encoding encoding)
+ List imgChecksums, ref Metadata sidecar, Encoding encoding)
{
if(_aborted)
return;
- sidecar.BlockMedia = new[]
+ sidecar.BlockMedias = new List
{
- new BlockMediaType
+ new()
{
- Checksums = imgChecksums.ToArray(),
- Image = new ImageType
+ Checksums = imgChecksums,
+ Image = new Image
{
- format = image.Format,
- offset = 0,
- offsetSpecified = true,
- Value = Path.GetFileName(imagePath)
+ Format = image.Format,
+ Offset = 0,
+ Value = Path.GetFileName(imagePath)
},
Size = (ulong)fi.Length,
- Sequence = new SequenceType
+ Sequence = new Sequence
{
- MediaTitle = image.Info.MediaTitle
+ Title = image.Info.MediaTitle
}
}
};
@@ -92,13 +95,13 @@ public sealed partial class Sidecar
if(image.Info.MediaSequence != 0 &&
image.Info.LastMediaSequence != 0)
{
- sidecar.BlockMedia[0].Sequence.MediaSequence = (uint)image.Info.MediaSequence;
- sidecar.BlockMedia[0].Sequence.TotalMedia = (uint)image.Info.LastMediaSequence;
+ sidecar.BlockMedias[0].Sequence.MediaSequence = (uint)image.Info.MediaSequence;
+ sidecar.BlockMedias[0].Sequence.TotalMedia = (uint)image.Info.LastMediaSequence;
}
else
{
- sidecar.BlockMedia[0].Sequence.MediaSequence = 1;
- sidecar.BlockMedia[0].Sequence.TotalMedia = 1;
+ sidecar.BlockMedias[0].Sequence.MediaSequence = 1;
+ sidecar.BlockMedias[0].Sequence.TotalMedia = 1;
}
UpdateStatus(Localization.Core.Hashing_media_tags);
@@ -118,11 +121,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].ATA = new ATAType
+ sidecar.BlockMedias[0].ATA = new ATA
{
- Identify = new DumpType
+ Identify = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
}
};
@@ -134,11 +137,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].ATA = new ATAType
+ sidecar.BlockMedias[0].ATA = new ATA
{
- Identify = new DumpType
+ Identify = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
}
};
@@ -150,11 +153,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].PCMCIA = new PCMCIAType
+ sidecar.BlockMedias[0].Pcmcia = new Pcmcia
{
- CIS = new DumpType
+ Cis = new Dump
{
- Checksums = Checksum.GetChecksums(cis).ToArray(),
+ Checksums = Checksum.GetChecksums(cis),
Size = (ulong)cis.Length
}
};
@@ -171,11 +174,9 @@ public sealed partial class Sidecar
if(manfid != null)
{
- sidecar.BlockMedia[0].PCMCIA.ManufacturerCode = manfid.ManufacturerID;
+ sidecar.BlockMedias[0].Pcmcia.ManufacturerCode = manfid.ManufacturerID;
- sidecar.BlockMedia[0].PCMCIA.CardCode = manfid.CardID;
- sidecar.BlockMedia[0].PCMCIA.ManufacturerCodeSpecified = true;
- sidecar.BlockMedia[0].PCMCIA.CardCodeSpecified = true;
+ sidecar.BlockMedias[0].Pcmcia.CardCode = manfid.CardID;
}
break;
@@ -184,13 +185,14 @@ public sealed partial class Sidecar
if(vers != null)
{
- sidecar.BlockMedia[0].PCMCIA.Manufacturer = vers.Manufacturer;
- sidecar.BlockMedia[0].PCMCIA.ProductName = vers.Product;
+ sidecar.BlockMedias[0].Pcmcia.Manufacturer = vers.Manufacturer;
+ sidecar.BlockMedias[0].Pcmcia.ProductName = vers.Product;
- sidecar.BlockMedia[0].PCMCIA.Compliance =
+ sidecar.BlockMedias[0].Pcmcia.Compliance =
$"{vers.MajorVersion}.{vers.MinorVersion}";
- sidecar.BlockMedia[0].PCMCIA.AdditionalInformation = vers.AdditionalInformation;
+ sidecar.BlockMedias[0].Pcmcia.AdditionalInformation =
+ new List(vers.AdditionalInformation);
}
break;
@@ -203,11 +205,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SCSI = new SCSIType
+ sidecar.BlockMedias[0].SCSI = new SCSI
{
- Inquiry = new DumpType
+ Inquiry = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
}
};
@@ -219,11 +221,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SecureDigital ??= new SecureDigitalType();
+ sidecar.BlockMedias[0].SecureDigital ??= new SecureDigital();
- sidecar.BlockMedia[0].SecureDigital.CID = new DumpType
+ sidecar.BlockMedias[0].SecureDigital.CID = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -234,11 +236,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SecureDigital ??= new SecureDigitalType();
+ sidecar.BlockMedias[0].SecureDigital ??= new SecureDigital();
- sidecar.BlockMedia[0].SecureDigital.CSD = new DumpType
+ sidecar.BlockMedias[0].SecureDigital.CSD = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -249,11 +251,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SecureDigital ??= new SecureDigitalType();
+ sidecar.BlockMedias[0].SecureDigital ??= new SecureDigital();
- sidecar.BlockMedia[0].SecureDigital.SCR = new DumpType
+ sidecar.BlockMedias[0].SecureDigital.SCR = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -264,11 +266,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SecureDigital ??= new SecureDigitalType();
+ sidecar.BlockMedias[0].SecureDigital ??= new SecureDigital();
- sidecar.BlockMedia[0].SecureDigital.OCR = new DumpType
+ sidecar.BlockMedias[0].SecureDigital.OCR = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -279,11 +281,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].MultiMediaCard ??= new MultiMediaCardType();
+ sidecar.BlockMedias[0].MultiMediaCard ??= new MultiMediaCard();
- sidecar.BlockMedia[0].MultiMediaCard.CID = new DumpType
+ sidecar.BlockMedias[0].MultiMediaCard.CID = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -294,11 +296,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].MultiMediaCard ??= new MultiMediaCardType();
+ sidecar.BlockMedias[0].MultiMediaCard ??= new MultiMediaCard();
- sidecar.BlockMedia[0].MultiMediaCard.CSD = new DumpType
+ sidecar.BlockMedias[0].MultiMediaCard.CSD = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -309,11 +311,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].MultiMediaCard ??= new MultiMediaCardType();
+ sidecar.BlockMedias[0].MultiMediaCard ??= new MultiMediaCard();
- sidecar.BlockMedia[0].MultiMediaCard.OCR = new DumpType
+ sidecar.BlockMedias[0].MultiMediaCard.OCR = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -324,11 +326,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].MultiMediaCard ??= new MultiMediaCardType();
+ sidecar.BlockMedias[0].MultiMediaCard ??= new MultiMediaCard();
- sidecar.BlockMedia[0].MultiMediaCard.ExtendedCSD = new DumpType
+ sidecar.BlockMedias[0].MultiMediaCard.ExtendedCSD = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -339,11 +341,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].USB ??= new USBType();
+ sidecar.BlockMedias[0].Usb ??= new Usb();
- sidecar.BlockMedia[0].USB.Descriptors = new DumpType
+ sidecar.BlockMedias[0].Usb.Descriptors = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -354,11 +356,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SCSI ??= new SCSIType();
+ sidecar.BlockMedias[0].SCSI ??= new SCSI();
- sidecar.BlockMedia[0].SCSI.ModeSense = new DumpType
+ sidecar.BlockMedias[0].SCSI.ModeSense = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -369,11 +371,11 @@ public sealed partial class Sidecar
if(errno != ErrorNumber.NoError)
break;
- sidecar.BlockMedia[0].SCSI ??= new SCSIType();
+ sidecar.BlockMedias[0].SCSI ??= new SCSI();
- sidecar.BlockMedia[0].SCSI.ModeSense10 = new DumpType
+ sidecar.BlockMedias[0].SCSI.ModeSense10 = new Dump
{
- Checksums = Checksum.GetChecksums(buffer).ToArray(),
+ Checksums = Checksum.GetChecksums(buffer),
Size = (ulong)buffer.Length
};
@@ -384,7 +386,7 @@ public sealed partial class Sidecar
// If there is only one track, and it's the same as the image file (e.g. ".iso" files), don't re-checksum.
if(image.Id == new Guid("12345678-AAAA-BBBB-CCCC-123456789000") &&
filterId == new Guid("12345678-AAAA-BBBB-CCCC-123456789000"))
- sidecar.BlockMedia[0].ContentChecksums = sidecar.BlockMedia[0].Checksums;
+ sidecar.BlockMedias[0].ContentChecksums = sidecar.BlockMedias[0].Checksums;
else
{
UpdateStatus(Localization.Core.Hashing_sectors);
@@ -448,42 +450,40 @@ public sealed partial class Sidecar
// For fast debugging, skip checksum
//skipImageChecksum:
- List cntChecksums = contentChkWorker.End();
-
- sidecar.BlockMedia[0].ContentChecksums = cntChecksums.ToArray();
+ sidecar.BlockMedias[0].ContentChecksums = contentChkWorker.End();
EndProgress2();
}
(string type, string subType) diskType = MediaType.MediaTypeToString(image.Info.MediaType);
- sidecar.BlockMedia[0].DiskType = diskType.type;
- sidecar.BlockMedia[0].DiskSubType = diskType.subType;
+ sidecar.BlockMedias[0].MediaType = diskType.type;
+ sidecar.BlockMedias[0].MediaSubType = diskType.subType;
Statistics.AddMedia(image.Info.MediaType, false);
- sidecar.BlockMedia[0].Dimensions = Dimensions.DimensionsFromMediaType(image.Info.MediaType);
+ sidecar.BlockMedias[0].Dimensions = Dimensions.DimensionsFromMediaType(image.Info.MediaType);
- sidecar.BlockMedia[0].LogicalBlocks = image.Info.Sectors;
- sidecar.BlockMedia[0].LogicalBlockSize = image.Info.SectorSize;
+ sidecar.BlockMedias[0].LogicalBlocks = image.Info.Sectors;
+ sidecar.BlockMedias[0].LogicalBlockSize = image.Info.SectorSize;
// TODO: Detect it
- sidecar.BlockMedia[0].PhysicalBlockSize = image.Info.SectorSize;
+ sidecar.BlockMedias[0].PhysicalBlockSize = image.Info.SectorSize;
if(image is ITapeImage { IsTape: true } tapeImage)
{
- List tapePartitions = new();
+ List tapePartitions = new();
- foreach(TapePartition tapePartition in tapeImage.TapePartitions)
+ foreach(CommonTypes.Structs.TapePartition tapePartition in tapeImage.TapePartitions)
{
- var thisPartition = new TapePartitionType
+ var thisPartition = new TapePartition
{
- Image = sidecar.BlockMedia[0].Image,
+ Image = sidecar.BlockMedias[0].Image,
Sequence = tapePartition.Number,
StartBlock = tapePartition.FirstBlock,
EndBlock = tapePartition.LastBlock
};
if(tapeImage.TapePartitions.Count == 1)
- thisPartition.Checksums = sidecar.BlockMedia[0].ContentChecksums;
+ thisPartition.Checksums = sidecar.BlockMedias[0].ContentChecksums;
else
{
UpdateStatus(string.Format(Localization.Core.Hashing_partition_0, tapePartition.Number));
@@ -560,23 +560,22 @@ public sealed partial class Sidecar
// For fast debugging, skip checksum
//skipImageChecksum:
- List partitionChecksums = tapePartitionChk.End();
-
- thisPartition.Checksums = partitionChecksums.ToArray();
+ thisPartition.Checksums = tapePartitionChk.End();
EndProgress2();
}
- List filesInPartition = new();
+ List filesInPartition = new();
- foreach(TapeFile tapeFile in tapeImage.Files.Where(f => f.Partition == tapePartition.Number))
+ foreach(CommonTypes.Structs.TapeFile tapeFile in
+ tapeImage.Files.Where(f => f.Partition == tapePartition.Number))
{
- var thisFile = new TapeFileType
+ var thisFile = new TapeFile
{
Sequence = tapeFile.File,
StartBlock = tapeFile.FirstBlock,
EndBlock = tapeFile.LastBlock,
- Image = sidecar.BlockMedia[0].Image,
+ Image = sidecar.BlockMedias[0].Image,
Size = 0,
BlockSize = 0
};
@@ -666,9 +665,7 @@ public sealed partial class Sidecar
// For fast debugging, skip checksum
//skipImageChecksum:
- List fileChecksums = tapeFileChk.End();
-
- thisFile.Checksums = fileChecksums.ToArray();
+ thisFile.Checksums = tapeFileChk.End();
EndProgress2();
}
@@ -676,11 +673,11 @@ public sealed partial class Sidecar
filesInPartition.Add(thisFile);
}
- thisPartition.File = filesInPartition.ToArray();
+ thisPartition.File = filesInPartition;
tapePartitions.Add(thisPartition);
}
- sidecar.BlockMedia[0].TapeInformation = tapePartitions.ToArray();
+ sidecar.BlockMedias[0].TapeInformation = tapePartitions;
}
UpdateStatus(Localization.Core.Checking_filesystems);
@@ -691,28 +688,26 @@ public sealed partial class Sidecar
List partitions = Partitions.GetAll(image);
Partitions.AddSchemesToStats(partitions);
- sidecar.BlockMedia[0].FileSystemInformation = new PartitionType[1];
+ sidecar.BlockMedias[0].FileSystemInformation = new List();
if(partitions.Count > 0)
{
- sidecar.BlockMedia[0].FileSystemInformation = new PartitionType[partitions.Count];
-
- for(int i = 0; i < partitions.Count; i++)
+ foreach(Partition partition in partitions)
{
if(_aborted)
return;
- sidecar.BlockMedia[0].FileSystemInformation[i] = new PartitionType
+ var fsInfo = new CommonTypes.AaruMetadata.Partition
{
- Description = partitions[i].Description,
- EndSector = partitions[i].End,
- Name = partitions[i].Name,
- Sequence = (uint)partitions[i].Sequence,
- StartSector = partitions[i].Start,
- Type = partitions[i].Type
+ Description = partition.Description,
+ EndSector = partition.End,
+ Name = partition.Name,
+ Sequence = (uint)partition.Sequence,
+ StartSector = partition.Start,
+ Type = partition.Type
};
- List lstFs = new();
+ List lstFs = new();
foreach(IFilesystem plugin in plugins.PluginsList.Values)
try
@@ -720,23 +715,23 @@ public sealed partial class Sidecar
if(_aborted)
return;
- if(!plugin.Identify(image, partitions[i]))
+ if(!plugin.Identify(image, partition))
continue;
if(plugin is IReadOnlyFilesystem fsPlugin &&
- fsPlugin.Mount(image, partitions[i], encoding, null, null) == ErrorNumber.NoError)
+ fsPlugin.Mount(image, partition, encoding, null, null) == ErrorNumber.NoError)
{
- UpdateStatus(string.Format(Localization.Core.Mounting_0, fsPlugin.XmlFsType.Type));
+ UpdateStatus(string.Format(Localization.Core.Mounting_0, fsPlugin.Metadata.Type));
- fsPlugin.XmlFsType.Contents = Files(fsPlugin);
+ fsPlugin.Metadata.Contents = Files(fsPlugin);
fsPlugin.Unmount();
}
else
- plugin.GetInformation(image, partitions[i], out _, encoding);
+ plugin.GetInformation(image, partition, out _, encoding);
- lstFs.Add(plugin.XmlFsType);
- Statistics.AddFilesystem(plugin.XmlFsType.Type);
+ lstFs.Add(plugin.Metadata);
+ Statistics.AddFilesystem(plugin.Metadata.Type);
}
#pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body
catch
@@ -746,7 +741,9 @@ public sealed partial class Sidecar
}
if(lstFs.Count > 0)
- sidecar.BlockMedia[0].FileSystemInformation[i].FileSystems = lstFs.ToArray();
+ fsInfo.FileSystems = lstFs;
+
+ sidecar.BlockMedias[0].FileSystemInformation.Add(fsInfo);
}
}
else
@@ -754,7 +751,7 @@ public sealed partial class Sidecar
if(_aborted)
return;
- sidecar.BlockMedia[0].FileSystemInformation[0] = new PartitionType
+ var fsInfo = new CommonTypes.AaruMetadata.Partition
{
StartSector = 0,
EndSector = image.Info.Sectors - 1
@@ -767,7 +764,7 @@ public sealed partial class Sidecar
Size = image.Info.Sectors * image.Info.SectorSize
};
- List lstFs = new();
+ List lstFs = new();
foreach(IFilesystem plugin in plugins.PluginsList.Values)
try
@@ -781,17 +778,17 @@ public sealed partial class Sidecar
if(plugin is IReadOnlyFilesystem fsPlugin &&
fsPlugin.Mount(image, wholePart, encoding, null, null) == ErrorNumber.NoError)
{
- UpdateStatus(string.Format(Localization.Core.Mounting_0, fsPlugin.XmlFsType.Type));
+ UpdateStatus(string.Format(Localization.Core.Mounting_0, fsPlugin.Metadata.Type));
- fsPlugin.XmlFsType.Contents = Files(fsPlugin);
+ fsPlugin.Metadata.Contents = Files(fsPlugin);
fsPlugin.Unmount();
}
else
plugin.GetInformation(image, wholePart, out _, encoding);
- lstFs.Add(plugin.XmlFsType);
- Statistics.AddFilesystem(plugin.XmlFsType.Type);
+ lstFs.Add(plugin.Metadata);
+ Statistics.AddFilesystem(plugin.Metadata.Type);
}
#pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body
catch
@@ -801,7 +798,9 @@ public sealed partial class Sidecar
}
if(lstFs.Count > 0)
- sidecar.BlockMedia[0].FileSystemInformation[0].FileSystems = lstFs.ToArray();
+ fsInfo.FileSystems = lstFs;
+
+ sidecar.BlockMedias[0].FileSystemInformation.Add(fsInfo);
}
UpdateStatus(Localization.Core.Saving_metadata);
@@ -809,12 +808,9 @@ public sealed partial class Sidecar
if(image.Info.Cylinders > 0 &&
image.Info is { Heads: > 0, SectorsPerTrack: > 0 })
{
- sidecar.BlockMedia[0].CylindersSpecified = true;
- sidecar.BlockMedia[0].HeadsSpecified = true;
- sidecar.BlockMedia[0].SectorsPerTrackSpecified = true;
- sidecar.BlockMedia[0].Cylinders = image.Info.Cylinders;
- sidecar.BlockMedia[0].Heads = (ushort)image.Info.Heads;
- sidecar.BlockMedia[0].SectorsPerTrack = image.Info.SectorsPerTrack;
+ sidecar.BlockMedias[0].Cylinders = image.Info.Cylinders;
+ sidecar.BlockMedias[0].Heads = (ushort)image.Info.Heads;
+ sidecar.BlockMedias[0].SectorsPerTrack = image.Info.SectorsPerTrack;
}
if(image.Info.ReadableMediaTags.Contains(MediaTagType.ATA_IDENTIFY))
@@ -830,28 +826,21 @@ public sealed partial class Sidecar
ataId.Value.CurrentHeads > 0 &&
ataId.Value.CurrentSectorsPerTrack > 0)
{
- sidecar.BlockMedia[0].CylindersSpecified = true;
- sidecar.BlockMedia[0].HeadsSpecified = true;
- sidecar.BlockMedia[0].SectorsPerTrackSpecified = true;
- sidecar.BlockMedia[0].Cylinders = ataId.Value.CurrentCylinders;
- sidecar.BlockMedia[0].Heads = ataId.Value.CurrentHeads;
- sidecar.BlockMedia[0].SectorsPerTrack = ataId.Value.CurrentSectorsPerTrack;
+ sidecar.BlockMedias[0].Cylinders = ataId.Value.CurrentCylinders;
+ sidecar.BlockMedias[0].Heads = ataId.Value.CurrentHeads;
+ sidecar.BlockMedias[0].SectorsPerTrack = ataId.Value.CurrentSectorsPerTrack;
}
else if(ataId.Value.Cylinders > 0 &&
ataId.Value.Heads > 0 &&
ataId.Value.SectorsPerTrack > 0)
{
- sidecar.BlockMedia[0].CylindersSpecified = true;
- sidecar.BlockMedia[0].HeadsSpecified = true;
- sidecar.BlockMedia[0].SectorsPerTrackSpecified = true;
- sidecar.BlockMedia[0].Cylinders = ataId.Value.Cylinders;
- sidecar.BlockMedia[0].Heads = ataId.Value.Heads;
- sidecar.BlockMedia[0].SectorsPerTrack = ataId.Value.SectorsPerTrack;
+ sidecar.BlockMedias[0].Cylinders = ataId.Value.Cylinders;
+ sidecar.BlockMedias[0].Heads = ataId.Value.Heads;
+ sidecar.BlockMedias[0].SectorsPerTrack = ataId.Value.SectorsPerTrack;
}
}
- if(image.DumpHardware != null)
- sidecar.BlockMedia[0].DumpHardwareArray = image.DumpHardware.ToArray();
+ sidecar.BlockMedias[0].DumpHardware = image.DumpHardware;
// TODO: This is more of a hack, redo it planned for >4.0
string trkFormat = null;
@@ -1009,24 +998,24 @@ public sealed partial class Sidecar
(image.Info.Heads == 1 && scpImage.Header.heads is 1 or 2))
if(scpImage.Header.end + 1 >= image.Info.Cylinders)
{
- List scpBlockTrackTypes = new();
- ulong currentSector = 0;
- Stream scpStream = scpFilter.GetDataForkStream();
+ List scpBlockTrackTypes = new();
+ ulong currentSector = 0;
+ Stream scpStream = scpFilter.GetDataForkStream();
for(byte t = scpImage.Header.start; t <= scpImage.Header.end; t++)
{
if(_aborted)
return;
- var scpBlockTrackType = new BlockTrackType
+ var scpBlockTrackType = new BlockTrack
{
Cylinder = t / image.Info.Heads,
Head = (ushort)(t % image.Info.Heads),
- Image = new ImageType
+ Image = new Image
{
- format = scpImage.Format,
+ Format = scpImage.Format,
Value = Path.GetFileName(scpFilePath),
- offset = scpImage.Header.offsets[t]
+ Offset = scpImage.Header.offsets[t]
}
};
@@ -1049,14 +1038,14 @@ public sealed partial class Sidecar
scpStream.Position = scpImage.Header.offsets[t];
scpStream.EnsureRead(trackContents, 0, trackContents.Length);
scpBlockTrackType.Size = (ulong)trackContents.Length;
- scpBlockTrackType.Checksums = Checksum.GetChecksums(trackContents).ToArray();
+ scpBlockTrackType.Checksums = Checksum.GetChecksums(trackContents);
}
scpBlockTrackTypes.Add(scpBlockTrackType);
}
- sidecar.BlockMedia[0].Track = scpBlockTrackTypes.OrderBy(t => t.Cylinder).
- ThenBy(t => t.Head).ToArray();
+ sidecar.BlockMedias[0].Track = scpBlockTrackTypes.OrderBy(t => t.Cylinder).
+ ThenBy(t => t.Head).ToList();
}
else
AaruConsole.
@@ -1115,7 +1104,7 @@ public sealed partial class Sidecar
if(kfImage.Info.Heads == image.Info.Heads)
if(kfImage.Info.Cylinders >= image.Info.Cylinders)
{
- List kfBlockTrackTypes = new();
+ List kfBlockTrackTypes = new();
ulong currentSector = 0;
@@ -1124,18 +1113,18 @@ public sealed partial class Sidecar
if(_aborted)
return;
- var kfBlockTrackType = new BlockTrackType
+ var kfBlockTrackType = new BlockTrack
{
Cylinder = kvp.Key / image.Info.Heads,
Head = (ushort)(kvp.Key % image.Info.Heads),
- Image = new ImageType
+ Image = new Image
{
- format = kfImage.Format,
+ Format = kfImage.Format,
Value = kfDir
? Path.
Combine(Path.GetFileName(Path.GetDirectoryName(kvp.Value.BasePath)),
kvp.Value.Filename) : kvp.Value.Filename,
- offset = 0
+ Offset = 0
}
};
@@ -1154,13 +1143,13 @@ public sealed partial class Sidecar
kfStream.Position = 0;
kfStream.EnsureRead(trackContents, 0, trackContents.Length);
kfBlockTrackType.Size = (ulong)trackContents.Length;
- kfBlockTrackType.Checksums = Checksum.GetChecksums(trackContents).ToArray();
+ kfBlockTrackType.Checksums = Checksum.GetChecksums(trackContents);
kfBlockTrackTypes.Add(kfBlockTrackType);
}
- sidecar.BlockMedia[0].Track = kfBlockTrackTypes.OrderBy(t => t.Cylinder).
- ThenBy(t => t.Head).ToArray();
+ sidecar.BlockMedias[0].Track = kfBlockTrackTypes.OrderBy(t => t.Cylinder).
+ ThenBy(t => t.Head).ToList();
}
else
AaruConsole.
@@ -1202,22 +1191,22 @@ public sealed partial class Sidecar
if(image.Info.Heads == dfiImage.Info.Heads)
if(dfiImage.Info.Cylinders >= image.Info.Cylinders)
{
- List dfiBlockTrackTypes = new();
- ulong currentSector = 0;
- Stream dfiStream = dfiFilter.GetDataForkStream();
+ List dfiBlockTrackTypes = new();
+ ulong currentSector = 0;
+ Stream dfiStream = dfiFilter.GetDataForkStream();
foreach(int t in dfiImage.TrackOffsets.Keys)
{
if(_aborted)
return;
- var dfiBlockTrackType = new BlockTrackType
+ var dfiBlockTrackType = new BlockTrack
{
Cylinder = (uint)(t / image.Info.Heads),
Head = (ushort)(t % image.Info.Heads),
- Image = new ImageType
+ Image = new Image
{
- format = dfiImage.Format,
+ Format = dfiImage.Format,
Value = Path.GetFileName(dfiFilePath)
}
};
@@ -1235,18 +1224,18 @@ public sealed partial class Sidecar
if(dfiImage.TrackOffsets.TryGetValue(t, out long offset) &&
dfiImage.TrackLengths.TryGetValue(t, out long length))
{
- dfiBlockTrackType.Image.offset = (ulong)offset;
+ dfiBlockTrackType.Image.Offset = (ulong)offset;
byte[] trackContents = new byte[length];
dfiStream.Position = offset;
dfiStream.EnsureRead(trackContents, 0, trackContents.Length);
dfiBlockTrackType.Size = (ulong)trackContents.Length;
- dfiBlockTrackType.Checksums = Checksum.GetChecksums(trackContents).ToArray();
+ dfiBlockTrackType.Checksums = Checksum.GetChecksums(trackContents);
}
dfiBlockTrackTypes.Add(dfiBlockTrackType);
}
- sidecar.BlockMedia[0].Track = dfiBlockTrackTypes.OrderBy(t => t.Cylinder).ThenBy(t => t.Head).ToArray();
+ sidecar.BlockMedias[0].Track = dfiBlockTrackTypes.OrderBy(t => t.Cylinder).ThenBy(t => t.Head).ToList();
}
else
AaruConsole.
diff --git a/Aaru.Core/Sidecar/BlockTape.cs b/Aaru.Core/Sidecar/BlockTape.cs
index afb31b48d..bdb6731d6 100644
--- a/Aaru.Core/Sidecar/BlockTape.cs
+++ b/Aaru.Core/Sidecar/BlockTape.cs
@@ -32,8 +32,8 @@
using System.Collections.Generic;
using System.IO;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.Helpers;
-using Schemas;
namespace Aaru.Core;
@@ -44,37 +44,35 @@ public sealed partial class Sidecar
/// List of files
/// Dump path
/// Expected block size in bytes
- public CICMMetadataType BlockTape(string folderName, List files, uint blockSize)
+ public Metadata BlockTape(string folderName, List files, uint blockSize)
{
- _sidecar = new CICMMetadataType
+ _sidecar = new Metadata
{
- BlockMedia = new[]
+ BlockMedias = new List
{
- new BlockMediaType
+ new()
{
- Image = new ImageType
+ Image = new Image
{
- format = "Directory",
- offsetSpecified = false,
- Value = folderName
+ Format = "Directory",
+ Value = folderName
},
- Sequence = new SequenceType
+ Sequence = new Sequence
{
- MediaTitle = folderName,
+ Title = folderName,
MediaSequence = 1,
TotalMedia = 1
},
PhysicalBlockSize = blockSize,
LogicalBlockSize = blockSize,
- TapeInformation = new[]
+ TapeInformation = new List
{
- new TapePartitionType
+ new()
{
- Image = new ImageType
+ Image = new Image
{
- format = "Directory",
- offsetSpecified = false,
- Value = folderName
+ Format = "Directory",
+ Value = folderName
}
}
}
@@ -85,10 +83,10 @@ public sealed partial class Sidecar
if(_aborted)
return _sidecar;
- ulong currentBlock = 0;
- ulong totalSize = 0;
- var tapeWorker = new Checksum();
- List tapeFiles = new();
+ ulong currentBlock = 0;
+ ulong totalSize = 0;
+ var tapeWorker = new Checksum();
+ List tapeFiles = new();
UpdateStatus(Localization.Core.Hashing_files);
@@ -100,12 +98,12 @@ public sealed partial class Sidecar
_fs = new FileStream(files[i], FileMode.Open, FileAccess.Read);
var fileWorker = new Checksum();
- var tapeFile = new TapeFileType
+ var tapeFile = new TapeFile
{
- Image = new ImageType
+ Image = new Image
{
- format = "Raw disk image (sector by sector copy)",
- offset = 0,
+ Format = "Raw disk image (sector by sector copy)",
+ Offset = 0,
Value = Path.GetFileName(files[i])
},
Size = (ulong)_fs.Length,
@@ -159,92 +157,92 @@ public sealed partial class Sidecar
tapeFile.EndBlock = tapeFile.StartBlock + sectors - 1;
currentBlock += sectors;
totalSize += (ulong)_fs.Length;
- tapeFile.Checksums = fileWorker.End().ToArray();
+ tapeFile.Checksums = fileWorker.End();
tapeFiles.Add(tapeFile);
EndProgress2();
}
UpdateStatus("Setting metadata...");
- _sidecar.BlockMedia[0].Checksums = tapeWorker.End().ToArray();
- _sidecar.BlockMedia[0].ContentChecksums = _sidecar.BlockMedia[0].Checksums;
- _sidecar.BlockMedia[0].Size = totalSize;
- _sidecar.BlockMedia[0].LogicalBlocks = currentBlock;
- _sidecar.BlockMedia[0].TapeInformation[0].EndBlock = currentBlock - 1;
- _sidecar.BlockMedia[0].TapeInformation[0].Size = totalSize;
- _sidecar.BlockMedia[0].TapeInformation[0].Checksums = _sidecar.BlockMedia[0].Checksums;
- _sidecar.BlockMedia[0].TapeInformation[0].File = tapeFiles.ToArray();
+ _sidecar.BlockMedias[0].Checksums = tapeWorker.End();
+ _sidecar.BlockMedias[0].ContentChecksums = _sidecar.BlockMedias[0].Checksums;
+ _sidecar.BlockMedias[0].Size = totalSize;
+ _sidecar.BlockMedias[0].LogicalBlocks = currentBlock;
+ _sidecar.BlockMedias[0].TapeInformation[0].EndBlock = currentBlock - 1;
+ _sidecar.BlockMedias[0].TapeInformation[0].Size = totalSize;
+ _sidecar.BlockMedias[0].TapeInformation[0].Checksums = _sidecar.BlockMedias[0].Checksums;
+ _sidecar.BlockMedias[0].TapeInformation[0].File = tapeFiles;
// This is purely for convenience, as typically these kind of data represents QIC tapes
if(blockSize == 512)
{
- _sidecar.BlockMedia[0].DiskType = "Quarter-inch cartridge";
+ _sidecar.BlockMedias[0].MediaType = "Quarter-inch cartridge";
switch(totalSize)
{
case <= 20 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-11";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-11";
break;
case <= 40 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-40";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-40";
break;
case <= 60 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-24";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-24";
break;
case <= 80 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-80";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-80";
break;
case <= 120 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-120";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-120";
break;
case <= 150 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-150";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-150";
break;
case <= 320 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-320";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-320";
break;
case <= 340 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-3010";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-3010";
break;
case <= 525 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-525";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-525";
break;
case <= 670 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-3020";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-3020";
break;
case <= 1200 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-3080";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-3080";
break;
case <= 1350 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-1350";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-1350";
break;
case <= (long)4000 * 1048576:
- _sidecar.BlockMedia[0].DiskSubType = "QIC-3095";
+ _sidecar.BlockMedias[0].MediaSubType = "QIC-3095";
break;
default:
- _sidecar.BlockMedia[0].DiskType = "Unknown tape";
- _sidecar.BlockMedia[0].DiskSubType = "Unknown tape";
+ _sidecar.BlockMedias[0].MediaType = "Unknown tape";
+ _sidecar.BlockMedias[0].MediaSubType = "Unknown tape";
break;
}
}
else
{
- _sidecar.BlockMedia[0].DiskType = "Unknown tape";
- _sidecar.BlockMedia[0].DiskSubType = "Unknown tape";
+ _sidecar.BlockMedias[0].MediaType = "Unknown tape";
+ _sidecar.BlockMedias[0].MediaSubType = "Unknown tape";
}
return _sidecar;
diff --git a/Aaru.Core/Sidecar/Files.cs b/Aaru.Core/Sidecar/Files.cs
index 63d97ea23..5196ed83f 100644
--- a/Aaru.Core/Sidecar/Files.cs
+++ b/Aaru.Core/Sidecar/Files.cs
@@ -34,27 +34,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Structs;
using Aaru.Console;
-using Schemas;
namespace Aaru.Core;
public sealed partial class Sidecar
{
- FilesystemContentsType Files(IReadOnlyFilesystem filesystem)
+ FilesystemContents Files(IReadOnlyFilesystem filesystem)
{
- var contents = new FilesystemContentsType();
+ var contents = new FilesystemContents();
ErrorNumber ret = filesystem.ReadDir("/", out List dirents);
if(ret != ErrorNumber.NoError)
return null;
- List directories = new();
- List files = new();
+ List directories = new();
+ List files = new();
foreach(string dirent in dirents)
{
@@ -78,86 +78,40 @@ public sealed partial class Sidecar
}
if(files.Count > 0)
- contents.File = files.OrderBy(f => f.name).ToArray();
+ contents.Files = files.OrderBy(f => f.Name).ToList();
if(directories.Count > 0)
- contents.Directory = directories.OrderBy(d => d.name).ToArray();
+ contents.Directories = directories.OrderBy(d => d.Name).ToList();
return contents;
}
- DirectoryType SidecarDirectory(IReadOnlyFilesystem filesystem, string path, string filename, FileEntryInfo stat)
+ Directory SidecarDirectory(IReadOnlyFilesystem filesystem, string path, string filename, FileEntryInfo stat)
{
- var directory = new DirectoryType();
-
- if(stat.AccessTimeUtc.HasValue)
+ var directory = new Directory
{
- directory.accessTime = stat.AccessTimeUtc.Value;
- directory.accessTimeSpecified = true;
- }
-
- directory.attributes = (ulong)stat.Attributes;
-
- if(stat.BackupTimeUtc.HasValue)
- {
- directory.backupTime = stat.BackupTimeUtc.Value;
- directory.backupTimeSpecified = true;
- }
-
- if(stat.CreationTimeUtc.HasValue)
- {
- directory.creationTime = stat.CreationTimeUtc.Value;
- directory.creationTimeSpecified = true;
- }
-
- if(stat.DeviceNo.HasValue)
- {
- directory.deviceNumber = stat.DeviceNo.Value;
- directory.deviceNumberSpecified = true;
- }
-
- directory.inode = stat.Inode;
-
- if(stat.LastWriteTimeUtc.HasValue)
- {
- directory.lastWriteTime = stat.LastWriteTimeUtc.Value;
- directory.lastWriteTimeSpecified = true;
- }
-
- directory.links = stat.Links;
- directory.name = filename;
-
- if(stat.GID.HasValue)
- {
- directory.posixGroupId = stat.GID.Value;
- directory.posixGroupIdSpecified = true;
- }
-
- if(stat.Mode.HasValue)
- {
- directory.posixMode = stat.Mode.Value;
- directory.posixModeSpecified = true;
- }
-
- if(stat.UID.HasValue)
- {
- directory.posixUserId = stat.UID.Value;
- directory.posixUserIdSpecified = true;
- }
-
- if(stat.StatusChangeTimeUtc.HasValue)
- {
- directory.statusChangeTime = stat.StatusChangeTimeUtc.Value;
- directory.statusChangeTimeSpecified = true;
- }
+ AccessTime = stat.AccessTimeUtc,
+ Attributes = (ulong)stat.Attributes,
+ BackupTime = stat.BackupTimeUtc,
+ CreationTime = stat.CreationTimeUtc,
+ DeviceNumber = stat.DeviceNo,
+ Inode = stat.Inode,
+ LastWriteTime = stat.LastWriteTimeUtc,
+ Links = stat.Links,
+ Name = filename,
+ PosixGroupId = stat.GID,
+ PosixMode = stat.Mode,
+ PosixUserId = stat.UID,
+ StatusChangeTime = stat.StatusChangeTimeUtc
+ };
ErrorNumber ret = filesystem.ReadDir(path + "/" + filename, out List dirents);
if(ret != ErrorNumber.NoError)
return null;
- List directories = new();
- List files = new();
+ List directories = new();
+ List files = new();
foreach(string dirent in dirents)
{
@@ -181,80 +135,35 @@ public sealed partial class Sidecar
}
if(files.Count > 0)
- directory.File = files.OrderBy(f => f.name).ToArray();
+ directory.Files = files.OrderBy(f => f.Name).ToList();
if(directories.Count > 0)
- directory.Directory = directories.OrderBy(d => d.name).ToArray();
+ directory.Directories = directories.OrderBy(d => d.Name).ToList();
return directory;
}
- ContentsFileType SidecarFile(IReadOnlyFilesystem filesystem, string path, string filename, FileEntryInfo stat)
+ ContentsFile SidecarFile(IReadOnlyFilesystem filesystem, string path, string filename, FileEntryInfo stat)
{
- var file = new ContentsFileType();
var fileChkWorker = new Checksum();
- if(stat.AccessTimeUtc.HasValue)
+ var file = new ContentsFile
{
- file.accessTime = stat.AccessTimeUtc.Value;
- file.accessTimeSpecified = true;
- }
-
- file.attributes = (ulong)stat.Attributes;
-
- if(stat.BackupTimeUtc.HasValue)
- {
- file.backupTime = stat.BackupTimeUtc.Value;
- file.backupTimeSpecified = true;
- }
-
- if(stat.CreationTimeUtc.HasValue)
- {
- file.creationTime = stat.CreationTimeUtc.Value;
- file.creationTimeSpecified = true;
- }
-
- if(stat.DeviceNo.HasValue)
- {
- file.deviceNumber = stat.DeviceNo.Value;
- file.deviceNumberSpecified = true;
- }
-
- file.inode = stat.Inode;
-
- if(stat.LastWriteTimeUtc.HasValue)
- {
- file.lastWriteTime = stat.LastWriteTimeUtc.Value;
- file.lastWriteTimeSpecified = true;
- }
-
- file.length = (ulong)stat.Length;
- file.links = stat.Links;
- file.name = filename;
-
- if(stat.GID.HasValue)
- {
- file.posixGroupId = stat.GID.Value;
- file.posixGroupIdSpecified = true;
- }
-
- if(stat.Mode.HasValue)
- {
- file.posixMode = stat.Mode.Value;
- file.posixModeSpecified = true;
- }
-
- if(stat.UID.HasValue)
- {
- file.posixUserId = stat.UID.Value;
- file.posixUserIdSpecified = true;
- }
-
- if(stat.StatusChangeTimeUtc.HasValue)
- {
- file.statusChangeTime = stat.StatusChangeTimeUtc.Value;
- file.statusChangeTimeSpecified = true;
- }
+ AccessTime = stat.AccessTimeUtc,
+ Attributes = (ulong)stat.Attributes,
+ BackupTime = stat.BackupTimeUtc,
+ CreationTime = stat.CreationTimeUtc,
+ DeviceNumber = stat.DeviceNo,
+ Inode = stat.Inode,
+ LastWriteTime = stat.LastWriteTimeUtc,
+ Length = (ulong)stat.Length,
+ Links = stat.Links,
+ Name = filename,
+ PosixGroupId = stat.GID,
+ PosixMode = stat.Mode,
+ PosixUserId = stat.UID,
+ StatusChangeTime = stat.StatusChangeTimeUtc
+ };
byte[] data = Array.Empty();
@@ -288,7 +197,7 @@ public sealed partial class Sidecar
EndProgress2();
- file.Checksums = fileChkWorker.End().ToArray();
+ file.Checksums = fileChkWorker.End();
}
else
file.Checksums = _emptyChecksums;
@@ -298,7 +207,7 @@ public sealed partial class Sidecar
if(ret != ErrorNumber.NoError)
return file;
- List xattrTypes = new();
+ List xattrTypes = new();
foreach(string xattr in xattrs)
{
@@ -310,16 +219,16 @@ public sealed partial class Sidecar
var xattrChkWorker = new Checksum();
xattrChkWorker.Update(data);
- xattrTypes.Add(new ExtendedAttributeType
+ xattrTypes.Add(new ExtendedAttribute
{
- Checksums = xattrChkWorker.End().ToArray(),
- length = (ulong)data.Length,
- name = xattr
+ Checksums = xattrChkWorker.End(),
+ Length = (ulong)data.Length,
+ Name = xattr
});
}
if(xattrTypes.Count > 0)
- file.ExtendedAttributes = xattrTypes.OrderBy(x => x.name).ToArray();
+ file.ExtendedAttributes = xattrTypes.OrderBy(x => x.Name).ToList();
return file;
}
diff --git a/Aaru.Core/Sidecar/LinearMedia.cs b/Aaru.Core/Sidecar/LinearMedia.cs
index 9fd217563..1682b4d2d 100644
--- a/Aaru.Core/Sidecar/LinearMedia.cs
+++ b/Aaru.Core/Sidecar/LinearMedia.cs
@@ -35,8 +35,8 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Interfaces;
-using Schemas;
namespace Aaru.Core;
@@ -53,18 +53,17 @@ public sealed partial class Sidecar
/// Metadata sidecar
/// Encoding to be used for filesystem plugins
static void LinearMedia(IByteAddressableImage image, Guid filterId, string imagePath, FileInfo fi,
- PluginBase plugins, List imgChecksums, ref CICMMetadataType sidecar,
- Encoding encoding) => sidecar.LinearMedia = new[]
+ PluginBase plugins, List imgChecksums,
+ ref Metadata sidecar, Encoding encoding) => sidecar.LinearMedias = new List
{
- new LinearMediaType
+ new()
{
- Checksums = imgChecksums.ToArray(),
- Image = new ImageType
+ Checksums = imgChecksums,
+ Image = new Image
{
- format = image.Format,
- offset = 0,
- offsetSpecified = true,
- Value = Path.GetFileName(imagePath)
+ Format = image.Format,
+ Offset = 0,
+ Value = Path.GetFileName(imagePath)
},
Size = image.Info.Sectors
}
diff --git a/Aaru.Core/Sidecar/OpticalDisc.cs b/Aaru.Core/Sidecar/OpticalDisc.cs
index f33a589b3..9fbd6b51c 100644
--- a/Aaru.Core/Sidecar/OpticalDisc.cs
+++ b/Aaru.Core/Sidecar/OpticalDisc.cs
@@ -36,18 +36,19 @@ using System.IO;
using System.Linq;
using System.Text;
using Aaru.CommonTypes;
+using Aaru.CommonTypes.AaruMetadata;
using Aaru.CommonTypes.Enums;
using Aaru.CommonTypes.Interfaces;
using Aaru.CommonTypes.Metadata;
-using Aaru.CommonTypes.Structs;
-using Aaru.Core.Devices.Dumping;
using Aaru.Decoders.CD;
using Aaru.Decoders.DVD;
-using Schemas;
using DMI = Aaru.Decoders.Xbox.DMI;
+using Dump = Aaru.Core.Devices.Dumping.Dump;
using MediaType = Aaru.CommonTypes.MediaType;
+using Partition = Aaru.CommonTypes.Partition;
using Session = Aaru.CommonTypes.Structs.Session;
-using TrackType = Schemas.TrackType;
+using Track = Aaru.CommonTypes.Structs.Track;
+using TrackType = Aaru.CommonTypes.Enums.TrackType;
namespace Aaru.Core;
@@ -63,27 +64,26 @@ public sealed partial class Sidecar
/// Metadata sidecar
/// Encoding to be used for filesystem plugins
void OpticalDisc(IOpticalMediaImage image, Guid filterId, string imagePath, FileInfo fi, PluginBase plugins,
- List imgChecksums, ref CICMMetadataType sidecar, Encoding encoding)
+ List imgChecksums, ref Metadata sidecar, Encoding encoding)
{
if(_aborted)
return;
- sidecar.OpticalDisc = new[]
+ sidecar.OpticalDiscs = new List
{
- new OpticalDiscType
+ new()
{
- Checksums = imgChecksums.ToArray(),
- Image = new ImageType
+ Checksums = imgChecksums,
+ Image = new Image
{
- format = image.Format,
- offset = 0,
- offsetSpecified = true,
- Value = Path.GetFileName(imagePath)
+ Format = image.Format,
+ Offset = 0,
+ Value = Path.GetFileName(imagePath)
},
Size = (ulong)fi.Length,
- Sequence = new SequenceType
+ Sequence = new Sequence
{
- MediaTitle = image.Info.MediaTitle
+ Title = image.Info.MediaTitle
}
}
};
@@ -91,13 +91,13 @@ public sealed partial class Sidecar
if(image.Info.MediaSequence != 0 &&
image.Info.LastMediaSequence != 0)
{
- sidecar.OpticalDisc[0].Sequence.MediaSequence = (uint)image.Info.MediaSequence;
- sidecar.OpticalDisc[0].Sequence.TotalMedia = (uint)image.Info.LastMediaSequence;
+ sidecar.OpticalDiscs[0].Sequence.MediaSequence = (uint)image.Info.MediaSequence;
+ sidecar.OpticalDiscs[0].Sequence.TotalMedia = (uint)image.Info.LastMediaSequence;
}
else
{
- sidecar.OpticalDisc[0].Sequence.MediaSequence = 1;
- sidecar.OpticalDisc[0].Sequence.TotalMedia = 1;
+ sidecar.OpticalDiscs[0].Sequence.MediaSequence = 1;
+ sidecar.OpticalDiscs[0].Sequence.TotalMedia = 1;
}
MediaType dskType = image.Info.MediaType;
@@ -134,7 +134,7 @@ public sealed partial class Sidecar
{
dskType = MediaType.XGD;
- sidecar.OpticalDisc[0].Dimensions = new DimensionsType
+ sidecar.OpticalDiscs[0].Dimensions = new DimensionsNew
{
Diameter = 120,
Thickness = 1.2
@@ -144,7 +144,7 @@ public sealed partial class Sidecar
{
dskType = MediaType.XGD2;
- sidecar.OpticalDisc[0].Dimensions = new DimensionsType
+ sidecar.OpticalDiscs[0].Dimensions = new DimensionsNew
{
Diameter = 120,
Thickness = 1.2
@@ -194,29 +194,25 @@ public sealed partial class Sidecar
pfi.Value.DiscSize == DVDSize.OneTwenty)
dskType = MediaType.WOD;
- sidecar.OpticalDisc[0].Dimensions = new DimensionsType();
+ sidecar.OpticalDiscs[0].Dimensions = new DimensionsNew();
if(dskType == MediaType.UMD)
{
- sidecar.OpticalDisc[0].Dimensions.Height = 64;
- sidecar.OpticalDisc[0].Dimensions.HeightSpecified = true;
- sidecar.OpticalDisc[0].Dimensions.Width = 63;
- sidecar.OpticalDisc[0].Dimensions.WidthSpecified = true;
- sidecar.OpticalDisc[0].Dimensions.Thickness = 4;
+ sidecar.OpticalDiscs[0].Dimensions.Height = 64;
+ sidecar.OpticalDiscs[0].Dimensions.Width = 63;
+ sidecar.OpticalDiscs[0].Dimensions.Thickness = 4;
}
else
switch(pfi.Value.DiscSize)
{
case DVDSize.Eighty:
- sidecar.OpticalDisc[0].Dimensions.Diameter = 80;
- sidecar.OpticalDisc[0].Dimensions.DiameterSpecified = true;
- sidecar.OpticalDisc[0].Dimensions.Thickness = 1.2;
+ sidecar.OpticalDiscs[0].Dimensions.Diameter = 80;
+ sidecar.OpticalDiscs[0].Dimensions.Thickness = 1.2;
break;
case DVDSize.OneTwenty:
- sidecar.OpticalDisc[0].Dimensions.Diameter = 120;
- sidecar.OpticalDisc[0].Dimensions.DiameterSpecified = true;
- sidecar.OpticalDisc[0].Dimensions.Thickness = 1.2;
+ sidecar.OpticalDiscs[0].Dimensions.Diameter = 120;
+ sidecar.OpticalDiscs[0].Dimensions.Thickness = 1.2;
break;
}
@@ -229,26 +225,26 @@ public sealed partial class Sidecar
try
{
List sessions = image.Sessions;
- sidecar.OpticalDisc[0].Sessions = (uint)(sessions?.Count ?? 1);
+ sidecar.OpticalDiscs[0].Sessions = (uint)(sessions?.Count ?? 1);
}
catch
{
- sidecar.OpticalDisc[0].Sessions = 1;
+ sidecar.OpticalDiscs[0].Sessions = 1;
}
- List