Skip to content

Commit fcccd1d

Browse files
committed
Regenerate FileSystems package API reference for the NRG topology types
1 parent 70a3076 commit fcccd1d

2 files changed

Lines changed: 77 additions & 15 deletions

File tree

‎Hawkynt.FileFormats.FileSystems/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ ops.Remove(image, ["var/log/old.log"]);
280280

281281
<!-- API:BEGIN generated by Hawkynt/RepositoryTemplate/package-readme — edit the XML docs in source, not here -->
282282

283-
Every public and protected member of all 853 types, generated from the built assembly and its XML documentation, is in [REFERENCE.md](https://github.com/Hawkynt/CompressionWorkbench/blob/main/Hawkynt.FileFormats.FileSystems/REFERENCE.md).
283+
Every public and protected member of all 856 types, generated from the built assembly and its XML documentation, is in [REFERENCE.md](https://github.com/Hawkynt/CompressionWorkbench/blob/main/Hawkynt.FileFormats.FileSystems/REFERENCE.md).
284284

285285
<!-- API:END -->
286286

‎Hawkynt.FileFormats.FileSystems/REFERENCE.md‎

Lines changed: 76 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ Implements `IDisposable`.
872872

873873
### Namespace `FileFormat.Nrg`
874874

875-
[`NrgDiscDefinition`](#nrgdiscdefinition) · [`NrgEntry`](#nrgentry) · [`NrgFormatDescriptor`](#nrgformatdescriptor) · [`NrgInPlaceModifier`](#nrginplacemodifier) · [`NrgInPlaceModifier.SectorGeometry`](#nrginplacemodifiersectorgeometry) · [`NrgReader`](#nrgreader) · [`NrgSessionDefinition`](#nrgsessiondefinition) · [`NrgTrackDefinition`](#nrgtrackdefinition) · [`NrgTrackMode`](#nrgtrackmode) · [`NrgWriter`](#nrgwriter)
875+
[`NrgDiscDefinition`](#nrgdiscdefinition) · [`NrgEntry`](#nrgentry) · [`NrgEntryKind`](#nrgentrykind) · [`NrgFormatDescriptor`](#nrgformatdescriptor) · [`NrgInPlaceModifier`](#nrginplacemodifier) · [`NrgInPlaceModifier.SectorGeometry`](#nrginplacemodifiersectorgeometry) · [`NrgReader`](#nrgreader) · [`NrgSessionDefinition`](#nrgsessiondefinition) · [`NrgSessionInfo`](#nrgsessioninfo) · [`NrgTrackDefinition`](#nrgtrackdefinition) · [`NrgTrackInfo`](#nrgtrackinfo) · [`NrgTrackMode`](#nrgtrackmode) · [`NrgWriter`](#nrgwriter)
876876

877877
#### `NrgDiscDefinition`
878878

@@ -888,16 +888,29 @@ Implements `IEquatable<NrgDiscDefinition>`.
888888

889889
#### `NrgEntry`
890890

891-
Represents a file or directory entry in a Nero NRG disc image.
891+
Represents a filesystem or raw-track entry in a Nero NRG disc image.
892892

893893
| Member | Signature | Summary |
894894
| --- | --- | --- |
895895
| `NrgEntry` | `NrgEntry()` | |
896-
| `FullPath` | `string FullPath { get; init; }` | Gets the full path within the disc image, using forward slashes. |
896+
| `FullPath` | `string FullPath { get; init; }` | Gets the full path within the archive view, using forward slashes. |
897897
| `IsDirectory` | `bool IsDirectory { get; init; }` | Gets whether this entry is a directory. |
898+
| `Kind` | `NrgEntryKind Kind { get; init; }` | Gets the backing entry kind. |
898899
| `Name` | `string Name { get; init; }` | Gets the filename or directory name of this entry. |
900+
| `SessionNumber` | `int? SessionNumber { get; init; }` | Gets the one-based containing NRG session number when known. |
899901
| `Size` | `long Size { get; init; }` | Gets the file size in bytes (0 for directories). |
900-
| `StartLba` | `int StartLba { get; init; }` | Gets the starting LBA (Logical Block Address) of this entry's data. |
902+
| `StartLba` | `int StartLba { get; init; }` | Gets the starting LBA of an ISO extent, or index-1 LBA for a raw track when known. |
903+
| `TrackNumber` | `int? TrackNumber { get; init; }` | Gets the globally numbered NRG track number when known. |
904+
905+
#### `NrgEntryKind`
906+
907+
Identifies how an `NrgEntry` is backed by the disc image.
908+
909+
| Value | Numeric | Summary |
910+
| --- | --- | --- |
911+
| `IsoFile` | `0` | An ISO 9660 file. |
912+
| `IsoDirectory` | `1` | An ISO 9660 directory. |
913+
| `RawTrack` | `2` | A raw stored track exposed because no ISO file tree represents its content. |
901914

902915
#### `NrgFormatDescriptor`
903916

@@ -920,15 +933,15 @@ Implements `IArchiveCreatable`, `IArchiveDefragmentable`, `IArchiveFormatOperati
920933
| `MagicSignatures` | `IReadOnlyList<MagicSignature> MagicSignatures { get; }` | Gets the magic signatures. |
921934
| `Methods` | `IReadOnlyList<FormatMethodInfo> Methods { get; }` | Gets the methods. |
922935
| `TarCompressionFormatId` | `string TarCompressionFormatId { get; }` | Gets the tar compression format id. |
923-
| `Add` | `void Add(Stream archive, IReadOnlyList<ArchiveInputInfo> inputs)` | Adds/replaces named ISO entries through a verified rebuild. Multi-track or audio NRGs are deliberately refused here because flattening them to the generic single-ISO create profile would destroy disc structure. |
936+
| `Add` | `void Add(Stream archive, IReadOnlyList<ArchiveInputInfo> inputs)` | Adds/replaces named ISO entries through a verified rebuild. Multi-track, audio and non-ISO NRGs are deliberately refused here because flattening them to the generic single-ISO create profile would destroy disc structure. |
924937
| `Create` | `void Create(Stream output, IReadOnlyList<ArchiveInputInfo> inputs, FormatCreateOptions options)` | Creates the generic archive API profile: one DAO session containing one cooked Mode-1 ISO 9660 track. Call `Write` directly for multi-session, mixed data/audio, pregap, MCN, ISRC, CD-TEXT or raw-sector authoring. |
925-
| `Defragment` | `void Defragment(Stream archive)` | Rebuild-defragments the single-data-track R/W profile. |
926-
| `Defragment` | `void Defragment(Stream archive, DefragOptions options)` | Progress-reporting rebuild defrag for the single-data-track R/W profile. |
927-
| `Extract` | `void Extract(Stream stream, string outputDir, string password, string[] files)` | Extracts ISO 9660 entries from the first readable data track. |
928-
| `List` | `List<ArchiveEntryInfo> List(Stream stream, string password)` | Lists the ISO 9660 entries from the first readable data track in the supplied container. |
929-
| `Purge` | `void Purge(Stream archive)` | Purges the single-data-track R/W profile to a valid empty NRG. |
938+
| `Defragment` | `void Defragment(Stream archive)` | Rebuild-defragments the single-ISO-track R/W profile. |
939+
| `Defragment` | `void Defragment(Stream archive, DefragOptions options)` | Progress-reporting rebuild defrag for the single-ISO-track R/W profile. |
940+
| `Extract` | `void Extract(Stream stream, string outputDir, string password, string[] files)` | Extracts ISO files and exact stored raw-track entries without transcoding CD-DA. |
941+
| `List` | `List<ArchiveEntryInfo> List(Stream stream, string password)` | Lists ISO files from every readable data track plus exact raw entries for CD-DA and non-ISO tracks. The first ISO filesystem remains rooted at the archive root for backwards compatibility. |
942+
| `Purge` | `void Purge(Stream archive)` | Purges the single-ISO-track R/W profile to a valid empty NRG. |
930943
| `Remove` | `void Remove(Stream archive, string[] entryNames)` | Removes named ISO entries through the same profile-gated verified rebuild. |
931-
| `Shrink` | `void Shrink(Stream input, Stream output)` | Tight-packs the single-data-track profile. Multi-track/audio images are copied through unchanged rather than being flattened into one ISO track. |
944+
| `Shrink` | `void Shrink(Stream input, Stream output)` | Tight-packs the single-ISO-track profile. Multi-track, audio and non-ISO images are copied through unchanged rather than being flattened into one ISO track. |
932945

933946
#### `NrgInPlaceModifier`
934947

@@ -962,17 +975,22 @@ Implements `IEquatable<SectorGeometry>`.
962975

963976
#### `NrgReader`
964977

965-
Reads the ISO 9660 data track embedded in a Nero Burning ROM NRG image. NRG stores disc sectors first, then a chunked session/track descriptor, and finally a footer pointing back to that descriptor.
978+
Reads Nero Burning ROM NRG disc images, including DAO/TAO session and track topology, raw CD-DA/data tracks, and ISO 9660 file trees from every readable data track.
966979

967980
Implements `IDisposable`.
968981

969982
| Member | Signature | Summary |
970983
| --- | --- | --- |
971984
| `NrgReader` | `NrgReader(Stream stream, bool leaveOpen = false)` | Initializes a new `NrgReader` from an NRG stream. |
972-
| `Entries` | `IReadOnlyList<NrgEntry> Entries { get; }` | Gets all file and directory entries found in the ISO 9660 file system. |
985+
| `CdText` | `ReadOnlyMemory<byte> CdText { get; }` | Gets the raw CD-TEXT pack bytes, or an empty memory when no CDTX chunk was present. |
986+
| `Entries` | `IReadOnlyList<NrgEntry> Entries { get; }` | Gets the archive view. The first ISO 9660 tree remains at the archive root for compatibility; later ISO trees are namespaced below `.nrg/session-XX/track-YY/iso`. Audio and non-ISO data tracks are exposed as exact stored raw-track files below `.nrg/session-XX/tracks`. |
987+
| `Sessions` | `IReadOnlyList<NrgSessionInfo> Sessions { get; }` | Gets all reconstructed sessions in physical disc order. |
988+
| `Tracks` | `IReadOnlyList<NrgTrackInfo> Tracks { get; }` | Gets all reconstructed tracks, flattened in physical order. |
973989
| `Version` | `int Version { get; }` | Gets the NRG format version detected from the footer (1 or 2), or 0 if no valid footer was found. |
990+
| `CopyTrackTo` | `void CopyTrackTo(NrgTrackInfo track, Stream output, bool includePregap = false)` | Copies one track without transcoding. CD-DA therefore remains 2,352-byte raw audio sectors (or 2,448-byte sectors when subchannel data is stored). Set `includePregap` to include the stored index-0/pregap bytes as well. |
974991
| `Dispose` | `void Dispose()` | |
975-
| `Extract` | `byte[] Extract(NrgEntry entry)` | Extracts the raw data for a file entry. |
992+
| `ExtractTrack` | `byte[] ExtractTrack(NrgTrackInfo track)` | Extracts the exact stored index-1/program bytes of one track. |
993+
| `Extract` | `byte[] Extract(NrgEntry entry)` | Extracts one archive-view entry. |
976994

977995
#### `NrgSessionDefinition`
978996

@@ -986,6 +1004,21 @@ Implements `IEquatable<NrgSessionDefinition>`.
9861004
| `Mcn` | `string Mcn { get; init; }` | Optional 13-digit media catalog number (MCN/EAN-13). |
9871005
| `Tracks` | `IReadOnlyList<NrgTrackDefinition> Tracks { get; init; }` | Tracks in this session. |
9881006

1007+
#### `NrgSessionInfo`
1008+
1009+
Describes one logical NRG session reconstructed from DAO/CUE or ETN metadata.
1010+
1011+
Implements `IEquatable<NrgSessionInfo>`.
1012+
1013+
| Member | Signature | Summary |
1014+
| --- | --- | --- |
1015+
| `NrgSessionInfo` | `NrgSessionInfo()` | |
1016+
| `LeadInLba` | `int? LeadInLba { get; init; }` | Gets the optional lead-in LBA from CUE metadata. |
1017+
| `LeadOutLba` | `int? LeadOutLba { get; init; }` | Gets the optional lead-out LBA from CUE/ETN metadata. |
1018+
| `Mcn` | `string Mcn { get; init; }` | Gets the optional media catalog number (MCN/EAN-13). |
1019+
| `SessionNumber` | `int SessionNumber { get; init; }` | Gets the one-based session number in physical disc order. |
1020+
| `Tracks` | `IReadOnlyList<NrgTrackInfo> Tracks { get; init; }` | Gets the tracks in this session, in physical order. |
1021+
9891022
#### `NrgTrackDefinition`
9901023

9911024
One track to be written into an NRG disc image.
@@ -1002,6 +1035,35 @@ Implements `IEquatable<NrgTrackDefinition>`.
10021035
| `PregapData` | `byte[] PregapData { get; init; }` | Optional pregap bytes. When supplied they must contain exactly `PregapSectors` sectors, or, when `PregapSectors` is zero, determine the pregap length themselves. Raw framed and subchannel modes require explicit bytes because an all-zero sector would not be valid framing. |
10031036
| `PregapSectors` | `int PregapSectors { get; init; }` | Number of sectors in index 00 before index 01. Defaults to no stored pregap. |
10041037

1038+
#### `NrgTrackInfo`
1039+
1040+
Describes one NRG track and the exact byte range backing it in the container.
1041+
1042+
Implements `IEquatable<NrgTrackInfo>`.
1043+
1044+
| Member | Signature | Summary |
1045+
| --- | --- | --- |
1046+
| `NrgTrackInfo` | `NrgTrackInfo()` | |
1047+
| `AdrCtl` | `byte? AdrCtl { get; init; }` | Gets the ADR/control byte from CUE metadata when available. |
1048+
| `DataOffset` | `long DataOffset { get; init; }` | Gets the first byte of index 1 / program data. |
1049+
| `EndOffset` | `long EndOffset { get; init; }` | Gets the exclusive end byte of this track. |
1050+
| `HasIso9660` | `bool HasIso9660 { get; }` | Gets whether the reader found an ISO 9660 primary volume descriptor on this track. |
1051+
| `HasSubchannel` | `bool HasSubchannel { get; }` | Gets whether the stored sectors include the 96-byte subchannel area. |
1052+
| `Index0Lba` | `int? Index0Lba { get; init; }` | Gets the index-0 LBA when present in CUE/ETN metadata. |
1053+
| `Index1Lba` | `int? Index1Lba { get; init; }` | Gets the index-1 LBA when present in CUE/ETN metadata. |
1054+
| `IsAudio` | `bool IsAudio { get; }` | Gets whether this track contains CD-DA audio sectors. |
1055+
| `Isrc` | `string Isrc { get; init; }` | Gets the optional 12-character ISRC. |
1056+
| `ModeCode` | `byte ModeCode { get; init; }` | Gets the raw NRG mode code. |
1057+
| `Mode` | `NrgTrackMode Mode { get; }` | Gets the mode code as `NrgTrackMode` when it is one of the modes understood by the writer. |
1058+
| `PregapLength` | `long PregapLength { get; }` | Gets the number of bytes in the stored pregap. |
1059+
| `PregapOffset` | `long PregapOffset { get; init; }` | Gets the first byte of the stored pregap/index-0 area. |
1060+
| `SectorCount` | `long SectorCount { get; }` | Gets the number of complete stored sectors in index 1/program data. |
1061+
| `SectorSize` | `int SectorSize { get; init; }` | Gets the stored bytes per sector. |
1062+
| `SessionNumber` | `int SessionNumber { get; init; }` | Gets the containing one-based session number. |
1063+
| `StoredLength` | `long StoredLength { get; }` | Gets the exact number of bytes occupied by index 1/program data. |
1064+
| `TrackNumber` | `int TrackNumber { get; init; }` | Gets the globally numbered Compact Disc track number. |
1065+
| `UserDataOffset` | `int UserDataOffset { get; init; }` | Gets the offset of the 2,048-byte user-data area within each stored sector when one is known. |
1066+
10051067
#### `NrgTrackMode`
10061068

10071069
NRG v2 track storage modes understood by Nero-compatible readers.

0 commit comments

Comments
 (0)