From bd1941bccac6e2fd5ba823e7a6f4e01d77ca074b Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Sat, 28 Dec 2024 22:10:25 -0800 Subject: [PATCH] Add `NcmPatchMetaExtendedHeader` struct class --- .changeset/gorgeous-peas-build.md | 5 +++++ packages/ncm/src/types.ts | 33 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 .changeset/gorgeous-peas-build.md diff --git a/.changeset/gorgeous-peas-build.md b/.changeset/gorgeous-peas-build.md new file mode 100644 index 00000000..4e19885d --- /dev/null +++ b/.changeset/gorgeous-peas-build.md @@ -0,0 +1,5 @@ +--- +"@nx.js/ncm": minor +--- + +Add `NcmPatchMetaExtendedHeader` struct class diff --git a/packages/ncm/src/types.ts b/packages/ncm/src/types.ts index 4de944b5..6a1a8db8 100644 --- a/packages/ncm/src/types.ts +++ b/packages/ncm/src/types.ts @@ -131,6 +131,7 @@ export class NcmContentMetaKey extends ArrayBufferStruct { } } +/// ContentInfo export class NcmContentInfo extends ArrayBufferStruct { //NcmContentId content_id; ///< \ref NcmContentId //u32 size_low; ///< Content size (low). @@ -184,6 +185,7 @@ export class NcmContentInfo extends ArrayBufferStruct { } } +/// ContentMetaHeader export class NcmContentMetaHeader extends ArrayBufferStruct { // u16 extended_header_size; ///< Size of optional struct that comes after this one. // u16 content_count; ///< Number of NcmContentInfos after the extra bytes. @@ -228,6 +230,7 @@ export class NcmContentMetaHeader extends ArrayBufferStruct { } } +/// ApplicationMetaExtendedHeader export class NcmApplicationMetaExtendedHeader extends ArrayBufferStruct { // u64 patch_id; ///< PatchId of this application's patch. // u32 required_system_version; ///< Firmware version required by this application. @@ -255,3 +258,33 @@ export class NcmApplicationMetaExtendedHeader extends ArrayBufferStruct { view(this).setUint32(0xc, v, true); } } + +/// PatchMetaExtendedHeader +export class NcmPatchMetaExtendedHeader extends ArrayBufferStruct { + // u64 application_id; ///< ApplicationId of this patch's corresponding application. + // u32 required_system_version; ///< Firmware version required by this patch. + // u32 extended_data_size; ///< Size of the extended data following the NcmContentInfos. + // u8 reserved[0x8]; ///< Unused. + static sizeof = 0x18 as const; + + get applicationId() { + return view(this).getBigUint64(0x0, true); + } + set applicationId(v: bigint) { + view(this).setBigUint64(0x0, v, true); + } + + get requiredSystemVersion() { + return view(this).getUint32(0x8, true); + } + set requiredSystemVersion(v: number) { + view(this).setUint32(0x8, v, true); + } + + get extendedDataSize() { + return view(this).getUint32(0xc, true); + } + set extendedDataSize(v: number) { + view(this).setUint32(0xc, v, true); + } +}