diff options
author | Fernando S <fsahmkow27@gmail.com> | 2022-04-16 15:51:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-16 15:51:14 +0200 |
commit | fd49b186fa13c74a61cdf70844486c75cfc0c930 (patch) | |
tree | aff4d01b4a955e7928ed97cb979d80b596d013f3 /src/core/hle/service/hid/hidbus/hidbus_base.cpp | |
parent | Merge pull request #8188 from merryhime/jit-race-page-table-changed (diff) | |
parent | yuzu: Call ignore event after ensuring it's initialized (diff) | |
download | yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.tar yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.tar.gz yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.tar.bz2 yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.tar.lz yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.tar.xz yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.tar.zst yuzu-fd49b186fa13c74a61cdf70844486c75cfc0c930.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/hid/hidbus/hidbus_base.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/hidbus/hidbus_base.cpp b/src/core/hle/service/hid/hidbus/hidbus_base.cpp new file mode 100644 index 000000000..09bff10e5 --- /dev/null +++ b/src/core/hle/service/hid/hidbus/hidbus_base.cpp @@ -0,0 +1,72 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/hid/hid_core.h" +#include "core/hle/kernel/k_event.h" +#include "core/hle/kernel/k_readable_event.h" +#include "core/hle/service/hid/hidbus/hidbus_base.h" +#include "core/hle/service/kernel_helpers.h" + +namespace Service::HID { + +HidbusBase::HidbusBase(KernelHelpers::ServiceContext& service_context_) + : service_context(service_context_) { + send_command_async_event = service_context.CreateEvent("hidbus:SendCommandAsyncEvent"); +} +HidbusBase::~HidbusBase() = default; + +void HidbusBase::ActivateDevice() { + if (is_activated) { + return; + } + is_activated = true; + OnInit(); +} + +void HidbusBase::DeactivateDevice() { + if (is_activated) { + OnRelease(); + } + is_activated = false; +} + +bool HidbusBase::IsDeviceActivated() const { + return is_activated; +} + +void HidbusBase::Enable(bool enable) { + device_enabled = enable; +} + +bool HidbusBase::IsEnabled() const { + return device_enabled; +} + +bool HidbusBase::IsPollingMode() const { + return polling_mode_enabled; +} + +JoyPollingMode HidbusBase::GetPollingMode() const { + return polling_mode; +} + +void HidbusBase::SetPollingMode(JoyPollingMode mode) { + polling_mode = mode; + polling_mode_enabled = true; +} + +void HidbusBase::DisablePollingMode() { + polling_mode_enabled = false; +} + +void HidbusBase::SetTransferMemoryPointer(u8* t_mem) { + is_transfer_memory_set = true; + transfer_memory = t_mem; +} + +Kernel::KReadableEvent& HidbusBase::GetSendCommandAsycEvent() const { + return send_command_async_event->GetReadableEvent(); +} + +} // namespace Service::HID |