Line 50: |
Line 50: |
| | 101 || [5.0.0+] GetAlbumFileListEx0 | | | 101 || [5.0.0+] GetAlbumFileListEx0 |
| |- | | |- |
− | | 110 || [15.0.0+] | + | | 110 || [15.0.0+] GetAlbumFileListEx1 |
| |- | | |- |
− | | 120 || [17.0.0+] | + | | 120 || [17.0.0+] GetAlbumFileListEx2 |
| |- | | |- |
− | | 130 || [17.0.0+] | + | | 130 || [17.0.0+] LoadAlbumFileRawData |
| |- | | |- |
− | | 140 || [17.0.0+] | + | | 140 || [17.0.0+] GetAlbumFileCreatedEvent |
| |- | | |- |
| | 141 || [18.0.0+] | | | 141 || [18.0.0+] |
| |- | | |- |
− | | 150 || [17.0.0+] | + | | 150 || [17.0.0+] LoadAlbumSystemReservedInfo |
| |- | | |- |
| | 151 || [18.0.0+] | | | 151 || [18.0.0+] |
Line 158: |
Line 158: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Cmd || Name || Notes | + | ! Cmd || Name |
| |- | | |- |
− | | [1.0.0] 1 || CaptureRawImage || | + | | 1 || [1.0.0] CaptureRawImage |
| |- | | |- |
− | | [1.0.0] 2 || CaptureRawImageWithTimeout || | + | | 2 || [1.0.0] CaptureRawImageWithTimeout |
| |- | | |- |
− | | 33 || [7.0.0+] || | + | | 33 || [7.0.0+] [[#SetApplicationShimLibraryVersion]] |
| |- | | |- |
− | | [1.0.0] 1001 || RequestTakingScreenShot || | + | | 1001 || [1.0.0] RequestTakingScreenShot |
| |- | | |- |
− | | [1.0.0] 1002 || RequestTakingScreenShotWithTimeout || | + | | 1002 || [1.0.0] RequestTakingScreenShotWithTimeout |
| |- | | |- |
− | | [1.0.0] 1011 || NotifyTakingScreenShotRefused || | + | | 1011 || [1.0.0] NotifyTakingScreenShotRefused |
| |- | | |- |
− | | 2001 || NotifyAlbumStorageIsAvailable || | + | | 2001 || NotifyAlbumStorageIsAvailable |
| |- | | |- |
− | | 2002 || NotifyAlbumStorageIsUnavailable || | + | | 2002 || NotifyAlbumStorageIsUnavailable |
| |- | | |- |
− | | 2011 || [2.0.0+] RegisterAppletResourceUserId || | + | | 2011 || [2.0.0+] RegisterAppletResourceUserId |
| |- | | |- |
− | | 2012 || [2.0.0+] UnregisterAppletResourceUserId || | + | | 2012 || [2.0.0+] UnregisterAppletResourceUserId |
| |- | | |- |
− | | 2013 || [2.0.0+] GetApplicationIdFromAruid || | + | | 2013 || [2.0.0+] GetApplicationIdFromAruid |
| |- | | |- |
− | | 2014 || [2.0.0+] CheckApplicationIdRegistered || | + | | 2014 || [2.0.0+] CheckApplicationIdRegistered |
| |- | | |- |
− | | 2101 || [2.0.0+] GenerateCurrentAlbumFileId || Takes an input u8 and u64, returns a 0x18-byte struct. | + | | 2101 || [2.0.0+] [[#GenerateCurrentAlbumFileId]] |
| |- | | |- |
− | | 2102 || [2.0.0+] GenerateApplicationAlbumEnrty || | + | | 2102 || [2.0.0+] GenerateApplicationAlbumEnrty |
| |- | | |- |
− | | 2103 || [19.0.0+] || | + | | 2103 || [19.0.0+] |
| |- | | |- |
− | | 2104 || [19.0.0+] || | + | | 2104 || [19.0.0+] |
| |- | | |- |
− | | 2201 || [2.0.0-3.0.2] SaveAlbumScreenShotFile || | + | | 2201 || [2.0.0-3.0.2] SaveAlbumScreenShotFile |
| |- | | |- |
− | | 2202 || [4.0.0+] SaveAlbumScreenShotFileEx || | + | | 2202 || [4.0.0+] SaveAlbumScreenShotFileEx |
| |- | | |- |
− | | 2301 || [2.0.0+] SetOverlayScreenShotThumbnailData || | + | | 2301 || [2.0.0+] SetOverlayScreenShotThumbnailData |
| |- | | |- |
− | | 2302 || [4.0.0+] SetOverlayMovieThumbnailData || | + | | 2302 || [4.0.0+] SetOverlayMovieThumbnailData |
| |- | | |- |
− | | 2401 || [19.0.0+] || | + | | 2401 || [19.0.0+] |
| |- | | |- |
− | | 2501 || [19.0.0+] || | + | | 2501 || [19.0.0+] |
| |- | | |- |
− | | 60001 || [4.0.0+] OpenControlSession || Takes a total of 8-bytes of input and a PID, returns an [[#IAlbumControlSession]]. | + | | 60001 || [4.0.0+] [[#OpenControlSession]] |
| |} | | |} |
| | | |
− | === Cmd33 === | + | === SetApplicationShimLibraryVersion === |
| Takes an input u64 [[#ShimLibraryVersion]], an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and a PID, no output. | | Takes an input u64 [[#ShimLibraryVersion]], an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and a PID, no output. |
| | | |
| This is used by [[Applet_Manager_services|caps:su]] SetShimLibraryVersion. | | This is used by [[Applet_Manager_services|caps:su]] SetShimLibraryVersion. |
| + | |
| + | === GenerateCurrentAlbumFileId === |
| + | Takes an input u8 and u64, returns a 0x18-byte struct. |
| + | |
| + | === OpenControlSession === |
| + | Takes a total of 8-bytes of input and a PID, returns an [[#IAlbumControlSession]]. |
| | | |
| == IAlbumControlSession == | | == IAlbumControlSession == |
Line 307: |
Line 313: |
| | 141 || [6.0.0+] [[#GetAlbumFileList2AafeUidAruidDeprecated]] | | | 141 || [6.0.0+] [[#GetAlbumFileList2AafeUidAruidDeprecated]] |
| |- | | |- |
− | | 142 || [7.0.0+] [[#GetAlbumFileList3AaeAruid]] | + | | 142 || [17.0.0+] GetAlbumFileList3AaeAruidDeprecated ([7.0.0-16.1.0] [[#GetAlbumFileList3AaeAruid]]) |
| |- | | |- |
− | | 143 || [7.0.0+] [[#GetAlbumFileList4AaeUidAruid]] | + | | 143 || [17.0.0+] GetAlbumFileList4AaeUidAruidDeprecated ([7.0.0-16.1.0] [[#GetAlbumFileList4AaeUidAruid]]) |
| |- | | |- |
− | | 144 || [11.0.0+] GetAllAlbumFileList3AaeAruid | + | | 144 || [17.0.0+] GetAllAlbumFileList3AaeAruidDeprecated ([11.0.0-16.1.0] GetAllAlbumFileList3AaeAruid) |
| |- | | |- |
− | | 145 || [17.0.0+] | + | | 145 || [17.0.0+] GetAlbumFileList5AaeAruid |
| |- | | |- |
− | | 146 || [17.0.0+] | + | | 146 || [17.0.0+] GetAlbumFileList6AaeUidAruid |
| |- | | |- |
− | | 147 || [17.0.0+] | + | | 147 || [17.0.0+] GetAllAlbumFileList5AaeAruid |
| |- | | |- |
| | 148 || [18.0.0+] | | | 148 || [18.0.0+] |
Line 328: |
Line 334: |
| | | |
| == GetAlbumFileList0AafeAruidDeprecated == | | == GetAlbumFileList0AafeAruidDeprecated == |
− | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumFileEntry]], a PID, an u8 [[#ContentType]], two s64s, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). | + | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumFileEntry]], a PID, an u8 [[#AlbumFileContents]], two s64s, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). |
| | | |
| The two s64s are the start/end PosixTime. | | The two s64s are the start/end PosixTime. |
| | | |
| == DeleteAlbumFileByAruid == | | == DeleteAlbumFileByAruid == |
− | Takes a PID, an input u8 [[#ContentType]], an [[#ApplicationAlbumFileEntry]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and no output. | + | Takes a PID, an input u8 [[#AlbumFileContents]], an [[#ApplicationAlbumFileEntry]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and no output. |
| | | |
− | The [[#ContentType]] must match 3. | + | The [[#AlbumFileContents]] must match 3. |
| | | |
| == GetAlbumFileSizeByAruid == | | == GetAlbumFileSizeByAruid == |
Line 358: |
Line 364: |
| | | |
| == PrecheckToCreateContentsByAruid == | | == PrecheckToCreateContentsByAruid == |
− | Takes a PID, an input u8 [[#ContentType]], an u64, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and no output. | + | Takes a PID, an input u8 [[#AlbumFileContents]], an u64, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and no output. |
| | | |
| == GetAlbumFileList1AafeAruidDeprecated == | | == GetAlbumFileList1AafeAruidDeprecated == |
− | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumFileEntry]], a PID, an u8 [[#ContentType]], two [[#AlbumFileDateTime]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). | + | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumFileEntry]], a PID, an u8 [[#AlbumFileContents]], two [[#AlbumFileDateTime]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). |
| | | |
| The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. | | The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. |
| | | |
| == GetAlbumFileList2AafeUidAruidDeprecated == | | == GetAlbumFileList2AafeUidAruidDeprecated == |
− | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumFileEntry]], a PID, an u8 [[#ContentType]], two [[#AlbumFileDateTime]], an u128 userID, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). | + | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumFileEntry]], a PID, an u8 [[#AlbumFileContents]], two [[#AlbumFileDateTime]], an u128 userID, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). |
| | | |
| The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. | | The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. |
| | | |
| == GetAlbumFileList3AaeAruid == | | == GetAlbumFileList3AaeAruid == |
− | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumEntry]], a PID, an u8 [[#ContentType]], two [[#AlbumFileDateTime]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). | + | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumEntry]], a PID, an u8 [[#AlbumFileContents]], two [[#AlbumFileDateTime]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). |
| | | |
| The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. | | The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. |
| | | |
| == GetAlbumFileList4AaeUidAruid == | | == GetAlbumFileList4AaeUidAruid == |
− | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumEntry]], a PID, an u8 [[#ContentType]], two [[#AlbumFileDateTime]], an u128 userID, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). | + | Takes a type-0x6 output buffer containing an array of [[#ApplicationAlbumEntry]], a PID, an u8 [[#AlbumFileContents]], two [[#AlbumFileDateTime]], an u128 userID, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u64 for total output entries (which is copied to a s32 by official sw). |
| | | |
| The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. | | The first [[#AlbumFileDateTime]] is the start_DateTime, the second [[#AlbumFileDateTime]] is the end_DateTime. In the IPC rawdata, these use 2-byte alignment. |
Line 435: |
Line 441: |
| Controls which struct version to use for [[#ApplicationAlbumEntry]] / [[#AlbumFileEntry]]. However, the struct size for the newer version is used regardless on [7.0.0+] for the actual cmds. | | Controls which struct version to use for [[#ApplicationAlbumEntry]] / [[#AlbumFileEntry]]. However, the struct size for the newer version is used regardless on [7.0.0+] for the actual cmds. |
| | | |
− | = Enums = | + | = AlbumImageOrientation = |
| + | This is "nn::album::ImageOrientation". |
| | | |
− | === AlbumImageOrientation ===
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 443: |
Line 449: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0 || Unknown. | + | | 0 || |
| |- | | |- |
− | | 1 || Unknown. | + | | 1 || |
| |- | | |- |
− | | 2 || Unknown. | + | | 2 || |
| |- | | |- |
− | | 3 || Unknown. | + | | 3 || |
| |} | | |} |
| | | |
− | This is "nn::album::ImageOrientation". | + | === AlbumReportOption === |
| + | This is "nn::album::AlbumReportOption". |
| | | |
− | === AlbumReportOption ===
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 465: |
Line 471: |
| |} | | |} |
| | | |
− | This is "nn::album::AlbumReportOption". | + | === AlbumFileContents === |
| + | This is "nn::capsrv::AlbumFileContents". |
| | | |
− | === ContentType ===
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 473: |
Line 479: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0 || Screenshot. Album screenshots. | + | | 0 || Screenshot (album screenshots) |
| |- | | |- |
− | | 1 || Movie. Album videos. | + | | 1 || Movie (album videos) |
| |- | | |- |
− | | 3 || ExtraMovie. Videos recorded by the current Application title via [[GRC_services#IMovieMaker|GRC MovieMaker]]. | + | | 3 || ExtraMovie (videos recorded by the current Application title via [[GRC_services#IMovieMaker|GRC MovieMaker]]) |
| |} | | |} |
| | | |
| === AlbumStorage === | | === AlbumStorage === |
| + | This is "nn::capsrv::AlbumStorage". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 486: |
Line 494: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0 || Nand. ImageDirectory on the USER partition. | + | | 0 || Nand (ImageDirectory on the USER partition) |
| |- | | |- |
− | | 1 || Sd. ImageDirectory on the Sd card | + | | 1 || Sd (ImageDirectory on the Sd card) |
| |} | | |} |
| | | |
| = AlbumFileDateTime = | | = AlbumFileDateTime = |
| + | This is "nn::capsrv::AlbumFileDateTime". This is a 0x8-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 508: |
Line 518: |
| | 0x6 || 0x1 || Second | | | 0x6 || 0x1 || Second |
| |- | | |- |
− | | 0x7 || 0x1 || Unique ID for when there's multiple Album files with the same timestamp. | + | | 0x7 || 0x1 || Id (unique ID for when there's multiple Album files with the same timestamp) |
| |} | | |} |
− |
| |
− | This is "nn::capsrv::AlbumFileDateTime". This is a 0x8-byte struct.
| |
| | | |
| This corresponds to each field in the Album entry filename, prior to the "-": <code>YYYYMMDDHHMMSSII</code>. | | This corresponds to each field in the Album entry filename, prior to the "-": <code>YYYYMMDDHHMMSSII</code>. |
| | | |
| = AlbumEntry = | | = AlbumEntry = |
| + | This is "nn::capsrv::AlbumEntry". This is a 0x20-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x8 || Size of the entry. | + | | 0x0 || 0x8 || Size |
| |- | | |- |
− | | 0x8 || 0x8 || ApplicationId | + | | 0x8 || 0x18 || [[#AlbumFileId|FileId]] |
| + | |} |
| + | |
| + | = AlbumFileId = |
| + | This is "nn::capsrv::AlbumFileId". This is a 0x18-byte struct. |
| + | |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 0x10 || 0x8 || [[#AlbumFileDateTime]] | + | ! Offset || Size || Description |
| + | |- |
| + | | 0x0 || 0x8 || [[NCM_services#ApplicationId|ApplicationId]] |
| + | |- |
| + | | 0x8 || 0x8 || [[#AlbumFileDateTime|Time]] |
| |- | | |- |
− | | 0x18 || 0x1 || [[#AlbumStorage]] | + | | 0x10 || 0x1 || [[#AlbumStorage|Storage]] |
| |- | | |- |
− | | 0x19 || 0x1 || [[#ContentType]] | + | | 0x11 || 0x1 || [[#AlbumFileContents|Contents]] |
| |- | | |- |
− | | 0x1A || 0x6 || Padding. | + | | 0x12 || 0x6 || Reserved |
| |} | | |} |
− |
| |
− | This is "nn::capsrv::AlbumEntry". This is a 0x20-byte struct.
| |
| | | |
| = AlbumFileEntry = | | = AlbumFileEntry = |
Line 539: |
Line 557: |
| | | |
| = ApplicationAlbumEntry = | | = ApplicationAlbumEntry = |
| + | This is "nn::capsrv::ApplicationAlbumEntry". This is a 0x20-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x8 || Size of the entry. | + | | 0x0 || 0x8 || Size |
| |- | | |- |
− | | 0x8 || 0x8 || AES256 with hardcoded key over AlbumEntry. | + | | 0x8 || 0x8 || AES256 with hardcoded key over AlbumEntry |
| |- | | |- |
− | | 0x10 || 0x8 || [[#AlbumFileDateTime]] | + | | 0x10 || 0x8 || [[#AlbumFileDateTime|Time]] |
| |- | | |- |
− | | 0x18 || 0x1 || [[#AlbumStorage]] | + | | 0x18 || 0x1 || [[#AlbumStorage|Storage]] |
| |- | | |- |
− | | 0x19 || 0x1 || [[#ContentType]] | + | | 0x19 || 0x1 || [[#AlbumFileContents|Contents]] |
| |- | | |- |
− | | 0x1a || 0x5 || Padding. | + | | 0x1A || 0x5 || Reserved |
| |- | | |- |
− | | 0x1f || 0x1 || Unknown. Set to 1 by official software. | + | | 0x1F || 0x1 || Unknown (set to 1 by official software) |
| |} | | |} |
| | | |
− | This is "nn::capsrv::ApplicationAlbumEntry". This is a 0x20-byte struct. On older versions where [[#ShimLibraryVersion]] is 0, this was a plain AES256 with a random key generated at application launch.
| + | On older versions where [[#ShimLibraryVersion]] is 0, this was a plain AES256 with a random key generated at application launch. |
| | | |
| With the output from [[Applet_Manager_services#caps:su|caps:su]] sdk-nso only uses this for the [[Internet_Browser|Share-applet]] (when the output is used at all), with everything else it's used as an [[#AlbumFileEntry]]. In those cases with the <code>nn::album</code> wrapper funcs, it's "converted" by just copying the struct (arrays are "converted" by just returning a ptr to the input array). | | With the output from [[Applet_Manager_services#caps:su|caps:su]] sdk-nso only uses this for the [[Internet_Browser|Share-applet]] (when the output is used at all), with everything else it's used as an [[#AlbumFileEntry]]. In those cases with the <code>nn::album</code> wrapper funcs, it's "converted" by just copying the struct (arrays are "converted" by just returning a ptr to the input array). |
| | | |
| = ApplicationAlbumFileEntry = | | = ApplicationAlbumFileEntry = |
| + | This is "nn::capsrv::ApplicationAlbumFileEntry". This is a 0x30-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 571: |
Line 593: |
| | 0x20 || 0x8 || [[#AlbumFileDateTime]] | | | 0x20 || 0x8 || [[#AlbumFileDateTime]] |
| |- | | |- |
− | | 0x28 || 0x8 || Unknown. | + | | 0x28 || 0x8 || Unknown |
| |} | | |} |
− |
| |
− | This is "nn::capsrv::ApplicationAlbumFileEntry". This is a 0x30-byte struct.
| |
| | | |
| On newer versions where official sw uses [[#ApplicationAlbumEntry]], [[#ApplicationAlbumEntry]] is converted to ApplicationAlbumFileEntry when using cmds which need it with: | | On newer versions where official sw uses [[#ApplicationAlbumEntry]], [[#ApplicationAlbumEntry]] is converted to ApplicationAlbumFileEntry when using cmds which need it with: |
Line 582: |
Line 602: |
| | | |
| = ScreenShotAttribute = | | = ScreenShotAttribute = |
| + | This is "nn::capsrv::detail::ScreenShotAttributeEx0" / "nn::capsrv::ScreenShotAttribute". This is a 0x40-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 597: |
Line 619: |
| |} | | |} |
| | | |
− | This is "nn::capsrv::detail::ScreenShotAttributeEx0" / "nn::capsrv::ScreenShotAttribute". This is a 0x40-byte struct. | + | = ApplicationData = |
| + | This is "nn::capsrv::ApplicationData". This is a 0x404-byte struct. |
| | | |
− | = ApplicationData =
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 609: |
Line 631: |
| |} | | |} |
| | | |
− | This is "nn::capsrv::ApplicationData". This is a 0x404-byte struct. | + | = UserIdList = |
| + | This is "nn::capsrv::UserIdList". This is a 0x88-byte struct. |
| | | |
− | = UserIdList =
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 623: |
Line 645: |
| |} | | |} |
| | | |
− | This is "nn::capsrv::UserIdList". This is a 0x88-byte struct. | + | = LoadAlbumScreenShotImageOutputForApplication = |
| + | This is "nn::capsrv::sf::LoadAlbumScreenShotImageOutputForApplication". This is a 0x500-byte struct. |
| | | |
− | = LoadAlbumScreenShotImageOutputForApplication =
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 640: |
Line 662: |
| | 0x454 || 0xAC || Unused | | | 0x454 || 0xAC || Unused |
| |} | | |} |
− |
| |
− | This is "nn::capsrv::sf::LoadAlbumScreenShotImageOutputForApplication". This is a 0x500-byte struct.
| |
| | | |
| = ScreenShotDecodeOption = | | = ScreenShotDecodeOption = |
Line 649: |
Line 669: |
| | | |
| = ScreenShotAttributeForApplication = | | = ScreenShotAttributeForApplication = |
| + | This is "nn::capsrv::ScreenShotAttributeForApplication". This is a 0x40-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || Unknown. | + | | 0x0 || 0x4 || |
| |- | | |- |
− | | 0x4 || 0x1 || Unknown. | + | | 0x4 || 0x1 || |
| |- | | |- |
− | | 0x5 || 0x1 || Unknown. | + | | 0x5 || 0x1 || |
| |- | | |- |
− | | 0x6 || 0x1 || Unknown. | + | | 0x6 || 0x1 || |
| |- | | |- |
− | | 0x7 || 0x1 || Padding. | + | | 0x7 || 0x1 || |
| |- | | |- |
− | | 0x8 || 0x4 || Unknown. | + | | 0x8 || 0x4 || |
| |- | | |- |
− | | 0xC || 0x4 || Unknown. | + | | 0xC || 0x4 || |
| |- | | |- |
− | | 0x10 || 0x4 || Unknown. | + | | 0x10 || 0x4 || |
| |- | | |- |
− | | 0x14 || 0x4 || Unknown. | + | | 0x14 || 0x4 || |
| |- | | |- |
− | | 0x18 || 0x4 || Unknown. | + | | 0x18 || 0x4 || |
| |- | | |- |
− | | 0x1C || 0x4 || Unknown. | + | | 0x1C || 0x4 || |
| |- | | |- |
− | | 0x20 || 0x2 || Unknown. | + | | 0x20 || 0x2 || |
| |- | | |- |
− | | 0x22 || 0x2 || Unknown. | + | | 0x22 || 0x2 || |
| |- | | |- |
− | | 0x24 || 0x2 || Unknown. | + | | 0x24 || 0x2 || |
| |- | | |- |
− | | 0x26 || 0x2 || Unknown. | + | | 0x26 || 0x2 || |
| |- | | |- |
− | | 0x28 || 0x18 || Always zero. | + | | 0x28 || 0x18 || Reserved |
| |} | | |} |
− |
| |
− | This is "nn::capsrv::ScreenShotAttributeForApplication". This is a 0x40-byte struct.
| |
| | | |
| Official sw only uses this in <code>nn::album</code> funcs which convert this to [[#AlbumFileAttribute]], with the output from [[#LoadAlbumScreenShotImageByAruid]]/[[#LoadAlbumScreenShotThumbnailImageByAruid]] (only the first u32 is used). | | Official sw only uses this in <code>nn::album</code> funcs which convert this to [[#AlbumFileAttribute]], with the output from [[#LoadAlbumScreenShotImageByAruid]]/[[#LoadAlbumScreenShotThumbnailImageByAruid]] (only the first u32 is used). |
| | | |
| = AlbumFileAttribute = | | = AlbumFileAttribute = |
| + | This is "nn::album::AlbumFileAttribute". This is a 0x10-byte struct. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 700: |
Line 722: |
| |} | | |} |
| | | |
− | This is "nn::album::AlbumFileAttribute". This is a 0x10-byte struct. See also [[#ScreenShotAttributeForApplication]].
| + | See also [[#ScreenShotAttributeForApplication]]. |
| | | |
| = AlbumMovieReadStreamHandle = | | = AlbumMovieReadStreamHandle = |