Skip to content
Snippets Groups Projects
Commit a59f57d5 authored by archshift's avatar archshift
Browse files

Use config files to store whether SDMC is enabled or not

Before, it used to use whether the directory actually existed. As a result, .citra-emu/sdmc was never auto-created (something quite confusing to me until I read through the logs).
parent efacd65b
No related branches found
No related tags found
No related merge requests found
......@@ -55,9 +55,14 @@ void Config::ReadControls() {
Settings::values.pad_sright_key = glfw_config->GetInteger("Controls", "pad_sright", GLFW_KEY_RIGHT);
}
void Config::ReadData() {
Settings::values.use_virtual_sd = glfw_config->GetBoolean("Data Storage", "use_virtual_sd", true);
}
void Config::Reload() {
LoadINI(glfw_config, glfw_config_loc.c_str(), DefaultINI::glfw_config_file);
ReadControls();
ReadData();
}
Config::~Config() {
......
......@@ -16,6 +16,7 @@ class Config {
bool LoadINI(INIReader* config, const char* location, const std::string& default_contents="", bool retry=true);
void ReadControls();
void ReadData();
public:
Config();
~Config();
......
......@@ -25,6 +25,9 @@ pad_sup =
pad_sdown =
pad_sleft =
pad_sright =
[Data Storage]
use_virtual_sd =
)";
}
......@@ -64,12 +64,26 @@ void Config::SaveControls() {
qt_config->endGroup();
}
void Config::ReadData() {
qt_config->beginGroup("Data Storage");
Settings::values.use_virtual_sd = qt_config->value("use_virtual_sd", true).toBool();
qt_config->endGroup();
}
void Config::SaveData() {
qt_config->beginGroup("Data Storage");
qt_config->setValue("use_virtual_sd", Settings::values.use_virtual_sd);
qt_config->endGroup();
}
void Config::Reload() {
ReadControls();
ReadData();
}
void Config::Save() {
SaveControls();
SaveData();
}
Config::~Config() {
......
......@@ -14,6 +14,9 @@ class Config {
void ReadControls();
void SaveControls();
void ReadData();
void SaveData();
public:
Config();
~Config();
......
......@@ -10,6 +10,7 @@
#include "core/file_sys/archive_sdmc.h"
#include "core/file_sys/directory_sdmc.h"
#include "core/file_sys/file_sdmc.h"
#include "core/settings.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
// FileSys namespace
......@@ -29,8 +30,13 @@ Archive_SDMC::~Archive_SDMC() {
* @return true if it initialized successfully
*/
bool Archive_SDMC::Initialize() {
if (!FileUtil::IsDirectory(mount_point)) {
WARN_LOG(FILESYS, "Directory %s not found, disabling SDMC.", mount_point.c_str());
if (!Settings::values.use_virtual_sd) {
WARN_LOG(FILESYS, "SDMC disabled by config.");
return false;
}
if (!FileUtil::CreateFullPath(mount_point)) {
WARN_LOG(FILESYS, "Unable to create SDMC path.");
return false;
}
......
......@@ -24,6 +24,8 @@ struct Values {
int pad_sdown_key;
int pad_sleft_key;
int pad_sright_key;
bool use_virtual_sd;
} extern values;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment