diff options
author | Robin Gareus <robin@gareus.org> | 2020-04-09 21:50:01 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-04-09 21:50:01 +0200 |
commit | be023ef32d9eb2ed7cb0efcdc7b49d31c9576738 (patch) | |
tree | 111adbdd3e9df4e8f12a5be8c105d19588354209 | |
parent | 61692ae1f8de1b40100bffb650e2112274a7bab5 (diff) |
Tweak websocket surface for use src-tree shared dir
When running from the src-tree, ardev_common.sh sets multiple
data-paths, to allow running ./ardev ./gtk2_ardour/ardev.
Pick the first one that contains a "web_surfaces" subfolder as
docroot.
-rw-r--r-- | libs/surfaces/websockets/resources.cc | 29 | ||||
-rw-r--r-- | libs/surfaces/websockets/resources.h | 1 |
2 files changed, 9 insertions, 21 deletions
diff --git a/libs/surfaces/websockets/resources.cc b/libs/surfaces/websockets/resources.cc index 1bb8cd1eb1..5ad28cd343 100644 --- a/libs/surfaces/websockets/resources.cc +++ b/libs/surfaces/websockets/resources.cc @@ -116,33 +116,22 @@ ServerResources::server_data_dir () std::string env_dir (Glib::getenv (data_dir_env_var, defined)); if (defined) { - // useful for development + /* useful for development */ data_dir = env_dir; } else { - data_dir = Glib::build_filename (ardour_data_dir (), data_dir_name); + /* use reverse iterator, since ardour_data_search_path() prefixes the user-data dir */ + PBD::Searchpath s (ARDOUR::ardour_data_search_path ()); + for (PBD::Searchpath::reverse_iterator i = s.rbegin (); i != s.rend(); ++i) { + data_dir = Glib::build_filename (*i, data_dir_name); + if (Glib::file_test(data_dir, Glib::FILE_TEST_EXISTS | Glib::FILE_TEST_IS_DIR)) { + break; + } + } } return data_dir; } -std::string -ServerResources::ardour_data_dir () -{ - std::string data_dir; - -#ifdef PLATFORM_WINDOWS - // windows_search_path() returns a Searchpath with a single item - data_dir = ARDOUR::windows_search_path ().to_string (); -#else - data_dir = Glib::getenv ("ARDOUR_DATA_PATH"); - if (data_dir.empty()) { - std::cerr << "ARDOUR_CONFIG_PATH not set in environment" << std::endl; - } -#endif - - return data_dir; -} - SurfaceManifestVector ServerResources::read_manifests (std::string dir) { diff --git a/libs/surfaces/websockets/resources.h b/libs/surfaces/websockets/resources.h index b7bb0daee9..f942ec1ce7 100644 --- a/libs/surfaces/websockets/resources.h +++ b/libs/surfaces/websockets/resources.h @@ -44,7 +44,6 @@ private: std::string _user_dir; std::string server_data_dir (); - std::string ardour_data_dir (); SurfaceManifestVector read_manifests (std::string); |