summaryrefslogtreecommitdiff
path: root/libs/ardour/filesystem_paths.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/filesystem_paths.cc')
-rw-r--r--libs/ardour/filesystem_paths.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/libs/ardour/filesystem_paths.cc b/libs/ardour/filesystem_paths.cc
index 5ce4f4f7ed..e41b9954cf 100644
--- a/libs/ardour/filesystem_paths.cc
+++ b/libs/ardour/filesystem_paths.cc
@@ -18,12 +18,19 @@
*/
#include <pbd/error.h>
+#include <pbd/filesystem_paths.h>
#include <glibmm/miscutils.h>
#include <ardour/directory_names.h>
#include <ardour/filesystem_paths.h>
+#define WITH_STATIC_PATHS 1
+
+namespace {
+ const char * const config_env_variable_name = "ARDOUR_CONFIG_PATH";
+}
+
namespace ARDOUR {
using std::string;
@@ -57,4 +64,30 @@ ardour_module_directory ()
return module_directory;
}
+SearchPath
+config_search_path ()
+{
+ bool config_path_defined = false;
+ SearchPath spath_env(Glib::getenv(config_env_variable_name, config_path_defined));
+
+ if (config_path_defined)
+ {
+ return spath_env;
+ }
+
+#ifdef WITH_STATIC_PATHS
+
+ SearchPath spath(string(CONFIG_DIR));
+
+#else
+
+ SearchPath spath(system_config_directories());
+
+#endif
+
+ spath.add_subdirectory_to_paths("ardour2");
+
+ return spath;
+}
+
} // namespace ARDOUR