diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2007-06-27 12:12:18 +0000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2007-06-27 12:12:18 +0000 |
commit | 0abcfb16ba203be43fcb2d2cd0b740da85679e7a (patch) | |
tree | a3960e9ff490dab3ff5a239acc561ae21ab23a64 /libs/ardour/control_protocol_search_path.cc | |
parent | 1b77a3535304c25a49686886054db148442b1032 (diff) |
Replace code for finding ControlProtocols/Surface plugins with a portable equivalent.
Remove Session::control_protocol_path and the supporting non-portable
Session::suffixed_search_path from Session.
Add ARDOUR::control_protocol_search_path which is used in place of
Session::control_protocol_path
Replace ARDOUR::get_system_module_path with ARDOUR::system_module_directory which
is used by ARDOUR::control_protocol_search_path
Export ARDOUR_SURFACES_PATH in gtk2_ardour/ardev_common.sh which is returned
by ARDOUR::control_protocol_search_path if defined. This means the control surfaces
in the libs/surfaces/* directories can now be used without installing them.
Add pbd/file_utils.h/cc containing functions for finding files matching a certain
pattern
Update documentation in SearchPath and add another constructor that takes
a sys::path
git-svn-id: svn://localhost/ardour2/trunk@2049 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/control_protocol_search_path.cc')
-rw-r--r-- | libs/ardour/control_protocol_search_path.cc | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libs/ardour/control_protocol_search_path.cc b/libs/ardour/control_protocol_search_path.cc new file mode 100644 index 0000000000..aac83c602a --- /dev/null +++ b/libs/ardour/control_protocol_search_path.cc @@ -0,0 +1,52 @@ +/* + Copyright (C) 2007 Tim Mayberry + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include <glibmm/miscutils.h> + +#include <ardour/control_protocol_search_path.h> +#include <ardour/directory_names.h> +#include <ardour/filesystem_paths.h> + +namespace { + const char * const surfaces_env_variable_name = "ARDOUR_SURFACES_PATH"; +} // anonymous + +namespace ARDOUR { + +SearchPath +control_protocol_search_path () +{ + bool surfaces_path_defined = false; + SearchPath spath_env(Glib::getenv(surfaces_env_variable_name, surfaces_path_defined)); + + if (surfaces_path_defined) + { + return spath_env; + } + + SearchPath spath(user_config_directory ()); + + spath += system_module_directory (); + + spath.add_subdirectory_to_paths(surfaces_dir_name); + + return spath; +} + +} // namespace ARDOUR |