summaryrefslogtreecommitdiffstats
path: root/src/core/settings.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-04-15 01:07:40 +0200
committerbunnei <bunneidev@gmail.com>2021-04-15 01:24:03 +0200
commita4c6712a4be249bf668df7f0ff83a0a5236283b2 (patch)
treef05e183692b6b1e4096d285fb77db50f048ae82d /src/core/settings.h
parentcore: settings: Add setting for debug assertions and disable by default. (diff)
downloadyuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.tar
yuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.tar.gz
yuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.tar.bz2
yuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.tar.lz
yuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.tar.xz
yuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.tar.zst
yuzu-a4c6712a4be249bf668df7f0ff83a0a5236283b2.zip
Diffstat (limited to 'src/core/settings.h')
-rw-r--r--src/core/settings.h265
1 files changed, 0 insertions, 265 deletions
diff --git a/src/core/settings.h b/src/core/settings.h
deleted file mode 100644
index 0b7d28421..000000000
--- a/src/core/settings.h
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright 2014 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <array>
-#include <atomic>
-#include <chrono>
-#include <map>
-#include <optional>
-#include <string>
-#include <vector>
-#include "common/common_types.h"
-#include "input_common/settings.h"
-
-namespace Core {
-class System;
-}
-
-namespace Settings {
-
-enum class RendererBackend {
- OpenGL = 0,
- Vulkan = 1,
-};
-
-enum class GPUAccuracy : u32 {
- Normal = 0,
- High = 1,
- Extreme = 2,
-};
-
-enum class CPUAccuracy {
- Accurate = 0,
- Unsafe = 1,
- DebugMode = 2,
-};
-
-template <typename Type>
-class Setting final {
-public:
- Setting() = default;
- explicit Setting(Type val) : global{val} {}
- ~Setting() = default;
- void SetGlobal(bool to_global) {
- use_global = to_global;
- }
- bool UsingGlobal() const {
- return use_global;
- }
- Type GetValue(bool need_global = false) const {
- if (use_global || need_global) {
- return global;
- }
- return local;
- }
- void SetValue(const Type& value) {
- if (use_global) {
- global = value;
- } else {
- local = value;
- }
- }
-
-private:
- bool use_global = true;
- Type global{};
- Type local{};
-};
-
-/**
- * The InputSetting class allows for getting a reference to either the global or local members.
- * This is required as we cannot easily modify the values of user-defined types within containers
- * using the SetValue() member function found in the Setting class. The primary purpose of this
- * class is to store an array of 10 PlayerInput structs for both the global and local (per-game)
- * setting and allows for easily accessing and modifying both settings.
- */
-template <typename Type>
-class InputSetting final {
-public:
- InputSetting() = default;
- explicit InputSetting(Type val) : global{val} {}
- ~InputSetting() = default;
- void SetGlobal(bool to_global) {
- use_global = to_global;
- }
- bool UsingGlobal() const {
- return use_global;
- }
- Type& GetValue(bool need_global = false) {
- if (use_global || need_global) {
- return global;
- }
- return local;
- }
-
-private:
- bool use_global = true;
- Type global{};
- Type local{};
-};
-
-struct TouchFromButtonMap {
- std::string name;
- std::vector<std::string> buttons;
-};
-
-struct Values {
- // Audio
- std::string audio_device_id;
- std::string sink_id;
- bool audio_muted;
- Setting<bool> enable_audio_stretching;
- Setting<float> volume;
-
- // Core
- Setting<bool> use_multi_core;
-
- // Cpu
- CPUAccuracy cpu_accuracy;
-
- bool cpuopt_page_tables;
- bool cpuopt_block_linking;
- bool cpuopt_return_stack_buffer;
- bool cpuopt_fast_dispatcher;
- bool cpuopt_context_elimination;
- bool cpuopt_const_prop;
- bool cpuopt_misc_ir;
- bool cpuopt_reduce_misalign_checks;
-
- bool cpuopt_unsafe_unfuse_fma;
- bool cpuopt_unsafe_reduce_fp_error;
- bool cpuopt_unsafe_inaccurate_nan;
-
- // Renderer
- Setting<RendererBackend> renderer_backend;
- bool renderer_debug;
- Setting<int> vulkan_device;
-
- Setting<u16> resolution_factor{1};
- Setting<int> fullscreen_mode;
- Setting<int> aspect_ratio;
- Setting<int> max_anisotropy;
- Setting<bool> use_frame_limit;
- Setting<u16> frame_limit;
- Setting<bool> use_disk_shader_cache;
- Setting<GPUAccuracy> gpu_accuracy;
- Setting<bool> use_asynchronous_gpu_emulation;
- Setting<bool> use_nvdec_emulation;
- Setting<bool> use_vsync;
- Setting<bool> use_assembly_shaders;
- Setting<bool> use_asynchronous_shaders;
- Setting<bool> use_fast_gpu_time;
-
- Setting<float> bg_red;
- Setting<float> bg_green;
- Setting<float> bg_blue;
-
- // System
- Setting<std::optional<u32>> rng_seed;
- // Measured in seconds since epoch
- Setting<std::optional<std::chrono::seconds>> custom_rtc;
- // Set on game boot, reset on stop. Seconds difference between current time and `custom_rtc`
- std::chrono::seconds custom_rtc_differential;
-
- s32 current_user;
- Setting<s32> language_index;
- Setting<s32> region_index;
- Setting<s32> time_zone_index;
- Setting<s32> sound_index;
-
- // Controls
- InputSetting<std::array<PlayerInput, 10>> players;
-
- Setting<bool> use_docked_mode;
-
- Setting<bool> vibration_enabled;
- Setting<bool> enable_accurate_vibrations;
-
- Setting<bool> motion_enabled;
- std::string motion_device;
- std::string udp_input_servers;
-
- bool mouse_panning;
- float mouse_panning_sensitivity;
- bool mouse_enabled;
- std::string mouse_device;
- MouseButtonsRaw mouse_buttons;
-
- bool emulate_analog_keyboard;
- bool keyboard_enabled;
- KeyboardKeysRaw keyboard_keys;
- KeyboardModsRaw keyboard_mods;
-
- bool debug_pad_enabled;
- ButtonsRaw debug_pad_buttons;
- AnalogsRaw debug_pad_analogs;
-
- TouchscreenInput touchscreen;
-
- bool use_touch_from_button;
- std::string touch_device;
- int touch_from_button_map_index;
- std::vector<TouchFromButtonMap> touch_from_button_maps;
-
- std::atomic_bool is_device_reload_pending{true};
-
- // Data Storage
- bool use_virtual_sd;
- bool gamecard_inserted;
- bool gamecard_current_game;
- std::string gamecard_path;
-
- // Debugging
- bool record_frame_times;
- bool use_gdbstub;
- u16 gdbstub_port;
- std::string program_args;
- bool dump_exefs;
- bool dump_nso;
- bool reporting_services;
- bool quest_flag;
- bool disable_macro_jit;
- bool extended_logging;
- bool use_debug_asserts;
- bool use_auto_stub;
-
- // Miscellaneous
- std::string log_filter;
- bool use_dev_keys;
-
- // Services
- std::string bcat_backend;
- bool bcat_boxcat_local;
-
- // WebService
- bool enable_telemetry;
- std::string web_api_url;
- std::string yuzu_username;
- std::string yuzu_token;
-
- // Add-Ons
- std::map<u64, std::vector<std::string>> disabled_addons;
-};
-
-extern Values values;
-
-bool IsConfiguringGlobal();
-void SetConfiguringGlobal(bool is_global);
-
-bool IsGPULevelExtreme();
-bool IsGPULevelHigh();
-
-float Volume();
-
-std::string GetTimeZoneString();
-
-void Apply(Core::System& system);
-void LogSettings();
-
-// Restore the global state of all applicable settings in the Values struct
-void RestoreGlobalState(bool is_powered_on);
-
-} // namespace Settings