=== Compact Disc Indexes Block (`CDIX`) On CompactDisc and related media, tracks can contain multiple indexes. These are used to mark separations in the data, such as distinct segments of a musical performance. The table of contents always references index 1. All other indexes—including index 0 (the pregap)—are stored in the subchannel information. This block holds a list of all known indexes for quick lookup. ==== Structure Definition [source,c] #define CD_INDEXES_MAGIC 0x58444943 /* TODO */ ==== Field Descriptions [cols="2,2,2,6",options="header"] |=== |Type |Size |Name |Description |uint32_t |4 bytes |identifier |The compact disc indexes block identifier, always `CDIX` |uint16_t |2 bytes |entries |The number of entries following this header |uint32_t |4 bytes |length |The length in bytes of the data following this header. |uint64_t |8 bytes |crc64 |The CRC64-ECMA checksum of the data following this header |=== ==== Index entries [source,c] /* TODO */ ==== Field Descriptions [cols="2,2,2,6",options="header"] |=== |Type |Size |Name |Description |uint16_t |2 bytes |track |Track this index belongs to. |uint16_t |2 bytes |index |Index number. |int32_t |4 bytes |lba |LBA where this index starts. |===