From d631a8d89fd0a4b72a84c415ca2bdb4c2ca99bbc Mon Sep 17 00:00:00 2001 From: Taybin Rutkin Date: Fri, 5 Jan 2007 04:24:23 +0000 Subject: First pass of sfdb tag searching. Not functional, but very very close. git-svn-id: svn://localhost/ardour2/trunk@1272 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/audio_library.cc | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) (limited to 'libs/ardour/audio_library.cc') diff --git a/libs/ardour/audio_library.cc b/libs/ardour/audio_library.cc index 92069d929f..2ed4739a96 100644 --- a/libs/ardour/audio_library.cc +++ b/libs/ardour/audio_library.cc @@ -77,6 +77,13 @@ AudioLibrary::path2uri (string path) return uri.str(); } +string +AudioLibrary::uri2path (string uri) +{ + string path = xmlURIUnescapeString(uri.c_str(), 0, 0); + return path.substr(5); +} + void AudioLibrary::set_tags (string member, vector tags) { @@ -142,8 +149,8 @@ AudioLibrary::search_members_and (vector& members, const vector if (*head != 0) { lrdf_uris* ulist = lrdf_match_multi(*head); for (uint32_t j = 0; ulist && j < ulist->count; ++j) { -// printf("AND: %s\n", ulist->items[j]); - members.push_back(ulist->items[j]); +// cerr << "AND: " << uri2path(ulist->items[j]) << endl; + members.push_back(uri2path(ulist->items[j])); } lrdf_free_uris(ulist); @@ -154,33 +161,9 @@ AudioLibrary::search_members_and (vector& members, const vector // memory clean up pattern = *head; while(pattern){ - free(pattern->predicate); free(pattern->object); old = pattern; pattern = pattern->next; delete old; } } - -bool -AudioLibrary::safe_file_extension(string file) -{ - return !(file.rfind(".wav") == string::npos && - file.rfind(".aiff")== string::npos && - file.rfind(".aif") == string::npos && - file.rfind(".snd") == string::npos && - file.rfind(".au") == string::npos && - file.rfind(".raw") == string::npos && - file.rfind(".sf") == string::npos && - file.rfind(".cdr") == string::npos && - file.rfind(".smp") == string::npos && - file.rfind(".maud")== string::npos && - file.rfind(".vwe") == string::npos && - file.rfind(".paf") == string::npos && -#ifdef HAVE_COREAUDIO - file.rfind(".mp3") == string::npos && - file.rfind(".aac") == string::npos && - file.rfind(".mp4") == string::npos && -#endif // HAVE_COREAUDIO - file.rfind(".voc") == string::npos); -} -- cgit v1.2.3