diff options
author | bunnei <bunneidev@gmail.com> | 2018-10-18 02:25:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-18 02:25:17 +0200 |
commit | 7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6 (patch) | |
tree | 042bae044e7b1f05eb5a561eefe37d847e0417cf /src/core/hle/service/hid/controllers/controller_base.h | |
parent | Merge pull request #1489 from FernandoS27/fix-tlds (diff) | |
parent | Using dual joycons as the default controller (diff) | |
download | yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.tar yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.tar.gz yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.tar.bz2 yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.tar.lz yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.tar.xz yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.tar.zst yuzu-7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/hid/controllers/controller_base.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/controllers/controller_base.h b/src/core/hle/service/hid/controllers/controller_base.h new file mode 100644 index 000000000..fa98e2354 --- /dev/null +++ b/src/core/hle/service/hid/controllers/controller_base.h @@ -0,0 +1,45 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/common_types.h" +#include "common/swap.h" + +namespace Service::HID { +class ControllerBase { +public: + ControllerBase() = default; + virtual ~ControllerBase() = 0; + + // Called when the controller is initialized + virtual void OnInit() = 0; + + // When the controller is released + virtual void OnRelease() = 0; + + // When the controller is requesting an update for the shared memory + virtual void OnUpdate(u8* data, std::size_t size) = 0; + + // Called when input devices should be loaded + virtual void OnLoadInputDevices() = 0; + + void ActivateController(); + + void DeactivateController(); + + bool IsControllerActivated() const; + +protected: + bool is_activated{false}; + + struct CommonHeader { + s64_le timestamp; + s64_le total_entry_count; + s64_le last_entry_index; + s64_le entry_count; + }; + static_assert(sizeof(CommonHeader) == 0x20, "CommonHeader is an invalid size"); +}; +} // namespace Service::HID |