diff options
| -rw-r--r-- | src/core/hle/service/aoc/aoc_u.cpp | 15 | ||||
| -rw-r--r-- | src/core/hle/service/aoc/aoc_u.h | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/core/hle/service/aoc/aoc_u.cpp b/src/core/hle/service/aoc/aoc_u.cpp index 518161bf7..428069df2 100644 --- a/src/core/hle/service/aoc/aoc_u.cpp +++ b/src/core/hle/service/aoc/aoc_u.cpp | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include "core/file_sys/patch_manager.h" | 13 | #include "core/file_sys/patch_manager.h" |
| 14 | #include "core/file_sys/registered_cache.h" | 14 | #include "core/file_sys/registered_cache.h" |
| 15 | #include "core/hle/ipc_helpers.h" | 15 | #include "core/hle/ipc_helpers.h" |
| 16 | #include "core/hle/kernel/event.h" | ||
| 16 | #include "core/hle/kernel/process.h" | 17 | #include "core/hle/kernel/process.h" |
| 17 | #include "core/hle/service/aoc/aoc_u.h" | 18 | #include "core/hle/service/aoc/aoc_u.h" |
| 18 | #include "core/hle/service/filesystem/filesystem.h" | 19 | #include "core/hle/service/filesystem/filesystem.h" |
| @@ -55,9 +56,13 @@ AOC_U::AOC_U() : ServiceFramework("aoc:u"), add_on_content(AccumulateAOCTitleIDs | |||
| 55 | {5, &AOC_U::GetAddOnContentBaseId, "GetAddOnContentBaseId"}, | 56 | {5, &AOC_U::GetAddOnContentBaseId, "GetAddOnContentBaseId"}, |
| 56 | {6, nullptr, "PrepareAddOnContentByApplicationId"}, | 57 | {6, nullptr, "PrepareAddOnContentByApplicationId"}, |
| 57 | {7, &AOC_U::PrepareAddOnContent, "PrepareAddOnContent"}, | 58 | {7, &AOC_U::PrepareAddOnContent, "PrepareAddOnContent"}, |
| 58 | {8, nullptr, "GetAddOnContentListChangedEvent"}, | 59 | {8, &AOC_U::GetAddOnContentListChangedEvent, "GetAddOnContentListChangedEvent"}, |
| 59 | }; | 60 | }; |
| 60 | RegisterHandlers(functions); | 61 | RegisterHandlers(functions); |
| 62 | |||
| 63 | auto& kernel = Core::System::GetInstance().Kernel(); | ||
| 64 | aoc_change_event = Kernel::Event::Create(kernel, Kernel::ResetType::Sticky, | ||
| 65 | "GetAddOnContentListChanged:Event"); | ||
| 61 | } | 66 | } |
| 62 | 67 | ||
| 63 | AOC_U::~AOC_U() = default; | 68 | AOC_U::~AOC_U() = default; |
| @@ -130,6 +135,14 @@ void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) { | |||
| 130 | rb.Push(RESULT_SUCCESS); | 135 | rb.Push(RESULT_SUCCESS); |
| 131 | } | 136 | } |
| 132 | 137 | ||
| 138 | void AOC_U::GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx) { | ||
| 139 | LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||
| 140 | |||
| 141 | IPC::ResponseBuilder rb{ctx, 2, 1}; | ||
| 142 | rb.Push(RESULT_SUCCESS); | ||
| 143 | rb.PushCopyObjects(aoc_change_event); | ||
| 144 | } | ||
| 145 | |||
| 133 | void InstallInterfaces(SM::ServiceManager& service_manager) { | 146 | void InstallInterfaces(SM::ServiceManager& service_manager) { |
| 134 | std::make_shared<AOC_U>()->InstallAsService(service_manager); | 147 | std::make_shared<AOC_U>()->InstallAsService(service_manager); |
| 135 | } | 148 | } |
diff --git a/src/core/hle/service/aoc/aoc_u.h b/src/core/hle/service/aoc/aoc_u.h index b3c7cab7a..68d94fdaa 100644 --- a/src/core/hle/service/aoc/aoc_u.h +++ b/src/core/hle/service/aoc/aoc_u.h | |||
| @@ -18,8 +18,10 @@ private: | |||
| 18 | void ListAddOnContent(Kernel::HLERequestContext& ctx); | 18 | void ListAddOnContent(Kernel::HLERequestContext& ctx); |
| 19 | void GetAddOnContentBaseId(Kernel::HLERequestContext& ctx); | 19 | void GetAddOnContentBaseId(Kernel::HLERequestContext& ctx); |
| 20 | void PrepareAddOnContent(Kernel::HLERequestContext& ctx); | 20 | void PrepareAddOnContent(Kernel::HLERequestContext& ctx); |
| 21 | void GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx); | ||
| 21 | 22 | ||
| 22 | std::vector<u64> add_on_content; | 23 | std::vector<u64> add_on_content; |
| 24 | Kernel::SharedPtr<Kernel::Event> aoc_change_event; | ||
| 23 | }; | 25 | }; |
| 24 | 26 | ||
| 25 | /// Registers all AOC services with the specified service manager. | 27 | /// Registers all AOC services with the specified service manager. |