summaryrefslogtreecommitdiffstats
path: root/src/core/settings.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/settings.h90
1 files changed, 51 insertions, 39 deletions
diff --git a/src/core/settings.h b/src/core/settings.h
index b6c75531f..03c64c94c 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -15,67 +15,70 @@ enum class LayoutOption {
Default,
SingleScreen,
LargeScreen,
- Custom,
};
-namespace NativeInput {
-
+namespace NativeButton {
enum Values {
- // directly mapped keys
A,
B,
X,
Y,
+ Up,
+ Down,
+ Left,
+ Right,
L,
R,
+ Start,
+ Select,
+
ZL,
ZR,
- START,
- SELECT,
- HOME,
- DUP,
- DDOWN,
- DLEFT,
- DRIGHT,
- CUP,
- CDOWN,
- CLEFT,
- CRIGHT,
-
- // indirectly mapped keys
- CIRCLE_UP,
- CIRCLE_DOWN,
- CIRCLE_LEFT,
- CIRCLE_RIGHT,
- CIRCLE_MODIFIER,
-
- NUM_INPUTS
+
+ Home,
+
+ NumButtons,
};
-static const std::array<const char*, NUM_INPUTS> Mapping = {{
- // directly mapped keys
- "pad_a", "pad_b", "pad_x", "pad_y", "pad_l", "pad_r", "pad_zl", "pad_zr", "pad_start",
- "pad_select", "pad_home", "pad_dup", "pad_ddown", "pad_dleft", "pad_dright", "pad_cup",
- "pad_cdown", "pad_cleft", "pad_cright",
+constexpr int BUTTON_HID_BEGIN = A;
+constexpr int BUTTON_IR_BEGIN = ZL;
+constexpr int BUTTON_NS_BEGIN = Home;
+
+constexpr int BUTTON_HID_END = BUTTON_IR_BEGIN;
+constexpr int BUTTON_IR_END = BUTTON_NS_BEGIN;
+constexpr int BUTTON_NS_END = NumButtons;
+
+constexpr int NUM_BUTTONS_HID = BUTTON_HID_END - BUTTON_HID_BEGIN;
+constexpr int NUM_BUTTONS_IR = BUTTON_IR_END - BUTTON_IR_BEGIN;
+constexpr int NUM_BUTTONS_NS = BUTTON_NS_END - BUTTON_NS_BEGIN;
- // indirectly mapped keys
- "pad_circle_up", "pad_circle_down", "pad_circle_left", "pad_circle_right",
- "pad_circle_modifier",
+static const std::array<const char*, NumButtons> mapping = {{
+ "button_a", "button_b", "button_x", "button_y", "button_up", "button_down", "button_left",
+ "button_right", "button_l", "button_r", "button_start", "button_select", "button_zl",
+ "button_zr", "button_home",
}};
-static const std::array<Values, NUM_INPUTS> All = {{
- A, B, X, Y, L, R, ZL, ZR,
- START, SELECT, HOME, DUP, DDOWN, DLEFT, DRIGHT, CUP,
- CDOWN, CLEFT, CRIGHT, CIRCLE_UP, CIRCLE_DOWN, CIRCLE_LEFT, CIRCLE_RIGHT, CIRCLE_MODIFIER,
+} // namespace NativeButton
+
+namespace NativeAnalog {
+enum Values {
+ CirclePad,
+ CStick,
+
+ NumAnalogs,
+};
+
+static const std::array<const char*, NumAnalogs> mapping = {{
+ "circle_pad", "c_stick",
}};
-}
+} // namespace NumAnalog
struct Values {
// CheckNew3DS
bool is_new_3ds;
// Controls
- std::array<int, NativeInput::NUM_INPUTS> input_mappings;
- float pad_circle_modifier_scale;
+ std::array<std::string, NativeButton::NumButtons> buttons;
+ std::array<std::string, NativeAnalog::NumAnalogs> analogs;
// Core
bool use_cpu_jit;
@@ -95,6 +98,15 @@ struct Values {
LayoutOption layout_option;
bool swap_screen;
+ bool custom_layout;
+ u16 custom_top_left;
+ u16 custom_top_top;
+ u16 custom_top_right;
+ u16 custom_top_bottom;
+ u16 custom_bottom_left;
+ u16 custom_bottom_top;
+ u16 custom_bottom_right;
+ u16 custom_bottom_bottom;
float bg_red;
float bg_green;