Files
Aaru/DiscImageChef.Filesystems/ISO9660/Structs/Internal.cs

139 lines
5.3 KiB
C#
Raw Normal View History

// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : Common.cs
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : ISO9660 filesystem plugin.
//
// --[ Description ] ----------------------------------------------------------
//
// Common structures.
//
// --[ License ] --------------------------------------------------------------
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
2018-12-29 17:34:38 +00:00
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
2017-12-19 19:33:46 +00:00
using System;
namespace DiscImageChef.Filesystems.ISO9660
{
public partial class ISO9660
{
struct DecodedVolumeDescriptor
{
2018-06-22 08:08:38 +01:00
public string SystemIdentifier;
public string VolumeIdentifier;
public string VolumeSetIdentifier;
public string PublisherIdentifier;
public string DataPreparerIdentifier;
public string ApplicationIdentifier;
public DateTime CreationTime;
2018-06-22 08:08:38 +01:00
public bool HasModificationTime;
public DateTime ModificationTime;
2018-06-22 08:08:38 +01:00
public bool HasExpirationTime;
public DateTime ExpirationTime;
2018-06-22 08:08:38 +01:00
public bool HasEffectiveTime;
public DateTime EffectiveTime;
2018-06-22 08:08:38 +01:00
public ushort BlockSize;
public uint Blocks;
}
class DecodedDirectoryEntry
{
2019-07-28 17:29:45 +01:00
public byte[] AmigaComment;
public AmigaProtection? AmigaProtection;
public byte? AppleDosType;
public byte[] AppleIcon;
public ushort? AppleProDosType;
2019-07-22 01:08:05 +01:00
public DecodedDirectoryEntry AssociatedFile;
2019-07-31 05:19:18 +01:00
public CdiSystemArea? CdiSystemArea;
2019-07-22 01:08:05 +01:00
public uint Extent;
2019-07-22 02:58:56 +01:00
public string Filename;
2019-07-22 01:08:05 +01:00
public byte FileUnitSize;
public FinderInfo FinderInfo;
2019-07-22 01:08:05 +01:00
public FileFlags Flags;
public byte Interleave;
2019-07-28 17:46:09 +01:00
public PosixAttributes? PosixAttributes;
public PosixAttributesOld? PosixAttributesOld;
2019-07-28 17:54:40 +01:00
public PosixDeviceNumber? PosixDeviceNumber;
public DecodedDirectoryEntry ResourceFork;
2019-07-28 18:19:17 +01:00
public byte[] RockRidgeAlternateName;
public bool RockRidgeRelocated;
2019-07-28 18:32:15 +01:00
public byte[] RripAccess;
public byte[] RripAttributeChange;
public byte[] RripBackup;
public byte[] RripCreation;
public byte[] RripEffective;
public byte[] RripExpiration;
public byte[] RripModify;
2019-07-22 01:08:05 +01:00
public uint Size;
2019-07-28 21:33:05 +01:00
public string SymbolicLink;
2019-07-22 01:08:05 +01:00
public DateTime? Timestamp;
public ushort VolumeSequenceNumber;
2019-07-28 16:48:18 +01:00
public CdromXa? XA;
2019-07-31 04:33:31 +01:00
public byte XattrLength;
2019-07-22 02:58:56 +01:00
public override string ToString() => Filename;
}
[Flags]
enum FinderFlags : ushort
{
kIsOnDesk = 0x0001,
kColor = 0x000E,
kRequireSwitchLaunch = 0x0020,
kIsShared = 0x0040,
kHasNoINITs = 0x0080,
kHasBeenInited = 0x0100,
kHasCustomIcon = 0x0400,
kLetter = 0x0200,
kChanged = 0x0200,
kIsStationery = 0x0800,
kNameLocked = 0x1000,
kHasBundle = 0x2000,
kIsInvisible = 0x4000,
kIsAlias = 0x8000
}
struct Point
{
public short x;
public short y;
}
class FinderInfo
{
public uint fdCreator;
public FinderFlags fdFlags;
public short fdFldr;
public Point fdLocation;
public uint fdType;
}
2019-07-29 02:45:46 +01:00
class PathTableEntryInternal
{
public uint Extent;
public string Name;
public ushort Parent;
public override string ToString() => Name;
}
}
2017-12-19 20:33:03 +00:00
}