## eog-metadata-reader eog-metadata-reader |

## Synopsis

    #define             EOG_METADATA_READER_GET_INTERFACE   (o)
                        EogMetadataReader;
    struct              EogMetadataReaderInterface;
    enum                EogMetadataFileType;
    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);
    ExifData *          eog_metadata_reader_get_exif_data   (EogMetadataReader *emr);
    XmpPtr              eog_metadata_reader_get_xmp_data    (EogMetadataReader *emr);
    gpointer            eog_metadata_reader_get_iptc_chunk  (EogMetadataReader *emr);
    IptcData *          eog_metadata_reader_get_iptc_data   (EogMetadataReader *emr);
    cmsHPROFILE         eog_metadata_reader_get_icc_profile (EogMetadataReader *emr);

## Object Hierarchy

      GInterface
       +----EogMetadataReader

## Known Implementations

EogMetadataReader is implemented by EogMetadataReaderJpg and EogMetadataReaderPng.

## Description

## Details

### EOG_METADATA_READER_GET_INTERFACE()

    #define EOG_METADATA_READER_GET_INTERFACE(o)  (G_TYPE_INSTANCE_GET_INTERFACE ((o), EOG_TYPE_METADATA_READER, EogMetadataReaderInterface))

### EogMetadataReader

    typedef struct _EogMetadataReader EogMetadataReader;

### struct EogMetadataReaderInterface

    struct EogMetadataReaderInterface {
    	GTypeInterface parent;

    	void		(*consume)		(EogMetadataReader *self,
    						 const guchar *buf,
    						 guint len);

    	gboolean (*finished)		(EogMetadataReader *self);

    	void		(*get_raw_exif)		(EogMetadataReader *self,
    						 guchar **data,
    						 guint *len);

    	gpointer (*get_exif_data) (EogMetadataReader *self);

    	gpointer (*get_icc_profile) (EogMetadataReader *self);

    	gpointer (*get_xmp_ptr)		(EogMetadataReader *self);
    };

### enum EogMetadataFileType

    typedef enum {
    	EOG_METADATA_JPEG,
    	EOG_METADATA_PNG
    } EogMetadataFileType;

### eog_metadata_reader_new ()

    EogMetadataReader * eog_metadata_reader_new             (EogMetadataFileType type);

### eog_metadata_reader_consume ()

    void                eog_metadata_reader_consume         (EogMetadataReader *emr,
                                                             const guchar *buf,
                                                             guint len);

### eog_metadata_reader_finished ()

    gboolean            eog_metadata_reader_finished        (EogMetadataReader *emr);

### eog_metadata_reader_get_exif_chunk ()

    void                eog_metadata_reader_get_exif_chunk  (EogMetadataReader *emr,
                                                             guchar **data,
                                                             guint *len);

### eog_metadata_reader_get_exif_data ()

    ExifData *          eog_metadata_reader_get_exif_data   (EogMetadataReader *emr);

### eog_metadata_reader_get_xmp_data ()

    XmpPtr              eog_metadata_reader_get_xmp_data    (EogMetadataReader *emr);

### eog_metadata_reader_get_iptc_chunk ()

    gpointer            eog_metadata_reader_get_iptc_chunk  (EogMetadataReader *emr);

### eog_metadata_reader_get_iptc_data ()

    IptcData *          eog_metadata_reader_get_iptc_data   (EogMetadataReader *emr);

### eog_metadata_reader_get_icc_profile ()

    cmsHPROFILE         eog_metadata_reader_get_icc_profile (EogMetadataReader *emr);