A value mapping object that attaches multiple control sources to a guint gobject properties representing a color. A control value of 0.0 will turn the color component off and a value of 1.0 will be the color level. # Implements [`ARGBControlBindingExt`](trait.ARGBControlBindingExt.html), [`gst::ControlBindingExt`](../gst/trait.ControlBindingExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) Trait containing all `ARGBControlBinding` methods. # Implementors [`ARGBControlBinding`](struct.ARGBControlBinding.html) Create a new control-binding that attaches the given `gst::ControlSource` to the `glib::object::Object` property. ## `object` the object of the property ## `property_name` the property-name to attach the control source ## `cs_a` the control source for the alpha channel ## `cs_r` the control source for the red channel ## `cs_g` the control source for the green channel ## `cs_b` the control source for the blue channel # Returns the new `ARGBControlBinding` An internal structure for value+time and various temporary values used for interpolation. This "inherits" from GstTimedValue. Copies a `ControlPoint` # Returns A copy of `self` Frees all data allocated by a `ControlPoint` instance. A value mapping object that attaches control sources to gobject properties. It will map the control values directly to the target property range. If a non-absolute direct control binding is used, the value range [0.0 ... 1.0] is mapped to full target property range, and all values outside the range will be clipped. An absolute control binding will not do any value transformations. # Implements [`DirectControlBindingExt`](trait.DirectControlBindingExt.html), [`gst::ControlBindingExt`](../gst/trait.ControlBindingExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) Trait containing all `DirectControlBinding` methods. # Implementors [`DirectControlBinding`](struct.DirectControlBinding.html) Create a new control-binding that attaches the `gst::ControlSource` to the `glib::object::Object` property. It will map the control source range [0.0 ... 1.0] to the full target property range, and clip all values outside this range. ## `object` the object of the property ## `property_name` the property-name to attach the control source ## `cs` the control source # Returns the new `DirectControlBinding` Create a new control-binding that attaches the `gst::ControlSource` to the `glib::object::Object` property. It will directly map the control source values to the target property range without any transformations. ## `object` the object of the property ## `property_name` the property-name to attach the control source ## `cs` the control source # Returns the new `DirectControlBinding` `InterpolationControlSource` is a `gst::ControlSource`, that interpolates values between user-given control points. It supports several interpolation modes and property types. To use `InterpolationControlSource` get a new instance by calling `InterpolationControlSource::new`, bind it to a `glib::object::ParamSpec` and set some control points by calling `TimedValueControlSourceExt::set`. All functions are MT-safe. # Implements [`InterpolationControlSourceExt`](trait.InterpolationControlSourceExt.html), [`TimedValueControlSourceExt`](trait.TimedValueControlSourceExt.html), [`gst::ControlSourceExt`](../gst/trait.ControlSourceExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) Trait containing all `InterpolationControlSource` methods. # Implementors [`InterpolationControlSource`](struct.InterpolationControlSource.html) This returns a new, unbound `InterpolationControlSource`. # Returns a new, unbound `InterpolationControlSource`. The various interpolation modes available. steps-like interpolation, default linear interpolation cubic interpolation (natural), may overshoot the min or max values set by the control point, but is more 'curvy' monotonic cubic interpolation, will not produce any values outside of the min-max range set by the control points (Since: 1.8) `LFOControlSource` is a `gst::ControlSource`, that provides several periodic waveforms as control values. To use `LFOControlSource` get a new instance by calling `LFOControlSource::new`, bind it to a `glib::object::ParamSpec` and set the relevant properties. All functions are MT-safe. # Implements [`LFOControlSourceExt`](trait.LFOControlSourceExt.html), [`gst::ControlSourceExt`](../gst/trait.ControlSourceExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) Trait containing all `LFOControlSource` methods. # Implementors [`LFOControlSource`](struct.LFOControlSource.html) This returns a new, unbound `LFOControlSource`. # Returns a new, unbound `LFOControlSource`. Specifies the amplitude for the waveform of this `LFOControlSource`. Specifies the amplitude for the waveform of this `LFOControlSource`. Specifies the frequency that should be used for the waveform of this `LFOControlSource`. It should be large enough so that the period is longer than one nanosecond. Specifies the frequency that should be used for the waveform of this `LFOControlSource`. It should be large enough so that the period is longer than one nanosecond. Specifies the value offset for the waveform of this `LFOControlSource`. Specifies the value offset for the waveform of this `LFOControlSource`. Specifies the timeshift to the right that should be used for the waveform of this `LFOControlSource` in nanoseconds. To get a n nanosecond shift to the left use "(GST_SECOND / frequency) - n". Specifies the timeshift to the right that should be used for the waveform of this `LFOControlSource` in nanoseconds. To get a n nanosecond shift to the left use "(GST_SECOND / frequency) - n". Specifies the waveform that should be used for this `LFOControlSource`. Specifies the waveform that should be used for this `LFOControlSource`. The various waveform modes available. sine waveform square waveform saw waveform reverse saw waveform triangle waveform A `gst::ControlBinding` that forwards requests to another `gst::ControlBinding` Feature: `v1_12` # Implements [`gst::ControlBindingExt`](../gst/trait.ControlBindingExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) `ProxyControlBinding` forwards all access to data or `sync_values()` requests from `property_name` on `object` to the control binding at `ref_property_name` on `ref_object`. Feature: `v1_12` ## `object` a `gst::Object` ## `property_name` the property name in `object` to control ## `ref_object` a `gst::Object` to forward all `gst::ControlBinding` requests to ## `ref_property_name` the property_name in `ref_object` to control # Returns a new `gst::ControlBinding` that proxies the control interface between properties on different `gst::Object`'s Base class for `gst::ControlSource` that use time-stamped values. When overriding bind, chain up first to give this bind implementation a chance to setup things. All functions are MT-safe. This is an Abstract Base Class, you cannot instantiate it. # Implements [`TimedValueControlSourceExt`](trait.TimedValueControlSourceExt.html), [`gst::ControlSourceExt`](../gst/trait.ControlSourceExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) Trait containing all `TimedValueControlSource` methods. # Implementors [`InterpolationControlSource`](struct.InterpolationControlSource.html), [`TimedValueControlSource`](struct.TimedValueControlSource.html), [`TriggerControlSource`](struct.TriggerControlSource.html) Find last value before given timestamp in control point list. If all values in the control point list come after the given timestamp or no values exist, `None` is returned. For use in control source implementations. ## `timestamp` the search key # Returns the found `glib::SequenceIter` or `None` Returns a read-only copy of the list of `gst::TimedValue` for the given property. Free the list after done with it. # Returns a copy of the list, or `None` if the property isn't handled by the controller Get the number of control points that are set. # Returns the number of control points that are set. Set the value of given controller-handled property at a certain time. ## `timestamp` the time the control-change is scheduled for ## `value` the control-value # Returns FALSE if the values couldn't be set, TRUE otherwise. Sets multiple timed values at once. ## `timedvalues` a list with `gst::TimedValue` items # Returns FALSE if the values couldn't be set, TRUE otherwise. Used to remove the value of given controller-handled property at a certain time. ## `timestamp` the time the control-change should be removed from # Returns FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise. Used to remove all time-stamped values of given controller-handled property Emitted right after the new value has been added to `self_` ## `timed_value` The newly added `gst::TimedValue` Emitted right after the new value has been set on `timed_signals` ## `timed_value` The `gst::TimedValue` where the value changed Emitted when `timed_value` is removed from `self_` ## `timed_value` The removed `gst::TimedValue` `TriggerControlSource` is a `gst::ControlSource`, that returns values from user-given control points. It allows for a tolerance on the time-stamps. To use `TriggerControlSource` get a new instance by calling `TriggerControlSource::new`, bind it to a `glib::object::ParamSpec` and set some control points by calling `TimedValueControlSourceExt::set`. All functions are MT-safe. # Implements [`TriggerControlSourceExt`](trait.TriggerControlSourceExt.html), [`TimedValueControlSourceExt`](trait.TimedValueControlSourceExt.html), [`gst::ControlSourceExt`](../gst/trait.ControlSourceExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html) Trait containing all `TriggerControlSource` methods. # Implementors [`TriggerControlSource`](struct.TriggerControlSource.html) This returns a new, unbound `TriggerControlSource`. # Returns a new, unbound `TriggerControlSource`.