Enhance documentation for enums with detailed descriptions and formatting improvements

This commit is contained in:
2025-10-01 03:08:21 +01:00
parent 641cb9824b
commit 1f91ad1e08

View File

@@ -24,304 +24,218 @@
#pragma ide diagnostic ignored "OCUnusedGlobalDeclarationInspection"
#endif
/** List of known compression types */
typedef enum
{
/** Not compressed */
None = 0, /** LZMA */
Lzma = 1, /** FLAC */
Flac = 2, /** LZMA in Claunia Subchannel Transform processed data */
LzmaClauniaSubchannelTransform = 3
} CompressionType;
/** List of known data types */
typedef enum
{
/** No data */
NoData = 0,
/** User data */
UserData = 1,
/** CompactDisc partial Table of Contents */
CompactDiscPartialToc = 2,
/** CompactDisc session information */
CompactDiscSessionInfo = 3,
/** CompactDisc Table of Contents */
CompactDiscToc = 4,
/** CompactDisc Power Management Area */
CompactDiscPma = 5,
/** CompactDisc Absolute Time In Pregroove */
CompactDiscAtip = 6,
/** CompactDisc Lead-in's CD-Text */
CompactDiscLeadInCdText = 7,
/** DVD Physical Format Information */
DvdPfi = 8,
/** DVD Lead-in's Copyright Management Information */
DvdLeadInCmi = 9,
/** DVD Disc Key */
DvdDiscKey = 10,
/** DVD Burst Cutting Area */
DvdBca = 11,
/** DVD DMI */
DvdDmi = 12,
/** DVD Media Identifier */
DvdMediaIdentifier = 13,
/** DVD Media Key Block */
DvdMediaKeyBlock = 14,
/** DVD-RAM Disc Definition Structure */
DvdRamDds = 15,
/** DVD-RAM Medium Status */
DvdRamMediumStatus = 16,
/** DVD-RAM Spare Area Information */
DvdRamSpareArea = 17,
/** DVD-R RMD */
DvdRRmd = 18,
/** DVD-R Pre-recorded Information */
DvdRPrerecordedInfo = 19,
/** DVD-R Media Identifier */
DvdRMediaIdentifier = 20,
/** DVD-R Physical Format Information */
DvdRPfi = 21,
/** DVD ADress In Pregroove */
DvdAdip = 22,
/** HD DVD Copy Protection Information */
HdDvdCpi = 23,
/** HD DVD Medium Status */
HdDvdMediumStatus = 24,
/** DVD DL Layer Capacity */
DvdDlLayerCapacity = 25,
/** DVD DL Middle Zone Address */
DvdDlMiddleZoneAddress = 26,
/** DVD DL Jump Interval Size */
DvdDlJumpIntervalSize = 27,
/** DVD DL Manual Layer Jump LBA */
DvdDlManualLayerJumpLba = 28,
/** Bluray Disc Information */
BlurayDi = 29,
/** Bluray Burst Cutting Area */
BlurayBca = 30,
/** Bluray Disc Definition Structure */
BlurayDds = 31,
/** Bluray Cartridge Status */
BlurayCartridgeStatus = 32,
/** Bluray Spare Area Information */
BluraySpareArea = 33,
/** AACS Volume Identifier */
AacsVolumeIdentifier = 34,
/** AACS Serial Number */
AacsSerialNumber = 35,
/** AACS Media Identifier */
AacsMediaIdentifier = 36,
/** AACS Media Key Block */
AacsMediaKeyBlock = 37,
/** AACS Data Keys */
AacsDataKeys = 38,
/** AACS LBA Extents */
AacsLbaExtents = 39,
/** CPRM Media Key Block */
CprmMediaKeyBlock = 40,
/** Recognized Layers */
HybridRecognizedLayers = 41,
/** MMC Write Protection */
ScsiMmcWriteProtection = 42,
/** MMC Disc Information */
ScsiMmcDiscInformation = 43,
/** MMC Track Resources Information */
ScsiMmcTrackResourcesInformation = 44,
/** MMC POW Resources Information */
ScsiMmcPowResourcesInformation = 45,
/** SCSI INQUIRY RESPONSE */
ScsiInquiry = 46,
/** SCSI MODE PAGE 2Ah */
ScsiModePage2A = 47,
/** ATA IDENTIFY response */
AtaIdentify = 48,
/** ATAPI IDENTIFY response */
AtapiIdentify = 49,
/** PCMCIA CIS */
PcmciaCis = 50,
/** SecureDigital CID */
SecureDigitalCid = 51,
/** SecureDigital CSD */
SecureDigitalCsd = 52,
/** SecureDigital SCR */
SecureDigitalScr = 53,
/** SecureDigital OCR */
SecureDigitalOcr = 54,
/** MultiMediaCard CID */
MultiMediaCardCid = 55,
/** MultiMediaCard CSD */
MultiMediaCardCsd = 56,
/** MultiMediaCard OCR */
MultiMediaCardOcr = 57,
/** MultiMediaCard Extended CSD */
MultiMediaCardExtendedCsd = 58,
/** Xbox Security Sector */
XboxSecuritySector = 59,
/** Floppy Lead-out */
FloppyLeadOut = 60,
/** Dvd Disc Control Block */
DvdDiscControlBlock = 61,
/** CompactDisc First track pregap */
CompactDiscFirstTrackPregap = 62,
/** CompactDisc Lead-out */
CompactDiscLeadOut = 63,
/** SCSI MODE SENSE (6) response */
ScsiModeSense6 = 64,
/** SCSI MODE SENSE (10) response */
ScsiModeSense10 = 65,
/** USB descriptors */
UsbDescriptors = 66,
/** Xbox DMI */
XboxDmi = 67,
/** Xbox Physical Format Information */
XboxPfi = 68,
/** CompactDisc sector prefix (sync, header */
CdSectorPrefix = 69,
/** CompactDisc sector suffix (edc, ecc p, ecc q) */
CdSectorSuffix = 70,
/** CompactDisc subchannel */
CdSectorSubchannel = 71,
/** Apple Profile (20 byte) tag */
AppleProfileTag = 72,
/** Apple Sony (12 byte) tag */
AppleSonyTag = 73,
/** Priam Data Tower (24 byte) tag */
PriamDataTowerTag = 74,
/** CompactDisc Media Catalogue Number (as in Lead-in), 13 bytes, ASCII */
CompactDiscMediaCatalogueNumber = 75,
/** CompactDisc sector prefix (sync, header), only incorrect stored */
CdSectorPrefixCorrected = 76,
/** CompactDisc sector suffix (edc, ecc p, ecc q), only incorrect stored */
CdSectorSuffixCorrected = 77,
/** CompactDisc MODE 2 subheader */
CompactDiscMode2Subheader = 78,
/** CompactDisc Lead-in */
CompactDiscLeadIn = 79
} DataType;
/** List of known blocks types */
typedef enum
{
/** Block containing data */
DataBlock = 0x4B4C4244,
/** Block containing a deduplication table */
DeDuplicationTable = 0x2A544444,
/** Block containing a deduplication table v2 */
DeDuplicationTable2 = 0x32544444,
/** Block containing the index */
IndexBlock = 0x58444E49,
/** Block containing the index v2 */
IndexBlock2 = 0x32584449,
/** Block containing the index v3 */
IndexBlock3 = 0x33584449,
/** Block containing logical geometry */
GeometryBlock = 0x4D4F4547,
/** Block containing metadata */
MetadataBlock = 0x4154454D,
/** Block containing optical disc tracks */
TracksBlock = 0x534B5254,
/** Block containing CICM XML metadata */
CicmBlock = 0x4D434943,
/** Block containing contents checksums */
ChecksumBlock = 0x4D534B43,
/** TODO: Block containing data position measurements */
DataPositionMeasurementBlock = 0x2A4D5044,
/** TODO: Block containing a snapshot index */
SnapshotBlock = 0x50414E53,
/** TODO: Block containing how to locate the parent image */
ParentBlock = 0x50524E54,
/** Block containing an array of hardware used to create the image */
DumpHardwareBlock = 0x2A504D44,
/** TODO: Block containing list of files for a tape image */
TapeFileBlock = 0x454C4654
} BlockType;
typedef enum
{
Invalid = 0,
Md5 = 1,
Sha1 = 2,
Sha256 = 3,
SpamSum = 4
} ChecksumAlgorithm;
typedef enum
{
NotDumped = 0x10000000,
Correct = 0x20000000,
Mode2Form1Ok = 0x30000000,
Mode2Form2Ok = 0x40000000,
Mode2Form2NoCrc = 0x50000000
} CdFixFlags;
/** Track (as partitioning element) types. */
typedef enum
{
/** Audio track */
Audio = 0, /** Data track (not any of the below defined ones) */
Data = 1, /** Data track, compact disc mode 1 */
CdMode1 = 2, /** Data track, compact disc mode 2, formless */
CdMode2Formless = 3, /** Data track, compact disc mode 2, form 1 */
CdMode2Form1 = 4, /** Data track, compact disc mode 2, form 2 */
CdMode2Form2 = 5
} TrackType;
typedef enum
{
AARUF_STATUS_INVALID_CONTEXT = -1,
} AaruformatStatus;
/**
* Enumeration of media types defined in CICM metadata
* \enum CompressionType
* \brief List of known compression types.
*/
typedef enum
{
/**
* Purely optical discs
*/
OpticalDisc = 0, /**
* Media that is physically block-based or abstracted like that
None = 0, ///< Not compressed.
Lzma = 1, ///< LZMA compression.
Flac = 2, ///< FLAC compression.
LzmaClauniaSubchannelTransform = 3 ///< LZMA applied to Claunia Subchannel Transform processed data.
} CompressionType;
*/
BlockMedia = 1, /**
* Media that can be accessed by-byte or by-bit, like chips
*/
LinearMedia = 2, /**
* Media that can only store data when it is modulated to audio
*/
AudioMedia = 3
/**
* \enum DataType
* \brief List of known data types stored within an Aaru image.
*/
typedef enum
{
NoData = 0, ///< No data.
UserData = 1, ///< User (main) data.
CompactDiscPartialToc = 2, ///< Compact Disc partial Table of Contents.
CompactDiscSessionInfo = 3, ///< Compact Disc session information.
CompactDiscToc = 4, ///< Compact Disc full Table of Contents.
CompactDiscPma = 5, ///< Compact Disc Power Management Area (PMA).
CompactDiscAtip = 6, ///< Compact Disc Absolute Time In Pregroove (ATIP).
CompactDiscLeadInCdText = 7, ///< Compact Disc lead-in CD-Text.
DvdPfi = 8, ///< DVD Physical Format Information.
DvdLeadInCmi = 9, ///< DVD lead-in Copyright Management Information (CMI).
DvdDiscKey = 10, ///< DVD disc key.
DvdBca = 11, ///< DVD Burst Cutting Area (BCA).
DvdDmi = 12, ///< DVD Disc Manufacturing Information (DMI).
DvdMediaIdentifier = 13, ///< DVD media identifier.
DvdMediaKeyBlock = 14, ///< DVD Media Key Block (MKB).
DvdRamDds = 15, ///< DVD-RAM Disc Definition Structure (DDS).
DvdRamMediumStatus = 16, ///< DVD-RAM medium status.
DvdRamSpareArea = 17, ///< DVD-RAM spare area information.
DvdRRmd = 18, ///< DVD-R RMD (Recording Management Data).
DvdRPrerecordedInfo = 19, ///< DVD-R prerecorded information.
DvdRMediaIdentifier = 20, ///< DVD-R media identifier.
DvdRPfi = 21, ///< DVD-R Physical Format Information.
DvdAdip = 22, ///< DVD Address In Pregroove (ADIP).
HdDvdCpi = 23, ///< HD DVD Copy Protection Information (CPI).
HdDvdMediumStatus = 24, ///< HD DVD medium status.
DvdDlLayerCapacity = 25, ///< DVD dual-layer capacity.
DvdDlMiddleZoneAddress = 26, ///< DVD dual-layer middle zone address.
DvdDlJumpIntervalSize = 27, ///< DVD dual-layer jump interval size.
DvdDlManualLayerJumpLba = 28, ///< DVD dual-layer manual layer jump LBA.
BlurayDi = 29, ///< Blu-ray Disc Information (DI).
BlurayBca = 30, ///< Blu-ray Burst Cutting Area (BCA).
BlurayDds = 31, ///< Blu-ray Disc Definition Structure (DDS).
BlurayCartridgeStatus = 32, ///< Blu-ray cartridge status.
BluraySpareArea = 33, ///< Blu-ray spare area information.
AacsVolumeIdentifier = 34, ///< AACS volume identifier.
AacsSerialNumber = 35, ///< AACS serial number.
AacsMediaIdentifier = 36, ///< AACS media identifier.
AacsMediaKeyBlock = 37, ///< AACS Media Key Block (MKB).
AacsDataKeys = 38, ///< AACS data keys.
AacsLbaExtents = 39, ///< AACS LBA extents.
CprmMediaKeyBlock = 40, ///< CPRM Media Key Block (MKB).
HybridRecognizedLayers = 41, ///< Recognized layers (hybrid media).
ScsiMmcWriteProtection = 42, ///< MMC write-protection data.
ScsiMmcDiscInformation = 43, ///< MMC disc information.
ScsiMmcTrackResourcesInformation= 44, ///< MMC track resources information.
ScsiMmcPowResourcesInformation = 45, ///< MMC POW (Persistent Optical Write?) resources information.
ScsiInquiry = 46, ///< SCSI INQUIRY response.
ScsiModePage2A = 47, ///< SCSI MODE PAGE 2Ah.
AtaIdentify = 48, ///< ATA IDENTIFY DEVICE data.
AtapiIdentify = 49, ///< ATAPI IDENTIFY PACKET DEVICE data.
PcmciaCis = 50, ///< PCMCIA Card Information Structure (CIS).
SecureDigitalCid = 51, ///< Secure Digital CID register.
SecureDigitalCsd = 52, ///< Secure Digital CSD register.
SecureDigitalScr = 53, ///< Secure Digital SCR register.
SecureDigitalOcr = 54, ///< Secure Digital OCR register.
MultiMediaCardCid = 55, ///< MultiMediaCard CID register.
MultiMediaCardCsd = 56, ///< MultiMediaCard CSD register.
MultiMediaCardOcr = 57, ///< MultiMediaCard OCR register.
MultiMediaCardExtendedCsd = 58, ///< MultiMediaCard Extended CSD register.
XboxSecuritySector = 59, ///< Xbox Security Sector.
FloppyLeadOut = 60, ///< Floppy leadout data.
DvdDiscControlBlock = 61, ///< DVD Disc Control Block.
CompactDiscFirstTrackPregap = 62, ///< Compact Disc first track pre-gap.
CompactDiscLeadOut = 63, ///< Compact Disc leadout.
ScsiModeSense6 = 64, ///< SCSI MODE SENSE (6) response.
ScsiModeSense10 = 65, ///< SCSI MODE SENSE (10) response.
UsbDescriptors = 66, ///< USB descriptors set.
XboxDmi = 67, ///< Xbox DMI.
XboxPfi = 68, ///< Xbox Physical Format Information (PFI).
CdSectorPrefix = 69, ///< Compact Disc sector prefix (sync, header).
CdSectorSuffix = 70, ///< Compact Disc sector suffix (EDC, ECC P, ECC Q).
CdSectorSubchannel = 71, ///< Compact Disc subchannel data.
AppleProfileTag = 72, ///< Apple Profile (20byte) tag.
AppleSonyTag = 73, ///< Apple Sony (12byte) tag.
PriamDataTowerTag = 74, ///< Priam Data Tower (24byte) tag.
CompactDiscMediaCatalogueNumber = 75, ///< Compact Disc Media Catalogue Number (leadin, 13 ASCII bytes).
CdSectorPrefixCorrected = 76, ///< Compact Disc sector prefix (sync, header) corrected-only stored.
CdSectorSuffixCorrected = 77, ///< Compact Disc sector suffix (EDC, ECC P, ECC Q) corrected-only stored.
CompactDiscMode2Subheader = 78, ///< Compact Disc MODE 2 subheader.
CompactDiscLeadIn = 79 ///< Compact Disc leadin.
} DataType;
/**
* \enum BlockType
* \brief List of known block types contained in an Aaru image.
*/
typedef enum
{
DataBlock = 0x4B4C4244, ///< Block containing data.
DeDuplicationTable = 0x2A544444, ///< Block containing a deduplication table (v1).
DeDuplicationTable2 = 0x32544444, ///< Block containing a deduplication table v2.
IndexBlock = 0x58444E49, ///< Block containing the index (v1).
IndexBlock2 = 0x32584449, ///< Block containing the index v2.
IndexBlock3 = 0x33584449, ///< Block containing the index v3.
GeometryBlock = 0x4D4F4547, ///< Block containing logical geometry.
MetadataBlock = 0x4154454D, ///< Block containing metadata.
TracksBlock = 0x534B5254, ///< Block containing optical disc tracks.
CicmBlock = 0x4D434943, ///< Block containing CICM XML metadata.
ChecksumBlock = 0x4D534B43, ///< Block containing contents checksums.
DataPositionMeasurementBlock = 0x2A4D5044, ///< Block containing data position measurements (reserved / TODO).
SnapshotBlock = 0x50414E53, ///< Block containing a snapshot index (reserved / TODO).
ParentBlock = 0x50524E54, ///< Block describing how to locate the parent image (reserved / TODO).
DumpHardwareBlock = 0x2A504D44, ///< Block containing an array of hardware used to create the image.
TapeFileBlock = 0x454C4654 ///< Block containing list of files for a tape image (reserved / TODO).
} BlockType;
/**
* \enum ChecksumAlgorithm
* \brief Supported checksum / hash algorithms.
*/
typedef enum
{
Invalid = 0, ///< Invalid / unspecified algorithm.
Md5 = 1, ///< MD5 hash.
Sha1 = 2, ///< SHA-1 hash.
Sha256 = 3, ///< SHA-256 hash.
SpamSum = 4 ///< SpamSum (context-triggered piecewise hash).
} ChecksumAlgorithm;
/**
* \enum CdFixFlags
* \brief Flags describing Compact Disc sector fix-up status.
*/
typedef enum
{
NotDumped = 0x10000000, ///< Sector(s) have not yet been dumped.
Correct = 0x20000000, ///< Sector(s) contain valid MODE 1 data with regenerable suffix/prefix.
Mode2Form1Ok = 0x30000000, ///< Sector suffix valid for MODE 2 Form 1; regenerable.
Mode2Form2Ok = 0x40000000, ///< Sector suffix valid for MODE 2 Form 2 with correct CRC.
Mode2Form2NoCrc = 0x50000000 ///< Sector suffix valid for MODE 2 Form 2 but CRC absent/empty.
} CdFixFlags;
/**
* \enum TrackType
* \brief Track (partitioning element) types for optical media.
*/
typedef enum
{
Audio = 0, ///< Audio track.
Data = 1, ///< Generic data track (not further specified).
CdMode1 = 2, ///< Compact Disc Mode 1 data track.
CdMode2Formless = 3, ///< Compact Disc Mode 2 (formless) data track.
CdMode2Form1 = 4, ///< Compact Disc Mode 2 Form 1 data track.
CdMode2Form2 = 5 ///< Compact Disc Mode 2 Form 2 data track.
} TrackType;
/**
* \enum AaruformatStatus
* \brief Status / error codes specific to libaaruformat.
*/
typedef enum
{
AARUF_STATUS_INVALID_CONTEXT = -1 ///< Provided context/handle is invalid.
} AaruformatStatus;
/**
* \enum XmlMediaType
* \brief Enumeration of media types defined in CICM metadata.
*/
typedef enum
{
OpticalDisc = 0, ///< Purely optical discs.
BlockMedia = 1, ///< Media that is physically block-based or abstracted like that.
LinearMedia = 2, ///< Media that can be accessed by-byte or by-bit, like chips.
AudioMedia = 3 ///< Media that can only store data when modulated to audio.
} XmlMediaType;
/**
* \enum DdtSizeType
* \brief Size type for Deduplication Data Table (DDT) entries.
*/
typedef enum
{
SmallDdtSizeType = 0,
BigDdtSizeType = 1
SmallDdtSizeType = 0, ///< Small sized DDT entries.
BigDdtSizeType = 1 ///< Large sized DDT entries.
} DdtSizeType;
/**
* \enum SectorStatus
* \brief Acquisition / content status for one or more sectors.
*/
typedef enum
{
/**Sector(s) have not yet been acquired during image dumping.*/
SectorStatusNotDumped = 0x0,
/**Sector(s) have been successfully dumped without error.*/
SectorStatusDumped = 0x1,
/**Sector(s) encountered an error during dumping and may be incomplete or corrupt.*/
SectorStatusErrored = 0x2,
/**Sector contains valid MODE 1 data with regenerable suffix or prefix.*/
SectorStatusMode1Correct = 0x3,
/**Sector suffix is verified and regenerable, corresponding to MODE 2 Form 1.*/
SectorStatusMode2Form1Ok = 0x4,
/**Sector suffix matches MODE 2 Form 2 format with a valid CRC.*/
SectorStatusMode2Form2Ok = 0x5,
/**Sector suffix matches MODE 2 Form 2 format but contains an empty or missing CRC.*/
SectorStatusMode2Form2NoCrc = 0x6,
/**Pointer references a twin sector table.*/
SectorStatusTwin = 0x7,
/**Sector is physically unrecorded; repeated reads return non-deterministic or random data.*/
SectorStatusUnrecorded = 0x8,
/**Sector content is encrypted and stored in its original encrypted form within the image.*/
SectorStatusEncrypted = 0x9,
/**Sector content was originally encrypted on media but is stored decrypted in the image.*/
SectorStatusUnencrypted = 0xA
SectorStatusNotDumped = 0x0, ///< Sector(s) not yet acquired during image dumping.
SectorStatusDumped = 0x1, ///< Sector(s) successfully dumped without error.
SectorStatusErrored = 0x2, ///< Error during dumping; data may be incomplete or corrupt.
SectorStatusMode1Correct = 0x3, ///< Valid MODE 1 data with regenerable suffix/prefix.
SectorStatusMode2Form1Ok = 0x4, ///< Suffix verified/regenerable for MODE 2 Form 1.
SectorStatusMode2Form2Ok = 0x5, ///< Suffix matches MODE 2 Form 2 with valid CRC.
SectorStatusMode2Form2NoCrc = 0x6, ///< Suffix matches MODE 2 Form 2 but CRC empty/missing.
SectorStatusTwin = 0x7, ///< Pointer references a twin sector table.
SectorStatusUnrecorded = 0x8, ///< Sector physically unrecorded; repeated reads non-deterministic.
SectorStatusEncrypted = 0x9, ///< Content encrypted and stored encrypted in image.
SectorStatusUnencrypted = 0xA ///< Content originally encrypted but stored decrypted in image.
} SectorStatus;
#ifndef _MSC_VER