// /*************************************************************************** // The Disc Image Chef // ---------------------------------------------------------------------------- // // Filename : AppleHFS.cs // Author(s) : Natalia Portillo // // Component : Apple Hierarchical File System plugin. // // --[ Description ] ---------------------------------------------------------- // // Identifies the Apple Hierarchical File System and shows information. // // --[ 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 . // // ---------------------------------------------------------------------------- // Copyright © 2011-2020 Natalia Portillo // ****************************************************************************/ using System; namespace DiscImageChef.Filesystems { internal enum NodeType : sbyte { /// Index node ndIndxNode = 0, /// Header node ndHdrNode = 1, /// Map node ndMapNode = 2, /// Leaf node ndLeafNode = -1 } internal enum CatDataType : sbyte { /// Directory record cdrDirRec = 1, /// File record cdrFilRec = 2, /// Directory thread record cdrThdRec = 3, /// File thread record cdrFThdRec = 4 } internal enum ForkType : sbyte { Data = 0, Resource = -1 } [Flags] internal enum FinderFlags : ushort { /// Is on desktop. kIsOnDesk = 0x0001, /// Color mask. kColor = 0x000E, kRequireSwitchLaunch = 0x0020, /// If clear, the application needs to write to its resource fork, and therefore cannot be shared on a server. kIsShared = 0x0040, /// Extension or control panel with no INIT entries in resource fork. kHasNoINITs = 0x0080, /// /// Clear if the file contains desktop database resources ('BNDL', 'FREF', 'open', 'kind'...) that have not been /// added yet. Set only by the Finder. Reserved for folders - make sure this bit is cleared for folders. /// kHasBeenInited = 0x0100, /// PowerTalk kAOCE = 0x200, /// Has a custom icon in the resource fork. kHasCustomIcon = 0x0400, /// Is a stationery. kIsStationery = 0x0800, /// Cannot be renamed. kNameLocked = 0x1000, /// Indicates that a file has a BNDL resource or that a folder is displayed as a package. kHasBundle = 0x2000, /// Hidden. kIsInvisible = 0x4000, /// Is an alias kIsAlias = 0x8000 } [Flags] internal enum ExtendedFinderFlags : ushort { /// If set the other extended flags are ignored. kExtendedFlagsAreInvalid = 0x8000, /// Set if the file or folder has a badge resource. kExtendedFlagHasCustomBadge = 0x0100, /// Set if the object is marked as busy/incomplete. kExtendedFlagObjectIsBusy = 0x0080, /// Set if the file contains routing info resource. kExtendedFlagHasRoutingInfo = 0x0004 } internal enum FinderFolder : short { fTrash = -3, fDesktop = -2, fDisk = 0 } }