yuzu-emu
/
yuzu-android
Archived
1
0
Fork 0
This repository has been archived on 2024-03-23. You can view files and clone it, but cannot push or open issues or pull requests.
yuzu-android/src/core/settings.h

410 lines
6.3 KiB
C++
Raw Normal View History

// Copyright 2014 Citra Emulator Project
2014-12-17 05:38:14 +00:00
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
2015-06-20 03:34:45 +00:00
#include <array>
2018-09-08 22:57:41 +00:00
#include <atomic>
#include <optional>
#include <string>
#include "common/common_types.h"
namespace Settings {
2017-01-20 20:46:39 +00:00
namespace NativeButton {
enum Values {
A,
B,
X,
Y,
LStick,
RStick,
2017-01-20 20:46:39 +00:00
L,
R,
ZL,
ZR,
Plus,
Minus,
DLeft,
DUp,
DRight,
DDown,
LStick_Left,
LStick_Up,
LStick_Right,
LStick_Down,
RStick_Left,
RStick_Up,
RStick_Right,
RStick_Down,
SL,
SR,
2017-01-20 20:46:39 +00:00
Home,
2018-01-15 08:35:25 +00:00
Screenshot,
2017-01-20 20:46:39 +00:00
NumButtons,
};
constexpr int BUTTON_HID_BEGIN = A;
constexpr int BUTTON_NS_BEGIN = Home;
constexpr int BUTTON_HID_END = BUTTON_NS_BEGIN;
2017-01-20 20:46:39 +00:00
constexpr int BUTTON_NS_END = NumButtons;
constexpr int NUM_BUTTONS_HID = BUTTON_HID_END - BUTTON_HID_BEGIN;
constexpr int NUM_BUTTONS_NS = BUTTON_NS_END - BUTTON_NS_BEGIN;
static const std::array<const char*, NumButtons> mapping = {{
"button_a",
"button_b",
"button_x",
"button_y",
"button_lstick",
"button_rstick",
"button_l",
"button_r",
"button_zl",
"button_zr",
"button_plus",
"button_minus",
"button_dleft",
"button_dup",
"button_dright",
"button_ddown",
"button_lstick_left",
"button_lstick_up",
"button_lstick_right",
"button_lstick_down",
"button_rstick_left",
"button_rstick_up",
"button_rstick_right",
"button_rstick_down",
"button_sl",
"button_sr",
"button_home",
2018-01-15 08:35:25 +00:00
"button_screenshot",
2017-01-20 20:46:39 +00:00
}};
2017-01-20 20:46:39 +00:00
} // namespace NativeButton
2017-01-20 21:58:03 +00:00
namespace NativeAnalog {
enum Values {
LStick,
RStick,
2017-01-20 21:58:03 +00:00
NumAnalogs,
};
constexpr int STICK_HID_BEGIN = LStick;
constexpr int STICK_HID_END = NumAnalogs;
constexpr int NUM_STICKS_HID = NumAnalogs;
2017-01-20 21:58:03 +00:00
static const std::array<const char*, NumAnalogs> mapping = {{
"lstick",
"rstick",
2017-01-20 21:58:03 +00:00
}};
} // namespace NativeAnalog
2017-01-20 21:58:03 +00:00
namespace NativeMouseButton {
enum Values {
Left,
Right,
Middle,
Forward,
Back,
NumMouseButtons,
};
constexpr int MOUSE_HID_BEGIN = Left;
constexpr int MOUSE_HID_END = NumMouseButtons;
constexpr int NUM_MOUSE_HID = NumMouseButtons;
static const std::array<const char*, NumMouseButtons> mapping = {{
"left",
"right",
"middle",
"forward",
"back",
}};
} // namespace NativeMouseButton
2018-11-02 01:53:31 +00:00
namespace NativeKeyboard {
enum Keys {
None,
Error,
A = 4,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
N1,
N2,
N3,
N4,
N5,
N6,
N7,
N8,
N9,
N0,
Enter,
Escape,
Backspace,
Tab,
Space,
Minus,
Equal,
LeftBrace,
RightBrace,
Backslash,
Tilde,
Semicolon,
Apostrophe,
Grave,
Comma,
Dot,
Slash,
CapsLockKey,
F1,
F2,
F3,
F4,
F5,
F6,
F7,
F8,
F9,
F10,
F11,
F12,
SystemRequest,
ScrollLockKey,
Pause,
Insert,
Home,
PageUp,
Delete,
End,
PageDown,
Right,
Left,
Down,
Up,
NumLockKey,
KPSlash,
KPAsterisk,
KPMinus,
KPPlus,
KPEnter,
KP1,
KP2,
KP3,
KP4,
KP5,
KP6,
KP7,
KP8,
KP9,
KP0,
KPDot,
Key102,
Compose,
Power,
KPEqual,
F13,
F14,
F15,
F16,
F17,
F18,
F19,
F20,
F21,
F22,
F23,
F24,
Open,
Help,
Properties,
Front,
Stop,
Repeat,
Undo,
Cut,
Copy,
Paste,
Find,
Mute,
VolumeUp,
VolumeDown,
CapsLockActive,
NumLockActive,
ScrollLockActive,
KPComma,
KPLeftParenthesis,
KPRightParenthesis,
LeftControlKey = 0xE0,
LeftShiftKey,
LeftAltKey,
LeftMetaKey,
RightControlKey,
RightShiftKey,
RightAltKey,
RightMetaKey,
MediaPlayPause,
MediaStopCD,
MediaPrevious,
MediaNext,
MediaEject,
MediaVolumeUp,
MediaVolumeDown,
MediaMute,
MediaWebsite,
MediaBack,
MediaForward,
MediaStop,
MediaFind,
MediaScrollUp,
MediaScrollDown,
MediaEdit,
MediaSleep,
MediaCoffee,
MediaRefresh,
MediaCalculator,
NumKeyboardKeys,
};
static_assert(NumKeyboardKeys == 0xFC, "Incorrect number of keyboard keys.");
enum Modifiers {
LeftControl,
LeftShift,
LeftAlt,
LeftMeta,
RightControl,
RightShift,
RightAlt,
RightMeta,
CapsLock,
ScrollLock,
NumLock,
NumKeyboardMods,
};
constexpr int KEYBOARD_KEYS_HID_BEGIN = None;
constexpr int KEYBOARD_KEYS_HID_END = NumKeyboardKeys;
constexpr int NUM_KEYBOARD_KEYS_HID = NumKeyboardKeys;
constexpr int KEYBOARD_MODS_HID_BEGIN = LeftControl;
constexpr int KEYBOARD_MODS_HID_END = NumKeyboardMods;
constexpr int NUM_KEYBOARD_MODS_HID = NumKeyboardMods;
} // namespace NativeKeyboard
struct Values {
// System
bool use_docked_mode;
bool enable_nfc;
std::optional<u32> rng_seed;
2018-11-06 15:38:10 +00:00
s32 current_user;
s32 language_index;
// Controls
2017-01-20 20:46:39 +00:00
std::array<std::string, NativeButton::NumButtons> buttons;
2017-01-20 21:58:03 +00:00
std::array<std::string, NativeAnalog::NumAnalogs> analogs;
bool mouse_enabled;
std::string mouse_device;
MouseButtonsRaw mouse_buttons;
2018-11-02 01:53:31 +00:00
bool keyboard_enabled;
KeyboardKeysRaw keyboard_keys;
KeyboardModsRaw keyboard_mods;
std::string motion_device;
2017-08-08 18:34:17 +00:00
std::string touch_device;
2018-09-08 22:57:41 +00:00
std::atomic_bool is_device_reload_pending{true};
2017-01-20 20:46:39 +00:00
// Core
bool use_cpu_jit;
bool use_multi_core;
// Data Storage
bool use_virtual_sd;
std::string nand_dir;
std::string sdmc_dir;
// Renderer
float resolution_factor;
2018-08-20 23:14:06 +00:00
bool use_frame_limit;
u16 frame_limit;
bool use_accurate_gpu_emulation;
2015-05-03 19:34:48 +00:00
float bg_red;
float bg_green;
float bg_blue;
std::string log_filter;
2015-09-02 12:56:38 +00:00
2018-07-28 03:55:23 +00:00
bool use_dev_keys;
// Audio
std::string sink_id;
2018-08-23 12:33:03 +00:00
bool enable_audio_stretching;
std::string audio_device_id;
float volume;
2015-09-02 12:56:38 +00:00
// Debugging
bool use_gdbstub;
u16 gdbstub_port;
std::string program_args;
bool dump_nso;
2018-09-16 18:05:51 +00:00
// WebService
bool enable_telemetry;
std::string web_api_url;
std::string yuzu_username;
std::string yuzu_token;
} extern values;
2016-04-11 12:38:42 +00:00
void Apply();
} // namespace Settings