From ff610103b58b3e0dd39fafb539a1cc0bc0fae577 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Mon, 26 Nov 2018 18:34:07 -0500 Subject: core: Port all current usages of Event to Readable/WritableEvent --- src/core/hle/service/nfp/nfp.cpp | 35 ++++++++++++++++++++++------------- src/core/hle/service/nfp/nfp.h | 10 +++++++--- 2 files changed, 29 insertions(+), 16 deletions(-) (limited to 'src/core/hle/service/nfp') diff --git a/src/core/hle/service/nfp/nfp.cpp b/src/core/hle/service/nfp/nfp.cpp index ff9170c24..75c605364 100644 --- a/src/core/hle/service/nfp/nfp.cpp +++ b/src/core/hle/service/nfp/nfp.cpp @@ -7,7 +7,9 @@ #include "common/logging/log.h" #include "core/core.h" #include "core/hle/ipc_helpers.h" -#include "core/hle/kernel/event.h" +#include "core/hle/kernel/kernel.h" +#include "core/hle/kernel/readable_event.h" +#include "core/hle/kernel/writable_event.h" #include "core/hle/lock.h" #include "core/hle/service/hid/hid.h" #include "core/hle/service/nfp/nfp.h" @@ -23,8 +25,8 @@ constexpr ResultCode ERR_TAG_FAILED(ErrorModule::NFP, Module::Interface::Interface(std::shared_ptr module, const char* name) : ServiceFramework(name), module(std::move(module)) { auto& kernel = Core::System::GetInstance().Kernel(); - nfc_tag_load = - Kernel::Event::Create(kernel, Kernel::ResetType::OneShot, "IUser:NFCTagDetected"); + nfc_tag_load = Kernel::WritableEvent::CreateRegisteredEventPair( + kernel, Kernel::ResetType::OneShot, "IUser:NFCTagDetected"); } Module::Interface::~Interface() = default; @@ -63,10 +65,10 @@ public: RegisterHandlers(functions); auto& kernel = Core::System::GetInstance().Kernel(); - deactivate_event = - Kernel::Event::Create(kernel, Kernel::ResetType::OneShot, "IUser:DeactivateEvent"); - availability_change_event = Kernel::Event::Create(kernel, Kernel::ResetType::OneShot, - "IUser:AvailabilityChangeEvent"); + deactivate_event = Kernel::WritableEvent::CreateRegisteredEventPair( + kernel, Kernel::ResetType::OneShot, "IUser:DeactivateEvent"); + availability_change_event = Kernel::WritableEvent::CreateRegisteredEventPair( + kernel, Kernel::ResetType::OneShot, "IUser:AvailabilityChangeEvent"); } private: @@ -164,7 +166,10 @@ private: IPC::ResponseBuilder rb{ctx, 2, 1}; rb.Push(RESULT_SUCCESS); - rb.PushCopyObjects(deactivate_event); + + const auto& event{ + Core::System::GetInstance().Kernel().FindNamedEvent("IUser:DeactivateEvent")}; + rb.PushCopyObjects(event->second); } void StopDetection(Kernel::HLERequestContext& ctx) { @@ -264,7 +269,9 @@ private: IPC::ResponseBuilder rb{ctx, 2, 1}; rb.Push(RESULT_SUCCESS); - rb.PushCopyObjects(availability_change_event); + const auto& event{ + Core::System::GetInstance().Kernel().FindNamedEvent("IUser:AvailabilityChangeEvent")}; + rb.PushCopyObjects(event->second); } void GetRegisterInfo(Kernel::HLERequestContext& ctx) { @@ -319,8 +326,8 @@ private: const u32 npad_id{0}; // Player 1 controller State state{State::NonInitialized}; DeviceState device_state{DeviceState::Initialized}; - Kernel::SharedPtr deactivate_event; - Kernel::SharedPtr availability_change_event; + Kernel::SharedPtr deactivate_event; + Kernel::SharedPtr availability_change_event; const Module::Interface& nfp_interface; }; @@ -342,8 +349,10 @@ bool Module::Interface::LoadAmiibo(const std::vector& buffer) { nfc_tag_load->Signal(); return true; } -const Kernel::SharedPtr& Module::Interface::GetNFCEvent() const { - return nfc_tag_load; + +const Kernel::SharedPtr& Module::Interface::GetNFCEvent() const { + const auto& event{Core::System::GetInstance().Kernel().FindNamedEvent("IUser:NFCTagDetected")}; + return event->second; } const Module::Interface::AmiiboFile& Module::Interface::GetAmiiboBuffer() const { return amiibo; diff --git a/src/core/hle/service/nfp/nfp.h b/src/core/hle/service/nfp/nfp.h index 5c0ae8a54..0ab1ca997 100644 --- a/src/core/hle/service/nfp/nfp.h +++ b/src/core/hle/service/nfp/nfp.h @@ -6,9 +6,13 @@ #include #include -#include "core/hle/kernel/event.h" #include "core/hle/service/service.h" +namespace Kernel { +class ReadableEvent; +class WritableEvent; +} // namespace Kernel + namespace Service::NFP { class Module final { @@ -33,11 +37,11 @@ public: void CreateUserInterface(Kernel::HLERequestContext& ctx); bool LoadAmiibo(const std::vector& buffer); - const Kernel::SharedPtr& GetNFCEvent() const; + const Kernel::SharedPtr& GetNFCEvent() const; const AmiiboFile& GetAmiiboBuffer() const; private: - Kernel::SharedPtr nfc_tag_load{}; + Kernel::SharedPtr nfc_tag_load{}; AmiiboFile amiibo{}; protected: -- cgit v1.2.3