X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsearch_paths.cc;h=cc488b8723034891351fad42a58082365f01fa81;hb=62f29d6c440dee32e45f8ed2b75d87de30234342;hp=50ecac613eb80c9756541c74730851f34bebc03f;hpb=22b07e0233a29d9633ffa825a79503befaf2e16e;p=ardour.git diff --git a/libs/ardour/search_paths.cc b/libs/ardour/search_paths.cc index 50ecac613e..cc488b8723 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"; @@ -69,6 +70,16 @@ control_protocol_search_path () 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 () { @@ -155,6 +166,14 @@ template_search_path () return spath; } +Searchpath +plugin_metadata_search_path () +{ + Searchpath spath (ardour_data_search_path()); + spath.add_subdirectory_to_paths(plugin_metadata_dir_name); + return spath; +} + Searchpath route_template_search_path () { @@ -163,6 +182,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 +223,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 +238,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) {