mirror of
https://github.com/cemu-project/Cemu.git
synced 2026-02-04 05:29:44 +00:00
75 lines
2.0 KiB
C++
75 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "input/emulated/WPADController.h"
|
|
|
|
class ProController : public WPADController
|
|
{
|
|
public:
|
|
enum ButtonId
|
|
{
|
|
kButtonId_None,
|
|
|
|
kButtonId_A,
|
|
kButtonId_B,
|
|
kButtonId_X,
|
|
kButtonId_Y,
|
|
|
|
kButtonId_L,
|
|
kButtonId_R,
|
|
kButtonId_ZL,
|
|
kButtonId_ZR,
|
|
|
|
kButtonId_Plus,
|
|
kButtonId_Minus,
|
|
kButtonId_Home,
|
|
|
|
kButtonId_Up,
|
|
kButtonId_Down,
|
|
kButtonId_Left,
|
|
kButtonId_Right,
|
|
|
|
kButtonId_StickL,
|
|
kButtonId_StickR,
|
|
|
|
kButtonId_StickL_Up,
|
|
kButtonId_StickL_Down,
|
|
kButtonId_StickL_Left,
|
|
kButtonId_StickL_Right,
|
|
|
|
kButtonId_StickR_Up,
|
|
kButtonId_StickR_Down,
|
|
kButtonId_StickR_Left,
|
|
kButtonId_StickR_Right,
|
|
|
|
kButtonId_Max,
|
|
};
|
|
|
|
ProController(size_t player_index);
|
|
|
|
Type type() const override { return Type::Pro; }
|
|
WPADDeviceType get_device_type() const override { return kWAPDevURCC; }
|
|
|
|
uint32 get_emulated_button_flag(uint32 id) const override;
|
|
size_t get_highest_mapping_id() const override { return kButtonId_Max; }
|
|
bool is_axis_mapping(uint64 mapping) const override { return mapping >= kButtonId_StickL_Up && mapping <= kButtonId_StickR_Right; }
|
|
|
|
glm::vec2 get_axis() const override;
|
|
glm::vec2 get_rotation() const override;
|
|
glm::vec2 get_trigger() const override;
|
|
|
|
static uint32 s_get_emulated_button_flag(uint32 id);
|
|
|
|
static std::string_view get_button_name(ButtonId id);
|
|
|
|
bool is_start_down() const override { return is_mapping_down(kButtonId_Plus); }
|
|
bool is_left_down() const override { return is_mapping_down(kButtonId_Left); }
|
|
bool is_right_down() const override { return is_mapping_down(kButtonId_Right); }
|
|
bool is_up_down() const override { return is_mapping_down(kButtonId_Up); }
|
|
bool is_down_down() const override { return is_mapping_down(kButtonId_Down); }
|
|
bool is_a_down() const override { return is_mapping_down(kButtonId_A); }
|
|
bool is_b_down() const override { return is_mapping_down(kButtonId_B); }
|
|
bool is_home_down() const override { return is_mapping_down(kButtonId_Home); }
|
|
|
|
bool set_default_mapping(const std::shared_ptr<ControllerBase>& controller) override;
|
|
};
|