yuzu/src/core/settings.h

174 lines
3.1 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
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;
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_exefs;
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