7 if (ptr->is_our_path(path,ext)) { out = ptr;
return true; }
17 album_art_editor::ptr obj;
18 if (!
g_get_interface(obj, p_path))
throw exception_album_art_unsupported_format();
19 return obj->open(p_filehint, p_path, p_abort);
27 if (ptr->is_our_path(path,ext)) { out = ptr;
return true; }
36 album_art_extractor::ptr obj;
37 if (!
g_get_interface(obj, p_path))
throw exception_album_art_unsupported_format();
38 return obj->open(p_filehint, p_path, p_abort);
44 return g_open(p_filehint, p_path, p_abort);
45 }
catch(exception_album_art_not_found) {
service_ptr_t< file > file_ptr
Template implementing reference-counting features of service_base. Intended for dynamic instantiation...
static album_art_editor_instance_ptr g_open(file_ptr p_filehint, const char *p_path, abort_callback &p_abort)
static bool g_get_interface(service_ptr_t< album_art_editor > &out, const char *path)
Helper; attempts to retrieve an album_art_editor service pointer that supports the specified file...
static bool g_is_supported_path(const char *path)
Helper; returns whether one of registered album_art_editor implementations is capable of opening the ...
Autopointer class to be used with all services. Manages reference counter calls behind-the-scenes.
bool next(service_ptr_t< t_query > &p_out)