### Interface

# Gegl Metadata

#### Description

    interface Gegl.Metadata : GObject.Object

No description available.

#### Prerequisite

In order to implement Metadata, your type must inherit from`GObject`.

#### Implementations

- GeglMetadataHash
- GeglMetadataStore

#### Instance methods

###### gegl_metadata_get_resolution

Retrieve resolution from the application image metadata. Intended for use by the image file writer. If resolution is not supported by the application or if the operation fails `FALSE` is returned and the resolution values are not updated.

###### gegl_metadata_iter_get_value

Retrieve image file metadata from the application. Intended for use by the image file writer. If the operation fails it returns `FALSE` and `value` is not updated.

###### gegl_metadata_iter_init

Initialise an iterator to find all supported metadata keys.

###### gegl_metadata_iter_lookup

Look up the specified key and initialise an iterator to reference the associated metadata. The iterator is used in conjunction with `gegl_metadata_set_value()` and gegl_metadata_get_value(). Note that this iterator is not valid for gegl_metadata_iter_next().

###### gegl_metadata_iter_next

Move the iterator to the next metadata item.

###### gegl_metadata_iter_set_value

Set application data retrieved from image file’s metadata. Intended for use by the image file reader. If the operation fails it returns `FALSE` and `value` is ignored.

###### gegl_metadata_register_map

Set the name of the file module and pass an array of mappings from file-format specific metadata names to those used by Gegl. A GValue transformation function may be supplied, e.g. to parse or format timestamps.

###### gegl_metadata_set_resolution

Set resolution retrieved from image file’s metadata. Intended for use by the image file reader. If resolution is not supported by the application or if the operation fails `FALSE` is returned and the values are ignored.

###### gegl_metadata_unregister_map

Unregister the file module mappings and any further mappings added or modified by the application. This should be called after the file module completes operations.

#### Interface structure

    struct GeglMetadataInterface {
      void (* register_map) (
        GeglMetadata* metadata,
        const gchar* file_module,
        guint flags,
        const GeglMetadataMap* map,
        gsize n_map
      );
      gboolean (* set_resolution) (
        GeglMetadata* metadata,
        GeglResolutionUnit unit,
        gfloat x,
        gfloat y
      );
      gboolean (* get_resolution) (
        GeglMetadata* metadata,
        GeglResolutionUnit* unit,
        gfloat* x,
        gfloat* y
      );
      gboolean (* iter_lookup) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter,
        const gchar* key
      );
      void (* iter_init) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter
      );
      const gchar* (* iter_next) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter
      );
      gboolean (* iter_set_value) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter,
        const GValue* value
      );
      gboolean (* iter_get_value) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter,
        GValue* value
      );

    }

The `GeglMetadata` interface structure.

###### Interface members

`register_map`

    void (* register_map) (
        GeglMetadata* metadata,
        const gchar* file_module,
        guint flags,
        const GeglMetadataMap* map,
        gsize n_map
      )

| See gegl_metadata_register_map(). If called with a NULL map, the registration is deleted.

`set_resolution`

    gboolean (* set_resolution) (
        GeglMetadata* metadata,
        GeglResolutionUnit unit,
        gfloat x,
        gfloat y
      )

| See gegl_metadata_set_resolution().

`get_resolution`

    gboolean (* get_resolution) (
        GeglMetadata* metadata,
        GeglResolutionUnit* unit,
        gfloat* x,
        gfloat* y
      )

| See gegl_metadata_get_resolution().

`iter_lookup`

    gboolean (* iter_lookup) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter,
        const gchar* key
      )

| See gegl_metadata_iter_lookup().

`iter_init`

    void (* iter_init) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter
      )

| See gegl_metadata_iter_init().

`iter_next`

    const gchar* (* iter_next) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter
      )

| See gegl_metadata_iter_next().

`iter_set_value`

    gboolean (* iter_set_value) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter,
        const GValue* value
      )

| See gegl_metadata_iter_set_value().

`iter_get_value`

    gboolean (* iter_get_value) (
        GeglMetadata* metadata,
        GeglMetadataIter* iter,
        GValue* value
      )

| See gegl_metadata_iter_get_value().

#### Virtual methods

###### Gegl.Metadata.get_resolution

Retrieve resolution from the application image metadata. Intended for use by the image file writer. If resolution is not supported by the application or if the operation fails `FALSE` is returned and the resolution values are not updated.

###### Gegl.Metadata.iter_get_value

Retrieve image file metadata from the application. Intended for use by the image file writer. If the operation fails it returns `FALSE` and `value` is not updated.

###### Gegl.Metadata.iter_init

Initialise an iterator to find all supported metadata keys.

###### Gegl.Metadata.iter_lookup

Look up the specified key and initialise an iterator to reference the associated metadata. The iterator is used in conjunction with `gegl_metadata_set_value()` and gegl_metadata_get_value(). Note that this iterator is not valid for gegl_metadata_iter_next().

###### Gegl.Metadata.iter_next

Move the iterator to the next metadata item.

###### Gegl.Metadata.iter_set_value

Set application data retrieved from image file’s metadata. Intended for use by the image file reader. If the operation fails it returns `FALSE` and `value` is ignored.

###### Gegl.Metadata.register_map

Set the name of the file module and pass an array of mappings from file-format specific metadata names to those used by Gegl. A GValue transformation function may be supplied, e.g. to parse or format timestamps.

###### Gegl.Metadata.set_resolution

Set resolution retrieved from image file’s metadata. Intended for use by the image file reader. If resolution is not supported by the application or if the operation fails `FALSE` is returned and the values are ignored.