summaryrefslogtreecommitdiff
path: root/libmediaart/extract.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmediaart/extract.h')
-rw-r--r--libmediaart/extract.h124
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__ */