## GstDParam

GstDParam — dynamic parameter instance

## Synopsis

    #include <libs/control/control.h>

    struct      GstDParam;
    GstDParam*  gst_dparam_new                  (GType type);
    void        gst_dparam_attach               (GstDParam *dparam,
                                                 GstDParamManager *manager,
                                                 GParamSpec *param_spec,
                                                 gchar *unit_name);
    void        gst_dparam_detach               (GstDParam *dparam);
    void        gst_dparam_do_update_default    (GstDParam *dparam,
                                                 gint64 timestamp,
                                                 GValue *value,
                                                 GstDParamUpdateInfo update_info);

## Object Hierarchy

      GObject
       +----GstObject
             +----GstDParam
                   +----GstDParamSmooth
                   +----GstDParamLinInterp

## Properties

      "value-double"         gdouble              : Read / Write
      "value-float"          gfloat               : Read / Write
      "value-int"            gint                 : Read / Write
      "value-int64"          gint64               : Read / Write

## Signal Prototypes

    "value-changed"
                void        user_function      (GstDParam *gstdparam,
                                                gpointer user_data);

## Description

## Details

### struct GstDParam

    struct GstDParam;

### gst_dparam_new ()

    GstDParam*  gst_dparam_new                  (GType type);

Create a new dynamic parameter controller.

`type` : | the type that this dparam will store
Returns : | a new instance of GstDParam

### gst_dparam_attach ()

    void        gst_dparam_attach               (GstDParam *dparam,
                                                 GstDParamManager *manager,
                                                 GParamSpec *param_spec,
                                                 gchar *unit_name);

Adding the parameter controller to the manager using the supplied specs and unit. See also `gst_dpman_attach_dparam()`.

`dparam` : | GstDParam instance
`manager` : | the GstDParamManager that this dparam belongs to
`param_spec` : | the specification for the parameter
`unit_name` : | the name of the unit

### gst_dparam_detach ()

    void        gst_dparam_detach               (GstDParam *dparam);

Removes a previousely added parameter controller.

`dparam` : | GstDParam instance

### gst_dparam_do_update_default ()

    void        gst_dparam_do_update_default    (GstDParam *dparam,
                                                 gint64 timestamp,
                                                 GValue *value,
                                                 GstDParamUpdateInfo update_info);

Default implementation for changing a dynamic parameter. Subclasses might overwrite the behaviour of this.

`dparam` : | the parameter to update
`timestamp` : | when should the update take place
`value` : | the new value
`update_info` : | unused here

## Properties

"`value-double`" (gdouble : Read / Write) | The value that should be changed if gdouble is the type.
"`value-float`" (gfloat : Read / Write) | The value that should be changed if gfloat is the type.
"`value-int`" (gint : Read / Write) | The value that should be changed if gint is the type.
"`value-int64`" (gint64 : Read / Write) | The value that should be changed if gint64 is the type.

## Signals

### The "value-changed" signal

    void        user_function                  (GstDParam *gstdparam,
                                                gpointer user_data);

`gstdparam` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.