summaryrefslogtreecommitdiff
path: root/src/eog-metadata-reader.h
diff options
context:
space:
mode:
authorFelix Riemann <friemann@svn.gnome.org>2008-03-30 10:36:19 +0000
committerFelix Riemann <friemann@src.gnome.org>2008-03-30 10:36:19 +0000
commit0649fc603c3befb8440ffb2956b311d5d4453e9f (patch)
treeb89de11cc5a863f32fb5d7665c8614c705ce1785 /src/eog-metadata-reader.h
parent08740e8258f0ce5b26c2417c1f25d8aa4d988f80 (diff)
downloadeog-0649fc603c3befb8440ffb2956b311d5d4453e9f.tar.gz
Add PNG metadata reader supporting embedded XMP and color profile data.
2008-03-30 Felix Riemann <friemann@svn.gnome.org> * src/Makefile.am: * src/eog-image.c: (check_for_metadata_img_format), (eog_image_set_icc_data): * src/eog-metadata-reader-jpg.c: (eog_metadata_reader_jpg_get_icc_profile), (eog_metadata_reader_jpg_init_emr_iface): * src/eog-metadata-reader-jpg.h: * src/eog-metadata-reader-png.c: (eog_metadata_reader_png_dispose), (eog_metadata_reader_png_init), (eog_metadata_reader_png_class_init), (eog_metadata_reader_png_finished), (eog_metadata_reader_png_get_next_block), (eog_metadata_reader_png_consume), (eog_metadata_reader_png_get_xmp_data), (eog_metadata_reader_png_get_icc_profile), (eog_metadata_reader_png_init_emr_iface): * src/eog-metadata-reader-png.h: * src/eog-metadata-reader.c: (eog_metadata_reader_new), (eog_metadata_reader_get_exif_data), (eog_metadata_reader_get_icc_profile): * src/eog-metadata-reader.h: Add PNG metadata reader supporting embedded XMP and color profile data. This also moves the ICC profile generation using chromacity and gamma values from EogImage into the readers. Fixes bug #523856. svn path=/trunk/; revision=4503
Diffstat (limited to 'src/eog-metadata-reader.h')
-rw-r--r--src/eog-metadata-reader.h54
1 files changed, 31 insertions, 23 deletions
diff --git a/src/eog-metadata-reader.h b/src/eog-metadata-reader.h
index d813a726..c62a9254 100644
--- a/src/eog-metadata-reader.h
+++ b/src/eog-metadata-reader.h
@@ -29,6 +29,9 @@
#if HAVE_EXEMPI
#include <exempi/xmp.h>
#endif
+#if HAVE_LCMS
+#include <lcms.h>
+#endif
G_BEGIN_DECLS
@@ -43,51 +46,56 @@ typedef struct _EogMetadataReaderInterface EogMetadataReaderInterface;
struct _EogMetadataReaderInterface {
GTypeInterface parent;
- void (*consume) (EogMetadataReader *self,
- const guchar *buf,
- guint len);
+ void (*consume) (EogMetadataReader *self,
+ const guchar *buf,
+ guint len);
- gboolean (*finished) (EogMetadataReader *self);
+ gboolean (*finished) (EogMetadataReader *self);
- void (*get_raw_exif) (EogMetadataReader *self,
- guchar **data,
- guint *len);
+ void (*get_raw_exif) (EogMetadataReader *self,
+ guchar **data,
+ guint *len);
- gpointer (*get_exif_data) (EogMetadataReader *self);
+ gpointer (*get_exif_data) (EogMetadataReader *self);
- void (*get_icc_chunk) (EogMetadataReader *self,
- guchar **data,
- guint *len);
+ gpointer (*get_icc_profile) (EogMetadataReader *self);
- gpointer (*get_xmp_ptr) (EogMetadataReader *self);
+ gpointer (*get_xmp_ptr) (EogMetadataReader *self);
};
typedef enum {
- EOG_METADATA_JPEG
+ EOG_METADATA_JPEG,
+ EOG_METADATA_PNG
} EogMetadataFileType;
-GType eog_metadata_reader_get_type (void) G_GNUC_CONST;
+GType eog_metadata_reader_get_type (void) G_GNUC_CONST;
-EogMetadataReader* eog_metadata_reader_new (EogMetadataFileType type);
-void eog_metadata_reader_consume (EogMetadataReader *emr, const guchar *buf, guint len);
-gboolean eog_metadata_reader_finished (EogMetadataReader *emr);
+EogMetadataReader* eog_metadata_reader_new (EogMetadataFileType type);
+void eog_metadata_reader_consume (EogMetadataReader *emr,
+ const guchar *buf,
+ guint len);
+gboolean eog_metadata_reader_finished (EogMetadataReader *emr);
-void eog_metadata_reader_get_exif_chunk (EogMetadataReader *emr, guchar **data, guint *len);
+void eog_metadata_reader_get_exif_chunk (EogMetadataReader *emr,
+ guchar **data,
+ guint *len);
#ifdef HAVE_EXIF
-ExifData* eog_metadata_reader_get_exif_data (EogMetadataReader *emr);
+ExifData* eog_metadata_reader_get_exif_data (EogMetadataReader *emr);
#endif
#ifdef HAVE_EXEMPI
-XmpPtr eog_metadata_reader_get_xmp_data (EogMetadataReader *emr);
+XmpPtr eog_metadata_reader_get_xmp_data (EogMetadataReader *emr);
#endif
#if 0
-gpointer eog_metadata_reader_get_iptc_chunk (EogMetadataReader *emr);
-IptcData* eog_metadata_reader_get_iptc_data (EogMetadataReader *emr);
+gpointer eog_metadata_reader_get_iptc_chunk (EogMetadataReader *emr);
+IptcData* eog_metadata_reader_get_iptc_data (EogMetadataReader *emr);
#endif
-void eog_metadata_reader_get_icc_chunk (EogMetadataReader *emr, guchar **data, guint *len);
+#ifdef HAVE_LCMS
+cmsHPROFILE eog_metadata_reader_get_icc_profile (EogMetadataReader *emr);
+#endif
G_END_DECLS