From d2c24f9fb16d13657cf949ee97a35ffedaf2f1f9 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 15 Dec 2022 15:20:09 +0000 Subject: [PATCH] Add AaruMetadata. --- Aaru.CommonTypes.csproj | 19 ++- AaruMetadata/ATA.cs | 49 ++++++ AaruMetadata/AaruMetadata.cs | 81 +++++++++ AaruMetadata/Advertisement.cs | 60 +++++++ AaruMetadata/Architecture.cs | 79 +++++++++ AaruMetadata/AudioMedia.cs | 71 ++++++++ AaruMetadata/AudioVideo.cs | 153 +++++++++++++++++ AaruMetadata/Barcode.cs | 64 +++++++ AaruMetadata/BlockMedia.cs | 98 +++++++++++ AaruMetadata/Book.cs | 59 +++++++ AaruMetadata/Checksum.cs | 63 +++++++ AaruMetadata/Contents.cs | 98 +++++++++++ AaruMetadata/Dimensions.cs | 52 ++++++ AaruMetadata/Dump.cs | 78 +++++++++ AaruMetadata/DumpHardware.cs | 68 ++++++++ AaruMetadata/FileSystem.cs | 68 ++++++++ AaruMetadata/Language.cs | 213 ++++++++++++++++++++++++ AaruMetadata/Layers.cs | 69 ++++++++ AaruMetadata/LinearMedia.cs | 67 ++++++++ AaruMetadata/Magazine.cs | 59 +++++++ AaruMetadata/MultiMediaCard.cs | 52 ++++++ AaruMetadata/OpticalDisc.cs | 150 +++++++++++++++++ AaruMetadata/PCI.cs | 55 ++++++ AaruMetadata/PCMCIA.cs | 55 ++++++ AaruMetadata/PS3.cs | 50 ++++++ AaruMetadata/Partition.cs | 55 ++++++ AaruMetadata/ReleaseType.cs | 52 ++++++ AaruMetadata/RequiredOperatingSystem.cs | 50 ++++++ AaruMetadata/SCSI.cs | 61 +++++++ AaruMetadata/Scanning.cs | 135 +++++++++++++++ AaruMetadata/SecureDigital.cs | 52 ++++++ AaruMetadata/Sequence.cs | 53 ++++++ AaruMetadata/Tape.cs | 66 ++++++++ AaruMetadata/USB.cs | 51 ++++++ AaruMetadata/UserManual.cs | 52 ++++++ AaruMetadata/Xbox.cs | 58 +++++++ 36 files changed, 2606 insertions(+), 9 deletions(-) create mode 100644 AaruMetadata/ATA.cs create mode 100644 AaruMetadata/AaruMetadata.cs create mode 100644 AaruMetadata/Advertisement.cs create mode 100644 AaruMetadata/Architecture.cs create mode 100644 AaruMetadata/AudioMedia.cs create mode 100644 AaruMetadata/AudioVideo.cs create mode 100644 AaruMetadata/Barcode.cs create mode 100644 AaruMetadata/BlockMedia.cs create mode 100644 AaruMetadata/Book.cs create mode 100644 AaruMetadata/Checksum.cs create mode 100644 AaruMetadata/Contents.cs create mode 100644 AaruMetadata/Dimensions.cs create mode 100644 AaruMetadata/Dump.cs create mode 100644 AaruMetadata/DumpHardware.cs create mode 100644 AaruMetadata/FileSystem.cs create mode 100644 AaruMetadata/Language.cs create mode 100644 AaruMetadata/Layers.cs create mode 100644 AaruMetadata/LinearMedia.cs create mode 100644 AaruMetadata/Magazine.cs create mode 100644 AaruMetadata/MultiMediaCard.cs create mode 100644 AaruMetadata/OpticalDisc.cs create mode 100644 AaruMetadata/PCI.cs create mode 100644 AaruMetadata/PCMCIA.cs create mode 100644 AaruMetadata/PS3.cs create mode 100644 AaruMetadata/Partition.cs create mode 100644 AaruMetadata/ReleaseType.cs create mode 100644 AaruMetadata/RequiredOperatingSystem.cs create mode 100644 AaruMetadata/SCSI.cs create mode 100644 AaruMetadata/Scanning.cs create mode 100644 AaruMetadata/SecureDigital.cs create mode 100644 AaruMetadata/Sequence.cs create mode 100644 AaruMetadata/Tape.cs create mode 100644 AaruMetadata/USB.cs create mode 100644 AaruMetadata/UserManual.cs create mode 100644 AaruMetadata/Xbox.cs diff --git a/Aaru.CommonTypes.csproj b/Aaru.CommonTypes.csproj index e36a1c4..7553bb4 100644 --- a/Aaru.CommonTypes.csproj +++ b/Aaru.CommonTypes.csproj @@ -33,8 +33,8 @@ CS1591;CS1574 - - + + $(Version)+{chash:8} @@ -42,10 +42,11 @@ true - - - - + + + + + @@ -53,9 +54,9 @@ - - - + + + diff --git a/AaruMetadata/ATA.cs b/AaruMetadata/ATA.cs new file mode 100644 index 0000000..3392e39 --- /dev/null +++ b/AaruMetadata/ATA.cs @@ -0,0 +1,49 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : ATA.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class ATA +{ + public Dump Identify { get; set; } +} diff --git a/AaruMetadata/AaruMetadata.cs b/AaruMetadata/AaruMetadata.cs new file mode 100644 index 0000000..da913d7 --- /dev/null +++ b/AaruMetadata/AaruMetadata.cs @@ -0,0 +1,81 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : AaruMetadata.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System; +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class MetadataJson +{ + public Metadata AaruMetadata { get; set; } +} + +public class Metadata +{ + public List Developers { get; set; } + public List Publishers { get; set; } + public List Authors { get; set; } + public List Performers { get; set; } + public string Name { get; set; } + public string Version { get; set; } + public ReleaseType? Release { get; set; } + public DateTime? ReleaseDate { get; set; } + public List Barcodes { get; set; } + public string PartNumber { get; set; } + public string SerialNumber { get; set; } + public List Keywords { get; set; } + public List Magazines { get; set; } + public List Books { get; set; } + public List Categories { get; set; } + public List Subcategories { get; set; } + public List Languages { get; set; } + public List Systems { get; set; } + public List Architectures { get; set; } + public List RequiredOperatingSystems { get; set; } + public List UserManuals { get; set; } + public List OpticalDiscs { get; set; } + public List Advertisements { get; set; } + public List LinearMedias { get; set; } + public List PciCards { get; set; } + public List BlockMedias { get; set; } + public List AudioMedia { get; set; } +} \ No newline at end of file diff --git a/AaruMetadata/Advertisement.cs b/AaruMetadata/Advertisement.cs new file mode 100644 index 0000000..309f8fa --- /dev/null +++ b/AaruMetadata/Advertisement.cs @@ -0,0 +1,60 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Advertisement.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Advertisement +{ + public string Manufacturer { get; set; } + public string Product { get; set; } + public File File { get; set; } + public ulong FileSize { get; set; } + public ulong? Frames { get; set; } + public double Duration { get; set; } + public float? MeanFrameRate { get; set; } + public List Checksums { get; set; } + public List AudioTracks { get; set; } + public List VideoTracks { get; set; } + public List SubtitleTracks { get; set; } + public Recording Recording { get; set; } +} diff --git a/AaruMetadata/Architecture.cs b/AaruMetadata/Architecture.cs new file mode 100644 index 0000000..7355fd0 --- /dev/null +++ b/AaruMetadata/Architecture.cs @@ -0,0 +1,79 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Architecture.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Text.Json.Serialization; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +[JsonConverter(typeof(JsonStringEnumMemberConverter))] +public enum Architecture +{ + [JsonPropertyName("4004")] + _4004, [JsonPropertyName("4040")] + _4040, [JsonPropertyName("6502")] + _6502, [JsonPropertyName("65816")] + _65816, [JsonPropertyName("8008")] + _8008, [JsonPropertyName("8051")] + _8051, [JsonPropertyName("8080")] + _8080, [JsonPropertyName("8085")] + _8085, Aarch64, Am29000, Amd64, + Apx432, Arm, Avr, + Avr32, Axp, Clipper, + Cray, Esa390, Hobbit, + I86, I860, I960, + Ia32, Ia64, M56K, + M6800, M6801, M6805, + M6809, M68K, M88K, + Mcs41, Mcs48, Mips32, + Mips64, Msp430, Nios2, + Openrisc, Parisc, PDP1, + PDP10, PDP11, PDP7, + PDP8, Pic, Power, + Ppc, Ppc64, Prism, + Renesasrx, Riscv, S360, + S370, Sh, Sh1, + Sh2, Sh3, Sh4, + Sh5, Sh64, Sparc, + Sparc64, Transputer, Vax, + We32000, X32, Z80, + Z800, Z8000, Z80000, + Zarch +} diff --git a/AaruMetadata/AudioMedia.cs b/AaruMetadata/AudioMedia.cs new file mode 100644 index 0000000..cdb2e4a --- /dev/null +++ b/AaruMetadata/AudioMedia.cs @@ -0,0 +1,71 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : AudioMedia.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class AudioMedia +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public List Checksums { get; set; } + public Sequence Sequence { get; set; } + public string PartNumber { get; set; } + public string SerialNumber { get; set; } + public string Manufacturer { get; set; } + public string Model { get; set; } + public string AccoustID { get; set; } + public List Blocks { get; set; } + public string CopyProtection { get; set; } + public DimensionsNew Dimensions { get; set; } + public Scans Scans { get; set; } + public List DumpHardware { get; set; } +} + +public class AudioBlock +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public string AccoustID { get; set; } + public List Checksums { get; set; } + public string Format { get; set; } +} diff --git a/AaruMetadata/AudioVideo.cs b/AaruMetadata/AudioVideo.cs new file mode 100644 index 0000000..324076c --- /dev/null +++ b/AaruMetadata/AudioVideo.cs @@ -0,0 +1,153 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : AudioVideo.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Text.Json.Serialization; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class AudioTrack +{ + public List Languages { get; set; } + public uint Number { get; set; } + public string AccoustID { get; set; } + public string Codec { get; set; } + public uint Channels { get; set; } + public double SampleRate { get; set; } + public long MeanBitrate { get; set; } +} + +public class VideoTrack +{ + public List Languages { get; set; } + public uint Number { get; set; } + public string Codec { get; set; } + public uint Horizontal { get; set; } + public uint Vertical { get; set; } + public long MeanBitrate { get; set; } + [JsonPropertyName("3D")] + public bool ThreeD { get; set; } +} + +public class SubtitleTrack +{ + public List Languages { get; set; } + public uint Number { get; set; } + public string Codec { get; set; } +} + +public class Recording +{ + public string Broadcaster { get; set; } + public string BroadcastPlatform { get; set; } + public SourceFormat SourceFormat { get; set; } + public DateTime Timestamp { get; set; } + public List Software { get; set; } + public Coordinates Coordinates { get; set; } +} + +public class Coordinates +{ + public double Latitude { get; set; } + public double Longitude { get; set; } +} + +[JsonConverter(typeof(JsonStringEnumMemberConverter)), SuppressMessage("ReSharper", "InconsistentNaming")] +public enum SourceFormat +{ + [JsonPropertyName("ITU-A")] + ITUA, [JsonPropertyName("ITU-B")] + ITUB, [JsonPropertyName("ITU-C")] + ITUC, [JsonPropertyName("ITU-D")] + ITUD, [JsonPropertyName("ITU-E")] + ITUE, [JsonPropertyName("ITU-F")] + ITUF, [JsonPropertyName("ITU-G")] + ITUG, [JsonPropertyName("ITU-H")] + ITUH, [JsonPropertyName("ITU-I")] + ITUI, [JsonPropertyName("ITU-J")] + ITUJ, [JsonPropertyName("ITU-K")] + ITUK, [JsonPropertyName("ITU-L")] + ITUL, [JsonPropertyName("ITU-M")] + ITUM, [JsonPropertyName("ITU-N")] + ITUN, [JsonPropertyName("PAL-B")] + PALB, [JsonPropertyName("SECAM-B")] + SECAMB, [JsonPropertyName("PAL-D")] + PALD, [JsonPropertyName("SECAM-D")] + SECAMD, [JsonPropertyName("PAL-G")] + PALG, [JsonPropertyName("SECAM-G")] + SECAMG, [JsonPropertyName("PAL-H")] + PALH, [JsonPropertyName("PAL-I")] + PALI, [JsonPropertyName("PAL-K")] + PALK, [JsonPropertyName("SECAM-K")] + SECAMK, [JsonPropertyName("NTSC-M")] + NTSCM, [JsonPropertyName("PAL-N")] + PALN, [JsonPropertyName("PAL-M")] + PALM, [JsonPropertyName("SECAM-M")] + SECAMM, MUSE, PALplus, FM, + AM, COFDM, [JsonPropertyName("CAM-D")] + CAMD, DAB, [JsonPropertyName("DAB+")] + DAB1, DRM, [JsonPropertyName("DRM+")] + DRM1, FMeXtra, ATSC, ATSC2, + ATSC3, [JsonPropertyName("ATSC-M/H")] + ATSCMH, [JsonPropertyName("DVB-T")] + DVBT, [JsonPropertyName("DVB-T2")] + DVBT2, [JsonPropertyName("DVB-S")] + DVBS, [JsonPropertyName("DVB-S2")] + DVBS2, [JsonPropertyName("DVB-S2X")] + DVBS2X, [JsonPropertyName("DVB-C")] + DVBC, [JsonPropertyName("DVB-C2")] + DVBC2, [JsonPropertyName("DVB-H")] + DVBH, [JsonPropertyName("DVB-NGH")] + DVBNGH, [JsonPropertyName("DVB-SH")] + DVBSH, [JsonPropertyName("ISDB-T")] + ISDBT, [JsonPropertyName("ISDB-Tb")] + ISDBTb, [JsonPropertyName("ISDB-S")] + ISDBS, [JsonPropertyName("ISDB-C")] + ISDBC, [JsonPropertyName("1seg")] + Item1seg, DTMB, CCMB, [JsonPropertyName("T-DMB")] + TDMB, [JsonPropertyName("S-DMB")] + SDMB, IPTV, [JsonPropertyName("DVB-MT")] + DVBMT, [JsonPropertyName("DVB-MC")] + DVBMC, [JsonPropertyName("DVB-MS")] + DVBMS, ADR, SDR +} diff --git a/AaruMetadata/Barcode.cs b/AaruMetadata/Barcode.cs new file mode 100644 index 0000000..cde1ad0 --- /dev/null +++ b/AaruMetadata/Barcode.cs @@ -0,0 +1,64 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Barcode.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public enum BarcodeType +{ + Aztec, Codabar, Code11, + Code128, Code39, Code93, + CPC_Binary, EZcode, FIM, + ITF, ITF14, EAN13, + EAN8, MaxiCode, ISBN, + ISRC, MSI, ShotCode, + RM4SCC, QR, EAN5, + EAN2, POSTNET, PostBar, + Plessey, Pharmacode, PDF417, + PatchCode +} + +public class Barcode +{ + public BarcodeType Type { get; set; } + public string Value { get; set; } +} diff --git a/AaruMetadata/BlockMedia.cs b/AaruMetadata/BlockMedia.cs new file mode 100644 index 0000000..4b31fe9 --- /dev/null +++ b/AaruMetadata/BlockMedia.cs @@ -0,0 +1,98 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : BlockMedia.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class BlockMedia +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public List Checksums { get; set; } + public List ContentChecksums { get; set; } + public Sequence Sequence { get; set; } + public string Manufacturer { get; set; } + public string Model { get; set; } + public string Serial { get; set; } + public string Firmware { get; set; } + public string PartNumber { get; set; } + public string SerialNumber { get; set; } + public uint PhysicalBlockSize { get; set; } + public uint LogicalBlockSize { get; set; } + public ulong LogicalBlocks { get; set; } + public List VariableBlockSize { get; set; } + public List TapeInformation { get; set; } + public Scans Scans { get; set; } + public ATA ATA { get; set; } + public Pci Pci { get; set; } + public Pcmcia Pcmcia { get; set; } + public SecureDigital SecureDigital { get; set; } + public MultiMediaCard MultiMediaCard { get; set; } + public SCSI SCSI { get; set; } + public Usb Usb { get; set; } + public Dump Mam { get; set; } + public ushort? Heads { get; set; } + public uint? Cylinders { get; set; } + public ulong? SectorsPerTrack { get; set; } + public List Track { get; set; } + public string CopyProtection { get; set; } + public DimensionsNew Dimensions { get; set; } + public List FileSystemInformation { get; set; } + public List DumpHardware { get; set; } + public string DiskType { get; set; } + public string DiskSubType { get; set; } + public string Interface { get; set; } +} + +public class BlockTrack +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public ushort Head { get; set; } + public uint Cylinder { get; set; } + public ulong StartSector { get; set; } + public ulong EndSector { get; set; } + public ulong Sectors { get; set; } + public uint BytesPerSector { get; set; } + public List Checksums { get; set; } + public string Format { get; set; } +} diff --git a/AaruMetadata/Book.cs b/AaruMetadata/Book.cs new file mode 100644 index 0000000..98006a7 --- /dev/null +++ b/AaruMetadata/Book.cs @@ -0,0 +1,59 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Book.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System; +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Book +{ + public List Barcodes { get; set; } + public Cover Cover { get; set; } + public string Name { get; set; } + public string Editorial { get; set; } + public string Author { get; set; } + public DateTime? PublicationDate { get; set; } + public List Languages { get; set; } + public uint? Pages { get; set; } + public string PageSize { get; set; } + public Scan Scan { get; set; } +} diff --git a/AaruMetadata/Checksum.cs b/AaruMetadata/Checksum.cs new file mode 100644 index 0000000..3427416 --- /dev/null +++ b/AaruMetadata/Checksum.cs @@ -0,0 +1,63 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Checksum.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Checksum +{ + public ChecksumType Type { get; set; } + public string Value { get; set; } +} + +public enum ChecksumType +{ + Fletcher16, Fletcher32, Adler32, + CRC16, CRC16Ccitt, CRC32, + CRC64, Md4, Md5, + Dm6, Ripemd128, Ripemd160, + Ripemed320, Sha1, Sha224, + Sha256, Sha384, Sha512, + Sha3, Skein, Snefru, + Blake256, Blake512, Tiger, + Whirlpool, SpamSum +} diff --git a/AaruMetadata/Contents.cs b/AaruMetadata/Contents.cs new file mode 100644 index 0000000..15d99d5 --- /dev/null +++ b/AaruMetadata/Contents.cs @@ -0,0 +1,98 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Contents.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System; +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class FilesystemContents +{ + public List Files { get; set; } + public List Directories { get; set; } + public string Namespace { get; set; } +} + +public class ContentsFile +{ + public List Checksums { get; set; } + public List ExtendedAttributes { get; set; } + public string Name { get; set; } + public DateTime? CreationTime { get; set; } + public DateTime? AccessTime { get; set; } + public DateTime? StatusChangeTime { get; set; } + public DateTime? BackupTime { get; set; } + public DateTime? LastWriteTime { get; set; } + public ulong Attributes { get; set; } + public uint? PosixMode { get; set; } + public ulong? DeviceNumber { get; set; } + public ulong? PosixGroupId { get; set; } + public ulong Inode { get; set; } + public ulong Links { get; set; } + public ulong? PosixUserId { get; set; } + public ulong Length { get; set; } +} + +public class ExtendedAttribute +{ + public List Checksums { get; set; } + public string Name { get; set; } + public ulong Length { get; set; } +} + +public class Directory +{ + public List Files { get; set; } + public List Directories { get; set; } + public string Name { get; set; } + public DateTime? CreationTime { get; set; } + public DateTime? AccessTime { get; set; } + public DateTime? StatusChangeTime { get; set; } + public DateTime? BackupTime { get; set; } + public DateTime? LastWriteTime { get; set; } + public ulong Attributes { get; set; } + public uint? PosixMode { get; set; } + public ulong? DeviceNumber { get; set; } + public ulong? PosixGroupId { get; set; } + public ulong? Inode { get; set; } + public ulong? Links { get; set; } + public ulong? PosixUserId { get; set; } +} diff --git a/AaruMetadata/Dimensions.cs b/AaruMetadata/Dimensions.cs new file mode 100644 index 0000000..8b71cef --- /dev/null +++ b/AaruMetadata/Dimensions.cs @@ -0,0 +1,52 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Dimensions.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class DimensionsNew +{ + public double? Diameter { get; set; } + public double? Height { get; set; } + public double? Width { get; set; } + public double Thickness { get; set; } +} diff --git a/AaruMetadata/Dump.cs b/AaruMetadata/Dump.cs new file mode 100644 index 0000000..318d2e4 --- /dev/null +++ b/AaruMetadata/Dump.cs @@ -0,0 +1,78 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Dump.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Image +{ + public string Format { get; set; } + public ulong? Offset { get; set; } + public string Value { get; set; } +} + +public class Dump +{ + public string Image { get; set; } + public ulong Size { get; set; } + public List Checksums { get; set; } +} + +public class Border +{ + public string Image { get; set; } + public ulong Size { get; set; } + public List Checksums { get; set; } + public uint? Session { get; set; } +} + +public class File +{ + public string Format { get; set; } + public string Value { get; set; } +} + +public class BlockSize +{ + public uint StartingBlock { get; set; } + public uint Value { get; set; } +} \ No newline at end of file diff --git a/AaruMetadata/DumpHardware.cs b/AaruMetadata/DumpHardware.cs new file mode 100644 index 0000000..85ef97f --- /dev/null +++ b/AaruMetadata/DumpHardware.cs @@ -0,0 +1,68 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : DumpHardware.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class DumpHardware +{ + public string Manufacturer { get; set; } + public string Model { get; set; } + public string Revision { get; set; } + public string Firmware { get; set; } + public string Serial { get; set; } + public List Extents { get; set; } + public Software Software { get; set; } +} + +public class Extent +{ + public ulong Start { get; set; } + public ulong End { get; set; } +} + +public class Software +{ + public string Name { get; set; } + public string Version { get; set; } + public string OperatingSystem { get; set; } +} diff --git a/AaruMetadata/FileSystem.cs b/AaruMetadata/FileSystem.cs new file mode 100644 index 0000000..8c59c32 --- /dev/null +++ b/AaruMetadata/FileSystem.cs @@ -0,0 +1,68 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : FileSystem.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class FileSystem +{ + public string Type { get; set; } + public DateTime? CreationDate { get; set; } + public DateTime? ModificationDate { get; set; } + public DateTime? BackupDate { get; set; } + public uint ClusterSize { get; set; } + public ulong Clusters { get; set; } + public ulong? Files { get; set; } + public bool Bootable { get; set; } + public string VolumeSerial { get; set; } + public string VolumeName { get; set; } + public ulong? FreeClusters { get; set; } + public bool Dirty { get; set; } + public DateTime? ExpirationDate { get; set; } + public DateTime? EffectiveDate { get; set; } + public string SystemIdentifier { get; set; } + public string VolumeSetIdentifier { get; set; } + public string PublisherIdentifier { get; set; } + public string DataPreparerIdentifier { get; set; } + public string ApplicationIdentifier { get; set; } + public FilesystemContents Contents { get; set; } +} diff --git a/AaruMetadata/Language.cs b/AaruMetadata/Language.cs new file mode 100644 index 0000000..0a75eee --- /dev/null +++ b/AaruMetadata/Language.cs @@ -0,0 +1,213 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Language.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Diagnostics.CodeAnalysis; +using System.Text.Json.Serialization; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +[JsonConverter(typeof(JsonStringEnumMemberConverter)), SuppressMessage("ReSharper", "InconsistentNaming")] +public enum Language +{ + aar, abk, ace, + ach, ada, ady, + afa, afh, afr, + ain, aka, akk, + alb, ale, alg, + alt, amh, ang, + anp, apa, ara, + arc, arg, arm, + arn, arp, art, + arw, asm, ast, + ath, aus, ava, + ave, awa, aym, + aze, bad, bai, + bak, bal, bam, + ban, baq, bas, + bat, bej, bel, + bem, ben, ber, + bho, bih, bik, + bin, bis, bla, + bnt, bos, bra, + bre, btk, bua, + bug, bul, bur, + byn, cad, cai, + car, cat, cau, + ceb, cel, cha, + chb, che, chg, + chi, chk, chm, + chn, cho, chp, + chr, chu, chv, + chy, cmc, cop, + cor, cos, cpe, + cpf, cpp, cre, + crh, crp, csb, + cus, cze, dak, + dan, dar, day, + del, den, dgr, + din, div, doi, + dra, dsb, dua, + dum, dut, dyu, + dzo, efi, egy, + eka, elx, eng, + enm, epo, est, + ewe, ewo, fan, + fao, fat, fij, + fil, fin, fiu, + fon, fre, frm, + fro, frr, frs, + fry, ful, fur, + gaa, gay, gba, + gem, geo, ger, + gez, gil, gla, + gle, glg, glv, + gmh, goh, gon, + gor, got, grb, + grc, gre, grn, + gsw, guj, gwi, + hai, hat, hau, + haw, heb, her, + hil, him, hin, + hit, hmn, hmo, + hrv, hsb, hun, + hup, iba, ibo, + ice, ido, iii, + ijo, iku, ile, + ilo, ina, inc, + ind, ine, inh, + ipk, ira, iro, + ita, jav, jbo, + jpn, jpr, jrb, + kaa, kab, kac, + kal, kam, kan, + kar, kas, kau, + kaw, kaz, kbd, + kha, khi, khm, + kho, kik, kin, + kir, kmb, kok, + kom, kon, kor, + kos, kpe, krc, + krl, kro, kru, + kua, kum, kur, + kut, lad, lah, + lam, lao, lat, + lav, lez, lim, + lin, lit, lol, + loz, ltz, lua, + lub, lug, lui, + lun, luo, lus, + mac, mad, mag, + mah, mai, mak, + mal, man, mao, + map, mar, mas, + may, mdf, mdr, + men, mga, mic, + min, mis, mkh, + mlg, mlt, mnc, + mni, mno, moh, + mon, mos, mul, + mun, mus, mwl, + mwr, myn, myv, + nah, nai, nap, + nau, nav, nbl, + nde, ndo, nds, + nep, @new, nia, + nic, niu, nno, + nob, nog, non, + nor, nqo, nso, + nub, nwc, nya, + nym, nyn, nyo, + nzi, oci, oji, + ori, orm, osa, + oss, ota, oto, + paa, pag, pal, + pam, pan, pap, + pau, peo, per, + phi, phn, pli, + pol, pon, por, + pra, pro, pus, + [JsonPropertyName("qaa-qtz")] + qaaqtz, que, raj, rap, + rar, roa, roh, + rom, rum, run, + rup, rus, sad, + sag, sah, sai, + sal, sam, san, + sas, sat, scn, + sco, sel, sem, + sga, sgn, shn, + sid, sin, sio, + sit, sla, slo, + slv, sma, sme, + smi, smj, smn, + smo, sms, sna, + snd, snk, sog, + som, son, sot, + spa, srd, srn, + srp, srr, ssa, + ssw, suk, sun, + sus, sux, swa, + swe, syc, syr, + tah, tai, tam, + tat, tel, tem, + ter, tet, tgk, + tgl, tha, tib, + tig, tir, tiv, + tkl, tlh, tli, + tmh, tog, ton, + tpi, tsi, tsn, + tso, tuk, tum, + tup, tur, tut, + tvl, twi, tyv, + udm, uga, uig, + ukr, umb, und, + urd, uzb, vai, + ven, vie, vol, + vot, wak, wal, + war, was, wel, + wen, wln, wol, + xal, xho, yao, + yap, yid, yor, + ypk, zap, zbl, + zen, zgh, zha, + znd, zul, zun, + zxx, zza +} \ No newline at end of file diff --git a/AaruMetadata/Layers.cs b/AaruMetadata/Layers.cs new file mode 100644 index 0000000..fa4074d --- /dev/null +++ b/AaruMetadata/Layers.cs @@ -0,0 +1,69 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Layers.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Layers +{ + public List Sectors { get; set; } + public LayerType? Type { get; set; } +} + +[SuppressMessage("ReSharper", "InconsistentNaming")] +public enum LayerType +{ + PTP, OTP +} + +public class LayeredText +{ + public uint? Layer { get; set; } + public string Text { get; set; } +} + +public class Sectors +{ + public uint? Layer { get; set; } + public ulong Value { get; set; } +} diff --git a/AaruMetadata/LinearMedia.cs b/AaruMetadata/LinearMedia.cs new file mode 100644 index 0000000..66ff648 --- /dev/null +++ b/AaruMetadata/LinearMedia.cs @@ -0,0 +1,67 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : LinearMedia.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class LinearMedia +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public List ImageChecksums { get; set; } + public List Checksums { get; set; } + public string PartNumber { get; set; } + public string SerialNumber { get; set; } + public string Title { get; set; } + public uint? Sequence { get; set; } + public uint? ImageInterleave { get; set; } + public uint? Interleave { get; set; } + public string Manufacturer { get; set; } + public string Model { get; set; } + public string Package { get; set; } + public string Interface { get; set; } + public DimensionsNew Dimensions { get; set; } + public Scans Scans { get; set; } + public List DumpHardware { get; set; } + public Pcmcia Pcmcia { get; set; } + public string CopyProtection { get; set; } +} diff --git a/AaruMetadata/Magazine.cs b/AaruMetadata/Magazine.cs new file mode 100644 index 0000000..d4924f0 --- /dev/null +++ b/AaruMetadata/Magazine.cs @@ -0,0 +1,59 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Magazine.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System; +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Magazine +{ + public List Barcodes { get; set; } + public Cover Cover { get; set; } + public string Name { get; set; } + public string Editorial { get; set; } + public DateTime? PublicationDate { get; set; } + public uint? Number { get; set; } + public List Languages { get; set; } + public uint? Pages { get; set; } + public string PageSize { get; set; } + public Scan Scan { get; set; } +} diff --git a/AaruMetadata/MultiMediaCard.cs b/AaruMetadata/MultiMediaCard.cs new file mode 100644 index 0000000..59a08cf --- /dev/null +++ b/AaruMetadata/MultiMediaCard.cs @@ -0,0 +1,52 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : MultiMediaCard.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class MultiMediaCard +{ + public Dump CID { get; set; } + public Dump CSD { get; set; } + public Dump ExtendedCSD { get; set; } + public Dump OCR { get; set; } +} diff --git a/AaruMetadata/OpticalDisc.cs b/AaruMetadata/OpticalDisc.cs new file mode 100644 index 0000000..70a4b6d --- /dev/null +++ b/AaruMetadata/OpticalDisc.cs @@ -0,0 +1,150 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : OpticalDisc.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class OpticalDisc +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public Sequence Sequence { get; set; } + public Layers Layers { get; set; } + public List Checksums { get; set; } + public string PartNumber { get; set; } + public string SerialNumber { get; set; } + public List RingCode { get; set; } + public List MasteringSid { get; set; } + public List Toolstamp { get; set; } + public List MouldSid { get; set; } + public List MouldText { get; set; } + public string DiscType { get; set; } + public string DiscSubType { get; set; } + public int? Offset { get; set; } + public uint[] Tracks { get; set; } + public uint Sessions { get; set; } + public string CopyProtection { get; set; } + public DimensionsNew Dimensions { get; set; } + public Case Case { get; set; } + public Scans Scans { get; set; } + public Dump Pfi { get; set; } + public Dump Dmi { get; set; } + public Dump Cmi { get; set; } + public Dump Bca { get; set; } + public Dump Atip { get; set; } + public Dump Adip { get; set; } + public Dump Pma { get; set; } + public Dump Dds { get; set; } + public Dump Sai { get; set; } + public Dump LastRmd { get; set; } + public Dump Pri { get; set; } + public Dump MediaID { get; set; } + public Dump Pfir { get; set; } + public Dump Dcb { get; set; } + public Dump Di { get; set; } + public Dump Pac { get; set; } + public Dump Toc { get; set; } + public Dump LeadInCdText { get; set; } + public List FirstTrackPregrap { get; set; } + public List LeadIn { get; set; } + public List LeadOut { get; set; } + public Xbox Xbox { get; set; } + public Ps3Encryption Ps3Encryption { get; set; } + public string MediaCatalogueNumber { get; set; } + public List Track { get; set; } + public List DumpHardware { get; set; } +} + +public class Track +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public TrackSequence Sequence { get; set; } + public string StartMsf { get; set; } + public string EndMsf { get; set; } + public ulong StartSector { get; set; } + public ulong EndSector { get; set; } + public List Indexes { get; set; } + public TrackFlags Flags { get; set; } + public string ISRC { get; set; } + public TrackType Type { get; set; } + public uint BytesPerSector { get; set; } + public string AccoustID { get; set; } + public List Checksums { get; set; } + public SubChannel SubChannel { get; set; } + public List FileSystemInformation { get; set; } +} + +public class TrackSequence +{ + public uint Number { get; set; } + public uint Session { get; set; } +} + +public class TrackIndex +{ + public ushort Index { get; set; } + public int Value { get; set; } +} + +public class TrackFlags +{ + public bool Quadraphonic { get; set; } + public bool Data { get; set; } + public bool CopyPermitted { get; set; } + public bool PreEmphasis { get; set; } +} + +public enum TrackType +{ + Audio, Mode0, Mode1, + Mode2, Mode2Form1, Mode2Form2, + Dvd, HdDvd, Bluray, + Ddcd +} + +public class SubChannel +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public List Checksums { get; set; } +} diff --git a/AaruMetadata/PCI.cs b/AaruMetadata/PCI.cs new file mode 100644 index 0000000..f9f14a0 --- /dev/null +++ b/AaruMetadata/PCI.cs @@ -0,0 +1,55 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : PCI.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Pci +{ + public ushort VendorID { get; set; } + + public ushort DeviceID { get; set; } + + public Dump Configuration { get; set; } + + public LinearMedia ExpansionRom { get; set; } +} diff --git a/AaruMetadata/PCMCIA.cs b/AaruMetadata/PCMCIA.cs new file mode 100644 index 0000000..a287f3e --- /dev/null +++ b/AaruMetadata/PCMCIA.cs @@ -0,0 +1,55 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : PCMCIA.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Pcmcia +{ + public Dump Cis { get; set; } + public string Compliance { get; set; } + public ushort? ManufacturerCode { get; set; } + public ushort? CardCode { get; set; } + public string Manufacturer { get; set; } + public string ProductName { get; set; } + public List AdditionalInformation { get; set; } +} diff --git a/AaruMetadata/PS3.cs b/AaruMetadata/PS3.cs new file mode 100644 index 0000000..73b6065 --- /dev/null +++ b/AaruMetadata/PS3.cs @@ -0,0 +1,50 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : PS3.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Ps3Encryption +{ + public string Key { get; set; } + public string Serial { get; set; } +} diff --git a/AaruMetadata/Partition.cs b/AaruMetadata/Partition.cs new file mode 100644 index 0000000..811f0b3 --- /dev/null +++ b/AaruMetadata/Partition.cs @@ -0,0 +1,55 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Partition.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Partition +{ + public uint Sequence { get; set; } + public string Name { get; set; } + public string Type { get; set; } + public ulong StartSector { get; set; } + public ulong EndSector { get; set; } + public string Description { get; set; } + public List FileSystems { get; set; } +} diff --git a/AaruMetadata/ReleaseType.cs b/AaruMetadata/ReleaseType.cs new file mode 100644 index 0000000..fe47a71 --- /dev/null +++ b/AaruMetadata/ReleaseType.cs @@ -0,0 +1,52 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : ReleaseType.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public enum ReleaseType +{ + Retail, Bundle, Coverdisc, + Subscription, Demo, OEM, + Shareware, FOSS, Adware, + Donationware, DigitalDownload, SaaS +} diff --git a/AaruMetadata/RequiredOperatingSystem.cs b/AaruMetadata/RequiredOperatingSystem.cs new file mode 100644 index 0000000..8dcc4f5 --- /dev/null +++ b/AaruMetadata/RequiredOperatingSystem.cs @@ -0,0 +1,50 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : RequiredOperatingSystem.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class RequiredOperatingSystem +{ + public string Name { get; set; } + public List Versions { get; set; } +} diff --git a/AaruMetadata/SCSI.cs b/AaruMetadata/SCSI.cs new file mode 100644 index 0000000..50f667f --- /dev/null +++ b/AaruMetadata/SCSI.cs @@ -0,0 +1,61 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : SCSI.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class SCSI +{ + public Dump Inquiry { get; set; } + public List Evpds { get; set; } + public Dump ModeSense { get; set; } + public Dump ModeSense10 { get; set; } + public Dump LogSense { get; set; } +} + +public class Evpd +{ + public string Image { get; set; } + public ulong Size { get; set; } + public List Checksums { get; set; } + public byte? Page { get; set; } +} diff --git a/AaruMetadata/Scanning.cs b/AaruMetadata/Scanning.cs new file mode 100644 index 0000000..5715608 --- /dev/null +++ b/AaruMetadata/Scanning.cs @@ -0,0 +1,135 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Scanning.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Scan +{ + public File File { get; set; } + public List Checksums { get; set; } + public List Scanner { get; set; } + public List ScanProcessing { get; set; } + public List OCR { get; set; } +} + +public class Cover +{ + public File File { get; set; } + public List Checksums { get; set; } + public byte[] Thumbnail { get; set; } +} + +public class Case +{ + public CaseType Type { get; set; } + public Scans Scans { get; set; } +} + +public enum CaseType +{ + Jewel, BigJewel, SlimJewel, + Sleeve, Qpack, Digisleeve, + DiscboxSlider, CompacPlus, KeepCase, + SnapCase, SoftCase, EcoPack, + Liftlock, Spindle, Ps2Case, + Ps3Case, BlurayKeepCase, PsCase, + DcCase, SaturnCase, XboxCase, + Xbox360Case, XboxOneCase, SaturnBigCase, + GcCase, WiiCase, Unknown +} + +public class Scans +{ + public CaseScan Case { get; set; } + public MediaScan Media { get; set; } +} + +public class CaseScan +{ + public CaseScanElement Element { get; set; } + public Scan Scan { get; set; } +} + +public enum CaseScanElement +{ + Sleeve, Inner, Inlay, + FrontBack, FrontFull, BoxFront, + BoxBack, BoxSpine, External +} + +public class MediaScan +{ + public MediaScanElement Element { get; set; } + public Scan Scan { get; set; } +} + +public enum MediaScanElement +{ + Up, Down, Front, + Back, Left, Right +} + +public class Scanner +{ + public string Author { get; set; } + public string Manufacturer { get; set; } + public string Model { get; set; } + public string Serial { get; set; } + public string Software { get; set; } + public string SoftwareVersion { get; set; } +} + +public class ScanProcessing +{ + public string Author { get; set; } + public string Software { get; set; } + public string SoftwareVersion { get; set; } +} + +public class OCR +{ + public string Author { get; set; } + public string Software { get; set; } + public string SoftwareVersion { get; set; } + public List Language { get; set; } +} diff --git a/AaruMetadata/SecureDigital.cs b/AaruMetadata/SecureDigital.cs new file mode 100644 index 0000000..380bd30 --- /dev/null +++ b/AaruMetadata/SecureDigital.cs @@ -0,0 +1,52 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : SecureDigital.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class SecureDigital +{ + public Dump CID { get; set; } + public Dump CSD { get; set; } + public Dump SCR { get; set; } + public Dump OCR { get; set; } +} diff --git a/AaruMetadata/Sequence.cs b/AaruMetadata/Sequence.cs new file mode 100644 index 0000000..6744153 --- /dev/null +++ b/AaruMetadata/Sequence.cs @@ -0,0 +1,53 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Sequence.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Sequence +{ + public string Title { get; set; } + public uint MediaSequence { get; set; } + public uint TotalMedia { get; set; } + public byte? Side { get; set; } + public byte? Layer { get; set; } +} diff --git a/AaruMetadata/Tape.cs b/AaruMetadata/Tape.cs new file mode 100644 index 0000000..e5f6c59 --- /dev/null +++ b/AaruMetadata/Tape.cs @@ -0,0 +1,66 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Tape.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class TapePartition +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public ulong Sequence { get; set; } + public ulong StartBlock { get; set; } + public ulong EndBlock { get; set; } + public List Checksums { get; set; } + public List File { get; set; } +} + +public class TapeFile +{ + public Image Image { get; set; } + public ulong Size { get; set; } + public ulong Sequence { get; set; } + public ulong BlockSize { get; set; } + public ulong StartBlock { get; set; } + public ulong EndBlock { get; set; } + public List Checksums { get; set; } +} diff --git a/AaruMetadata/USB.cs b/AaruMetadata/USB.cs new file mode 100644 index 0000000..811d123 --- /dev/null +++ b/AaruMetadata/USB.cs @@ -0,0 +1,51 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : USB.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + + + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Usb +{ + public ushort VendorID { get; set; } + public ushort ProductID { get; set; } + public Dump Descriptors { get; set; } +} diff --git a/AaruMetadata/UserManual.cs b/AaruMetadata/UserManual.cs new file mode 100644 index 0000000..04b4b71 --- /dev/null +++ b/AaruMetadata/UserManual.cs @@ -0,0 +1,52 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : UserManual.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class UserManual +{ + public List Language { get; set; } + public uint Pages { get; set; } + public string PageSize { get; set; } + public Scan Scan { get; set; } +} diff --git a/AaruMetadata/Xbox.cs b/AaruMetadata/Xbox.cs new file mode 100644 index 0000000..a049621 --- /dev/null +++ b/AaruMetadata/Xbox.cs @@ -0,0 +1,58 @@ +// /*************************************************************************** +// Aaru Data Preservation Suite +// ---------------------------------------------------------------------------- +// +// Filename : Xbox.cs +// Author(s) : Natalia Portillo +// +// Component : Metadata. +// +// --[ Description ] ---------------------------------------------------------- +// +// Defines format for metadata. +// +// --[ License ] -------------------------------------------------------------- +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2023 Natalia Portillo +// ****************************************************************************/ + +using System.Collections.Generic; + +// ReSharper disable UnusedMember.Global +// ReSharper disable ClassNeverInstantiated.Global + +namespace Aaru.CommonTypes.AaruMetadata; + +public class Xbox +{ + public Dump Pfi { get; set; } + public Dump Dmi { get; set; } + public List SecuritySectors { get; set; } +} + +public class XboxSecuritySector +{ + public uint RequestVersion { get; set; } + public uint RequestNumber { get; set; } + public Dump SecuritySectors { get; set; } +}