From 4b422d7d2305a81e99d7e0111062dbb8809092a4 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Mon, 1 Jun 2015 16:11:57 -0700 Subject: [PATCH] UI: Replace os_get_config_path with GetConfigPath This allows the UI to be able to use a custom config path for cases such as portable mode, where the config path is relative to the executable. --- obs/obs-app.cpp | 31 +++++++++++++++++++++---------- obs/window-basic-main-outputs.cpp | 2 +- obs/window-basic-main.cpp | 20 ++++++++++---------- obs/window-basic-settings.cpp | 6 +++--- 4 files changed, 35 insertions(+), 24 deletions(-) diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index 89bbe62dc..db561df39 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -242,23 +242,34 @@ static bool MakeUserDirs() { char path[512]; - if (os_get_config_path(path, sizeof(path), "obs-studio") <= 0) + if (portable_mode) { + if (GetConfigPath(path, sizeof(path), "") <= 0) + return false; + if (!do_mkdir(path)) + return false; + } + + if (GetConfigPath(path, sizeof(path), "obs-studio") <= 0) return false; if (!do_mkdir(path)) return false; - if (os_get_config_path(path, sizeof(path), "obs-studio/basic") <= 0) + if (GetConfigPath(path, sizeof(path), "obs-studio/basic") <= 0) return false; if (!do_mkdir(path)) return false; - if (os_get_config_path(path, sizeof(path), "obs-studio/logs") <= 0) + if (GetConfigPath(path, sizeof(path), "obs-studio/logs") <= 0) return false; if (!do_mkdir(path)) return false; + if (GetConfigPath(path, sizeof(path), "obs-studio/logs") <= 0) + return false; + if (!do_mkdir(path)) + return false; #ifdef _WIN32 - if (os_get_config_path(path, sizeof(path), "obs-studio/crashes") <= 0) + if (GetConfigPath(path, sizeof(path), "obs-studio/crashes") <= 0) return false; if (!do_mkdir(path)) return false; @@ -271,7 +282,7 @@ bool OBSApp::InitGlobalConfig() { char path[512]; - int len = os_get_config_path(path, sizeof(path), + int len = GetConfigPath(path, sizeof(path), "obs-studio/global.ini"); if (len <= 0) { return false; @@ -362,7 +373,7 @@ bool OBSApp::SetTheme(std::string name, std::string path) char userDir[512]; name = "themes/" + name + ".qss"; string temp = "obs-studio/" + name; - int ret = os_get_config_path(userDir, sizeof(userDir), + int ret = GetConfigPath(userDir, sizeof(userDir), temp.c_str()); if (ret > 0 && QFile::exists(userDir)) { @@ -574,7 +585,7 @@ static uint64_t convert_log_name(const char *name) static void delete_oldest_file(const char *location) { - BPtr logDir(os_get_config_path_ptr(location)); + BPtr logDir(GetConfigPathPtr(location)); string oldestLog; uint64_t oldest_ts = (uint64_t)-1; struct os_dirent *entry; @@ -615,7 +626,7 @@ static void delete_oldest_file(const char *location) static void get_last_log(void) { - BPtr logDir(os_get_config_path_ptr("obs-studio/logs")); + BPtr logDir(GetConfigPathPtr("obs-studio/logs")); struct os_dirent *entry; os_dir_t *dir = os_opendir(logDir); uint64_t highest_ts = 0; @@ -688,7 +699,7 @@ static void create_log_file(fstream &logFile) currentLogFile = GenerateTimeDateFilename("txt"); dst << "obs-studio/logs/" << currentLogFile.c_str(); - BPtr path(os_get_config_path_ptr(dst.str().c_str())); + BPtr path(GetConfigPathPtr(dst.str().c_str())); logFile.open(path, ios_base::in | ios_base::out | ios_base::trunc); @@ -745,7 +756,7 @@ static void main_crash_handler(const char *format, va_list args, void *param) string name = "obs-studio/crashes/Crash "; name += GenerateTimeDateFilename("txt"); - BPtr path(os_get_config_path_ptr(name.c_str())); + BPtr path(GetConfigPathPtr(name.c_str())); fstream file; file.open(path, ios_base::in | ios_base::out | ios_base::trunc); diff --git a/obs/window-basic-main-outputs.cpp b/obs/window-basic-main-outputs.cpp index 1bcbcc14c..24ad024c9 100644 --- a/obs/window-basic-main-outputs.cpp +++ b/obs/window-basic-main-outputs.cpp @@ -292,7 +292,7 @@ static OBSData GetDataFromJsonFile(const char *jsonFile) { char fullPath[512]; - int ret = os_get_config_path(fullPath, sizeof(fullPath), jsonFile); + int ret = GetConfigPath(fullPath, sizeof(fullPath), jsonFile); if (ret > 0) { BPtr jsonData = os_quick_read_utf8_file(fullPath); if (!!jsonData) { diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 914ce5c9d..48171036e 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -66,7 +66,7 @@ Q_DECLARE_METATYPE(obs_order_movement); static void AddExtraModulePaths() { char base_module_dir[512]; - int ret = os_get_config_path(base_module_dir, sizeof(base_module_dir), + int ret = GetConfigPath(base_module_dir, sizeof(base_module_dir), "obs-studio/plugins/%module%"); if (ret <= 0) @@ -104,7 +104,7 @@ OBSBasic::OBSBasic(QWidget *parent) } char styleSheetPath[512]; - int ret = os_get_config_path(styleSheetPath, sizeof(styleSheetPath), + int ret = GetConfigPath(styleSheetPath, sizeof(styleSheetPath), "obs-studio/basic/stylesheet.qss"); if (ret > 0) { if (QFile::exists(styleSheetPath)) { @@ -369,7 +369,7 @@ void OBSBasic::SaveService() return; char serviceJsonPath[512]; - int ret = os_get_config_path(serviceJsonPath, sizeof(serviceJsonPath), + int ret = GetConfigPath(serviceJsonPath, sizeof(serviceJsonPath), SERVICE_PATH); if (ret <= 0) return; @@ -393,7 +393,7 @@ bool OBSBasic::LoadService() const char *type; char serviceJsonPath[512]; - int ret = os_get_config_path(serviceJsonPath, sizeof(serviceJsonPath), + int ret = GetConfigPath(serviceJsonPath, sizeof(serviceJsonPath), SERVICE_PATH); if (ret <= 0) return false; @@ -550,7 +550,7 @@ bool OBSBasic::InitBasicConfigDefaults() bool OBSBasic::InitBasicConfig() { char configPath[512]; - int ret = os_get_config_path(configPath, sizeof(configPath), + int ret = GetConfigPath(configPath, sizeof(configPath), "obs-studio/basic/basic.ini"); if (ret <= 0) { OBSErrorBox(nullptr, "Failed to get base.ini path"); @@ -622,7 +622,7 @@ void OBSBasic::ResetOutputs() void OBSBasic::OBSInit() { char savePath[512]; - int ret = os_get_config_path(savePath, sizeof(savePath), + int ret = GetConfigPath(savePath, sizeof(savePath), "obs-studio/basic/scenes.json"); if (ret <= 0) throw "Failed to get scenes.json file path"; @@ -893,7 +893,7 @@ OBSBasic::~OBSBasic() void OBSBasic::SaveProject() { char savePath[512]; - int ret = os_get_config_path(savePath, sizeof(savePath), + int ret = GetConfigPath(savePath, sizeof(savePath), "obs-studio/basic/scenes.json"); if (ret <= 0) return; @@ -2388,7 +2388,7 @@ void OBSBasic::on_actionMoveToBottom_triggered() static BPtr ReadLogFile(const char *log) { char logDir[512]; - if (os_get_config_path(logDir, sizeof(logDir), "obs-studio/logs") <= 0) + if (GetConfigPath(logDir, sizeof(logDir), "obs-studio/logs") <= 0) return nullptr; string path = (char*)logDir; @@ -2458,7 +2458,7 @@ void OBSBasic::UploadLog(const char *file) void OBSBasic::on_actionShowLogs_triggered() { char logDir[512]; - if (os_get_config_path(logDir, sizeof(logDir), "obs-studio/logs") <= 0) + if (GetConfigPath(logDir, sizeof(logDir), "obs-studio/logs") <= 0) return; QUrl url = QUrl::fromLocalFile(QT_UTF8(logDir)); @@ -2478,7 +2478,7 @@ void OBSBasic::on_actionUploadLastLog_triggered() void OBSBasic::on_actionViewCurrentLog_triggered() { char logDir[512]; - if (os_get_config_path(logDir, sizeof(logDir), "obs-studio/logs") <= 0) + if (GetConfigPath(logDir, sizeof(logDir), "obs-studio/logs") <= 0) return; const char* log = App()->GetCurrentLog(); diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index c7df8a1de..8b49b84bb 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -603,7 +603,7 @@ void OBSBasicSettings::LoadThemeList() QSet uniqueSet; string themeDir; char userThemeDir[512]; - int ret = os_get_config_path(userThemeDir, sizeof(userThemeDir), + int ret = GetConfigPath(userThemeDir, sizeof(userThemeDir), "obs-studio/themes/"); GetDataFilePath("themes/", themeDir); @@ -959,7 +959,7 @@ OBSPropertiesView *OBSBasicSettings::CreateEncoderPropertyView( OBSPropertiesView *view; char encoderJsonPath[512]; - int ret = os_get_config_path(encoderJsonPath, sizeof(encoderJsonPath), + int ret = GetConfigPath(encoderJsonPath, sizeof(encoderJsonPath), path); if (ret > 0) { BPtr jsonData = os_quick_read_utf8_file(encoderJsonPath); @@ -1860,7 +1860,7 @@ static void WriteJsonData(OBSPropertiesView *view, const char *path) if (!view || !WidgetChanged(view)) return; - int ret = os_get_config_path(full_path, sizeof(full_path), path); + int ret = GetConfigPath(full_path, sizeof(full_path), path); if (ret > 0) { obs_data_t *settings = view->GetSettings(); if (settings) {