Cemu/src/input/api/Keyboard/KeyboardController.h

32 lines
875 B
C++

#pragma once
#include "input/api/Keyboard/KeyboardControllerProvider.h"
#include "input/api/Controller.h"
class KeyboardController : public Controller<KeyboardControllerProvider>
{
public:
KeyboardController();
std::string_view api_name() const override // TODO: use constexpr virtual function with c++20
{
static_assert(to_string(InputAPI::Keyboard) == "Keyboard");
return to_string(InputAPI::Keyboard);
}
InputAPI::Type api() const override { return InputAPI::Keyboard; }
bool is_connected() override { return true; }
bool has_axis() const override { return false; }
bool has_position() override { return true; }
glm::vec2 get_position() override;
PositionVisibility GetPositionVisibility() override { return PositionVisibility::FULL; }
std::string get_button_name(uint64 button) const override;
protected:
ControllerState raw_state() override;
};