X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_library.cc;h=4d78bdac86563e62c66cc3e8b3778cd8eb9a6bb3;hb=e4304f3bf2daa24395f7b520476115ca418ad93e;hp=4a6089dac3668ba6273a7d1c10b6122c4b51a9e6;hpb=f4b5f4c72ee60b6f509e307c5bfd164108d1f30b;p=ardour.git diff --git a/libs/ardour/audio_library.cc b/libs/ardour/audio_library.cc index 4a6089dac3..4d78bdac86 100644 --- a/libs/ardour/audio_library.cc +++ b/libs/ardour/audio_library.cc @@ -34,12 +34,13 @@ #include #include "pbd/compose.h" +#include "pbd/error.h" +#include "pbd/file_utils.h" #include "ardour/audio_library.h" -#include "ardour/utils.h" #include "ardour/filesystem_paths.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace PBD; @@ -105,15 +106,15 @@ AudioLibrary::get_tags (string member) { vector tags; #ifdef HAVE_LRDF + char * uri = strdup(Glib::filename_to_uri(member).c_str()); lrdf_statement pattern; - pattern.subject = strdup(Glib::filename_to_uri(member).c_str()); + pattern.subject = uri; pattern.predicate = const_cast(TAG); pattern.object = 0; pattern.object_type = lrdf_literal; lrdf_statement* matches = lrdf_matches (&pattern); - free (pattern.subject); lrdf_statement* current = matches; while (current != 0) { @@ -125,6 +126,7 @@ AudioLibrary::get_tags (string member) lrdf_free_statements (matches); sort (tags.begin(), tags.end()); + free (uri); #endif return tags; } @@ -156,8 +158,8 @@ AudioLibrary::search_members_and (vector& members, const vector& } lrdf_free_uris(ulist); - sort(members.begin(), members.end()); - unique(members.begin(), members.end()); + sort (members.begin(), members.end()); + members.erase (unique (members.begin(), members.end()), members.end()); } // memory clean up