foobar2000 SDK  2015-01-14
Public Member Functions | Static Public Member Functions
album_art_editorabstract

#include <album_art.h>

+ Inheritance diagram for album_art_editor:

Public Member Functions

 FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT (album_art_editor)
 
virtual bool is_our_path (const char *p_path, const char *p_extension)=0
 
virtual album_art_editor_instance_ptr open (file_ptr p_filehint, const char *p_path, abort_callback &p_abort)=0
 
- Public Member Functions inherited from service_base
template<typename outPtr_t >
bool cast (outPtr_t &outPtr)
 
virtual int service_add_ref ()=0 throw ()
 
virtual bool service_query (service_ptr_t< service_base > &p_out, const GUID &p_guid)
 
template<class T >
bool service_query_t (service_ptr_t< T > &p_out)
 
virtual int service_release ()=0 throw ()
 

Static Public Member Functions

static bool g_get_interface (service_ptr_t< album_art_editor > &out, const char *path)
 
static bool g_is_supported_path (const char *path)
 
static album_art_editor_instance_ptr g_open (file_ptr p_filehint, const char *p_path, abort_callback &p_abort)
 

Additional Inherited Members

- Public Types inherited from service_base
typedef service_base t_interface
 
- Protected Member Functions inherited from service_base
 service_base ()
 
 ~service_base ()
 

Detailed Description

Entrypoint class for accessing album art editing functionality. Register your own implementation to allow album art editing on your media file format.

Definition at line 104 of file album_art.h.

Member Function Documentation

album_art_editor::FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT ( album_art_editor  )
bool album_art_editor::g_get_interface ( service_ptr_t< album_art_editor > &  out,
const char *  path 
)
static

Helper; attempts to retrieve an album_art_editor service pointer that supports the specified file.

Returns
True on success, false on failure (no registered album_art_editor supports this file type).

Definition at line 3 of file album_art.cpp.

3  {
5  pfc::string_extension ext(path);
6  while(e.next(ptr)) {
7  if (ptr->is_our_path(path,ext)) { out = ptr; return true; }
8  }
9  return false;
10 }
bool next(service_ptr_t< t_query > &p_out)
Definition: service.h:587
bool album_art_editor::g_is_supported_path ( const char *  path)
static

Helper; returns whether one of registered album_art_editor implementations is capable of opening the specified file.

Definition at line 12 of file album_art.cpp.

12  {
13  ptr ptr; return g_get_interface(ptr,path);
14 }
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...
Definition: album_art.cpp:3
album_art_editor_instance_ptr album_art_editor::g_open ( file_ptr  p_filehint,
const char *  p_path,
abort_callback p_abort 
)
static

Definition at line 16 of file album_art.cpp.

16  {
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);
20 }
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...
Definition: album_art.cpp:3
virtual bool album_art_editor::is_our_path ( const char *  p_path,
const char *  p_extension 
)
pure virtual

Returns whether the specified file is one of formats supported by our album_art_editor implementation.

Parameters
p_pathPath to file being queried.
p_extensionExtension of file being queried (also present in p_path parameter) - provided as a separate parameter for performance reasons.

Implemented in album_art_editor_impl_stdtags.

virtual album_art_editor_instance_ptr album_art_editor::open ( file_ptr  p_filehint,
const char *  p_path,
abort_callback p_abort 
)
pure virtual

Instantiates album_art_editor_instance providing access to album art stored in a specified media file.
.

Parameters
p_filehintOptional; specifies a file interface to use for accessing the specified file; can be null - in that case, the implementation will open and close the file internally.

Implemented in album_art_editor_impl_stdtags.


The documentation for this class was generated from the following files: