Change PBD::find_files_matching_regex and PBD::find_files_matching_filter to take a Searchpath

This commit is contained in:
Tim Mayberry 2014-06-19 18:26:17 +10:00 committed by Paul Davis
parent 613162df6b
commit d9a7d419b2
8 changed files with 17 additions and 23 deletions

View file

@ -2016,7 +2016,7 @@ LV2World::load_bundled_plugins()
cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl; cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl;
vector<string> plugin_objects; vector<string> plugin_objects;
find_files_matching_filter (plugin_objects, ARDOUR::lv2_bundled_search_path().to_string(), lv2_filter, 0, true, true); find_files_matching_filter (plugin_objects, ARDOUR::lv2_bundled_search_path(), lv2_filter, 0, true, true);
for ( vector<string>::iterator x = plugin_objects.begin(); x != plugin_objects.end (); ++x) { for ( vector<string>::iterator x = plugin_objects.begin(); x != plugin_objects.end (); ++x) {
#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
string uri = "file:///" + *x + "/"; string uri = "file:///" + *x + "/";

View file

@ -91,11 +91,10 @@ void
PannerManager::discover_panners () PannerManager::discover_panners ()
{ {
std::vector<std::string> panner_modules; std::vector<std::string> panner_modules;
std::string search_path = panner_search_path().to_string();
DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1\n"), search_path)); DEBUG_TRACE (DEBUG::Panning, string_compose (_("looking for panners in %1\n"), panner_search_path().to_string()));
find_files_matching_filter (panner_modules, search_path, panner_filter, 0, false, true, true); find_files_matching_filter (panner_modules, panner_search_path(), panner_filter, 0, false, true, true);
for (vector<std::string>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) { for (vector<std::string>::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) {
panner_discover (*i); panner_discover (*i);

View file

@ -82,16 +82,15 @@ void
find_session_templates (vector<TemplateInfo>& template_names) find_session_templates (vector<TemplateInfo>& template_names)
{ {
vector<string> templates; vector<string> templates;
Searchpath spath (template_search_path());
find_files_matching_filter (templates, spath.to_string(), template_filter, 0, true, true); find_files_matching_filter (templates, template_search_path(), template_filter, 0, true, true);
if (templates.empty()) { if (templates.empty()) {
cerr << "Found nothing along " << spath.to_string() << endl; cerr << "Found nothing along " << template_search_path().to_string() << endl;
return; return;
} }
cerr << "Found " << templates.size() << " along " << spath.to_string() << endl; cerr << "Found " << templates.size() << " along " << template_search_path().to_string() << endl;
for (vector<string>::iterator i = templates.begin(); i != templates.end(); ++i) { for (vector<string>::iterator i = templates.begin(); i != templates.end(); ++i) {
string file = session_template_dir_to_file (*i); string file = session_template_dir_to_file (*i);
@ -115,9 +114,8 @@ void
find_route_templates (vector<TemplateInfo>& template_names) find_route_templates (vector<TemplateInfo>& template_names)
{ {
vector<string> templates; vector<string> templates;
Searchpath spath (route_template_search_path());
find_files_matching_filter (templates, spath.to_string(), route_template_filter, 0, false, true); find_files_matching_filter (templates, route_template_search_path(), route_template_filter, 0, false, true);
if (templates.empty()) { if (templates.empty()) {
return; return;

View file

@ -203,7 +203,7 @@ regexp_filter (const string& str, void *arg)
void void
find_files_matching_regex (vector<string>& result, find_files_matching_regex (vector<string>& result,
const std::string& dirpath, const Searchpath& paths,
const std::string& regexp) const std::string& regexp)
{ {
int err; int err;
@ -224,7 +224,7 @@ find_files_matching_regex (vector<string>& result,
return; return;
} }
find_files_matching_filter (result, dirpath, find_files_matching_filter (result, paths,
regexp_filter, &compiled_pattern, regexp_filter, &compiled_pattern,
true, true, false); true, true, false);
@ -233,7 +233,7 @@ find_files_matching_regex (vector<string>& result,
void void
find_files_matching_filter (vector<string>& result, find_files_matching_filter (vector<string>& result,
const string &dirpath, const Searchpath& paths,
bool (*filter)(const string &, void *), bool (*filter)(const string &, void *),
void *arg, void *arg,
bool match_fullpath, bool return_fullpath, bool match_fullpath, bool return_fullpath,
@ -241,10 +241,7 @@ find_files_matching_filter (vector<string>& result,
{ {
vector<string> all_files; vector<string> all_files;
Searchpath spath(dirpath); for (vector<string>::const_iterator i = paths.begin(); i != paths.end(); ++i) {
for (vector<string>::iterator i = spath.begin(); i != spath.end(); ++i)
{
string expanded_path = path_expand (*i); string expanded_path = path_expand (*i);
get_directory_contents (expanded_path, all_files, true, recurse); get_directory_contents (expanded_path, all_files, true, recurse);
} }

View file

@ -114,15 +114,15 @@ find_file_in_search_path (const Searchpath& search_path,
*/ */
LIBPBD_API void LIBPBD_API void
find_files_matching_regex (std::vector<std::string>& results, find_files_matching_regex (std::vector<std::string>& results,
const std::string& dirpath, const Searchpath& dirpath,
const std::string& regexp); const std::string& regexp);
/** /**
* @return files in dirpath that match a supplied filter(functor) * @return files in a Searchpath that match a supplied filter(functor)
*/ */
LIBPBD_API void LIBPBD_API void
find_files_matching_filter (std::vector<std::string>&, find_files_matching_filter (std::vector<std::string>&,
const std::string &dirpath, const Searchpath& paths,
bool (*filter)(const std::string &, void *), bool (*filter)(const std::string &, void *),
void *arg, void *arg,
bool match_fullpath, bool match_fullpath,

View file

@ -140,7 +140,7 @@ GenericMidiControlProtocol::reload_maps ()
Searchpath spath (system_midi_map_search_path()); Searchpath spath (system_midi_map_search_path());
spath += user_midi_map_directory (); spath += user_midi_map_directory ();
find_files_matching_filter (midi_maps, spath.to_string(), midi_map_filter, 0, false, true); find_files_matching_filter (midi_maps, spath, midi_map_filter, 0, false, true);
if (midi_maps.empty()) { if (midi_maps.empty()) {
cerr << "No MIDI maps found using " << spath.to_string() << endl; cerr << "No MIDI maps found using " << spath.to_string() << endl;

View file

@ -474,7 +474,7 @@ DeviceInfo::reload_device_info ()
vector<string> devinfos; vector<string> devinfos;
Searchpath spath (devinfo_search_path()); Searchpath spath (devinfo_search_path());
find_files_matching_filter (devinfos, spath.to_string(), devinfo_filter, 0, false, true); find_files_matching_filter (devinfos, spath, devinfo_filter, 0, false, true);
device_info.clear (); device_info.clear ();
if (devinfos.empty()) { if (devinfos.empty()) {

View file

@ -93,7 +93,7 @@ DeviceProfile::reload_device_profiles ()
vector<string> devprofiles; vector<string> devprofiles;
Searchpath spath (devprofile_search_path()); Searchpath spath (devprofile_search_path());
find_files_matching_filter (devprofiles, spath.to_string(), devprofile_filter, 0, false, true); find_files_matching_filter (devprofiles, spath, devprofile_filter, 0, false, true);
device_profiles.clear (); device_profiles.clear ();
if (devprofiles.empty()) { if (devprofiles.empty()) {