summaryrefslogtreecommitdiff
path: root/libs/ardour/template_utils.cc
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2007-06-27 12:12:51 +0000
committerTim Mayberry <mojofunk@gmail.com>2007-06-27 12:12:51 +0000
commit66caf9b7e53fc41182dd0a21d73c71447ceb4f4b (patch)
tree1360906850c74118c5bd77d18b15eb44d15ca0ba /libs/ardour/template_utils.cc
parent7af4e87fa927edf2e29fa74773373c4cd10e9942 (diff)
Use ARDOUR::system_data_search_path instead of get_system_data_path in ARDOUR::system_template_directory
git-svn-id: svn://localhost/ardour2/trunk@2066 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/template_utils.cc')
-rw-r--r--libs/ardour/template_utils.cc18
1 files changed, 14 insertions, 4 deletions
diff --git a/libs/ardour/template_utils.cc b/libs/ardour/template_utils.cc
index 18d7f33570..5def842c4c 100644
--- a/libs/ardour/template_utils.cc
+++ b/libs/ardour/template_utils.cc
@@ -1,8 +1,9 @@
+#include <algorithm>
#include <pbd/filesystem.h>
+#include <pbd/error.h>
#include <ardour/template_utils.h>
-#include <ardour/ardour.h>
#include <ardour/directory_names.h>
#include <ardour/filesystem_paths.h>
@@ -11,10 +12,19 @@ namespace ARDOUR {
sys::path
system_template_directory ()
{
- sys::path p(get_system_data_path());
- p /= templates_dir_name;
+ SearchPath spath(system_data_search_path());
+ spath.add_subdirectory_to_paths(templates_dir_name);
- return p;
+ // just return the first directory in the search path that exists
+ SearchPath::const_iterator i = std::find_if(spath.begin(), spath.end(), sys::exists);
+
+ if (i == spath.end())
+ {
+ warning << "System template directory does not exist" << endmsg;
+ return sys::path("");
+ }
+
+ return *i;
}
sys::path