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.
citra-multiplayer-dedicated/patches/0001-Move-webservice-settin...

571 lines
25 KiB
Diff
Raw Normal View History

2022-06-08 00:45:48 +00:00
From 494ce0b5ff9e63c5c83b1fdde52583120def998a Mon Sep 17 00:00:00 2001
From: Vitor Kiguchi <vitor-kiguchi@hotmail.com>
Date: Thu, 20 Aug 2020 04:46:35 -0300
2022-06-08 00:45:48 +00:00
Subject: [PATCH 1/3] Move webservice settings to own file
---
src/citra/config.cpp | 9 ++++----
src/citra_qt/configuration/config.cpp | 17 +++++++-------
src/citra_qt/configuration/configure_web.cpp | 17 +++++++-------
src/citra_qt/main.cpp | 5 ++--
src/citra_qt/multiplayer/direct_connect.cpp | 7 +++---
src/citra_qt/multiplayer/host_room.cpp | 17 +++++++-------
src/citra_qt/multiplayer/lobby.cpp | 15 ++++++------
src/core/announce_multiplayer_session.cpp | 14 ++++++------
src/core/settings.h | 6 -----
src/core/telemetry_session.cpp | 17 +++++++-------
src/dedicated_room/citra-room.cpp | 24 ++++++++------------
src/network/CMakeLists.txt | 2 ++
src/network/network_settings.cpp | 11 +++++++++
src/network/network_settings.h | 20 ++++++++++++++++
14 files changed, 105 insertions(+), 76 deletions(-)
create mode 100644 src/network/network_settings.cpp
create mode 100644 src/network/network_settings.h
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
2022-06-08 00:45:48 +00:00
index 5037c1b41..bcb97372b 100644
--- a/src/citra/config.cpp
+++ b/src/citra/config.cpp
@@ -18,6 +18,7 @@
#include "core/settings.h"
#include "input_common/main.h"
#include "input_common/udp/client.h"
+#include "network/network_settings.h"
Config::Config() {
// TODO: Don't hardcode the path; let the frontend decide where to put the config files.
2022-06-08 00:45:48 +00:00
@@ -275,12 +276,12 @@ void Config::ReadValues() {
}
// Web Service
- Settings::values.enable_telemetry =
+ NetSettings::values.enable_telemetry =
sdl2_config->GetBoolean("WebService", "enable_telemetry", true);
- Settings::values.web_api_url =
+ NetSettings::values.web_api_url =
sdl2_config->GetString("WebService", "web_api_url", "https://api.citra-emu.org");
- Settings::values.citra_username = sdl2_config->GetString("WebService", "citra_username", "");
- Settings::values.citra_token = sdl2_config->GetString("WebService", "citra_token", "");
+ NetSettings::values.citra_username = sdl2_config->GetString("WebService", "citra_username", "");
+ NetSettings::values.citra_token = sdl2_config->GetString("WebService", "citra_token", "");
// Video Dumping
Settings::values.output_format =
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
2022-06-08 00:45:48 +00:00
index f318b2825..f48609849 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -15,6 +15,7 @@
#include "input_common/main.h"
#include "input_common/udp/client.h"
#include "network/network.h"
+#include "network/network_settings.h"
Config::Config() {
// TODO: Don't hardcode the path; let the frontend decide where to put the config files.
2022-06-08 00:45:48 +00:00
@@ -702,15 +703,15 @@ void Config::ReadUpdaterValues() {
void Config::ReadWebServiceValues() {
qt_config->beginGroup(QStringLiteral("WebService"));
- Settings::values.enable_telemetry =
+ NetSettings::values.enable_telemetry =
ReadSetting(QStringLiteral("enable_telemetry"), true).toBool();
- Settings::values.web_api_url =
+ NetSettings::values.web_api_url =
ReadSetting(QStringLiteral("web_api_url"), QStringLiteral("https://api.citra-emu.org"))
.toString()
.toStdString();
- Settings::values.citra_username =
+ NetSettings::values.citra_username =
ReadSetting(QStringLiteral("citra_username")).toString().toStdString();
- Settings::values.citra_token =
+ NetSettings::values.citra_token =
ReadSetting(QStringLiteral("citra_token")).toString().toStdString();
qt_config->endGroup();
2022-06-08 00:45:48 +00:00
@@ -1160,14 +1161,14 @@ void Config::SaveUpdaterValues() {
void Config::SaveWebServiceValues() {
qt_config->beginGroup(QStringLiteral("WebService"));
- WriteSetting(QStringLiteral("enable_telemetry"), Settings::values.enable_telemetry, true);
+ WriteSetting(QStringLiteral("enable_telemetry"), NetSettings::values.enable_telemetry, true);
WriteSetting(QStringLiteral("web_api_url"),
- QString::fromStdString(Settings::values.web_api_url),
+ QString::fromStdString(NetSettings::values.web_api_url),
QStringLiteral("https://api.citra-emu.org"));
WriteSetting(QStringLiteral("citra_username"),
- QString::fromStdString(Settings::values.citra_username));
+ QString::fromStdString(NetSettings::values.citra_username));
WriteSetting(QStringLiteral("citra_token"),
- QString::fromStdString(Settings::values.citra_token));
+ QString::fromStdString(NetSettings::values.citra_token));
qt_config->endGroup();
}
diff --git a/src/citra_qt/configuration/configure_web.cpp b/src/citra_qt/configuration/configure_web.cpp
index cc7ca675f..e97a22720 100644
--- a/src/citra_qt/configuration/configure_web.cpp
+++ b/src/citra_qt/configuration/configure_web.cpp
@@ -7,8 +7,8 @@
#include <QtConcurrent/QtConcurrentRun>
#include "citra_qt/configuration/configure_web.h"
#include "citra_qt/uisettings.h"
-#include "core/settings.h"
#include "core/telemetry_session.h"
+#include "network/network_settings.h"
#include "ui_configure_web.h"
static constexpr char token_delimiter{':'};
@@ -70,16 +70,16 @@ void ConfigureWeb::SetConfiguration() {
tr("<a href='https://citra-emu.org/wiki/citra-web-service/'><span style=\"text-decoration: "
"underline; color:#039be5;\">What is my token?</span></a>"));
- ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry);
+ ui->toggle_telemetry->setChecked(NetSettings::values.enable_telemetry);
- if (Settings::values.citra_username.empty()) {
+ if (NetSettings::values.citra_username.empty()) {
ui->username->setText(tr("Unspecified"));
} else {
- ui->username->setText(QString::fromStdString(Settings::values.citra_username));
+ ui->username->setText(QString::fromStdString(NetSettings::values.citra_username));
}
ui->edit_token->setText(QString::fromStdString(
- GenerateDisplayToken(Settings::values.citra_username, Settings::values.citra_token)));
+ GenerateDisplayToken(NetSettings::values.citra_username, NetSettings::values.citra_token)));
// Connect after setting the values, to avoid calling OnLoginChanged now
connect(ui->edit_token, &QLineEdit::textChanged, this, &ConfigureWeb::OnLoginChanged);
@@ -91,12 +91,13 @@ void ConfigureWeb::SetConfiguration() {
}
void ConfigureWeb::ApplyConfiguration() {
- Settings::values.enable_telemetry = ui->toggle_telemetry->isChecked();
+ NetSettings::values.enable_telemetry = ui->toggle_telemetry->isChecked();
UISettings::values.enable_discord_presence = ui->toggle_discordrpc->isChecked();
if (user_verified) {
- Settings::values.citra_username =
+ NetSettings::values.citra_username =
UsernameFromDisplayToken(ui->edit_token->text().toStdString());
- Settings::values.citra_token = TokenFromDisplayToken(ui->edit_token->text().toStdString());
+ NetSettings::values.citra_token =
+ TokenFromDisplayToken(ui->edit_token->text().toStdString());
} else {
QMessageBox::warning(
this, tr("Token not verified"),
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
2022-06-08 00:45:48 +00:00
index 607cd71b2..1c14da3d3 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
2022-06-08 00:45:48 +00:00
@@ -85,6 +85,7 @@
#include "core/savestate.h"
#include "core/settings.h"
#include "game_list_p.h"
+#include "network/network_settings.h"
#include "ui_main.h"
#include "video_core/renderer_base.h"
#include "video_core/video_core.h"
2022-06-08 00:45:48 +00:00
@@ -130,7 +131,7 @@ void GMainWindow::ShowTelemetryCallout() {
"data is collected</a> to help improve Citra. "
"<br/><br/>Would you like to share your usage data with us?");
if (QMessageBox::question(this, tr("Telemetry"), telemetry_message) != QMessageBox::Yes) {
- Settings::values.enable_telemetry = false;
+ NetSettings::values.enable_telemetry = false;
Settings::Apply();
}
}
2022-06-08 00:45:48 +00:00
@@ -1623,7 +1624,7 @@ void GMainWindow::OnLoadComplete() {
}
void GMainWindow::OnMenuReportCompatibility() {
- if (!Settings::values.citra_token.empty() && !Settings::values.citra_username.empty()) {
+ if (!NetSettings::values.citra_token.empty() && !NetSettings::values.citra_username.empty()) {
CompatDB compatdb{this};
compatdb.exec();
} else {
diff --git a/src/citra_qt/multiplayer/direct_connect.cpp b/src/citra_qt/multiplayer/direct_connect.cpp
index 2ce935f23..feaea69c9 100644
--- a/src/citra_qt/multiplayer/direct_connect.cpp
+++ b/src/citra_qt/multiplayer/direct_connect.cpp
@@ -16,8 +16,8 @@
#include "citra_qt/multiplayer/validation.h"
#include "citra_qt/uisettings.h"
#include "core/hle/service/cfg/cfg.h"
-#include "core/settings.h"
#include "network/network.h"
+#include "network/network_settings.h"
#include "ui_direct_connect.h"
enum class ConnectionType : u8 { TraversalServer, IP };
@@ -34,9 +34,9 @@ DirectConnectWindow::DirectConnectWindow(QWidget* parent)
ui->nickname->setValidator(validation.GetNickname());
ui->nickname->setText(UISettings::values.nickname);
- if (ui->nickname->text().isEmpty() && !Settings::values.citra_username.empty()) {
+ if (ui->nickname->text().isEmpty() && !NetSettings::values.citra_username.empty()) {
// Use Citra Web Service user name as nickname by default
- ui->nickname->setText(QString::fromStdString(Settings::values.citra_username));
+ ui->nickname->setText(QString::fromStdString(NetSettings::values.citra_username));
}
ui->ip->setValidator(validation.GetIP());
ui->ip->setText(UISettings::values.ip);
@@ -92,7 +92,6 @@ void DirectConnectWindow::Connect() {
UISettings::values.port = (ui->port->isModified() && !ui->port->text().isEmpty())
? ui->port->text()
: UISettings::values.port;
- Settings::Apply();
// attempt to connect in a different thread
QFuture<void> f = QtConcurrent::run([&] {
diff --git a/src/citra_qt/multiplayer/host_room.cpp b/src/citra_qt/multiplayer/host_room.cpp
index 49eb5480d..b2905c7db 100644
--- a/src/citra_qt/multiplayer/host_room.cpp
+++ b/src/citra_qt/multiplayer/host_room.cpp
@@ -21,7 +21,7 @@
#include "common/logging/log.h"
#include "core/announce_multiplayer_session.h"
#include "core/hle/service/cfg/cfg.h"
-#include "core/settings.h"
+#include "network/network_settings.h"
#include "ui_host_room.h"
#ifdef ENABLE_WEB_SERVICE
#include "web_service/verify_user_jwt.h"
@@ -53,9 +53,9 @@ HostRoomWindow::HostRoomWindow(QWidget* parent, QStandardItemModel* list,
// Restore the settings:
ui->username->setText(UISettings::values.room_nickname);
- if (ui->username->text().isEmpty() && !Settings::values.citra_username.empty()) {
+ if (ui->username->text().isEmpty() && !NetSettings::values.citra_username.empty()) {
// Use Citra Web Service user name as nickname by default
- ui->username->setText(QString::fromStdString(Settings::values.citra_username));
+ ui->username->setText(QString::fromStdString(NetSettings::values.citra_username));
}
ui->room_name->setText(UISettings::values.room_name);
ui->port->setText(UISettings::values.room_port);
@@ -92,7 +92,8 @@ std::unique_ptr<Network::VerifyUser::Backend> HostRoomWindow::CreateVerifyBacken
std::unique_ptr<Network::VerifyUser::Backend> verify_backend;
if (use_validation) {
#ifdef ENABLE_WEB_SERVICE
- verify_backend = std::make_unique<WebService::VerifyUserJWT>(Settings::values.web_api_url);
+ verify_backend =
+ std::make_unique<WebService::VerifyUserJWT>(NetSettings::values.web_api_url);
#else
verify_backend = std::make_unique<Network::VerifyUser::NullBackend>();
#endif
@@ -144,7 +145,7 @@ void HostRoomWindow::Host() {
bool created = room->Create(ui->room_name->text().toStdString(),
ui->room_description->toPlainText().toStdString(), "", port,
password, ui->max_player->value(),
- Settings::values.citra_username, game_name.toStdString(),
+ NetSettings::values.citra_username, game_name.toStdString(),
game_id, CreateVerifyBackend(is_public), ban_list);
if (!created) {
NetworkMessage::ErrorManager::ShowError(
@@ -182,8 +183,9 @@ void HostRoomWindow::Host() {
std::string token;
#ifdef ENABLE_WEB_SERVICE
if (is_public) {
- WebService::Client client(Settings::values.web_api_url, Settings::values.citra_username,
- Settings::values.citra_token);
+ WebService::Client client(NetSettings::values.web_api_url,
+ NetSettings::values.citra_username,
+ NetSettings::values.citra_token);
if (auto room = Network::GetRoom().lock()) {
token = client.GetExternalJWT(room->GetVerifyUID()).returned_data;
}
@@ -210,7 +212,6 @@ void HostRoomWindow::Host() {
? ui->port->text()
: QString::number(Network::DefaultRoomPort);
UISettings::values.room_description = ui->room_description->toPlainText();
- Settings::Apply();
ui->host->setEnabled(true);
close();
}
diff --git a/src/citra_qt/multiplayer/lobby.cpp b/src/citra_qt/multiplayer/lobby.cpp
index d4d946da5..40c0c1f39 100644
--- a/src/citra_qt/multiplayer/lobby.cpp
+++ b/src/citra_qt/multiplayer/lobby.cpp
@@ -16,8 +16,8 @@
#include "citra_qt/uisettings.h"
#include "common/logging/log.h"
#include "core/hle/service/cfg/cfg.h"
-#include "core/settings.h"
#include "network/network.h"
+#include "network/network_settings.h"
#include "ui_lobby.h"
#ifdef ENABLE_WEB_SERVICE
#include "web_service/web_backend.h"
@@ -58,9 +58,9 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
ui->nickname->setValidator(validation.GetNickname());
ui->nickname->setText(UISettings::values.nickname);
- if (ui->nickname->text().isEmpty() && !Settings::values.citra_username.empty()) {
+ if (ui->nickname->text().isEmpty() && !NetSettings::values.citra_username.empty()) {
// Use Citra Web Service user name as nickname by default
- ui->nickname->setText(QString::fromStdString(Settings::values.citra_username));
+ ui->nickname->setText(QString::fromStdString(NetSettings::values.citra_username));
}
// UI Buttons
@@ -155,9 +155,11 @@ void Lobby::OnJoinRoom(const QModelIndex& source) {
QFuture<void> f = QtConcurrent::run([nickname, ip, port, password, verify_UID] {
std::string token;
#ifdef ENABLE_WEB_SERVICE
- if (!Settings::values.citra_username.empty() && !Settings::values.citra_token.empty()) {
- WebService::Client client(Settings::values.web_api_url, Settings::values.citra_username,
- Settings::values.citra_token);
+ if (!NetSettings::values.citra_username.empty() &&
+ !NetSettings::values.citra_token.empty()) {
+ WebService::Client client(NetSettings::values.web_api_url,
+ NetSettings::values.citra_username,
+ NetSettings::values.citra_token);
token = client.GetExternalJWT(verify_UID).returned_data;
if (token.empty()) {
LOG_ERROR(WebService, "Could not get external JWT, verification may fail");
@@ -179,7 +181,6 @@ void Lobby::OnJoinRoom(const QModelIndex& source) {
UISettings::values.nickname = ui->nickname->text();
UISettings::values.ip = proxy->data(connection_index, LobbyItemHost::HostIPRole).toString();
UISettings::values.port = proxy->data(connection_index, LobbyItemHost::HostPortRole).toString();
- Settings::Apply();
}
void Lobby::ResetModel() {
diff --git a/src/core/announce_multiplayer_session.cpp b/src/core/announce_multiplayer_session.cpp
index 38acb4bac..9ae373192 100644
--- a/src/core/announce_multiplayer_session.cpp
+++ b/src/core/announce_multiplayer_session.cpp
@@ -8,8 +8,8 @@
#include "announce_multiplayer_session.h"
#include "common/announce_multiplayer_room.h"
#include "common/assert.h"
-#include "core/settings.h"
#include "network/network.h"
+#include "network/network_settings.h"
#ifdef ENABLE_WEB_SERVICE
#include "web_service/announce_room_json.h"
@@ -22,9 +22,9 @@ static constexpr std::chrono::seconds announce_time_interval(15);
AnnounceMultiplayerSession::AnnounceMultiplayerSession() {
#ifdef ENABLE_WEB_SERVICE
- backend = std::make_unique<WebService::RoomJson>(Settings::values.web_api_url,
- Settings::values.citra_username,
- Settings::values.citra_token);
+ backend = std::make_unique<WebService::RoomJson>(NetSettings::values.web_api_url,
+ NetSettings::values.citra_username,
+ NetSettings::values.citra_token);
#else
backend = std::make_unique<AnnounceMultiplayerRoom::NullBackend>();
#endif
@@ -155,9 +155,9 @@ void AnnounceMultiplayerSession::UpdateCredentials() {
ASSERT_MSG(!IsRunning(), "Credentials can only be updated when session is not running");
#ifdef ENABLE_WEB_SERVICE
- backend = std::make_unique<WebService::RoomJson>(Settings::values.web_api_url,
- Settings::values.citra_username,
- Settings::values.citra_token);
+ backend = std::make_unique<WebService::RoomJson>(NetSettings::values.web_api_url,
+ NetSettings::values.citra_username,
+ NetSettings::values.citra_token);
#endif
}
diff --git a/src/core/settings.h b/src/core/settings.h
2022-06-08 00:45:48 +00:00
index e7339275c..98614deae 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
2022-06-08 00:45:48 +00:00
@@ -230,12 +230,6 @@ struct Values {
std::string log_filter;
std::unordered_map<std::string, bool> lle_modules;
- // WebService
- bool enable_telemetry;
- std::string web_api_url;
- std::string citra_username;
- std::string citra_token;
-
// Video Dumping
std::string output_format;
std::string format_options;
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index 13c58e2f7..c9f7c6841 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -12,6 +12,7 @@
#include "core/core.h"
#include "core/settings.h"
#include "core/telemetry_session.h"
+#include "network/network_settings.h"
#ifdef ENABLE_WEB_SERVICE
#include "web_service/telemetry_json.h"
@@ -70,7 +71,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(NetSettings::values.web_api_url, username, token);
#else
return false;
#endif
@@ -86,16 +87,16 @@ TelemetrySession::~TelemetrySession() {
AddField(Telemetry::FieldType::Session, "Shutdown_Time", shutdown_time);
#ifdef ENABLE_WEB_SERVICE
- auto backend = std::make_unique<WebService::TelemetryJson>(Settings::values.web_api_url,
- Settings::values.citra_username,
- Settings::values.citra_token);
+ auto backend = std::make_unique<WebService::TelemetryJson>(NetSettings::values.web_api_url,
+ NetSettings::values.citra_username,
+ NetSettings::values.citra_token);
#else
auto backend = std::make_unique<Telemetry::NullVisitor>();
#endif
// Complete the session, submitting to the web service backend if necessary
field_collection.Accept(*backend);
- if (Settings::values.enable_telemetry) {
+ if (NetSettings::values.enable_telemetry) {
backend->Complete();
}
}
@@ -154,9 +155,9 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) {
bool TelemetrySession::SubmitTestcase() {
#ifdef ENABLE_WEB_SERVICE
- auto backend = std::make_unique<WebService::TelemetryJson>(Settings::values.web_api_url,
- Settings::values.citra_username,
- Settings::values.citra_token);
+ auto backend = std::make_unique<WebService::TelemetryJson>(NetSettings::values.web_api_url,
+ NetSettings::values.citra_username,
+ NetSettings::values.citra_token);
field_collection.Accept(*backend);
return backend->SubmitTestcase();
#else
diff --git a/src/dedicated_room/citra-room.cpp b/src/dedicated_room/citra-room.cpp
index a498b13c2..801249206 100644
--- a/src/dedicated_room/citra-room.cpp
+++ b/src/dedicated_room/citra-room.cpp
@@ -10,7 +10,6 @@
#include <string>
#include <thread>
#include <cryptopp/base64.h>
-#include <glad/glad.h>
#ifdef _WIN32
// windows.h needs to be included before shellapi.h
@@ -28,9 +27,8 @@
#include "common/scm_rev.h"
#include "common/string_util.h"
#include "core/announce_multiplayer_session.h"
-#include "core/core.h"
-#include "core/settings.h"
#include "network/network.h"
+#include "network/network_settings.h"
#include "network/room.h"
#include "network/verify_user.h"
@@ -170,9 +168,6 @@ int main(int argc, char** argv) {
int option_index = 0;
char* endarg;
- // This is just to be able to link against core
- gladLoadGL();
-
std::string room_name;
std::string room_description;
std::string password;
@@ -300,15 +295,15 @@ int main(int argc, char** argv) {
if (announce) {
if (username.empty()) {
std::cout << "Hosting a public room\n\n";
- Settings::values.web_api_url = web_api_url;
- Settings::values.citra_username = UsernameFromDisplayToken(token);
- username = Settings::values.citra_username;
- Settings::values.citra_token = TokenFromDisplayToken(token);
+ NetSettings::values.web_api_url = web_api_url;
+ NetSettings::values.citra_username = UsernameFromDisplayToken(token);
+ username = NetSettings::values.citra_username;
+ NetSettings::values.citra_token = TokenFromDisplayToken(token);
} else {
std::cout << "Hosting a public room\n\n";
- Settings::values.web_api_url = web_api_url;
- Settings::values.citra_username = username;
- Settings::values.citra_token = token;
+ NetSettings::values.web_api_url = web_api_url;
+ NetSettings::values.citra_username = username;
+ NetSettings::values.citra_token = token;
}
}
if (!announce && enable_citra_mods) {
@@ -327,7 +322,8 @@ int main(int argc, char** argv) {
std::unique_ptr<Network::VerifyUser::Backend> verify_backend;
if (announce) {
#ifdef ENABLE_WEB_SERVICE
- verify_backend = std::make_unique<WebService::VerifyUserJWT>(Settings::values.web_api_url);
+ verify_backend =
+ std::make_unique<WebService::VerifyUserJWT>(NetSettings::values.web_api_url);
#else
std::cout
<< "Citra Web Services is not available with this build: validation is disabled.\n\n";
diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt
index 1e0eb4bc9..cf920d8bc 100644
--- a/src/network/CMakeLists.txt
+++ b/src/network/CMakeLists.txt
@@ -1,6 +1,8 @@
add_library(network STATIC
network.cpp
network.h
+ network_settings.cpp
+ network_settings.h
packet.cpp
packet.h
room.cpp
diff --git a/src/network/network_settings.cpp b/src/network/network_settings.cpp
new file mode 100644
index 000000000..62aefcc04
--- /dev/null
+++ b/src/network/network_settings.cpp
@@ -0,0 +1,11 @@
+// Copyright 2020 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "network/network_settings.h"
+
+namespace NetSettings {
+
+Values values = {};
+
+}
diff --git a/src/network/network_settings.h b/src/network/network_settings.h
new file mode 100644
index 000000000..eed1d56b4
--- /dev/null
+++ b/src/network/network_settings.h
@@ -0,0 +1,20 @@
+// Copyright 2020 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <string>
+#include "common/logging/log.h"
+
+namespace NetSettings {
+
+struct Values {
+ // WebService
+ bool enable_telemetry;
+ std::string web_api_url;
+ std::string citra_username;
+ std::string citra_token;
+} extern values;
+
+} // namespace NetSettings
--
2022-06-08 00:45:48 +00:00
2.36.1