summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/controllers/keyboard.cpp
diff options
context:
space:
mode:
authorDavid Marcec <dmarcecguzman@gmail.com>2018-10-05 16:23:21 +0200
committerDavid Marcec <dmarcecguzman@gmail.com>2018-10-10 04:15:35 +0200
commit56f35ab2629c3753dbb624799bd8aaff2a179f58 (patch)
treed4c27964cf6f7679529f1042e9d71005f1e73864 /src/core/hle/service/hid/controllers/keyboard.cpp
parentMerge pull request #1466 from lioncash/unused (diff)
downloadyuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.tar
yuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.tar.gz
yuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.tar.bz2
yuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.tar.lz
yuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.tar.xz
yuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.tar.zst
yuzu-56f35ab2629c3753dbb624799bd8aaff2a179f58.zip
Diffstat (limited to 'src/core/hle/service/hid/controllers/keyboard.cpp')
-rw-r--r--src/core/hle/service/hid/controllers/keyboard.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/controllers/keyboard.cpp b/src/core/hle/service/hid/controllers/keyboard.cpp
new file mode 100644
index 000000000..27c39ad08
--- /dev/null
+++ b/src/core/hle/service/hid/controllers/keyboard.cpp
@@ -0,0 +1,36 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/common_types.h"
+#include "common/swap.h"
+#include "core/core_timing.h"
+#include "core/hle/service/hid/controllers/keyboard.h"
+
+namespace Service::HID {
+constexpr size_t SHARED_MEMORY_OFFSET = 0x3800;
+void Controller_Keyboard::OnInit() {}
+void Controller_Keyboard::OnRelease() {}
+void Controller_Keyboard::OnUpdate(u8* data, size_t size) {
+ shared_memory.header.timestamp = CoreTiming::GetTicks();
+ shared_memory.header.total_entry_count = 17;
+
+ if (!IsControllerActivated()) {
+ shared_memory.header.entry_count = 0;
+ shared_memory.header.last_entry_index = 0;
+ return;
+ }
+ shared_memory.header.entry_count = 16;
+
+ auto& last_entry = shared_memory.pad_states[shared_memory.header.last_entry_index];
+ shared_memory.header.last_entry_index = (shared_memory.header.last_entry_index + 1) % 17;
+ auto& cur_entry = shared_memory.pad_states[shared_memory.header.last_entry_index];
+
+ cur_entry.sampling_number = last_entry.sampling_number + 1;
+ cur_entry.sampling_number2 = cur_entry.sampling_number;
+ // TODO(ogniK): Update keyboard states
+
+ std::memcpy(data + SHARED_MEMORY_OFFSET, &shared_memory, sizeof(SharedMemory));
+}
+void Controller_Keyboard::OnLoadInputDevices() {}
+}; // namespace Service::HID