GESExtractableInterface

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

## Synopsis

    #include <ges/ges.h>

                        GESExtractable;
                        GESExtractableInterface;
    gchar *             (*GESExtractableCheckId)            (GType type,
                                                             const gchar *id,
                                                             GError **error);
    GESAsset *          ges_extractable_get_asset           (GESExtractable *self);
    void                ges_extractable_set_asset           (GESExtractable *self,
                                                             GESAsset *asset);
    gchar *             ges_extractable_get_id              (GESExtractable *self);

## 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, GESImageSource, GESLayer, GESOperation, GESOperationClip, GESOverlayClip, GESSource, GESSourceClip, GESTestClip, GESTextOverlay, GESTextOverlayClip, GESTimeline, GESTimelineElement, GESTitleClip, GESTitleSource, GESTrackElement, GESTransition, GESTransitionClip, GESUriClip, GESVideoSource, GESVideoTestSource, GESVideoTransition and GESVideoUriSource.

## Description

FIXME: Long description needed

## Details

### 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);

      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;

### GESExtractableCheckId ()

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

`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

`self` : | The GESExtractable from which to retrieve a GESAsset
Returns : | The GESAsset or `NULL` if none has been set. [transfer none]

### ges_extractable_set_asset ()

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

Method to set the asset which instantiated the specified object

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

### ges_extractable_get_id ()

    gchar *             ges_extractable_get_id              (GESExtractable *self);

`self` : | The GESExtractable
Returns : | The id of the associated GESAsset, free with g_free