diff --git a/nx/include/switch/services/caps.h b/nx/include/switch/services/caps.h index 1fa9f5a6..740883a9 100644 --- a/nx/include/switch/services/caps.h +++ b/nx/include/switch/services/caps.h @@ -175,6 +175,14 @@ typedef struct { u8 reserved[0xac]; ///< Unused. } CapsLoadAlbumScreenShotImageOutputForApplication; +/// LoadAlbumScreenShotImageOutput +typedef struct { + s64 width; ///< Width. Official sw copies this to a s32 output field. + s64 height; ///< Height. Official sw copies this to a s32 output field. + CapsScreenShotAttributeForApplication attr; ///< \ref CapsScreenShotAttributeForApplication + u8 unk_x50[0x400]; +} CapsLoadAlbumScreenShotImageOutput; + /// Gets the ShimLibraryVersion. u64 capsGetShimLibraryVersion(void); diff --git a/nx/include/switch/services/capsa.h b/nx/include/switch/services/capsa.h index efe804a2..efb33b3f 100644 --- a/nx/include/switch/services/capsa.h +++ b/nx/include/switch/services/capsa.h @@ -192,7 +192,7 @@ Result capsaGetRequiredStorageSpaceSizeToCopyAll(CapsAlbumStorage dst_storage, C * @param[out] workbuf Work buffer, cleared to 0 by the cmd before it returns. * @param[in] workbuf_size Work buffer size, must be at least the size of the JPEG within the AlbumFile. */ -Result capsaLoadAlbumScreenShotThumbnailImageEx1(const CapsAlbumFileId *file_id, const CapsScreenShotDecodeOption *opts, CapsLoadAlbumScreenShotImageOutputForApplication *out, void* image, u64 image_size, void* workbuf, u64 workbuf_size); +Result capsaLoadAlbumScreenShotThumbnailImageEx1(const CapsAlbumFileId *file_id, const CapsScreenShotDecodeOption *opts, CapsLoadAlbumScreenShotImageOutput *out, void* image, u64 image_size, void* workbuf, u64 workbuf_size); /** * @brief Unmounts the specified AlbumStorage. diff --git a/nx/source/services/capsa.c b/nx/source/services/capsa.c index 753cd9ab..e1c7b526 100644 --- a/nx/source/services/capsa.c +++ b/nx/source/services/capsa.c @@ -173,7 +173,7 @@ Result capsaGetRequiredStorageSpaceSizeToCopyAll(CapsAlbumStorage dst_storage, C return serviceDispatchInOut(&g_capsaSrv, 501, in, *out); } -Result capsaLoadAlbumScreenShotThumbnailImageEx1(const CapsAlbumFileId *file_id, const CapsScreenShotDecodeOption *opts, CapsLoadAlbumScreenShotImageOutputForApplication *out, void* image, u64 image_size, void* workbuf, u64 workbuf_size) { +Result capsaLoadAlbumScreenShotThumbnailImageEx1(const CapsAlbumFileId *file_id, const CapsScreenShotDecodeOption *opts, CapsLoadAlbumScreenShotImageOutput *out, void* image, u64 image_size, void* workbuf, u64 workbuf_size) { if (hosversionBefore(4,0,0)) return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); struct { @@ -182,7 +182,7 @@ Result capsaLoadAlbumScreenShotThumbnailImageEx1(const CapsAlbumFileId *file_id, } in = { *file_id, *opts }; return serviceDispatchIn(&g_capsaSrv, 1003, in, .buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out | SfBufferAttr_FixedSize, SfBufferAttr_HipcMapAlias | SfBufferAttr_Out | SfBufferAttr_HipcMapTransferAllowsNonSecure, SfBufferAttr_HipcMapAlias | SfBufferAttr_Out }, - .buffers = { { out, sizeof(CapsLoadAlbumScreenShotImageOutputForApplication) }, { image, image_size }, { workbuf, workbuf_size } }, + .buffers = { { out, sizeof(CapsLoadAlbumScreenShotImageOutput) }, { image, image_size }, { workbuf, workbuf_size } }, ); }