Browse Source
capsrv: Split Capture services into individual files and stub GetAlbumContentsFileListForApplication (#3571)
capsrv: Split Capture services into individual files and stub GetAlbumContentsFileListForApplication (#3571)
* Organize capture services into individual files * Stub GetAlbumContentsFileListForApplication * Address feedbacknce_cpp
committed by
GitHub
15 changed files with 536 additions and 151 deletions
-
12src/core/CMakeLists.txt
-
158src/core/hle/service/caps/caps.cpp
-
71src/core/hle/service/caps/caps.h
-
78src/core/hle/service/caps/caps_a.cpp
-
21src/core/hle/service/caps/caps_a.h
-
75src/core/hle/service/caps/caps_c.cpp
-
21src/core/hle/service/caps/caps_c.h
-
40src/core/hle/service/caps/caps_sc.cpp
-
21src/core/hle/service/caps/caps_sc.h
-
26src/core/hle/service/caps/caps_ss.cpp
-
21src/core/hle/service/caps/caps_ss.h
-
22src/core/hle/service/caps/caps_su.cpp
-
21src/core/hle/service/caps/caps_su.h
-
76src/core/hle/service/caps/caps_u.cpp
-
24src/core/hle/service/caps/caps_u.h
@ -0,0 +1,78 @@ |
|||||
|
// Copyright 2020 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/caps/caps_a.h"
|
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class IAlbumAccessorSession final : public ServiceFramework<IAlbumAccessorSession> { |
||||
|
public: |
||||
|
explicit IAlbumAccessorSession() : ServiceFramework{"IAlbumAccessorSession"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{2001, nullptr, "OpenAlbumMovieReadStream"}, |
||||
|
{2002, nullptr, "CloseAlbumMovieReadStream"}, |
||||
|
{2003, nullptr, "GetAlbumMovieReadStreamMovieDataSize"}, |
||||
|
{2004, nullptr, "ReadMovieDataFromAlbumMovieReadStream"}, |
||||
|
{2005, nullptr, "GetAlbumMovieReadStreamBrokenReason"}, |
||||
|
{2006, nullptr, "GetAlbumMovieReadStreamImageDataSize"}, |
||||
|
{2007, nullptr, "ReadImageDataFromAlbumMovieReadStream"}, |
||||
|
{2008, nullptr, "ReadFileAttributeFromAlbumMovieReadStream"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
CAPS_A::CAPS_A() : ServiceFramework("caps:a") { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{0, nullptr, "GetAlbumFileCount"}, |
||||
|
{1, nullptr, "GetAlbumFileList"}, |
||||
|
{2, nullptr, "LoadAlbumFile"}, |
||||
|
{3, nullptr, "DeleteAlbumFile"}, |
||||
|
{4, nullptr, "StorageCopyAlbumFile"}, |
||||
|
{5, nullptr, "IsAlbumMounted"}, |
||||
|
{6, nullptr, "GetAlbumUsage"}, |
||||
|
{7, nullptr, "GetAlbumFileSize"}, |
||||
|
{8, nullptr, "LoadAlbumFileThumbnail"}, |
||||
|
{9, nullptr, "LoadAlbumScreenShotImage"}, |
||||
|
{10, nullptr, "LoadAlbumScreenShotThumbnailImage"}, |
||||
|
{11, nullptr, "GetAlbumEntryFromApplicationAlbumEntry"}, |
||||
|
{12, nullptr, "LoadAlbumScreenShotImageEx"}, |
||||
|
{13, nullptr, "LoadAlbumScreenShotThumbnailImageEx"}, |
||||
|
{14, nullptr, "LoadAlbumScreenShotImageEx0"}, |
||||
|
{15, nullptr, "GetAlbumUsage3"}, |
||||
|
{16, nullptr, "GetAlbumMountResult"}, |
||||
|
{17, nullptr, "GetAlbumUsage16"}, |
||||
|
{18, nullptr, "Unknown18"}, |
||||
|
{100, nullptr, "GetAlbumFileCountEx0"}, |
||||
|
{101, nullptr, "GetAlbumFileListEx0"}, |
||||
|
{202, nullptr, "SaveEditedScreenShot"}, |
||||
|
{301, nullptr, "GetLastThumbnail"}, |
||||
|
{302, nullptr, "GetLastOverlayMovieThumbnail"}, |
||||
|
{401, nullptr, "GetAutoSavingStorage"}, |
||||
|
{501, nullptr, "GetRequiredStorageSpaceSizeToCopyAll"}, |
||||
|
{1001, nullptr, "LoadAlbumScreenShotThumbnailImageEx0"}, |
||||
|
{1002, nullptr, "LoadAlbumScreenShotImageEx1"}, |
||||
|
{1003, nullptr, "LoadAlbumScreenShotThumbnailImageEx1"}, |
||||
|
{8001, nullptr, "ForceAlbumUnmounted"}, |
||||
|
{8002, nullptr, "ResetAlbumMountStatus"}, |
||||
|
{8011, nullptr, "RefreshAlbumCache"}, |
||||
|
{8012, nullptr, "GetAlbumCache"}, |
||||
|
{8013, nullptr, "GetAlbumCacheEx"}, |
||||
|
{8021, nullptr, "GetAlbumEntryFromApplicationAlbumEntryAruid"}, |
||||
|
{10011, nullptr, "SetInternalErrorConversionEnabled"}, |
||||
|
{50000, nullptr, "LoadMakerNoteInfoForDebug"}, |
||||
|
{60002, nullptr, "OpenAccessorSession"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
|
||||
|
CAPS_A::~CAPS_A() = default; |
||||
|
|
||||
|
} // namespace Service::Capture
|
||||
@ -0,0 +1,21 @@ |
|||||
|
// Copyright 2020 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Kernel { |
||||
|
class HLERequestContext; |
||||
|
} |
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class CAPS_A final : public ServiceFramework<CAPS_A> { |
||||
|
public: |
||||
|
explicit CAPS_A(); |
||||
|
~CAPS_A() override; |
||||
|
}; |
||||
|
|
||||
|
} // namespace Service::Capture |
||||
@ -0,0 +1,75 @@ |
|||||
|
// Copyright 2020 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/caps/caps_c.h"
|
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class IAlbumControlSession final : public ServiceFramework<IAlbumControlSession> { |
||||
|
public: |
||||
|
explicit IAlbumControlSession() : ServiceFramework{"IAlbumControlSession"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{2001, nullptr, "OpenAlbumMovieReadStream"}, |
||||
|
{2002, nullptr, "CloseAlbumMovieReadStream"}, |
||||
|
{2003, nullptr, "GetAlbumMovieReadStreamMovieDataSize"}, |
||||
|
{2004, nullptr, "ReadMovieDataFromAlbumMovieReadStream"}, |
||||
|
{2005, nullptr, "GetAlbumMovieReadStreamBrokenReason"}, |
||||
|
{2006, nullptr, "GetAlbumMovieReadStreamImageDataSize"}, |
||||
|
{2007, nullptr, "ReadImageDataFromAlbumMovieReadStream"}, |
||||
|
{2008, nullptr, "ReadFileAttributeFromAlbumMovieReadStream"}, |
||||
|
{2401, nullptr, "OpenAlbumMovieWriteStream"}, |
||||
|
{2402, nullptr, "FinishAlbumMovieWriteStream"}, |
||||
|
{2403, nullptr, "CommitAlbumMovieWriteStream"}, |
||||
|
{2404, nullptr, "DiscardAlbumMovieWriteStream"}, |
||||
|
{2405, nullptr, "DiscardAlbumMovieWriteStreamNoDelete"}, |
||||
|
{2406, nullptr, "CommitAlbumMovieWriteStreamEx"}, |
||||
|
{2411, nullptr, "StartAlbumMovieWriteStreamDataSection"}, |
||||
|
{2412, nullptr, "EndAlbumMovieWriteStreamDataSection"}, |
||||
|
{2413, nullptr, "StartAlbumMovieWriteStreamMetaSection"}, |
||||
|
{2414, nullptr, "EndAlbumMovieWriteStreamMetaSection"}, |
||||
|
{2421, nullptr, "ReadDataFromAlbumMovieWriteStream"}, |
||||
|
{2422, nullptr, "WriteDataToAlbumMovieWriteStream"}, |
||||
|
{2424, nullptr, "WriteMetaToAlbumMovieWriteStream"}, |
||||
|
{2431, nullptr, "GetAlbumMovieWriteStreamBrokenReason"}, |
||||
|
{2433, nullptr, "GetAlbumMovieWriteStreamDataSize"}, |
||||
|
{2434, nullptr, "SetAlbumMovieWriteStreamDataSize"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
CAPS_C::CAPS_C() : ServiceFramework("caps:c") { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{1, nullptr, "CaptureRawImage"}, |
||||
|
{2, nullptr, "CaptureRawImageWithTimeout"}, |
||||
|
{33, nullptr, "Unknown33"}, |
||||
|
{1001, nullptr, "RequestTakingScreenShot"}, |
||||
|
{1002, nullptr, "RequestTakingScreenShotWithTimeout"}, |
||||
|
{1011, nullptr, "NotifyTakingScreenShotRefused"}, |
||||
|
{2001, nullptr, "NotifyAlbumStorageIsAvailable"}, |
||||
|
{2002, nullptr, "NotifyAlbumStorageIsUnavailable"}, |
||||
|
{2011, nullptr, "RegisterAppletResourceUserId"}, |
||||
|
{2012, nullptr, "UnregisterAppletResourceUserId"}, |
||||
|
{2013, nullptr, "GetApplicationIdFromAruid"}, |
||||
|
{2014, nullptr, "CheckApplicationIdRegistered"}, |
||||
|
{2101, nullptr, "GenerateCurrentAlbumFileId"}, |
||||
|
{2102, nullptr, "GenerateApplicationAlbumEntry"}, |
||||
|
{2201, nullptr, "SaveAlbumScreenShotFile"}, |
||||
|
{2202, nullptr, "SaveAlbumScreenShotFileEx"}, |
||||
|
{2301, nullptr, "SetOverlayScreenShotThumbnailData"}, |
||||
|
{2302, nullptr, "SetOverlayMovieThumbnailData"}, |
||||
|
{60001, nullptr, "OpenControlSession"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
|
||||
|
CAPS_C::~CAPS_C() = default; |
||||
|
|
||||
|
} // namespace Service::Capture
|
||||
@ -0,0 +1,21 @@ |
|||||
|
// Copyright 2020 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Kernel { |
||||
|
class HLERequestContext; |
||||
|
} |
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class CAPS_C final : public ServiceFramework<CAPS_C> { |
||||
|
public: |
||||
|
explicit CAPS_C(); |
||||
|
~CAPS_C() override; |
||||
|
}; |
||||
|
|
||||
|
} // namespace Service::Capture |
||||
@ -0,0 +1,40 @@ |
|||||
|
// Copyright 2020 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/caps/caps_sc.h"
|
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
CAPS_SC::CAPS_SC() : ServiceFramework("caps:sc") { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{1, nullptr, "CaptureRawImage"}, |
||||
|
{2, nullptr, "CaptureRawImageWithTimeout"}, |
||||
|
{3, nullptr, "AttachSharedBuffer"}, |
||||
|
{5, nullptr, "CaptureRawImageToAttachedSharedBuffer"}, |
||||
|
{210, nullptr, "Unknown210"}, |
||||
|
{1001, nullptr, "RequestTakingScreenShot"}, |
||||
|
{1002, nullptr, "RequestTakingScreenShotWithTimeout"}, |
||||
|
{1003, nullptr, "RequestTakingScreenShotEx"}, |
||||
|
{1004, nullptr, "RequestTakingScreenShotEx1"}, |
||||
|
{1009, nullptr, "CancelTakingScreenShot"}, |
||||
|
{1010, nullptr, "SetTakingScreenShotCancelState"}, |
||||
|
{1011, nullptr, "NotifyTakingScreenShotRefused"}, |
||||
|
{1012, nullptr, "NotifyTakingScreenShotFailed"}, |
||||
|
{1101, nullptr, "SetupOverlayMovieThumbnail"}, |
||||
|
{1106, nullptr, "Unknown1106"}, |
||||
|
{1107, nullptr, "Unknown1107"}, |
||||
|
{1201, nullptr, "OpenRawScreenShotReadStream"}, |
||||
|
{1202, nullptr, "CloseRawScreenShotReadStream"}, |
||||
|
{1203, nullptr, "ReadRawScreenShotReadStream"}, |
||||
|
{1204, nullptr, "Unknown1204"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
|
||||
|
CAPS_SC::~CAPS_SC() = default; |
||||
|
|
||||
|
} // namespace Service::Capture
|
||||
@ -0,0 +1,21 @@ |
|||||
|
// Copyright 2020 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Kernel { |
||||
|
class HLERequestContext; |
||||
|
} |
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class CAPS_SC final : public ServiceFramework<CAPS_SC> { |
||||
|
public: |
||||
|
explicit CAPS_SC(); |
||||
|
~CAPS_SC() override; |
||||
|
}; |
||||
|
|
||||
|
} // namespace Service::Capture |
||||
@ -0,0 +1,26 @@ |
|||||
|
// Copyright 2020 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/caps/caps_ss.h"
|
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
CAPS_SS::CAPS_SS() : ServiceFramework("caps:ss") { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{201, nullptr, "SaveScreenShot"}, |
||||
|
{202, nullptr, "SaveEditedScreenShot"}, |
||||
|
{203, nullptr, "SaveScreenShotEx0"}, |
||||
|
{204, nullptr, "SaveEditedScreenShotEx0"}, |
||||
|
{206, nullptr, "Unknown206"}, |
||||
|
{208, nullptr, "SaveScreenShotOfMovieEx1"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
|
||||
|
CAPS_SS::~CAPS_SS() = default; |
||||
|
|
||||
|
} // namespace Service::Capture
|
||||
@ -0,0 +1,21 @@ |
|||||
|
// Copyright 2020 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Kernel { |
||||
|
class HLERequestContext; |
||||
|
} |
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class CAPS_SS final : public ServiceFramework<CAPS_SS> { |
||||
|
public: |
||||
|
explicit CAPS_SS(); |
||||
|
~CAPS_SS() override; |
||||
|
}; |
||||
|
|
||||
|
} // namespace Service::Capture |
||||
@ -0,0 +1,22 @@ |
|||||
|
// Copyright 2020 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "core/hle/service/caps/caps_su.h"
|
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
CAPS_SU::CAPS_SU() : ServiceFramework("caps:su") { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{201, nullptr, "SaveScreenShot"}, |
||||
|
{203, nullptr, "SaveScreenShotEx0"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
|
||||
|
CAPS_SU::~CAPS_SU() = default; |
||||
|
|
||||
|
} // namespace Service::Capture
|
||||
@ -0,0 +1,21 @@ |
|||||
|
// Copyright 2020 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Kernel { |
||||
|
class HLERequestContext; |
||||
|
} |
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class CAPS_SU final : public ServiceFramework<CAPS_SU> { |
||||
|
public: |
||||
|
explicit CAPS_SU(); |
||||
|
~CAPS_SU() override; |
||||
|
}; |
||||
|
|
||||
|
} // namespace Service::Capture |
||||
@ -0,0 +1,76 @@ |
|||||
|
// Copyright 2020 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include "common/logging/log.h"
|
||||
|
#include "core/hle/ipc_helpers.h"
|
||||
|
#include "core/hle/service/caps/caps.h"
|
||||
|
#include "core/hle/service/caps/caps_u.h"
|
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class IAlbumAccessorApplicationSession final |
||||
|
: public ServiceFramework<IAlbumAccessorApplicationSession> { |
||||
|
public: |
||||
|
explicit IAlbumAccessorApplicationSession() |
||||
|
: ServiceFramework{"IAlbumAccessorApplicationSession"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{2001, nullptr, "OpenAlbumMovieReadStream"}, |
||||
|
{2002, nullptr, "CloseAlbumMovieReadStream"}, |
||||
|
{2003, nullptr, "GetAlbumMovieReadStreamMovieDataSize"}, |
||||
|
{2004, nullptr, "ReadMovieDataFromAlbumMovieReadStream"}, |
||||
|
{2005, nullptr, "GetAlbumMovieReadStreamBrokenReason"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
CAPS_U::CAPS_U() : ServiceFramework("caps:u") { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{31, nullptr, "GetShimLibraryVersion"}, |
||||
|
{32, nullptr, "SetShimLibraryVersion"}, |
||||
|
{102, &CAPS_U::GetAlbumContentsFileListForApplication, "GetAlbumContentsFileListForApplication"}, |
||||
|
{103, nullptr, "DeleteAlbumContentsFileForApplication"}, |
||||
|
{104, nullptr, "GetAlbumContentsFileSizeForApplication"}, |
||||
|
{105, nullptr, "DeleteAlbumFileByAruidForDebug"}, |
||||
|
{110, nullptr, "LoadAlbumContentsFileScreenShotImageForApplication"}, |
||||
|
{120, nullptr, "LoadAlbumContentsFileThumbnailImageForApplication"}, |
||||
|
{130, nullptr, "PrecheckToCreateContentsForApplication"}, |
||||
|
{140, nullptr, "GetAlbumFileList1AafeAruidDeprecated"}, |
||||
|
{141, nullptr, "GetAlbumFileList2AafeUidAruidDeprecated"}, |
||||
|
{142, nullptr, "GetAlbumFileList3AaeAruid"}, |
||||
|
{143, nullptr, "GetAlbumFileList4AaeUidAruid"}, |
||||
|
{60002, nullptr, "OpenAccessorSessionForApplication"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
|
||||
|
CAPS_U::~CAPS_U() = default; |
||||
|
|
||||
|
void CAPS_U::GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& ctx) { |
||||
|
// Takes a type-0x6 output buffer containing an array of ApplicationAlbumFileEntry, a PID, an
|
||||
|
// u8 ContentType, two s64s, and an u64 AppletResourceUserId. Returns an output u64 for total
|
||||
|
// output entries (which is copied to a s32 by official SW).
|
||||
|
IPC::RequestParser rp{ctx}; |
||||
|
[[maybe_unused]] const auto application_album_file_entries = rp.PopRaw<std::array<u8, 0x30>>(); |
||||
|
const auto pid = rp.Pop<s32>(); |
||||
|
const auto content_type = rp.PopRaw<ContentType>(); |
||||
|
[[maybe_unused]] const auto start_datetime = rp.PopRaw<AlbumFileDateTime>(); |
||||
|
[[maybe_unused]] const auto end_datetime = rp.PopRaw<AlbumFileDateTime>(); |
||||
|
const auto applet_resource_user_id = rp.Pop<u64>(); |
||||
|
LOG_WARNING(Service_Capture, |
||||
|
"(STUBBED) called. pid={}, content_type={}, applet_resource_user_id={}", pid, |
||||
|
content_type, applet_resource_user_id); |
||||
|
|
||||
|
IPC::ResponseBuilder rb{ctx, 3}; |
||||
|
rb.Push(RESULT_SUCCESS); |
||||
|
rb.Push<s32>(0); |
||||
|
} |
||||
|
|
||||
|
} // namespace Service::Capture
|
||||
@ -0,0 +1,24 @@ |
|||||
|
// Copyright 2020 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
#include "core/hle/service/service.h" |
||||
|
|
||||
|
namespace Kernel { |
||||
|
class HLERequestContext; |
||||
|
} |
||||
|
|
||||
|
namespace Service::Capture { |
||||
|
|
||||
|
class CAPS_U final : public ServiceFramework<CAPS_U> { |
||||
|
public: |
||||
|
explicit CAPS_U(); |
||||
|
~CAPS_U() override; |
||||
|
|
||||
|
private: |
||||
|
void GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& ctx); |
||||
|
}; |
||||
|
|
||||
|
} // namespace Service::Capture |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue