mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Added support for AAIP extensions to ISO9660.
This commit is contained in:
@@ -64,6 +64,8 @@ namespace DiscImageChef.Filesystems.ISO9660
|
|||||||
const ushort ziso_Magic = 0x5A46; // "ZF"
|
const ushort ziso_Magic = 0x5A46; // "ZF"
|
||||||
const ushort ziso_PagedZlib = 0x707A; // "pz"
|
const ushort ziso_PagedZlib = 0x707A; // "pz"
|
||||||
const ushort Amiga_Magic = 0x4153; // "AS"
|
const ushort Amiga_Magic = 0x4153; // "AS"
|
||||||
|
const ushort AAIP_Magic = 0x414C; // "AL"
|
||||||
|
const ushort AAIP_OldMagic = 0x4141; // "AA"
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
enum FileFlags : byte
|
enum FileFlags : byte
|
||||||
@@ -267,5 +269,11 @@ namespace DiscImageChef.Filesystems.ISO9660
|
|||||||
Script = 1 << 6,
|
Script = 1 << 6,
|
||||||
Reserved = 1 << 7,
|
Reserved = 1 << 7,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
enum AAIPFlags : byte
|
||||||
|
{
|
||||||
|
Continue = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,6 +259,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
|||||||
bool RRIP = false;
|
bool RRIP = false;
|
||||||
bool ziso = false;
|
bool ziso = false;
|
||||||
bool Amiga = false;
|
bool Amiga = false;
|
||||||
|
bool AAIP = false;
|
||||||
List<ContinuationArea> contareas = new List<ContinuationArea>();
|
List<ContinuationArea> contareas = new List<ContinuationArea>();
|
||||||
List<byte[]> refareas = new List<byte[]>();
|
List<byte[]> refareas = new List<byte[]>();
|
||||||
StringBuilder suspInformation = new StringBuilder();
|
StringBuilder suspInformation = new StringBuilder();
|
||||||
@@ -380,6 +381,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
|||||||
|
|
||||||
ziso |= nextSignature == ziso_Magic;
|
ziso |= nextSignature == ziso_Magic;
|
||||||
Amiga |= nextSignature == Amiga_Magic;
|
Amiga |= nextSignature == Amiga_Magic;
|
||||||
|
AAIP |= nextSignature == AAIP_Magic || (nextSignature == AAIP_OldMagic && sa[sa_off + 3] == 1 && sa[sa_off + 2] >= 9);
|
||||||
|
|
||||||
sa_off += sa[sa_off + 2];
|
sa_off += sa[sa_off + 2];
|
||||||
|
|
||||||
@@ -438,6 +440,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
|||||||
|
|
||||||
ziso |= nextSignature == ziso_Magic;
|
ziso |= nextSignature == ziso_Magic;
|
||||||
Amiga |= nextSignature == Amiga_Magic;
|
Amiga |= nextSignature == Amiga_Magic;
|
||||||
|
AAIP |= nextSignature == AAIP_Magic || (nextSignature == AAIP_OldMagic && ca_data[ca_off + 3] == 1 && ca_data[ca_off + 2] >= 9);
|
||||||
|
|
||||||
ca_off += ca_data[ca_off + 2];
|
ca_off += ca_data[ca_off + 2];
|
||||||
}
|
}
|
||||||
@@ -480,6 +483,8 @@ namespace DiscImageChef.Filesystems.ISO9660
|
|||||||
ISOMetadata.AppendLine("System Use Sharing Protocol present.");
|
ISOMetadata.AppendLine("System Use Sharing Protocol present.");
|
||||||
if(RRIP)
|
if(RRIP)
|
||||||
ISOMetadata.AppendLine("Rock Ridge Interchange Protocol present.");
|
ISOMetadata.AppendLine("Rock Ridge Interchange Protocol present.");
|
||||||
|
if(AAIP)
|
||||||
|
ISOMetadata.AppendLine("Arbitrary Attribute Interchange Protocol present.");
|
||||||
if(ziso)
|
if(ziso)
|
||||||
ISOMetadata.AppendLine("zisofs compression present.");
|
ISOMetadata.AppendLine("zisofs compression present.");
|
||||||
if(bvd != null)
|
if(bvd != null)
|
||||||
|
|||||||
Reference in New Issue
Block a user