libnx v4.9.0
Loading...
Searching...
No Matches
capssu.h
Go to the documentation of this file.
1/**
2 * @file capssu.h
3 * @brief Application screenshot saving (caps:su) service IPC wrapper.
4 * @author yellows8
5 * @copyright libnx Authors
6 */
7#pragma once
8#include "../types.h"
9#include "../sf/service.h"
10#include "../services/acc.h"
11#include "../services/caps.h"
12
13/// Initialize caps:su. Only available on [4.0.0+].
15
16/// Exit caps:su.
17void capssuExit(void);
18
19/// Gets the Service for caps:su.
21
22/**
23 * @brief This is a wrapper for \ref capssuSaveScreenShotEx0.
24 * @note This uses an all-zero \ref CapsScreenShotAttribute with orientation = input orientation, and unk_xc = 1.
25 * @param[in] buffer RGBA8 1280x720 image buffer.
26 * @param[in] size Size of the buffer.
27 * @param[in] reportoption \ref AlbumReportOption
28 * @param[in] orientation \ref AlbumImageOrientation
29 * @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
30 */
31Result capssuSaveScreenShot(const void* buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, CapsApplicationAlbumEntry *out);
32
33/**
34 * @brief Similar to \ref capssuSaveScreenShot, except this is a wrapper for \ref capssuSaveScreenShotEx1.
35 * @note This uses an all-zero \ref CapsScreenShotAttribute with orientation = input orientation, and unk_xc = 1.
36 * @note Only available on [8.0.0+].
37 * @param[in] buffer RGBA8 1280x720 image data buffer.
38 * @param[in] size Size of the buffer.
39 * @param[in] reportoption \ref AlbumReportOption
40 * @param[in] orientation \ref AlbumImageOrientation
41 * @param[in] userdata Input UserData buffer. If NULL, the \ref CapsApplicationData will be empty.
42 * @param[in] userdata_size Input UserData size, must be within bounds for CapsApplicationData::userdata. If 0, the \ref CapsApplicationData will be empty.
43 * @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
44 */
45Result capssuSaveScreenShotWithUserData(const void* buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, const void* userdata, size_t userdata_size, CapsApplicationAlbumEntry *out);
46
47/**
48 * @brief Similar to \ref capssuSaveScreenShot, except this is a wrapper for \ref capssuSaveScreenShotEx2.
49 * @note This uses an all-zero \ref CapsScreenShotAttribute with orientation = input orientation, and unk_xc = 1.
50 * @note Only available on [6.0.0+].
51 * @param[in] buffer RGBA8 1280x720 image data buffer.
52 * @param[in] size Size of the buffer.
53 * @param[in] reportoption \ref AlbumReportOption
54 * @param[in] orientation \ref AlbumImageOrientation
55 * @param[in] uids Input array of \ref AccountUid. If NULL, the \ref CapsUserIdList will be empty.
56 * @param[in] uid_count Size of the uids array in entries, must be within bounds for CapsUserIdList::uids. If 0, the \ref CapsUserIdList will be empty.
57 * @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
58 */
59Result capssuSaveScreenShotWithUserIds(const void* buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, const AccountUid* uids, size_t uid_count, CapsApplicationAlbumEntry *out);
60
61/**
62 * @brief Saves an Album screenshot using the specified gfx data in the buffer, with the specified \ref CapsScreenShotAttribute.
63 * @param[in] buffer RGBA8 1280x720 image data buffer.
64 * @param[in] size Size of the buffer, must be at least 0x384000.
65 * @param[in] attr \ref CapsScreenShotAttribute
66 * @param[in] reportoption \ref AlbumReportOption
67 * @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
68 */
69Result capssuSaveScreenShotEx0(const void* buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsApplicationAlbumEntry *out);
70
71/**
72 * @brief Same as \ref capssuSaveScreenShotEx0, except this allows specifying the \ref CapsApplicationData.
73 * @note Only available on [8.0.0+].
74 * @param[in] buffer RGBA8 1280x720 image data buffer.
75 * @param[in] size Size of the buffer, must be at least 0x384000.
76 * @param[in] attr \ref CapsScreenShotAttribute
77 * @param[in] reportoption \ref AlbumReportOption
78 * @param[in] appdata \ref CapsApplicationData
79 * @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
80 */
81Result capssuSaveScreenShotEx1(const void* buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsApplicationData *appdata, CapsApplicationAlbumEntry *out);
82
83/**
84 * @brief Same as \ref capssuSaveScreenShotEx0, except this allows specifying the \ref CapsUserIdList.
85 * @note Only available on [6.0.0+].
86 * @param[in] buffer RGBA8 1280x720 image data buffer.
87 * @param[in] size Size of the buffer, must be at least 0x384000.
88 * @param[in] attr \ref CapsScreenShotAttribute
89 * @param[in] reportoption \ref AlbumReportOption
90 * @param[in] list \ref CapsUserIdList
91 * @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
92 */
93Result capssuSaveScreenShotEx2(const void* buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsUserIdList *list, CapsApplicationAlbumEntry *out);
94
AlbumImageOrientation
ImageOrientation.
Definition caps.h:12
AlbumReportOption
AlbumReportOption.
Definition caps.h:20
Result capssuSaveScreenShotEx1(const void *buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsApplicationData *appdata, CapsApplicationAlbumEntry *out)
Same as capssuSaveScreenShotEx0, except this allows specifying the CapsApplicationData.
Result capssuSaveScreenShotWithUserData(const void *buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, const void *userdata, size_t userdata_size, CapsApplicationAlbumEntry *out)
Similar to capssuSaveScreenShot, except this is a wrapper for capssuSaveScreenShotEx1.
Result capssuSaveScreenShotEx0(const void *buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsApplicationAlbumEntry *out)
Saves an Album screenshot using the specified gfx data in the buffer, with the specified CapsScreenSh...
Result capssuSaveScreenShotWithUserIds(const void *buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, const AccountUid *uids, size_t uid_count, CapsApplicationAlbumEntry *out)
Similar to capssuSaveScreenShot, except this is a wrapper for capssuSaveScreenShotEx2.
void capssuExit(void)
Exit caps:su.
Service * capssuGetServiceSession(void)
Gets the Service for caps:su.
Result capssuInitialize(void)
Initialize caps:su. Only available on [4.0.0+].
Result capssuSaveScreenShot(const void *buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, CapsApplicationAlbumEntry *out)
This is a wrapper for capssuSaveScreenShotEx0.
Result capssuSaveScreenShotEx2(const void *buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsUserIdList *list, CapsApplicationAlbumEntry *out)
Same as capssuSaveScreenShotEx0, except this allows specifying the CapsUserIdList.
Account UserId.
Definition acc.h:25
ApplicationAlbumEntry.
Definition caps.h:108
ApplicationData.
Definition caps.h:136
ScreenShotAttribute.
Definition caps.h:38
UserIdList.
Definition caps.h:175
Service object structure.
Definition service.h:14
u32 Result
Function error code result type.
Definition types.h:44