Loading...
Searching...
No Matches
FluxEntry Struct Reference

Metadata entry describing a single flux capture in the FluxDataBlock. More...

`#include <aaruformat/structs/flux.h>`

## Data Fields

uint32_t | head
| Head number the flux capture corresponds to. Typically 0 or 1 for double-sided media.
uint16_t | track
| Track number the flux capture corresponds to. Track numbering is format-dependent.
uint8_t | subtrack
| Subtrack number, allowing sub-stepping within a track. Used for fine positioning.
uint32_t | captureIndex
| Capture index, allowing multiple captures for the same location (e.g., multiple revolutions).
uint64_t | indexResolution
| Resolution in picoseconds at which the index stream was sampled.
uint64_t | dataResolution
| Resolution in picoseconds at which the data stream was sampled.
uint64_t | indexOffset
| Byte offset within the payload where the index buffer starts (equals data_length).
uint64_t | payloadOffset
| Block-aligned file offset where the DataStreamPayloadBlock containing this capture's data is stored, divided by (1 << blockAlignmentShift). To get the absolute offset, multiply by (1 << blockAlignmentShift) from FluxHeader.

## Detailed Description

Metadata entry describing a single flux capture in the FluxDataBlock.

This structure describes one flux capture, including its location on the media, capture index, sampling resolutions, and file offsets to the payload data. Each FluxEntry corresponds to one DataStreamPayloadBlock containing the actual flux data.

Location Identification: The head, track, and subtrack fields identify the physical location on the media where the capture was taken. The captureIndex allows multiple captures for the same location (e.g., multiple revolutions of a floppy disk track).

Payload Access: The payloadOffset field points to the file offset where the corresponding DataStreamPayloadBlock is stored. The offset is stored divided by the block alignment (blockAlignmentShift from FluxHeader), consistent with DDT table offset storage. To convert to an absolute file offset, multiply by (1 << blockAlignmentShift). The indexOffset field indicates where the index buffer starts within the payload (the payload is stored as [data_buffer][index_buffer] concatenated).

Resolution: Both indexResolution and dataResolution are specified in picoseconds, indicating the precision of the timing measurements. These values are hardware-dependent and determine how accurately the flux transitions are represented.

Note
  The combination of (head, track, subtrack, captureIndex) uniquely identifies a flux capture within an image.
  The indexOffset equals the data_length, as the index buffer immediately follows the data buffer in the payload.

Definition at line 155 of file flux.h.

## Field Documentation

## captureIndex

uint32_t FluxEntry::captureIndex

Capture index, allowing multiple captures for the same location (e.g., multiple revolutions).

Definition at line 160 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_read_flux_capture(), aaruf_write_flux_capture(), find_flux_entry_by_key(), flux_map_rebuild_from_entries(), and write_flux_capture_payload().

## dataResolution

uint64_t FluxEntry::dataResolution

Resolution in picoseconds at which the data stream was sampled.

Definition at line 162 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_write_flux_capture(), and write_flux_capture_payload().

## head

uint32_t FluxEntry::head

Head number the flux capture corresponds to. Typically 0 or 1 for double-sided media.

Definition at line 157 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_read_flux_capture(), aaruf_write_flux_capture(), find_flux_entry_by_key(), flux_map_rebuild_from_entries(), and write_flux_capture_payload().

## indexOffset

uint64_t FluxEntry::indexOffset

Byte offset within the payload where the index buffer starts (equals data_length).

Definition at line 163 of file flux.h.

Referenced by aaruf_write_flux_capture(), extract_flux_data_buffers(), and write_flux_capture_payload().

## indexResolution

uint64_t FluxEntry::indexResolution

Resolution in picoseconds at which the index stream was sampled.

Definition at line 161 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_write_flux_capture(), and write_flux_capture_payload().

## payloadOffset

uint64_t FluxEntry::payloadOffset

Block-aligned file offset where the DataStreamPayloadBlock containing this capture's data is stored, divided by (1 << blockAlignmentShift). To get the absolute offset, multiply by (1 << blockAlignmentShift) from FluxHeader.

Definition at line 164 of file flux.h.

Referenced by aaruf_read_flux_capture(), aaruf_write_flux_capture(), and write_flux_capture_payload().

## subtrack

uint8_t FluxEntry::subtrack

Subtrack number, allowing sub-stepping within a track. Used for fine positioning.

Definition at line 159 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_read_flux_capture(), aaruf_write_flux_capture(), find_flux_entry_by_key(), flux_map_rebuild_from_entries(), and write_flux_capture_payload().

## track

uint16_t FluxEntry::track

Track number the flux capture corresponds to. Track numbering is format-dependent.

Definition at line 158 of file flux.h.

Referenced by aaruf_get_flux_captures(), aaruf_read_flux_capture(), aaruf_write_flux_capture(), find_flux_entry_by_key(), flux_map_rebuild_from_entries(), and write_flux_capture_payload().

The documentation for this struct was generated from the following file:

- include/aaruformat/structs/flux.h