summaryrefslogtreecommitdiff
path: root/src/core/hid/input_interpreter.cpp
diff options
context:
space:
mode:
authorGravatar german772021-09-20 20:53:04 -0500
committerGravatar Narr the Reg2021-11-24 20:30:24 -0600
commite14ae06391ac724e4be4557df0568846687a3662 (patch)
tree3db695f4e13214aa638c182e66f94f156b8f5115 /src/core/hid/input_interpreter.cpp
parentyuzu: Update overlay applet (diff)
downloadyuzu-e14ae06391ac724e4be4557df0568846687a3662.tar.gz
yuzu-e14ae06391ac724e4be4557df0568846687a3662.tar.xz
yuzu-e14ae06391ac724e4be4557df0568846687a3662.zip
core: Update input interpreter
Diffstat (limited to 'src/core/hid/input_interpreter.cpp')
-rw-r--r--src/core/hid/input_interpreter.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/core/hid/input_interpreter.cpp b/src/core/hid/input_interpreter.cpp
index c33d8a11a..7e7c1816f 100644
--- a/src/core/hid/input_interpreter.cpp
+++ b/src/core/hid/input_interpreter.cpp
@@ -3,6 +3,7 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/core.h" 5#include "core/core.h"
6#include "core/hid/hid_types.h"
6#include "core/hid/input_interpreter.h" 7#include "core/hid/input_interpreter.h"
7#include "core/hle/service/hid/controllers/npad.h" 8#include "core/hle/service/hid/controllers/npad.h"
8#include "core/hle/service/hid/hid.h" 9#include "core/hle/service/hid/hid.h"
@@ -38,25 +39,23 @@ void InputInterpreter::ResetButtonStates() {
38 } 39 }
39} 40}
40 41
41bool InputInterpreter::IsButtonPressed(HIDButton button) const { 42bool InputInterpreter::IsButtonPressed(Core::HID::NpadButton button) const {
42 return (button_states[current_index] & (1U << static_cast<u8>(button))) != 0; 43 return (button_states[current_index] & static_cast<u32>(button)) != 0;
43} 44}
44 45
45bool InputInterpreter::IsButtonPressedOnce(HIDButton button) const { 46bool InputInterpreter::IsButtonPressedOnce(Core::HID::NpadButton button) const {
46 const bool current_press = 47 const bool current_press = (button_states[current_index] & static_cast<u32>(button)) != 0;
47 (button_states[current_index] & (1U << static_cast<u8>(button))) != 0; 48 const bool previous_press = (button_states[previous_index] & static_cast<u32>(button)) != 0;
48 const bool previous_press =
49 (button_states[previous_index] & (1U << static_cast<u8>(button))) != 0;
50 49
51 return current_press && !previous_press; 50 return current_press && !previous_press;
52} 51}
53 52
54bool InputInterpreter::IsButtonHeld(HIDButton button) const { 53bool InputInterpreter::IsButtonHeld(Core::HID::NpadButton button) const {
55 u32 held_buttons{button_states[0]}; 54 u32 held_buttons{button_states[0]};
56 55
57 for (std::size_t i = 1; i < button_states.size(); ++i) { 56 for (std::size_t i = 1; i < button_states.size(); ++i) {
58 held_buttons &= button_states[i]; 57 held_buttons &= button_states[i];
59 } 58 }
60 59
61 return (held_buttons & (1U << static_cast<u8>(button))) != 0; 60 return (held_buttons & static_cast<u32>(button)) != 0;
62} 61}