mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #133 from archshift/sdmc-enabled
Use config files to store whether SDMC is enabled or not, auto-create SDMC dir.
This commit is contained in:
		
						commit
						ce8390ac03
					
				
					 8 changed files with 40 additions and 4 deletions
				
			
		|  | @ -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(); | ||||
|  |  | |||
|  | @ -191,8 +191,10 @@ bool CreateFullPath(const std::string &fullPath) | |||
| 
 | ||||
|         // Include the '/' so the first call is CreateDir("/") rather than CreateDir("")
 | ||||
|         std::string const subPath(fullPath.substr(0, position + 1)); | ||||
|         if (!FileUtil::IsDirectory(subPath)) | ||||
|             FileUtil::CreateDir(subPath); | ||||
|         if (!FileUtil::IsDirectory(subPath) && !FileUtil::CreateDir(subPath)) { | ||||
|             ERROR_LOG(COMMON, "CreateFullPath: directory creation failed"); | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         // A safety check
 | ||||
|         panicCounter--; | ||||
|  |  | |||
|  | @ -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; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue