core: Port all current usages of Event to Readable/WritableEvent

This commit is contained in:
Zach Hilman 2018-11-26 18:34:07 -05:00
parent a56fc84e7a
commit ff610103b5
29 changed files with 287 additions and 164 deletions

View file

@ -13,8 +13,10 @@
#include "core/file_sys/patch_manager.h"
#include "core/file_sys/registered_cache.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/event.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/process.h"
#include "core/hle/kernel/readable_event.h"
#include "core/hle/kernel/writable_event.h"
#include "core/hle/service/aoc/aoc_u.h"
#include "core/hle/service/filesystem/filesystem.h"
#include "core/loader/loader.h"
@ -61,8 +63,8 @@ AOC_U::AOC_U() : ServiceFramework("aoc:u"), add_on_content(AccumulateAOCTitleIDs
RegisterHandlers(functions);
auto& kernel = Core::System::GetInstance().Kernel();
aoc_change_event = Kernel::Event::Create(kernel, Kernel::ResetType::Sticky,
"GetAddOnContentListChanged:Event");
aoc_change_event = Kernel::WritableEvent::CreateRegisteredEventPair(
kernel, Kernel::ResetType::Sticky, "GetAddOnContentListChanged:Event");
}
AOC_U::~AOC_U() = default;
@ -142,9 +144,12 @@ void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) {
void AOC_U::GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_AOC, "(STUBBED) called");
const auto& event{
Core::System::GetInstance().Kernel().FindNamedEvent("GetAddOnContentListChanged:Event")};
IPC::ResponseBuilder rb{ctx, 2, 1};
rb.Push(RESULT_SUCCESS);
rb.PushCopyObjects(aoc_change_event);
rb.PushCopyObjects(event->second);
}
void InstallInterfaces(SM::ServiceManager& service_manager) {

View file

@ -6,6 +6,10 @@
#include "core/hle/service/service.h"
namespace Kernel {
class WritableEvent;
}
namespace Service::AOC {
class AOC_U final : public ServiceFramework<AOC_U> {
@ -21,7 +25,7 @@ private:
void GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx);
std::vector<u64> add_on_content;
Kernel::SharedPtr<Kernel::Event> aoc_change_event;
Kernel::SharedPtr<Kernel::WritableEvent> aoc_change_event;
};
/// Registers all AOC services with the specified service manager.