204 callback->on_progress(p_path);
208 if (p_reader.
is_empty() && type != playlist_loader_callback::entry_directory_enumerated) {
209 directory_callback_impl2 directory_results(
true);
211 filesystem::g_list_directory(p_path,directory_results,abort);
212 for(
t_size n=0;n<directory_results.get_count();n++) {
213 process_path_internal(directory_results.get_item(n),0,callback,abort,playlist_loader_callback::entry_directory_enumerated,directory_results.get_item_stats(n));
216 }
catch(exception_aborted) {
throw;}
227 archive_callback_impl archive_results(callback, abort);
233 if (f->service_query_t(arch)) {
234 if (p_reader.
is_valid()) p_reader->reopen(abort);
237 TRACK_CODE(
"archive::archive_list",arch->archive_list(p_path,p_reader,archive_results,
true));
239 }
catch(exception_aborted) {
throw;}
252 if (p_reader.
is_valid()) p_reader->reopen(abort);
256 TRACK_CODE(
"link_resolver::resolve",ptr->resolve(p_reader,p_path,temp,abort));
260 }
catch(exception_aborted) {
throw;}
265 if (callback->is_path_wanted(p_path,type)) {
static const t_filestats filestats_invalid
Invalid/unknown file stats constant. See: t_filestats.
static bool g_find(service_ptr_t< link_resolver > &p_out, const char *p_path)
Helper function; finds link_resolver interface that supports specified link file. ...
static void process_path_internal(const char *p_path, const service_ptr_t< file > &p_reader, playlist_loader_callback::ptr callback, abort_callback &abort, playlist_loader_callback::t_entry_type type, const t_filestats &p_stats)
Autopointer class to be used with all services. Manages reference counter calls behind-the-scenes.
static void track_indexer__g_get_tracks_wrap(const char *p_path, const service_ptr_t< file > &p_reader, const t_filestats &p_stats, playlist_loader_callback::t_entry_type p_type, playlist_loader_callback::ptr p_callback, abort_callback &p_abort)
bool next(service_ptr_t< t_query > &p_out)