Polyphase Game Engine
Loading...
Searching...
No Matches
InputMap.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
InputTypes.h
"
4
5
#include <stdint.h>
6
#include <string>
7
#include <vector>
8
9
class
InputMap
10
{
11
public
:
12
13
static
void
Create
();
14
static
void
Destroy
();
15
static
InputMap
*
Get
();
16
17
void
ResetToDefaults
();
18
19
// Button mappings (keyboard key -> gamepad button)
20
void
SetButtonMapping
(
GamepadButtonCode
button, int32_t keyCode);
21
int32_t
GetButtonMapping
(
GamepadButtonCode
button)
const
;
22
23
// Axis mappings (keyboard keys -> gamepad axis)
24
void
SetAxisMapping
(
GamepadAxisCode
axis, int32_t positiveKey, int32_t negativeKey);
25
void
GetAxisMapping
(
GamepadAxisCode
axis, int32_t& positiveKey, int32_t& negativeKey)
const
;
26
27
// Mouse-to-axis mapping
28
void
SetAxisMouseMapping
(
GamepadAxisCode
axis,
bool
useMouseX,
bool
useMouseY,
float
sensitivity);
29
bool
GetAxisUsesMouseX
(
GamepadAxisCode
axis)
const
;
30
bool
GetAxisUsesMouseY
(
GamepadAxisCode
axis)
const
;
31
float
GetAxisMouseSensitivity
(
GamepadAxisCode
axis)
const
;
32
33
// Keyboard -> gamepad emulation (button + axis key mappings) on/off
34
void
SetKeyboardEmulationEnabled
(
bool
enabled);
35
bool
IsKeyboardEmulationEnabled
()
const
;
36
37
// Mouse/Pointer enable/disable for debugging
38
void
SetMouseEnabled
(
bool
enabled);
39
bool
IsMouseEnabled
()
const
;
40
void
SetPointerEnabled
(
bool
enabled);
41
bool
IsPointerEnabled
()
const
;
42
43
// Query: is this gamepad button triggered via a mapped keyboard key?
44
bool
IsButtonDownViaKeyboard
(
GamepadButtonCode
button)
const
;
45
bool
IsButtonJustDownViaKeyboard
(
GamepadButtonCode
button)
const
;
46
bool
IsButtonJustUpViaKeyboard
(
GamepadButtonCode
button)
const
;
47
48
// Query: get axis value from mapped keyboard keys and/or mouse
49
float
GetAxisValueFromMapping
(
GamepadAxisCode
axis)
const
;
50
51
// Presets (saved globally to user's AppData)
52
bool
SavePreset
(
const
std::string& name)
const
;
53
bool
LoadPreset
(
const
std::string& name);
54
bool
DeletePreset
(
const
std::string& name);
55
std::vector<std::string>
GetPresetNames
()
const
;
56
static
std::string
GetPresetsDirectory
();
57
58
// Display string helpers
59
static
const
char
*
GetKeyCodeName
(int32_t keyCode);
60
static
const
char
*
GetGamepadButtonName
(
GamepadButtonCode
button);
61
static
const
char
*
GetGamepadAxisName
(
GamepadAxisCode
axis);
62
63
private
:
64
65
static
InputMap
* sInstance;
66
67
InputMap
();
68
69
int32_t mButtonMappings[
GAMEPAD_BUTTON_COUNT
];
70
int32_t mAxisPositiveKeys[
GAMEPAD_AXIS_COUNT
];
71
int32_t mAxisNegativeKeys[
GAMEPAD_AXIS_COUNT
];
72
bool
mAxisUseMouseX[
GAMEPAD_AXIS_COUNT
];
73
bool
mAxisUseMouseY[
GAMEPAD_AXIS_COUNT
];
74
float
mAxisMouseSensitivity[
GAMEPAD_AXIS_COUNT
];
75
bool
mKeyboardEmulationEnabled =
true
;
76
bool
mMouseEnabled =
true
;
77
bool
mPointerEnabled =
true
;
78
};
InputTypes.h
GamepadButtonCode
GamepadButtonCode
Definition
InputTypes.h:50
GAMEPAD_BUTTON_COUNT
@ GAMEPAD_BUTTON_COUNT
Definition
InputTypes.h:79
GamepadAxisCode
GamepadAxisCode
Definition
InputTypes.h:83
GAMEPAD_AXIS_COUNT
@ GAMEPAD_AXIS_COUNT
Definition
InputTypes.h:91
InputMap
Definition
InputMap.h:10
InputMap::GetAxisUsesMouseY
bool GetAxisUsesMouseY(GamepadAxisCode axis) const
Definition
InputMap.cpp:183
InputMap::IsButtonDownViaKeyboard
bool IsButtonDownViaKeyboard(GamepadButtonCode button) const
Definition
InputMap.cpp:208
InputMap::LoadPreset
bool LoadPreset(const std::string &name)
Definition
InputMap.cpp:566
InputMap::GetAxisMapping
void GetAxisMapping(GamepadAxisCode axis, int32_t &positiveKey, int32_t &negativeKey) const
Definition
InputMap.cpp:150
InputMap::IsButtonJustUpViaKeyboard
bool IsButtonJustUpViaKeyboard(GamepadButtonCode button) const
Definition
InputMap.cpp:234
InputMap::IsButtonJustDownViaKeyboard
bool IsButtonJustDownViaKeyboard(GamepadButtonCode button) const
Definition
InputMap.cpp:221
InputMap::GetAxisUsesMouseX
bool GetAxisUsesMouseX(GamepadAxisCode axis) const
Definition
InputMap.cpp:176
InputMap::GetKeyCodeName
static const char * GetKeyCodeName(int32_t keyCode)
Definition
InputMap.cpp:293
InputMap::Destroy
static void Destroy()
Definition
InputMap.cpp:40
InputMap::GetAxisValueFromMapping
float GetAxisValueFromMapping(GamepadAxisCode axis) const
Definition
InputMap.cpp:247
InputMap::Get
static InputMap * Get()
Definition
InputMap.cpp:49
InputMap::GetPresetsDirectory
static std::string GetPresetsDirectory()
Definition
InputMap.cpp:437
InputMap::SetPointerEnabled
void SetPointerEnabled(bool enabled)
Definition
InputMap.cpp:203
InputMap::DeletePreset
bool DeletePreset(const std::string &name)
Definition
InputMap.cpp:636
InputMap::SetButtonMapping
void SetButtonMapping(GamepadButtonCode button, int32_t keyCode)
Definition
InputMap.cpp:122
InputMap::GetGamepadButtonName
static const char * GetGamepadButtonName(GamepadButtonCode button)
Definition
InputMap.cpp:386
InputMap::IsMouseEnabled
bool IsMouseEnabled() const
Definition
InputMap.cpp:202
InputMap::IsPointerEnabled
bool IsPointerEnabled() const
Definition
InputMap.cpp:204
InputMap::GetPresetNames
std::vector< std::string > GetPresetNames() const
Definition
InputMap.cpp:642
InputMap::ResetToDefaults
void ResetToDefaults()
Definition
InputMap.cpp:59
InputMap::GetButtonMapping
int32_t GetButtonMapping(GamepadButtonCode button) const
Definition
InputMap.cpp:130
InputMap::SetAxisMouseMapping
void SetAxisMouseMapping(GamepadAxisCode axis, bool useMouseX, bool useMouseY, float sensitivity)
Definition
InputMap.cpp:166
InputMap::SetKeyboardEmulationEnabled
void SetKeyboardEmulationEnabled(bool enabled)
Definition
InputMap.cpp:199
InputMap::SetAxisMapping
void SetAxisMapping(GamepadAxisCode axis, int32_t positiveKey, int32_t negativeKey)
Definition
InputMap.cpp:141
InputMap::IsKeyboardEmulationEnabled
bool IsKeyboardEmulationEnabled() const
Definition
InputMap.cpp:200
InputMap::SetMouseEnabled
void SetMouseEnabled(bool enabled)
Definition
InputMap.cpp:201
InputMap::GetAxisMouseSensitivity
float GetAxisMouseSensitivity(GamepadAxisCode axis) const
Definition
InputMap.cpp:190
InputMap::SavePreset
bool SavePreset(const std::string &name) const
Definition
InputMap.cpp:510
InputMap::GetGamepadAxisName
static const char * GetGamepadAxisName(GamepadAxisCode axis)
Definition
InputMap.cpp:421
InputMap::Create
static void Create()
Definition
InputMap.cpp:34
Engine
Source
Input
InputMap.h
Generated by
1.9.8