diff --git a/ResourceManager.cpp b/ResourceManager.cpp index 806b3a29..fba87b0d 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -46,11 +46,6 @@ ResourceManager::ResourceManager() \*-------------------------------------------------------------------------*/ server = new NetworkServer(rgb_controllers_hw); - /*-------------------------------------------------------------------------*\ - | Create OpenRGB configuration directory if it doesn't exist | - \*-------------------------------------------------------------------------*/ - std::experimental::filesystem::create_directories(GetConfigurationDirectory()); - /*-------------------------------------------------------------------------*\ | Load sizes list from file | \*-------------------------------------------------------------------------*/ @@ -220,6 +215,15 @@ std::string ResourceManager::GetConfigurationDirectory() if(config_dir != "") { config_dir = config_dir + "/OpenRGB/"; + + /*-------------------------------------------------------------------------*\ + | Create OpenRGB configuration directory if it doesn't exist | + \*-------------------------------------------------------------------------*/ + std::experimental::filesystem::create_directories(config_dir); + } + else + { + config_dir = "./"; } return(config_dir); @@ -355,7 +359,7 @@ void ResourceManager::DetectDevicesThreadFunction() | Open device disable list and read in disabled | | device strings | \*-------------------------------------------------*/ - disabled_devices_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("Setting_DisabledDevices"); + disabled_devices_settings = settings_manager->GetSettings("Setting_DisabledDevices"); if(disabled_devices_settings.contains("disabled")) { diff --git a/SettingsManager.cpp b/SettingsManager.cpp index 0359989d..45f284a6 100644 --- a/SettingsManager.cpp +++ b/SettingsManager.cpp @@ -26,10 +26,22 @@ SettingsManager::~SettingsManager() json SettingsManager::GetSettings(std::string settings_key) { + /*---------------------------------------------------------*\ + | Check to see if the key exists in the settings store and | + | return the settings associated with the key if it exists | + \*---------------------------------------------------------*/ if(settings_data.contains(settings_key)) { return(settings_data[settings_key]); } + + /*---------------------------------------------------------*\ + | If the settings store doesn't contain the key, create an | + | empty json and return it | + \*---------------------------------------------------------*/ + json empty; + + return(empty); } void SettingsManager::LoadSettings(std::string filename)