mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
95 lines
4.9 KiB
C
95 lines
4.9 KiB
C
/**
|
|
* @file capssu.h
|
|
* @brief Application screenshot saving (caps:su) service IPC wrapper.
|
|
* @author yellows8
|
|
* @copyright libnx Authors
|
|
*/
|
|
#pragma once
|
|
#include "../types.h"
|
|
#include "../sf/service.h"
|
|
#include "../services/acc.h"
|
|
#include "../services/caps.h"
|
|
|
|
/// Initialize caps:su. Only available on [4.0.0+].
|
|
Result capssuInitialize(void);
|
|
|
|
/// Exit caps:su.
|
|
void capssuExit(void);
|
|
|
|
/// Gets the Service for caps:su.
|
|
Service* capssuGetServiceSession(void);
|
|
|
|
/**
|
|
* @brief This is a wrapper for \ref capssuSaveScreenShotEx0.
|
|
* @note This uses an all-zero \ref CapsScreenShotAttribute with orientation = input orientation, and unk_xc = 1.
|
|
* @param[in] buffer RGBA8 1280x720 image buffer.
|
|
* @param[in] size Size of the buffer.
|
|
* @param[in] reportoption \ref AlbumReportOption
|
|
* @param[in] orientation \ref AlbumImageOrientation
|
|
* @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
|
|
*/
|
|
Result capssuSaveScreenShot(const void* buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, CapsApplicationAlbumEntry *out);
|
|
|
|
/**
|
|
* @brief Similar to \ref capssuSaveScreenShot, except this is a wrapper for \ref capssuSaveScreenShotEx1.
|
|
* @note This uses an all-zero \ref CapsScreenShotAttribute with orientation = input orientation, and unk_xc = 1.
|
|
* @note Only available on [8.0.0+].
|
|
* @param[in] buffer RGBA8 1280x720 image data buffer.
|
|
* @param[in] size Size of the buffer.
|
|
* @param[in] reportoption \ref AlbumReportOption
|
|
* @param[in] orientation \ref AlbumImageOrientation
|
|
* @param[in] userdata Input UserData buffer. If NULL, the \ref CapsApplicationData will be empty.
|
|
* @param[in] userdata_size Input UserData size, must be within bounds for CapsApplicationData::userdata. If 0, the \ref CapsApplicationData will be empty.
|
|
* @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
|
|
*/
|
|
Result capssuSaveScreenShotWithUserData(const void* buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, const void* userdata, size_t userdata_size, CapsApplicationAlbumEntry *out);
|
|
|
|
/**
|
|
* @brief Similar to \ref capssuSaveScreenShot, except this is a wrapper for \ref capssuSaveScreenShotEx2.
|
|
* @note This uses an all-zero \ref CapsScreenShotAttribute with orientation = input orientation, and unk_xc = 1.
|
|
* @note Only available on [6.0.0+].
|
|
* @param[in] buffer RGBA8 1280x720 image data buffer.
|
|
* @param[in] size Size of the buffer.
|
|
* @param[in] reportoption \ref AlbumReportOption
|
|
* @param[in] orientation \ref AlbumImageOrientation
|
|
* @param[in] uids Input array of \ref AccountUid. If NULL, the \ref CapsUserIdList will be empty.
|
|
* @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.
|
|
* @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
|
|
*/
|
|
Result capssuSaveScreenShotWithUserIds(const void* buffer, size_t size, AlbumReportOption reportoption, AlbumImageOrientation orientation, const AccountUid* uids, size_t uid_count, CapsApplicationAlbumEntry *out);
|
|
|
|
/**
|
|
* @brief Saves an Album screenshot using the specified gfx data in the buffer, with the specified \ref CapsScreenShotAttribute.
|
|
* @param[in] buffer RGBA8 1280x720 image data buffer.
|
|
* @param[in] size Size of the buffer, must be at least 0x384000.
|
|
* @param[in] attr \ref CapsScreenShotAttribute
|
|
* @param[in] reportoption \ref AlbumReportOption
|
|
* @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
|
|
*/
|
|
Result capssuSaveScreenShotEx0(const void* buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsApplicationAlbumEntry *out);
|
|
|
|
/**
|
|
* @brief Same as \ref capssuSaveScreenShotEx0, except this allows specifying the \ref CapsApplicationData.
|
|
* @note Only available on [8.0.0+].
|
|
* @param[in] buffer RGBA8 1280x720 image data buffer.
|
|
* @param[in] size Size of the buffer, must be at least 0x384000.
|
|
* @param[in] attr \ref CapsScreenShotAttribute
|
|
* @param[in] reportoption \ref AlbumReportOption
|
|
* @param[in] appdata \ref CapsApplicationData
|
|
* @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
|
|
*/
|
|
Result capssuSaveScreenShotEx1(const void* buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsApplicationData *appdata, CapsApplicationAlbumEntry *out);
|
|
|
|
/**
|
|
* @brief Same as \ref capssuSaveScreenShotEx0, except this allows specifying the \ref CapsUserIdList.
|
|
* @note Only available on [6.0.0+].
|
|
* @param[in] buffer RGBA8 1280x720 image data buffer.
|
|
* @param[in] size Size of the buffer, must be at least 0x384000.
|
|
* @param[in] attr \ref CapsScreenShotAttribute
|
|
* @param[in] reportoption \ref AlbumReportOption
|
|
* @param[in] list \ref CapsUserIdList
|
|
* @param[out] out \ref CapsApplicationAlbumEntry. Optional, can be NULL.
|
|
*/
|
|
Result capssuSaveScreenShotEx2(const void* buffer, size_t size, const CapsScreenShotAttribute *attr, AlbumReportOption reportoption, CapsUserIdList *list, CapsApplicationAlbumEntry *out);
|
|
|