summaryrefslogtreecommitdiff
path: root/libs/ardour/template_utils.cc
blob: 5def842c4cafe47ab70c20a8ee71963916a0eea3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <algorithm>

#include <pbd/filesystem.h>
#include <pbd/error.h>

#include <ardour/template_utils.h>
#include <ardour/directory_names.h>
#include <ardour/filesystem_paths.h>

namespace ARDOUR {

sys::path
system_template_directory ()
{
	SearchPath spath(system_data_search_path());
	spath.add_subdirectory_to_paths(templates_dir_name);

	// 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
user_template_directory ()
{
	sys::path p(user_config_directory());
	p /= templates_dir_name;

	return p;
}

} // namespace ARDOUR