diff options
| author | bunnei <bunneidev@gmail.com> | 2018-10-17 20:25:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-17 20:25:17 -0400 |
| commit | 7dee60d7d24dabcc2c52c8c2135f1c89adb57ff6 (patch) | |
| tree | 042bae044e7b1f05eb5a561eefe37d847e0417cf /src/core/hle/service/hid/controllers/keyboard.h | |
| parent | 77e2d68df7ef87168f286169c620701a2b2f298e (diff) | |
| parent | 8144fa42bdeb96524f506f935109df128f961847 (diff) | |
Merge pull request #1444 from ogniK5377/better-hid
"Better Hid" Rework Part 1
Diffstat (limited to 'src/core/hle/service/hid/controllers/keyboard.h')
| -rw-r--r-- | src/core/hle/service/hid/controllers/keyboard.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/controllers/keyboard.h b/src/core/hle/service/hid/controllers/keyboard.h new file mode 100644 index 000000000..778e14f7e --- /dev/null +++ b/src/core/hle/service/hid/controllers/keyboard.h @@ -0,0 +1,49 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <array> +#include "common/common_funcs.h" +#include "common/common_types.h" +#include "common/swap.h" +#include "core/hle/service/hid/controllers/controller_base.h" + +namespace Service::HID { +class Controller_Keyboard final : public ControllerBase { +public: + Controller_Keyboard(); + + // Called when the controller is initialized + void OnInit() override; + + // When the controller is released + void OnRelease() override; + + // When the controller is requesting an update for the shared memory + void OnUpdate(u8* data, std::size_t size) override; + + // Called when input devices should be loaded + void OnLoadInputDevices() override; + +private: + struct KeyboardState { + s64_le sampling_number; + s64_le sampling_number2; + + s32_le modifier; + s32_le attribute; + std::array<u8, 32> key; + }; + static_assert(sizeof(KeyboardState) == 0x38, "KeyboardState is an invalid size"); + + struct SharedMemory { + CommonHeader header; + std::array<KeyboardState, 17> pad_states; + INSERT_PADDING_BYTES(0x28); + }; + static_assert(sizeof(SharedMemory) == 0x400, "SharedMemory is an invalid size"); + SharedMemory shared_memory{}; +}; +} // namespace Service::HID |
