## GESExtractable Interface GESExtractable Interface — An interface for objects which can be extracted from a GESAsset |

## Functions

gchar * | (*GESExtractableCheckId) ()
GESAsset * | ges_extractable_get_asset ()
gboolean | ges_extractable_set_asset ()
gchar * | ges_extractable_get_id ()

## Types and Values

| GESExtractable
| GESExtractableInterface

## Object Hierarchy

        GInterface
        ╰── GESExtractable

## Prerequisites

GESExtractable requires GInitiallyUnowned.

## Known Implementations

GESExtractable is implemented by GESAudioSource, GESAudioTestSource, GESAudioTransition, GESAudioUriSource, GESBaseEffect, GESBaseEffectClip, GESBaseTransitionClip, GESClip, GESContainer, GESEffect, GESEffectClip, GESFormatter, GESGroup, GESImageSource, GESLayer, GESMultiFileSource, GESOperation, GESOperationClip, GESOverlayClip, GESSource, GESSourceClip, GESTestClip, GESTextOverlay, GESTextOverlayClip, GESTimeline, GESTimelineElement, GESTitleClip, GESTitleSource, GESTrackElement, GESTransition, GESTransitionClip, GESUriClip, GESVideoSource, GESVideoTestSource, GESVideoTransition and GESVideoUriSource.

## Includes

    #include <ges/ges.h>

## Description

FIXME: Long description needed

## Functions

### GESExtractableCheckId ()

    gchar *
    (*GESExtractableCheckId) (GType type,
                              const gchar *id,
                              GError **error);

#### Parameters

type | The GType to check `id` for: |
id | The id to check |
error | An error that can be set if needed |

#### Returns

The ID to use for the asset or `NULL` if `id` is not valid

### ges_extractable_get_asset ()

    GESAsset *
    ges_extractable_get_asset (GESExtractable *self);

Method for getting an asset from a GESExtractable

#### Parameters

self | The GESExtractable from which to retrieve a GESAsset |

#### Returns

The GESAsset or `NULL` if none has been set.

[transfer none][nullable]

### ges_extractable_set_asset ()

    gboolean
    ges_extractable_set_asset (GESExtractable *self,
                               GESAsset *asset);

Method to set the asset which instantiated the specified object

Return: `TRUE` if `asset` could be set `FALSE` otherwize

#### Parameters

self | Target object |
asset | The GESAsset to set. | [transfer none]

### ges_extractable_get_id ()

    gchar *
    ges_extractable_get_id (GESExtractable *self);

#### Parameters

self | The GESExtractable |

#### Returns

The id of the associated GESAsset, free with g_free.

[transfer full]

## Types and Values

### GESExtractable

    typedef struct _GESExtractable GESExtractable;

### GESExtractableInterface

    typedef struct {
      GTypeInterface parent;

      GType asset_type;

      GESExtractableCheckId check_id;
      gboolean can_update_asset;

      void (*set_asset)                  (GESExtractable *self,
                                             GESAsset *asset);

      gboolean (*set_asset_full)         (GESExtractable *self,
                                          GESAsset *asset);

      GParameter *(*get_parameters_from_id) (const gchar *id,
                                             guint *n_params);

      gchar * (*get_id)                     (GESExtractable *self);

      GType (*get_real_extractable_type)    (GType wanted_type,
                                             const gchar *id);

      gboolean (*register_metas)            (GESExtractableInterface *self,
                                             GObjectClass *klass,
                                             GESAsset *asset);

      gpointer _ges_reserved[GES_PADDING];
    } GESExtractableInterface;