From d9a7d419b2858f5a2ce36ae5321c998d766be026 Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Thu, 19 Jun 2014 18:26:17 +1000 Subject: Change PBD::find_files_matching_regex and PBD::find_files_matching_filter to take a Searchpath --- libs/ardour/lv2_plugin.cc | 2 +- libs/ardour/panner_manager.cc | 5 ++--- libs/ardour/template_utils.cc | 10 ++++------ libs/pbd/file_utils.cc | 11 ++++------- libs/pbd/pbd/file_utils.h | 6 +++--- libs/surfaces/generic_midi/generic_midi_control_protocol.cc | 2 +- libs/surfaces/mackie/device_info.cc | 2 +- libs/surfaces/mackie/device_profile.cc | 2 +- 8 files changed, 17 insertions(+), 23 deletions(-) diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index 6ae99302da..a33b01cbd9 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -2016,7 +2016,7 @@ LV2World::load_bundled_plugins() cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl; vector 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::iterator x = plugin_objects.begin(); x != plugin_objects.end (); ++x) { #ifdef PLATFORM_WINDOWS string uri = "file:///" + *x + "/"; diff --git a/libs/ardour/panner_manager.cc b/libs/ardour/panner_manager.cc index 3be16e4d48..906e979862 100644 --- a/libs/ardour/panner_manager.cc +++ b/libs/ardour/panner_manager.cc @@ -91,11 +91,10 @@ void PannerManager::discover_panners () { std::vector 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::iterator i = panner_modules.begin(); i != panner_modules.end(); ++i) { panner_discover (*i); diff --git a/libs/ardour/template_utils.cc b/libs/ardour/template_utils.cc index 64f6ce75ab..f5a4dc78a6 100644 --- a/libs/ardour/template_utils.cc +++ b/libs/ardour/template_utils.cc @@ -82,16 +82,15 @@ void find_session_templates (vector& template_names) { vector 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()) { - cerr << "Found nothing along " << spath.to_string() << endl; + cerr << "Found nothing along " << template_search_path().to_string() << endl; return; } - cerr << "Found " << templates.size() << " along " << spath.to_string() << endl; + cerr << "Found " << templates.size() << " along " << template_search_path().to_string() << endl; for (vector::iterator i = templates.begin(); i != templates.end(); ++i) { string file = session_template_dir_to_file (*i); @@ -115,9 +114,8 @@ void find_route_templates (vector& template_names) { vector 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()) { return; diff --git a/libs/pbd/file_utils.cc b/libs/pbd/file_utils.cc index c159e2718a..26900be289 100644 --- a/libs/pbd/file_utils.cc +++ b/libs/pbd/file_utils.cc @@ -203,7 +203,7 @@ regexp_filter (const string& str, void *arg) void find_files_matching_regex (vector& result, - const std::string& dirpath, + const Searchpath& paths, const std::string& regexp) { int err; @@ -224,7 +224,7 @@ find_files_matching_regex (vector& result, return; } - find_files_matching_filter (result, dirpath, + find_files_matching_filter (result, paths, regexp_filter, &compiled_pattern, true, true, false); @@ -233,7 +233,7 @@ find_files_matching_regex (vector& result, void find_files_matching_filter (vector& result, - const string &dirpath, + const Searchpath& paths, bool (*filter)(const string &, void *), void *arg, bool match_fullpath, bool return_fullpath, @@ -241,10 +241,7 @@ find_files_matching_filter (vector& result, { vector all_files; - Searchpath spath(dirpath); - - for (vector::iterator i = spath.begin(); i != spath.end(); ++i) - { + for (vector::const_iterator i = paths.begin(); i != paths.end(); ++i) { string expanded_path = path_expand (*i); get_directory_contents (expanded_path, all_files, true, recurse); } diff --git a/libs/pbd/pbd/file_utils.h b/libs/pbd/pbd/file_utils.h index b23ee1ebc8..4e44e2fe32 100644 --- a/libs/pbd/pbd/file_utils.h +++ b/libs/pbd/pbd/file_utils.h @@ -114,15 +114,15 @@ find_file_in_search_path (const Searchpath& search_path, */ LIBPBD_API void find_files_matching_regex (std::vector& results, - const std::string& dirpath, + const Searchpath& dirpath, 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 find_files_matching_filter (std::vector&, - const std::string &dirpath, + const Searchpath& paths, bool (*filter)(const std::string &, void *), void *arg, bool match_fullpath, diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc index 86b7f6e463..702d361965 100644 --- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc +++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc @@ -140,7 +140,7 @@ GenericMidiControlProtocol::reload_maps () Searchpath spath (system_midi_map_search_path()); 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()) { cerr << "No MIDI maps found using " << spath.to_string() << endl; diff --git a/libs/surfaces/mackie/device_info.cc b/libs/surfaces/mackie/device_info.cc index c0675c8377..2a953fd44c 100644 --- a/libs/surfaces/mackie/device_info.cc +++ b/libs/surfaces/mackie/device_info.cc @@ -474,7 +474,7 @@ DeviceInfo::reload_device_info () vector devinfos; 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 (); if (devinfos.empty()) { diff --git a/libs/surfaces/mackie/device_profile.cc b/libs/surfaces/mackie/device_profile.cc index 269ff36aca..320dd49297 100644 --- a/libs/surfaces/mackie/device_profile.cc +++ b/libs/surfaces/mackie/device_profile.cc @@ -93,7 +93,7 @@ DeviceProfile::reload_device_profiles () vector devprofiles; 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 (); if (devprofiles.empty()) { -- cgit v1.2.3