summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/caps/caps_u.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/caps/caps_u.cpp')
-rw-r--r--src/core/hle/service/caps/caps_u.cpp110
1 files changed, 25 insertions, 85 deletions
diff --git a/src/core/hle/service/caps/caps_u.cpp b/src/core/hle/service/caps/caps_u.cpp
index b6b33fb2f..40d4d05fe 100644
--- a/src/core/hle/service/caps/caps_u.cpp
+++ b/src/core/hle/service/caps/caps_u.cpp
@@ -5,6 +5,7 @@
#include "core/hle/service/caps/caps_manager.h"
#include "core/hle/service/caps/caps_types.h"
#include "core/hle/service/caps/caps_u.h"
+#include "core/hle/service/cmif_serialization.h"
#include "core/hle/service/ipc_helpers.h"
namespace Service::Capture {
@@ -14,8 +15,8 @@ IAlbumApplicationService::IAlbumApplicationService(Core::System& system_,
: ServiceFramework{system_, "caps:u"}, manager{album_manager} {
// clang-format off
static const FunctionInfo functions[] = {
- {32, &IAlbumApplicationService::SetShimLibraryVersion, "SetShimLibraryVersion"},
- {102, &IAlbumApplicationService::GetAlbumFileList0AafeAruidDeprecated, "GetAlbumFileList0AafeAruidDeprecated"},
+ {32, C<&IAlbumApplicationService::SetShimLibraryVersion>, "SetShimLibraryVersion"},
+ {102, C<&IAlbumApplicationService::GetAlbumFileList0AafeAruidDeprecated>, "GetAlbumFileList0AafeAruidDeprecated"},
{103, nullptr, "DeleteAlbumFileByAruid"},
{104, nullptr, "GetAlbumFileSizeByAruid"},
{105, nullptr, "DeleteAlbumFileByAruidForDebug"},
@@ -24,7 +25,7 @@ IAlbumApplicationService::IAlbumApplicationService(Core::System& system_,
{130, nullptr, "PrecheckToCreateContentsByAruid"},
{140, nullptr, "GetAlbumFileList1AafeAruidDeprecated"},
{141, nullptr, "GetAlbumFileList2AafeUidAruidDeprecated"},
- {142, &IAlbumApplicationService::GetAlbumFileList3AaeAruid, "GetAlbumFileList3AaeAruid"},
+ {142, C<&IAlbumApplicationService::GetAlbumFileList3AaeAruid>, "GetAlbumFileList3AaeAruid"},
{143, nullptr, "GetAlbumFileList4AaeUidAruid"},
{144, nullptr, "GetAllAlbumFileList3AaeAruid"},
{60002, nullptr, "OpenAccessorSessionForApplication"},
@@ -36,101 +37,40 @@ IAlbumApplicationService::IAlbumApplicationService(Core::System& system_,
IAlbumApplicationService::~IAlbumApplicationService() = default;
-void IAlbumApplicationService::SetShimLibraryVersion(HLERequestContext& ctx) {
- IPC::RequestParser rp{ctx};
- const auto library_version{rp.Pop<u64>()};
- const auto applet_resource_user_id{rp.Pop<u64>()};
-
+Result IAlbumApplicationService::SetShimLibraryVersion(ShimLibraryVersion library_version,
+ ClientAppletResourceUserId aruid) {
LOG_WARNING(Service_Capture, "(STUBBED) called. library_version={}, applet_resource_user_id={}",
- library_version, applet_resource_user_id);
-
- IPC::ResponseBuilder rb{ctx, 2};
- rb.Push(ResultSuccess);
+ library_version, aruid.pid);
+ R_SUCCEED();
}
-void IAlbumApplicationService::GetAlbumFileList0AafeAruidDeprecated(HLERequestContext& ctx) {
- IPC::RequestParser rp{ctx};
- struct Parameters {
- ContentType content_type;
- INSERT_PADDING_BYTES(7);
- s64 start_posix_time;
- s64 end_posix_time;
- u64 applet_resource_user_id;
- };
- static_assert(sizeof(Parameters) == 0x20, "Parameters has incorrect size.");
-
- const auto parameters{rp.PopRaw<Parameters>()};
-
+Result IAlbumApplicationService::GetAlbumFileList0AafeAruidDeprecated(
+ Out<u64> out_entries_count, ContentType content_type, s64 start_posix_time, s64 end_posix_time,
+ ClientAppletResourceUserId aruid,
+ OutArray<ApplicationAlbumFileEntry, BufferAttr_HipcMapAlias> out_entries) {
LOG_WARNING(Service_Capture,
"(STUBBED) called. content_type={}, start_posix_time={}, end_posix_time={}, "
"applet_resource_user_id={}",
- parameters.content_type, parameters.start_posix_time, parameters.end_posix_time,
- parameters.applet_resource_user_id);
-
- Result result = ResultSuccess;
-
- if (result.IsSuccess()) {
- result = manager->IsAlbumMounted(AlbumStorage::Sd);
- }
-
- std::vector<ApplicationAlbumFileEntry> entries;
- if (result.IsSuccess()) {
- result = manager->GetAlbumFileList(entries, parameters.content_type,
- parameters.start_posix_time, parameters.end_posix_time,
- parameters.applet_resource_user_id);
- }
+ content_type, start_posix_time, end_posix_time, aruid.pid);
- if (!entries.empty()) {
- ctx.WriteBuffer(entries);
- }
-
- IPC::ResponseBuilder rb{ctx, 4};
- rb.Push(result);
- rb.Push<u64>(entries.size());
+ R_TRY(manager->IsAlbumMounted(AlbumStorage::Sd));
+ R_RETURN(manager->GetAlbumFileList(out_entries, *out_entries_count, content_type,
+ start_posix_time, end_posix_time, aruid.pid));
}
-void IAlbumApplicationService::GetAlbumFileList3AaeAruid(HLERequestContext& ctx) {
- IPC::RequestParser rp{ctx};
- struct Parameters {
- ContentType content_type;
- INSERT_PADDING_BYTES(1);
- AlbumFileDateTime start_date_time;
- AlbumFileDateTime end_date_time;
- INSERT_PADDING_BYTES(6);
- u64 applet_resource_user_id;
- };
- static_assert(sizeof(Parameters) == 0x20, "Parameters has incorrect size.");
-
- const auto parameters{rp.PopRaw<Parameters>()};
-
+Result IAlbumApplicationService::GetAlbumFileList3AaeAruid(
+ Out<u64> out_entries_count, ContentType content_type, AlbumFileDateTime start_date_time,
+ AlbumFileDateTime end_date_time, ClientAppletResourceUserId aruid,
+ OutArray<ApplicationAlbumEntry, BufferAttr_HipcMapAlias> out_entries) {
LOG_WARNING(Service_Capture,
"(STUBBED) called. content_type={}, start_date={}/{}/{}, "
"end_date={}/{}/{}, applet_resource_user_id={}",
- parameters.content_type, parameters.start_date_time.year,
- parameters.start_date_time.month, parameters.start_date_time.day,
- parameters.end_date_time.year, parameters.end_date_time.month,
- parameters.end_date_time.day, parameters.applet_resource_user_id);
-
- Result result = ResultSuccess;
-
- if (result.IsSuccess()) {
- result = manager->IsAlbumMounted(AlbumStorage::Sd);
- }
-
- std::vector<ApplicationAlbumEntry> entries;
- if (result.IsSuccess()) {
- result =
- manager->GetAlbumFileList(entries, parameters.content_type, parameters.start_date_time,
- parameters.end_date_time, parameters.applet_resource_user_id);
- }
-
- if (!entries.empty()) {
- ctx.WriteBuffer(entries);
- }
+ content_type, start_date_time.year, start_date_time.month, start_date_time.day,
+ end_date_time.year, end_date_time.month, end_date_time.day, aruid.pid);
- IPC::ResponseBuilder rb{ctx, 4};
- rb.Push(result);
- rb.Push<u64>(entries.size());
+ R_TRY(manager->IsAlbumMounted(AlbumStorage::Sd));
+ R_RETURN(manager->GetAlbumFileList(out_entries, *out_entries_count, content_type,
+ start_date_time, end_date_time, aruid.pid));
}
} // namespace Service::Capture