aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/caps/caps_u.cpp
blob: eb4a10193e3322073311eb0e9e3407409d824470 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later

// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#include "common/logging.h"
#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 {

IAlbumApplicationService::IAlbumApplicationService(Core::System& system_,
                                                   std::shared_ptr<AlbumManager> album_manager)
    : ServiceFramework{system_, "caps:u"}, manager{album_manager} {
    // clang-format off
    static const FunctionInfo functions[] = {
        {32, C<&IAlbumApplicationService::SetShimLibraryVersion>, "SetShimLibraryVersion"},
        {102, C<&IAlbumApplicationService::GetAlbumFileList0AafeAruidDeprecated>, "GetAlbumFileList0AafeAruidDeprecated"},
        {103, &IAlbumApplicationService::StubReplyZeroed, "DeleteAlbumFileByAruid"},
        {104, &IAlbumApplicationService::StubReplyZeroed, "GetAlbumFileSizeByAruid"},
        {105, &IAlbumApplicationService::StubReplyZeroed, "DeleteAlbumFileByAruidForDebug"},
        {110, &IAlbumApplicationService::StubReplyZeroed, "LoadAlbumScreenShotImageByAruid"},
        {120, &IAlbumApplicationService::StubReplyZeroed, "LoadAlbumScreenShotThumbnailImageByAruid"},
        {130, &IAlbumApplicationService::StubReplyZeroed, "PrecheckToCreateContentsByAruid"},
        {140, &IAlbumApplicationService::StubReplyZeroed, "GetAlbumFileList1AafeAruidDeprecated"},
        {141, &IAlbumApplicationService::StubReplyZeroed, "GetAlbumFileList2AafeUidAruidDeprecated"},
        {142, C<&IAlbumApplicationService::GetAlbumFileList3AaeAruid>, "GetAlbumFileList3AaeAruid"},
        {143, &IAlbumApplicationService::StubReplyZeroed, "GetAlbumFileList4AaeUidAruid"},
        {144, &IAlbumApplicationService::StubReplyZeroed, "GetAllAlbumFileList3AaeAruid"},
        {145, &IAlbumApplicationService::StubReplyZeroed, "Unknown145"},
        {146, &IAlbumApplicationService::StubReplyZeroed, "Unknown146"},
        {147, &IAlbumApplicationService::StubReplyZeroed, "Unknown147"},
        {148, &IAlbumApplicationService::StubReplyZeroed, "Unknown148"},
        {60002, nullptr, "OpenAccessorSessionForApplication"},
    };
    // clang-format on

    RegisterHandlers(functions);
}

IAlbumApplicationService::~IAlbumApplicationService() = default;

Result IAlbumApplicationService::SetShimLibraryVersion(ShimLibraryVersion library_version,
                                                       ClientAppletResourceUserId aruid) {
    LOG_WARNING(Service_Capture, "(STUBBED) called. library_version={}, applet_resource_user_id={}",
                library_version, aruid.pid);
    R_SUCCEED();
}

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={}",
                content_type, start_posix_time, end_posix_time, aruid.pid);

    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));
}

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={}",
                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);

    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