aboutsummaryrefslogtreecommitdiff
path: root/src/core/frontend/input_interpreter.h
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-09-20 15:02:01 -0500
committerNarr the Reg <juangerman-13@hotmail.com>2021-11-24 20:30:22 -0600
commitbf71d18af99368d7658c9519086c40e73c6abfdd (patch)
tree1040c7d8554106215b6da4637f75aabc0154d9c7 /src/core/frontend/input_interpreter.h
parentad5142ac2c56aded4090ad031a9351cd188caacf (diff)
core/hid: Move input_interpreter to hid
Diffstat (limited to 'src/core/frontend/input_interpreter.h')
-rw-r--r--src/core/frontend/input_interpreter.h144
1 files changed, 0 insertions, 144 deletions
diff --git a/src/core/frontend/input_interpreter.h b/src/core/frontend/input_interpreter.h
deleted file mode 100644
index 9495e3daf0..0000000000
--- a/src/core/frontend/input_interpreter.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright 2020 yuzu Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <array>
-
-#include "common/common_types.h"
-
-namespace Core {
-class System;
-}
-
-namespace Service::HID {
-class Controller_NPad;
-}
-
-enum class HIDButton : u8 {
- A,
- B,
- X,
- Y,
- LStick,
- RStick,
- L,
- R,
- ZL,
- ZR,
- Plus,
- Minus,
-
- DLeft,
- DUp,
- DRight,
- DDown,
-
- LStickLeft,
- LStickUp,
- LStickRight,
- LStickDown,
-
- RStickLeft,
- RStickUp,
- RStickRight,
- RStickDown,
-
- LeftSL,
- LeftSR,
-
- RightSL,
- RightSR,
-};
-
-/**
- * The InputInterpreter class interfaces with HID to retrieve button press states.
- * Input is intended to be polled every 50ms so that a button is considered to be
- * held down after 400ms has elapsed since the initial button press and subsequent
- * repeated presses occur every 50ms.
- */
-class InputInterpreter {
-public:
- explicit InputInterpreter(Core::System& system);
- virtual ~InputInterpreter();
-
- /// Gets a button state from HID and inserts it into the array of button states.
- void PollInput();
-
- /// Resets all the button states to their defaults.
- void ResetButtonStates();
-
- /**
- * Checks whether the button is pressed.
- *
- * @param button The button to check.
- *
- * @returns True when the button is pressed.
- */
- [[nodiscard]] bool IsButtonPressed(HIDButton button) const;
-
- /**
- * Checks whether any of the buttons in the parameter list is pressed.
- *
- * @tparam HIDButton The buttons to check.
- *
- * @returns True when at least one of the buttons is pressed.
- */
- template <HIDButton... T>
- [[nodiscard]] bool IsAnyButtonPressed() {
- return (IsButtonPressed(T) || ...);
- }
-
- /**
- * The specified button is considered to be pressed once
- * if it is currently pressed and not pressed previously.
- *
- * @param button The button to check.
- *
- * @returns True when the button is pressed once.
- */
- [[nodiscard]] bool IsButtonPressedOnce(HIDButton button) const;
-
- /**
- * Checks whether any of the buttons in the parameter list is pressed once.
- *
- * @tparam T The buttons to check.
- *
- * @returns True when at least one of the buttons is pressed once.
- */
- template <HIDButton... T>
- [[nodiscard]] bool IsAnyButtonPressedOnce() const {
- return (IsButtonPressedOnce(T) || ...);
- }
-
- /**
- * The specified button is considered to be held down if it is pressed in all 9 button states.
- *
- * @param button The button to check.
- *
- * @returns True when the button is held down.
- */
- [[nodiscard]] bool IsButtonHeld(HIDButton button) const;
-
- /**
- * Checks whether any of the buttons in the parameter list is held down.
- *
- * @tparam T The buttons to check.
- *
- * @returns True when at least one of the buttons is held down.
- */
- template <HIDButton... T>
- [[nodiscard]] bool IsAnyButtonHeld() const {
- return (IsButtonHeld(T) || ...);
- }
-
-private:
- Service::HID::Controller_NPad& npad;
-
- /// Stores 9 consecutive button states polled from HID.
- std::array<u32, 9> button_states{};
-
- std::size_t previous_index{};
- std::size_t current_index{};
-};