diff options
| author | 2023-10-01 12:49:11 -0600 | |
|---|---|---|
| committer | 2023-10-02 12:38:03 -0600 | |
| commit | c3349594403bd7d39a38fef0c2b73c449e651f49 (patch) | |
| tree | c98d325ac60fc7288b4427a8a00499b3ae066e79 /src/core/hle/service/ns | |
| parent | yuzu: Allow to launch album applet from firmware (diff) | |
| download | yuzu-c3349594403bd7d39a38fef0c2b73c449e651f49.tar.gz yuzu-c3349594403bd7d39a38fef0c2b73c449e651f49.tar.xz yuzu-c3349594403bd7d39a38fef0c2b73c449e651f49.zip | |
service: caps: Partially implement IAlbumAccessorService
Diffstat (limited to 'src/core/hle/service/ns')
| -rw-r--r-- | src/core/hle/service/ns/ns.cpp | 27 | ||||
| -rw-r--r-- | src/core/hle/service/ns/ns.h | 4 |
2 files changed, 29 insertions, 2 deletions
diff --git a/src/core/hle/service/ns/ns.cpp b/src/core/hle/service/ns/ns.cpp index 6e0baf0be..f9e0e272d 100644 --- a/src/core/hle/service/ns/ns.cpp +++ b/src/core/hle/service/ns/ns.cpp | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #include "core/file_sys/control_metadata.h" | 7 | #include "core/file_sys/control_metadata.h" |
| 8 | #include "core/file_sys/patch_manager.h" | 8 | #include "core/file_sys/patch_manager.h" |
| 9 | #include "core/file_sys/vfs.h" | 9 | #include "core/file_sys/vfs.h" |
| 10 | #include "core/hle/service/filesystem/filesystem.h" | ||
| 10 | #include "core/hle/service/glue/glue_manager.h" | 11 | #include "core/hle/service/glue/glue_manager.h" |
| 11 | #include "core/hle/service/ipc_helpers.h" | 12 | #include "core/hle/service/ipc_helpers.h" |
| 12 | #include "core/hle/service/ns/errors.h" | 13 | #include "core/hle/service/ns/errors.h" |
| @@ -502,8 +503,8 @@ IContentManagementInterface::IContentManagementInterface(Core::System& system_) | |||
| 502 | static const FunctionInfo functions[] = { | 503 | static const FunctionInfo functions[] = { |
| 503 | {11, nullptr, "CalculateApplicationOccupiedSize"}, | 504 | {11, nullptr, "CalculateApplicationOccupiedSize"}, |
| 504 | {43, nullptr, "CheckSdCardMountStatus"}, | 505 | {43, nullptr, "CheckSdCardMountStatus"}, |
| 505 | {47, nullptr, "GetTotalSpaceSize"}, | 506 | {47, &IContentManagementInterface::GetTotalSpaceSize, "GetTotalSpaceSize"}, |
| 506 | {48, nullptr, "GetFreeSpaceSize"}, | 507 | {48, &IContentManagementInterface::GetFreeSpaceSize, "GetFreeSpaceSize"}, |
| 507 | {600, nullptr, "CountApplicationContentMeta"}, | 508 | {600, nullptr, "CountApplicationContentMeta"}, |
| 508 | {601, nullptr, "ListApplicationContentMetaStatus"}, | 509 | {601, nullptr, "ListApplicationContentMetaStatus"}, |
| 509 | {605, nullptr, "ListApplicationContentMetaStatusWithRightsCheck"}, | 510 | {605, nullptr, "ListApplicationContentMetaStatusWithRightsCheck"}, |
| @@ -516,6 +517,28 @@ IContentManagementInterface::IContentManagementInterface(Core::System& system_) | |||
| 516 | 517 | ||
| 517 | IContentManagementInterface::~IContentManagementInterface() = default; | 518 | IContentManagementInterface::~IContentManagementInterface() = default; |
| 518 | 519 | ||
| 520 | void IContentManagementInterface::GetTotalSpaceSize(HLERequestContext& ctx) { | ||
| 521 | IPC::RequestParser rp{ctx}; | ||
| 522 | const auto storage{rp.PopEnum<FileSys::StorageId>()}; | ||
| 523 | |||
| 524 | LOG_INFO(Service_Capture, "called, storage={}", storage); | ||
| 525 | |||
| 526 | IPC::ResponseBuilder rb{ctx, 4}; | ||
| 527 | rb.Push(ResultSuccess); | ||
| 528 | rb.Push<u64>(system.GetFileSystemController().GetTotalSpaceSize(storage)); | ||
| 529 | } | ||
| 530 | |||
| 531 | void IContentManagementInterface::GetFreeSpaceSize(HLERequestContext& ctx) { | ||
| 532 | IPC::RequestParser rp{ctx}; | ||
| 533 | const auto storage{rp.PopEnum<FileSys::StorageId>()}; | ||
| 534 | |||
| 535 | LOG_INFO(Service_Capture, "called, storage={}", storage); | ||
| 536 | |||
| 537 | IPC::ResponseBuilder rb{ctx, 4}; | ||
| 538 | rb.Push(ResultSuccess); | ||
| 539 | rb.Push<u64>(system.GetFileSystemController().GetFreeSpaceSize(storage)); | ||
| 540 | } | ||
| 541 | |||
| 519 | IDocumentInterface::IDocumentInterface(Core::System& system_) | 542 | IDocumentInterface::IDocumentInterface(Core::System& system_) |
| 520 | : ServiceFramework{system_, "IDocumentInterface"} { | 543 | : ServiceFramework{system_, "IDocumentInterface"} { |
| 521 | // clang-format off | 544 | // clang-format off |
diff --git a/src/core/hle/service/ns/ns.h b/src/core/hle/service/ns/ns.h index 175dad780..34d2a45dc 100644 --- a/src/core/hle/service/ns/ns.h +++ b/src/core/hle/service/ns/ns.h | |||
| @@ -48,6 +48,10 @@ class IContentManagementInterface final : public ServiceFramework<IContentManage | |||
| 48 | public: | 48 | public: |
| 49 | explicit IContentManagementInterface(Core::System& system_); | 49 | explicit IContentManagementInterface(Core::System& system_); |
| 50 | ~IContentManagementInterface() override; | 50 | ~IContentManagementInterface() override; |
| 51 | |||
| 52 | private: | ||
| 53 | void GetTotalSpaceSize(HLERequestContext& ctx); | ||
| 54 | void GetFreeSpaceSize(HLERequestContext& ctx); | ||
| 51 | }; | 55 | }; |
| 52 | 56 | ||
| 53 | class IDocumentInterface final : public ServiceFramework<IDocumentInterface> { | 57 | class IDocumentInterface final : public ServiceFramework<IDocumentInterface> { |