mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-03 18:12:14 +02:00
fix movie write and add comments
This commit is contained in:
parent
8a8cd49af2
commit
d4105fb0ab
@ -200,11 +200,6 @@ typedef struct {
|
||||
u64 unk_x8; ///< Unknown
|
||||
} CapsAlbumCache;
|
||||
|
||||
/// AlbumCommitOutput
|
||||
typedef struct {
|
||||
u64 unk[4]; ///< Unknown. Official sw sets this to 0.
|
||||
} CapsAlbumCommitOutput;
|
||||
|
||||
/// Gets the ShimLibraryVersion.
|
||||
u64 capsGetShimLibraryVersion(void);
|
||||
|
||||
|
@ -149,7 +149,7 @@ Result capscGetAlbumMovieStreamSize(u64 stream, u64 *size);
|
||||
/**
|
||||
* @brief Reads data from an AlbumMovieReadStream.
|
||||
* @note offset(+size) must not be negative. offset and size must be aligned to 0x40000-bytes.
|
||||
* @note When offset(+size) goes beyond the size from \ref capsaGetAlbumMovieStreamSize, the regions of the buffer which goes beyond that are cleared to 0, and actual_size is still set to the input size.
|
||||
* @note When offset(+size) goes beyond the size from \ref capscGetAlbumMovieStreamSize, the regions of the buffer which goes beyond that are cleared to 0, and actual_size is still set to the input size.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[in] offset Offset.
|
||||
@ -180,7 +180,7 @@ Result capscGetAlbumMovieReadStreamImageDataSize(u64 stream, u64 *size);
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[in] offset Offset.
|
||||
* @param[out] Output data buffer.
|
||||
* @param[out] buffer Output data buffer.
|
||||
* @param[in] size Data buffer size.
|
||||
* @param[out] actual_size Actual read size.
|
||||
*/
|
||||
@ -203,18 +203,125 @@ Result capscReadFileAttributeFromAlbumMovieReadStream(u64 stream, CapsScreenShot
|
||||
* @param[in] entry \ref CapsAlbumFileId
|
||||
*/
|
||||
Result capscOpenAlbumMovieWriteStream(u64 *stream, const CapsAlbumFileId *file_id);
|
||||
|
||||
/**
|
||||
* @brief Finish write to AlbumMovieWriteStream.
|
||||
* @note Writes copies file from save to destination storage and deletes the temporary file.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscFinishAlbumMovieWriteStream(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief Closes a finished AlbumMovieWriteStream.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscCommitAlbumMovieWriteStream(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief Closes an AlbumMovieWriteStream in any state.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscDiscardAlbumMovieWriteStream(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief Closes an AlbumMovieWriteStream in any state without deleting the temporary file.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscDiscardAlbumMovieWriteStreamNoDelete(u64 stream);
|
||||
Result capscCommitAlbumMovieWriteStreamEx(u64 stream, CapsAlbumCommitOutput *out);
|
||||
|
||||
/**
|
||||
* @brief Closes a finished AlbumMovieWriteStream.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[out] entry \ref CapsAlbumEntry
|
||||
*/
|
||||
Result capscCommitAlbumMovieWriteStreamEx(u64 stream, CapsAlbumEntry *entry);
|
||||
|
||||
/**
|
||||
* @brief Start AlbumMovieWriteStream data section.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscStartAlbumMovieWriteStreamDataSection(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief End AlbumMovieWriteStream data section.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscEndAlbumMovieWriteStreamDataSection(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief Start AlbumMovieWriteStream meta section.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscStartAlbumMovieWriteStreamMetaSection(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief End AlbumMovieWriteStream meta section.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscEndAlbumMovieWriteStreamMetaSection(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief Reads data from an AlbumMovieWriteStream.
|
||||
* @note offset(+size) must not be negative. offset and size must be aligned to 0x40000-bytes.
|
||||
* @note When offset(+size) goes beyond the size from \ref capscGetAlbumMovieStreamSize, the regions of the buffer which goes beyond that are cleared to 0, and actual_size is still set to the input size.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[in] offset Offset.
|
||||
* @param[out] buffer Output data buffer.
|
||||
* @param[in] size Data buffer size.
|
||||
* @param[out] actual_size Actual read size.
|
||||
*/
|
||||
Result capscReadDataFromAlbumMovieWriteStream(u64 stream, u64 offset, void* buffer, u64 size, u64 *actual_size);
|
||||
|
||||
/**
|
||||
* @brief Write data to an AlbumMovieWriteStream.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[in] offset Offset.
|
||||
* @param[out] buffer Input data buffer.
|
||||
* @param[in] size Data buffer size.
|
||||
*/
|
||||
Result capscWriteDataToAlbumMovieWriteStream(u64 stream, u64 offset, void* buffer, u64 size);
|
||||
|
||||
/**
|
||||
* @brief Write meta data to an AlbumMovieWriteStream.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[in] offset Offset.
|
||||
* @param[out] buffer Input data buffer.
|
||||
* @param[in] size Data buffer size.
|
||||
*/
|
||||
Result capscWriteMetaToAlbumMovieWriteStream(u64 stream, u64 offset, void* buffer, u64 size);
|
||||
|
||||
/**
|
||||
* @brief Gets the BrokenReason for an AlbumMovieWriteStream.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
*/
|
||||
Result capscGetAlbumMovieWriteStreamBrokenReason(u64 stream);
|
||||
|
||||
/**
|
||||
* @brief Gets the data size of an AlbumMovieWriteStream.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[out] size Size of the data section.
|
||||
*/
|
||||
Result capscGetAlbumMovieWriteStreamDataSize(u64 stream, u64 *size);
|
||||
|
||||
/**
|
||||
* @brief Sets the data size of an AlbumMovieWriteStream.
|
||||
* @note Must not be bigger than 2GiB.
|
||||
* @note Only available on [4.0.0+].
|
||||
* @param[in] stream Stream handle.
|
||||
* @param[out] size Size of the data section.
|
||||
*/
|
||||
Result capscSetAlbumMovieWriteStreamDataSize(u64 stream, u64 size);
|
||||
|
@ -179,7 +179,7 @@ static Result _capscControlReadDataFromAlbumMovieStream(u32 cmd_id, u64 stream,
|
||||
);
|
||||
}
|
||||
|
||||
static Result _capscControlCmdInU8NoOut(u32 cmd_id, u8 inval) {
|
||||
static Result _capscControlCmdInU64NoOut(u32 cmd_id, u64 inval) {
|
||||
if (hosversionBefore(4,0,0))
|
||||
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||
if (!serviceIsActive(&g_capscControl))
|
||||
@ -197,7 +197,7 @@ Result capscOpenAlbumMovieReadStream(u64 *stream, const CapsAlbumFileId *file_id
|
||||
}
|
||||
|
||||
Result capscCloseAlbumMovieStream(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2002, stream);
|
||||
return _capscControlCmdInU64NoOut(2002, stream);
|
||||
}
|
||||
|
||||
Result capscGetAlbumMovieStreamSize(u64 stream, u64 *size) {
|
||||
@ -213,7 +213,7 @@ Result capscReadMovieDataFromAlbumMovieReadStream(u64 stream, u64 offset, void*
|
||||
}
|
||||
|
||||
Result capscGetAlbumMovieReadStreamBrokenReason(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2005, stream);
|
||||
return _capscControlCmdInU64NoOut(2005, stream);
|
||||
}
|
||||
|
||||
Result capscGetAlbumMovieReadStreamImageDataSize(u64 stream, u64 *size) {
|
||||
@ -252,45 +252,43 @@ Result capscOpenAlbumMovieWriteStream(u64 *stream, const CapsAlbumFileId *file_i
|
||||
}
|
||||
|
||||
Result capscFinishAlbumMovieWriteStream(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2402, stream);
|
||||
return _capscControlCmdInU64NoOut(2402, stream);
|
||||
}
|
||||
|
||||
Result capscCommitAlbumMovieWriteStream(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2403, stream);
|
||||
return _capscControlCmdInU64NoOut(2403, stream);
|
||||
}
|
||||
|
||||
Result capscDiscardAlbumMovieWriteStream(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2404, stream);
|
||||
return _capscControlCmdInU64NoOut(2404, stream);
|
||||
}
|
||||
|
||||
Result capscDiscardAlbumMovieWriteStreamNoDelete(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2405, stream);
|
||||
return _capscControlCmdInU64NoOut(2405, stream);
|
||||
}
|
||||
|
||||
Result capscCommitAlbumMovieWriteStreamEx(u64 stream, CapsAlbumCommitOutput *out) {
|
||||
Result capscCommitAlbumMovieWriteStreamEx(u64 stream, CapsAlbumEntry *entry) {
|
||||
if (hosversionBefore(4,0,0))
|
||||
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||
|
||||
if (!serviceIsActive(&g_capscControl))
|
||||
return MAKERESULT(Module_Libnx, LibnxError_NotInitialized);
|
||||
|
||||
return serviceDispatchInOut(&g_capscControl, 2406, stream, *out);
|
||||
return serviceDispatchInOut(&g_capscControl, 2406, stream, *entry);
|
||||
}
|
||||
|
||||
Result capscStartAlbumMovieWriteStreamDataSection(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2411, stream);
|
||||
return _capscControlCmdInU64NoOut(2411, stream);
|
||||
}
|
||||
|
||||
Result capscEndAlbumMovieWriteStreamDataSection(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2412, stream);
|
||||
return _capscControlCmdInU64NoOut(2412, stream);
|
||||
}
|
||||
|
||||
Result capscStartAlbumMovieWriteStreamMetaSection(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2413, stream);
|
||||
return _capscControlCmdInU64NoOut(2413, stream);
|
||||
}
|
||||
|
||||
Result capscEndAlbumMovieWriteStreamMetaSection(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2414, stream);
|
||||
return _capscControlCmdInU64NoOut(2414, stream);
|
||||
}
|
||||
|
||||
Result capscReadDataFromAlbumMovieWriteStream(u64 stream, u64 offset, void* buffer, u64 size, u64 *actual_size) {
|
||||
@ -321,7 +319,7 @@ Result capscWriteMetaToAlbumMovieWriteStream(u64 stream, u64 offset, void* buffe
|
||||
}
|
||||
|
||||
Result capscGetAlbumMovieWriteStreamBrokenReason(u64 stream) {
|
||||
return _capscControlCmdInU8NoOut(2431, stream);
|
||||
return _capscControlCmdInU64NoOut(2431, stream);
|
||||
}
|
||||
|
||||
Result capscGetAlbumMovieWriteStreamDataSize(u64 stream, u64 *size) {
|
||||
|
Loading…
Reference in New Issue
Block a user