X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsearch_paths.cc;h=96df905eda4315eb2fe1ee2d271f26b905bfded5;hb=b66d5e842b954f69c3cdff71c133c78b93b4e698;hp=1089a3cd8230bbc28c4196c64118e9cb58cee046;hpb=4dc63966f0872efe768dad61eb9b8785d06b92d1;p=ardour.git diff --git a/libs/ardour/search_paths.cc b/libs/ardour/search_paths.cc index 1089a3cd82..96df905eda 100644 --- a/libs/ardour/search_paths.cc +++ b/libs/ardour/search_paths.cc @@ -38,6 +38,7 @@ namespace { const char * const backend_env_variable_name = "ARDOUR_BACKEND_PATH"; const char * const surfaces_env_variable_name = "ARDOUR_SURFACES_PATH"; const char * const export_env_variable_name = "ARDOUR_EXPORT_FORMATS_PATH"; + const char * const theme_env_variable_name = "ARDOUR_THEMES_PATH"; const char * const ladspa_env_variable_name = "LADSPA_PATH"; const char * const midi_patch_env_variable_name = "ARDOUR_MIDI_PATCH_PATH"; const char * const panner_env_variable_name = "ARDOUR_PANNER_PATH"; @@ -64,11 +65,21 @@ control_protocol_search_path () Searchpath spath(user_config_directory ()); spath += ardour_dll_directory (); spath.add_subdirectory_to_paths (surfaces_dir_name); - + spath += Searchpath(Glib::getenv(surfaces_env_variable_name)); return spath; } +Searchpath +theme_search_path () +{ + Searchpath spath (ardour_data_search_path ()); + spath.add_subdirectory_to_paths (theme_dir_name); + + spath += Searchpath(Glib::getenv(theme_env_variable_name)); + return spath; +} + Searchpath export_formats_search_path () { @@ -163,6 +174,15 @@ route_template_search_path () return spath; } +Searchpath +lua_search_path () +{ + Searchpath spath (ardour_data_search_path()); + spath.add_subdirectory_to_paths(lua_dir_name); + + return spath; +} + #ifdef PLATFORM_WINDOWS const char* @@ -195,6 +215,7 @@ vst_search_path () } if (p == 0) { +#if ( (defined __i386__) || (defined _M_IX86) ) char *pVSTx86 = 0; std::string pProgFilesX86 = PBD::get_win_special_folder_path (CSIDL_PROGRAM_FILESX86); @@ -209,22 +230,21 @@ vst_search_path () g_free (pVSTx86); } } +#else + // Look for a VST folder under C:\Program Files + char *pVST = 0; + std::string pProgFiles = PBD::get_win_special_folder_path (CSIDL_PROGRAM_FILES); - if (p == 0) { - // Look for a VST folder under C:\Program Files - char *pVST = 0; - std::string pProgFiles = PBD::get_win_special_folder_path (CSIDL_PROGRAM_FILES); - - if (!pProgFiles.empty()) { - if ((pVST = g_build_filename (pProgFiles.c_str(), "Steinberg", "VSTPlugins", NULL))) { - if (Glib::file_test (pVST, Glib::FILE_TEST_EXISTS)) - if (Glib::file_test (pVST, Glib::FILE_TEST_IS_DIR)) - p = g_build_filename (pVST, NULL); + if (!pProgFiles.empty()) { + if ((pVST = g_build_filename (pProgFiles.c_str(), "Steinberg", "VSTPlugins", NULL))) { + if (Glib::file_test (pVST, Glib::FILE_TEST_EXISTS)) + if (Glib::file_test (pVST, Glib::FILE_TEST_IS_DIR)) + p = g_build_filename (pVST, NULL); - g_free (pVST); - } + g_free (pVST); } } +#endif } if (p == 0) {