diff options
Diffstat (limited to 'libmediaart/extract.h')
-rw-r--r-- | libmediaart/extract.h | 124 |
1 files changed, 105 insertions, 19 deletions
diff --git a/libmediaart/extract.h b/libmediaart/extract.h index 3744923..e5ab8fa 100644 --- a/libmediaart/extract.h +++ b/libmediaart/extract.h @@ -46,25 +46,111 @@ typedef enum { MEDIA_ART_TYPE_COUNT } MediaArtType; -gboolean media_art_init (void); -void media_art_shutdown (void); - -gboolean media_art_process (const unsigned char *buffer, - size_t len, - const gchar *mime, - MediaArtType type, - const gchar *artist, - const gchar *title, - const gchar *uri); - -gboolean media_art_process_file (const guchar *buffer, - gsize len, - const gchar *mime, - MediaArtType type, - const gchar *artist, - const gchar *title, - GFile *file); +/** + * MediaArtProcessFlags: + * @MEDIA_ART_PROCESS_FLAGS_NONE: Normal operation. + * @MEDIA_ART_PROCESS_FLAGS_FORCE: Force media art to be re-saved to disk even if it already exists and the related file or URI has the same modified time (mtime). + * + * This type categorized the flags used when processing media art. + * + * Since: 0.3.0 + */ +typedef enum { + MEDIA_ART_PROCESS_FLAGS_NONE = 0, + MEDIA_ART_PROCESS_FLAGS_FORCE = 1 << 0, +} MediaArtProcessFlags; + +/** + * MediaArtError: + * @MEDIA_ART_ERROR_NO_STORAGE: Storage information is unknown, we + * have no knowledge about removable media. + * @MEDIA_ART_ERROR_NO_TITLE: Title is required, but was not provided, + * or was empty. + * @MEDIA_ART_ERROR_SYMLINK_FAILED: A call to symlink() failed + * resulting in the incorrect storage of media art. + * @MEDIA_ART_ERROR_RENAME_FAILED: File could not be renamed. + * + * Enumeration values used in errors returned by the + * #MediaArtError API. + * + * Since: 0.2.0 + **/ +typedef enum { + MEDIA_ART_ERROR_NO_STORAGE, + MEDIA_ART_ERROR_NO_TITLE, + MEDIA_ART_ERROR_SYMLINK_FAILED, + MEDIA_ART_ERROR_RENAME_FAILED +} MediaArtError; + + +/** + * media_art_error_quark: + * + * A #GQuark representing the type of #GError for #MediaArtProcess failures. + * + * Since: 0.2.0 + **/ +GQuark media_art_error_quark (void) G_GNUC_CONST; + + +#define MEDIA_ART_TYPE_PROCESS (media_art_process_get_type()) +#define MEDIA_ART_PROCESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MEDIA_ART_TYPE_PROCESS, MediaArtProcess)) +#define MEDIA_ART_PROCESS_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), MEDIA_ART_TYPE_PROCESS, MediaArtProcessClass)) +#define MEDIA_ART_IS_PROCESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MEDIA_ART_TYPE_PROCESS)) +#define MEDIA_ART_IS_PROCESS_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), MEDIA_ART_TYPE_PROCESS)) +#define MEDIA_ART_PROCESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), MEDIA_ART_TYPE_PROCESS, MediaArtProcessClass)) + +typedef struct _MediaArtProcess MediaArtProcess; +typedef struct _MediaArtProcessClass MediaArtProcessClass; + +/** + * MediaArtProcess: + * @parent: parent object + * + * A class implementation for processing and extracting media art. + **/ +struct _MediaArtProcess { + GObject parent; +}; + +/** + * MediaArtProcessClass: + * @parent: parent object class + * + * Prototype for the class. + **/ +struct _MediaArtProcessClass { + GObjectClass parent; +}; + + +GType media_art_process_get_type (void) G_GNUC_CONST; +MediaArtProcess *media_art_process_new (GError **error); +gboolean media_art_process_uri (MediaArtProcess *process, + MediaArtType type, + MediaArtProcessFlags flags, + const gchar *uri, + const gchar *artist, + const gchar *title, + GError **error); +gboolean media_art_process_file (MediaArtProcess *process, + MediaArtType type, + MediaArtProcessFlags flags, + GFile *file, + const gchar *artist, + const gchar *title, + GError **error); +gboolean media_art_process_buffer (MediaArtProcess *process, + MediaArtType type, + MediaArtProcessFlags flags, + GFile *related_file, + const guchar *buffer, + gsize len, + const gchar *mime, + const gchar *artist, + const gchar *title, + GError **error); G_END_DECLS -#endif /* __LIBMEDIAART_UTILS_H__ */ +#endif /* __LIBMEDIAART_EXTRACT_H__ */ |