mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-04 10:32:15 +02:00
fix query and use count instead of size for listing
This commit is contained in:
parent
9c79de1844
commit
8180ce9046
@ -189,6 +189,12 @@ typedef struct {
|
|||||||
u8 unk_x50[0x400]; ///< Unused.
|
u8 unk_x50[0x400]; ///< Unused.
|
||||||
} CapsLoadAlbumScreenShotImageOutput;
|
} CapsLoadAlbumScreenShotImageOutput;
|
||||||
|
|
||||||
|
/// AlbumFileContentsFlag
|
||||||
|
typedef enum {
|
||||||
|
CapsAlbumFileContentsFlag_ScreenShot = BIT(0), ///< Query for ScreenShot files.
|
||||||
|
CapsAlbumFileContentsFlag_Movie = BIT(1), ///< Query for Movie files.
|
||||||
|
} CapsAlbumFileContentsFlag;
|
||||||
|
|
||||||
/// AlbumCache
|
/// AlbumCache
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u64 count; ///< Count
|
u64 count; ///< Count
|
||||||
|
@ -31,11 +31,11 @@ Result capsaGetAlbumFileCount(CapsAlbumStorage storage, u64 *count);
|
|||||||
/**
|
/**
|
||||||
* @brief Gets a listing of \ref CapsAlbumEntry, where the AlbumFile's storage matches the input one.
|
* @brief Gets a listing of \ref CapsAlbumEntry, where the AlbumFile's storage matches the input one.
|
||||||
* @param[in] storage \ref CapsAlbumStorage
|
* @param[in] storage \ref CapsAlbumStorage
|
||||||
* @param[out] count Total output entries.
|
* @param[out] out Total output entries.
|
||||||
* @param[out] entries Output array of \ref CapsAlbumEntry.
|
* @param[out] entries Output array of \ref CapsAlbumEntry.
|
||||||
* @param[in] size Reserved size at entries
|
* @param[in] count Reserved entry count.
|
||||||
*/
|
*/
|
||||||
Result capsaGetAlbumFileList(CapsAlbumStorage storage, u64 *count, CapsAlbumEntry *entries, u64 size);
|
Result capsaGetAlbumFileList(CapsAlbumStorage storage, u64 *out, CapsAlbumEntry *entries, u64 count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Loads a file into the specified buffer.
|
* @brief Loads a file into the specified buffer.
|
||||||
@ -195,21 +195,21 @@ Result capsaGetMinMaxAppletId(bool* success, u64* min, u64* max);
|
|||||||
* @brief Gets the amount of files of the specified type at a AlbumStorage.
|
* @brief Gets the amount of files of the specified type at a AlbumStorage.
|
||||||
* @note Only available on [5.0.0+].
|
* @note Only available on [5.0.0+].
|
||||||
* @param[in] storage \ref CapsAlbumStorage
|
* @param[in] storage \ref CapsAlbumStorage
|
||||||
* @param[in] contents \ref CapsAlbumFileContents
|
* @param[in] flags \ref CapsAlbumFileContentsFlag
|
||||||
* @param[out] count Amount of files.
|
* @param[out] count Amount of files.
|
||||||
*/
|
*/
|
||||||
Result capsaGetAlbumFileCountEx0(CapsAlbumStorage storage, CapsAlbumFileContents contents, u64 *count);
|
Result capsaGetAlbumFileCountEx0(CapsAlbumStorage storage, u8 flags, u64 *count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets a listing of \ref CapsAlbumEntry, where the AlbumFile's storage and type matches the input one.
|
* @brief Gets a listing of \ref CapsAlbumEntry, where the AlbumFile's storage and type matches the input one.
|
||||||
* @note Only available on [5.0.0+].
|
* @note Only available on [5.0.0+].
|
||||||
* @param[in] storage \ref CapsAlbumStorage
|
* @param[in] storage \ref CapsAlbumStorage
|
||||||
* @param[in] contents \ref CapsAlbumFileContents
|
* @param[in] flags \ref CapsAlbumFileContentsFlag
|
||||||
* @param[out] count Total output entries.
|
* @param[out] out Total output entries.
|
||||||
* @param[out] entries Output array of \ref CapsAlbumEntry.
|
* @param[out] entries Output array of \ref CapsAlbumEntry.
|
||||||
* @param[in] size Reserved size at entries
|
* @param[in] count Reserved entry count.
|
||||||
*/
|
*/
|
||||||
Result capsaGetAlbumFileListEx0(CapsAlbumStorage storage, CapsAlbumFileContents contents, u64 *count, CapsAlbumEntry *entries, u64 size);
|
Result capsaGetAlbumFileListEx0(CapsAlbumStorage storage, u8 flags, u64 *out, CapsAlbumEntry *entries, u64 count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns the image from the last shown ScreenShot Overlay.
|
* @brief Returns the image from the last shown ScreenShot Overlay.
|
||||||
|
@ -37,11 +37,11 @@ Result capsaGetAlbumFileCount(CapsAlbumStorage storage, u64 *count) {
|
|||||||
return serviceDispatchInOut(&g_capsaSrv, 0, inval, *count);
|
return serviceDispatchInOut(&g_capsaSrv, 0, inval, *count);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result capsaGetAlbumFileList(CapsAlbumStorage storage, u64 *count, CapsAlbumEntry *entries, u64 size) {
|
Result capsaGetAlbumFileList(CapsAlbumStorage storage, u64 *out, CapsAlbumEntry *entries, u64 count) {
|
||||||
u8 inval = storage;
|
u8 inval = storage;
|
||||||
return serviceDispatchInOut(&g_capsaSrv, 1, inval, *count,
|
return serviceDispatchInOut(&g_capsaSrv, 1, inval, *out,
|
||||||
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
.buffers = { { entries, size } },
|
.buffers = { { entries, count * sizeof(CapsAlbumEntry) } },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,30 +210,30 @@ Result capsaGetMinMaxAppletId(bool *success, u64* min, u64* max) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result capsaGetAlbumFileCountEx0(CapsAlbumStorage storage, CapsAlbumFileContents contents, u64 *count) {
|
Result capsaGetAlbumFileCountEx0(CapsAlbumStorage storage, u8 flags, u64 *count) {
|
||||||
if (hosversionBefore(5,0,0))
|
if (hosversionBefore(5,0,0))
|
||||||
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
struct {
|
struct {
|
||||||
CapsAlbumStorage storage;
|
u8 storage;
|
||||||
u8 pad_x1[0x7];
|
u8 pad_x1[7];
|
||||||
CapsAlbumFileContents contents;
|
u8 flags;
|
||||||
u8 pad_x9[0x7];
|
u8 pad_x9[7];
|
||||||
} in = { storage, {0}, contents, {0} };
|
} in = { storage, {0}, flags, {0} };
|
||||||
return serviceDispatchInOut(&g_capsaSrv, 100, in, *count);
|
return serviceDispatchInOut(&g_capsaSrv, 100, in, *count);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result capsaGetAlbumFileListEx0(CapsAlbumStorage storage, CapsAlbumFileContents contents, u64 *count, CapsAlbumEntry *entries, u64 size) {
|
Result capsaGetAlbumFileListEx0(CapsAlbumStorage storage, u8 flags, u64 *out, CapsAlbumEntry *entries, u64 count) {
|
||||||
if (hosversionBefore(5,0,0))
|
if (hosversionBefore(5,0,0))
|
||||||
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
struct {
|
struct {
|
||||||
CapsAlbumStorage storage;
|
u8 storage;
|
||||||
u8 pad_x1[0x7];
|
u8 pad_x1[7];
|
||||||
CapsAlbumFileContents contents;
|
u8 contents;
|
||||||
u8 pad_x9[0x7];
|
u8 pad_x9[7];
|
||||||
} in = { storage, {0}, contents, {0} };
|
} in = { storage, {0}, flags, {0} };
|
||||||
return serviceDispatchInOut(&g_capsaSrv, 101, in, *count,
|
return serviceDispatchInOut(&g_capsaSrv, 101, in, *out,
|
||||||
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
.buffers = { { entries, size } },
|
.buffers = { { entries, count * sizeof(CapsAlbumEntry) } },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user