From b91b76df4fe27d781bd95ddb89b78ff54df57029 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Mon, 28 Jun 2021 15:58:16 -0400 Subject: general: Make most settings a BasicSetting Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting. --- src/input_common/mouse/mouse_poller.cpp | 3 ++- src/input_common/touch_from_button.cpp | 3 +-- src/input_common/udp/client.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/input_common') diff --git a/src/input_common/mouse/mouse_poller.cpp b/src/input_common/mouse/mouse_poller.cpp index 758f7af1f..4861a131e 100644 --- a/src/input_common/mouse/mouse_poller.cpp +++ b/src/input_common/mouse/mouse_poller.cpp @@ -84,7 +84,8 @@ public: std::lock_guard lock{mutex}; const auto axis_value = static_cast(mouse_input->GetMouseState(button).axis.at(axis)); - return axis_value * Settings::values.mouse_panning_sensitivity / (100.0f * range); + return axis_value * Settings::values.mouse_panning_sensitivity.GetValue() / + (100.0f * range); } std::pair GetAnalog(u32 analog_axis_x, u32 analog_axis_y) const { diff --git a/src/input_common/touch_from_button.cpp b/src/input_common/touch_from_button.cpp index 5b24fd8bf..87207f48f 100644 --- a/src/input_common/touch_from_button.cpp +++ b/src/input_common/touch_from_button.cpp @@ -12,8 +12,7 @@ namespace InputCommon { class TouchFromButtonDevice final : public Input::TouchDevice { public: TouchFromButtonDevice() { - const auto button_index = - static_cast(Settings::values.touch_from_button_map_index); + const auto button_index = Settings::values.touch_from_button_map_index.GetValue(); const auto& buttons = Settings::values.touch_from_button_maps[button_index].buttons; for (const auto& config_entry : buttons) { diff --git a/src/input_common/udp/client.cpp b/src/input_common/udp/client.cpp index bc1dfab3d..9b0aec797 100644 --- a/src/input_common/udp/client.cpp +++ b/src/input_common/udp/client.cpp @@ -201,7 +201,7 @@ bool Client::DeviceConnected(std::size_t pad) const { void Client::ReloadSockets() { Reset(); - std::stringstream servers_ss(Settings::values.udp_input_servers); + std::stringstream servers_ss(static_cast(Settings::values.udp_input_servers)); std::string server_token; std::size_t client = 0; while (std::getline(servers_ss, server_token, ',')) { @@ -370,7 +370,7 @@ std::optional Client::GetUnusedFingerID() const { void Client::UpdateTouchInput(Response::TouchPad& touch_pad, std::size_t client, std::size_t id) { // TODO: Use custom calibration per device - const Common::ParamPackage touch_param(Settings::values.touch_device); + const Common::ParamPackage touch_param(Settings::values.touch_device.GetValue()); const u16 min_x = static_cast(touch_param.Get("min_x", 100)); const u16 min_y = static_cast(touch_param.Get("min_y", 50)); const u16 max_x = static_cast(touch_param.Get("max_x", 1800)); -- cgit v1.2.3 From 0e5c74bc9e18974f3169766aec2dee0effdc8df1 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Mon, 28 Jun 2021 19:41:39 -0400 Subject: core, input_common: Miscellaneous fixes bcat: Fix settings access telemetry_session: Fix settings accesses So this is what I get for testing with the web service disabled. touch_from_button: Fix settings access for clang --- src/core/hle/service/bcat/module.cpp | 2 +- src/core/telemetry_session.cpp | 8 +++++--- src/input_common/touch_from_button.cpp | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src/input_common') diff --git a/src/core/hle/service/bcat/module.cpp b/src/core/hle/service/bcat/module.cpp index 44e4d0509..f85444da8 100644 --- a/src/core/hle/service/bcat/module.cpp +++ b/src/core/hle/service/bcat/module.cpp @@ -579,7 +579,7 @@ void Module::Interface::CreateDeliveryCacheStorageServiceWithApplicationId( std::unique_ptr CreateBackendFromSettings([[maybe_unused]] Core::System& system, DirectoryGetter getter) { #ifdef YUZU_ENABLE_BOXCAT - if (Settings::values.bcat_backend == "boxcat") { + if (Settings::values.bcat_backend.GetValue() == "boxcat") { return std::make_unique(system.GetAppletManager(), std::move(getter)); } #endif diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp index 44b8bab5b..066cb23e4 100644 --- a/src/core/telemetry_session.cpp +++ b/src/core/telemetry_session.cpp @@ -135,7 +135,7 @@ u64 RegenerateTelemetryId() { bool VerifyLogin(const std::string& username, const std::string& token) { #ifdef ENABLE_WEB_SERVICE - return WebService::VerifyLogin(Settings::values.web_api_url, username, token); + return WebService::VerifyLogin(Settings::values.web_api_url.GetValue(), username, token); #else return false; #endif @@ -152,7 +152,8 @@ TelemetrySession::~TelemetrySession() { #ifdef ENABLE_WEB_SERVICE auto backend = std::make_unique( - Settings::values.web_api_url, Settings::values.yuzu_username, Settings::values.yuzu_token); + Settings::values.web_api_url.GetValue(), Settings::values.yuzu_username.GetValue(), + Settings::values.yuzu_token.GetValue()); #else auto backend = std::make_unique(); #endif @@ -242,7 +243,8 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader, bool TelemetrySession::SubmitTestcase() { #ifdef ENABLE_WEB_SERVICE auto backend = std::make_unique( - Settings::values.web_api_url, Settings::values.yuzu_username, Settings::values.yuzu_token); + Settings::values.web_api_url.GetValue(), Settings::values.yuzu_username.GetValue(), + Settings::values.yuzu_token.GetValue()); field_collection.Accept(*backend); return backend->SubmitTestcase(); #else diff --git a/src/input_common/touch_from_button.cpp b/src/input_common/touch_from_button.cpp index 87207f48f..7878a56d7 100644 --- a/src/input_common/touch_from_button.cpp +++ b/src/input_common/touch_from_button.cpp @@ -12,7 +12,8 @@ namespace InputCommon { class TouchFromButtonDevice final : public Input::TouchDevice { public: TouchFromButtonDevice() { - const auto button_index = Settings::values.touch_from_button_map_index.GetValue(); + const auto button_index = + static_cast(Settings::values.touch_from_button_map_index.GetValue()); const auto& buttons = Settings::values.touch_from_button_maps[button_index].buttons; for (const auto& config_entry : buttons) { -- cgit v1.2.3 From a949ee0410fcce9144806d7b64e9ae4bffd4fee9 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Thu, 8 Jul 2021 14:07:10 -0400 Subject: general: Code formatting improvements Slight improvements to readability. Dropped suggestions for string_view (settings.h:101), pass by value (settings.h:82), reverting double to a float (config.cpp:316), and other smaller ones, some out of scope. Addresses review feedback. Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com> --- src/common/settings.h | 3 +-- src/core/core.cpp | 4 ++-- src/input_common/mouse/mouse_poller.cpp | 4 ++-- src/yuzu/configuration/config.cpp | 36 ++++++++++++++++++--------------- 4 files changed, 25 insertions(+), 22 deletions(-) (limited to 'src/input_common') diff --git a/src/common/settings.h b/src/common/settings.h index c799e6243..bf83186f5 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -155,8 +155,7 @@ public: /** * Tells this setting to represent either the global or custom setting when other member - * functions are used. Setting to_global to true means using the global setting, to false - * false for the custom setting. + * functions are used. * * @param to_global Whether to use the global or custom setting. */ diff --git a/src/core/core.cpp b/src/core/core.cpp index fc6ec9512..891f1cb49 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -264,8 +264,8 @@ struct System::Impl { if (Settings::values.gamecard_current_game) { fs_controller.SetGameCard(GetGameFileFromPath(virtual_filesystem, filepath)); } else if (!Settings::values.gamecard_path.GetValue().empty()) { - fs_controller.SetGameCard(GetGameFileFromPath( - virtual_filesystem, static_cast(Settings::values.gamecard_path))); + const auto gamecard_path = Settings::values.gamecard_path.GetValue(); + fs_controller.SetGameCard(GetGameFileFromPath(virtual_filesystem, gamecard_path)); } } diff --git a/src/input_common/mouse/mouse_poller.cpp b/src/input_common/mouse/mouse_poller.cpp index 4861a131e..45b3d7340 100644 --- a/src/input_common/mouse/mouse_poller.cpp +++ b/src/input_common/mouse/mouse_poller.cpp @@ -84,8 +84,8 @@ public: std::lock_guard lock{mutex}; const auto axis_value = static_cast(mouse_input->GetMouseState(button).axis.at(axis)); - return axis_value * Settings::values.mouse_panning_sensitivity.GetValue() / - (100.0f * range); + const float sensitivity = Settings::values.mouse_panning_sensitivity.GetValue(); + return axis_value * sensitivity / (100.0f * range); } std::pair GetAnalog(u32 analog_axis_x, u32 analog_axis_y) const { diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index e21f15c72..1a0f75373 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -282,22 +282,23 @@ void Config::Initialize(const std::string& config_name) { template <> void Config::ReadBasicSetting(Settings::BasicSetting& setting) { const QString name = QString::fromStdString(setting.GetLabel()); + const auto default_value = QString::fromStdString(setting.GetDefault()); if (qt_config->value(name + QStringLiteral("/default"), false).toBool()) { - setting.SetValue(setting.GetDefault()); + setting.SetValue(default_value.toStdString()); } else { - setting.SetValue(qt_config->value(name, QString::fromStdString(setting.GetDefault())) - .toString() - .toStdString()); + setting.SetValue(qt_config->value(name, default_value).toString().toStdString()); } } + template void Config::ReadBasicSetting(Settings::BasicSetting& setting) { const QString name = QString::fromStdString(setting.GetLabel()); + const Type default_value = setting.GetDefault(); if (qt_config->value(name + QStringLiteral("/default"), false).toBool()) { - setting.SetValue(setting.GetDefault()); + setting.SetValue(default_value); } else { setting.SetValue( - static_cast(qt_config->value(name, setting.GetDefault())).value()); + static_cast(qt_config->value(name, default_value)).value()); } } @@ -305,10 +306,11 @@ void Config::ReadBasicSetting(Settings::BasicSetting& setting) { template <> void Config::WriteBasicSetting(const Settings::BasicSetting& setting) { const QString name = QString::fromStdString(setting.GetLabel()); - qt_config->setValue(name + QStringLiteral("/default"), - setting.GetValue() == setting.GetDefault()); - qt_config->setValue(name, QString::fromStdString(setting.GetValue())); + const std::string& value = setting.GetValue(); + qt_config->setValue(name + QStringLiteral("/default"), value == setting.GetDefault()); + qt_config->setValue(name, QString::fromStdString(value)); } + // Explicit float definition: use a double as Qt doesn't write legible floats to config files template <> void Config::WriteBasicSetting(const Settings::BasicSetting& setting) { @@ -318,12 +320,13 @@ void Config::WriteBasicSetting(const Settings::BasicSetting& setting) { setting.GetValue() == setting.GetDefault()); qt_config->setValue(name, value); } + template void Config::WriteBasicSetting(const Settings::BasicSetting& setting) { const QString name = QString::fromStdString(setting.GetLabel()); - qt_config->setValue(name + QStringLiteral("/default"), - setting.GetValue() == setting.GetDefault()); - qt_config->setValue(name, setting.GetValue()); + const Type value = setting.GetValue(); + qt_config->setValue(name + QStringLiteral("/default"), value == setting.GetDefault()); + qt_config->setValue(name, value); } // Explicit float definition: use a double as Qt doesn't write legible floats to config files @@ -340,16 +343,17 @@ void Config::WriteGlobalSetting(const Settings::Setting& setting) { qt_config->setValue(name, value); } } + template void Config::WriteGlobalSetting(const Settings::Setting& setting) { - QString name = QString::fromStdString(setting.GetLabel()); + const QString name = QString::fromStdString(setting.GetLabel()); + const Type& value = setting.GetValue(global); if (!global) { qt_config->setValue(name + QStringLiteral("/use_global"), setting.UsingGlobal()); } if (global || !setting.UsingGlobal()) { - qt_config->setValue(name + QStringLiteral("/default"), - setting.GetValue(global) == setting.GetDefault()); - qt_config->setValue(name, setting.GetValue(global)); + qt_config->setValue(name + QStringLiteral("/default"), value == setting.GetDefault()); + qt_config->setValue(name, value); } } -- cgit v1.2.3