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).
This commit is contained in:
archshift 2014-10-09 19:43:40 -07:00
parent efacd65b26
commit a59f57d504
7 changed files with 36 additions and 2 deletions

View file

@ -55,9 +55,14 @@ void Config::ReadControls() {
Settings::values.pad_sright_key = glfw_config->GetInteger("Controls", "pad_sright", GLFW_KEY_RIGHT); 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() { void Config::Reload() {
LoadINI(glfw_config, glfw_config_loc.c_str(), DefaultINI::glfw_config_file); LoadINI(glfw_config, glfw_config_loc.c_str(), DefaultINI::glfw_config_file);
ReadControls(); ReadControls();
ReadData();
} }
Config::~Config() { Config::~Config() {

View file

@ -16,6 +16,7 @@ class Config {
bool LoadINI(INIReader* config, const char* location, const std::string& default_contents="", bool retry=true); bool LoadINI(INIReader* config, const char* location, const std::string& default_contents="", bool retry=true);
void ReadControls(); void ReadControls();
void ReadData();
public: public:
Config(); Config();
~Config(); ~Config();

View file

@ -25,6 +25,9 @@ pad_sup =
pad_sdown = pad_sdown =
pad_sleft = pad_sleft =
pad_sright = pad_sright =
[Data Storage]
use_virtual_sd =
)"; )";
} }

View file

@ -64,12 +64,26 @@ void Config::SaveControls() {
qt_config->endGroup(); 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() { void Config::Reload() {
ReadControls(); ReadControls();
ReadData();
} }
void Config::Save() { void Config::Save() {
SaveControls(); SaveControls();
SaveData();
} }
Config::~Config() { Config::~Config() {

View file

@ -14,6 +14,9 @@ class Config {
void ReadControls(); void ReadControls();
void SaveControls(); void SaveControls();
void ReadData();
void SaveData();
public: public:
Config(); Config();
~Config(); ~Config();

View file

@ -10,6 +10,7 @@
#include "core/file_sys/archive_sdmc.h" #include "core/file_sys/archive_sdmc.h"
#include "core/file_sys/directory_sdmc.h" #include "core/file_sys/directory_sdmc.h"
#include "core/file_sys/file_sdmc.h" #include "core/file_sys/file_sdmc.h"
#include "core/settings.h"
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
// FileSys namespace // FileSys namespace
@ -29,8 +30,13 @@ Archive_SDMC::~Archive_SDMC() {
* @return true if it initialized successfully * @return true if it initialized successfully
*/ */
bool Archive_SDMC::Initialize() { bool Archive_SDMC::Initialize() {
if (!FileUtil::IsDirectory(mount_point)) { if (!Settings::values.use_virtual_sd) {
WARN_LOG(FILESYS, "Directory %s not found, disabling SDMC.", mount_point.c_str()); WARN_LOG(FILESYS, "SDMC disabled by config.");
return false;
}
if (!FileUtil::CreateFullPath(mount_point)) {
WARN_LOG(FILESYS, "Unable to create SDMC path.");
return false; return false;
} }

View file

@ -24,6 +24,8 @@ struct Values {
int pad_sdown_key; int pad_sdown_key;
int pad_sleft_key; int pad_sleft_key;
int pad_sright_key; int pad_sright_key;
bool use_virtual_sd;
} extern values; } extern values;
} }