You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!-- API:BEGIN generated by Hawkynt/RepositoryTemplate/package-readme — edit the XML docs in source, not here -->
282
282
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).
| `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. |
924
937
| `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. |
| `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. |
| `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. |
930
943
| `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. |
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.
966
979
967
980
Implements `IDisposable`.
968
981
969
982
| Member | Signature | Summary |
970
983
| --- | --- | --- |
971
984
| `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. |
973
989
| `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. |
974
991
| `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. |
| `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. |
1003
1036
| `PregapSectors` | `int PregapSectors { get; init; }` | Number of sectors in index 00 before index 01. Defaults to no stored pregap. |
1004
1037
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. |
| `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
+
1005
1067
#### `NrgTrackMode`
1006
1068
1007
1069
NRG v2 track storage modes understood by Nero-compatible readers.
0 commit comments