diff --git a/docs/gstreamer-controller/docs.md b/docs/gstreamer-controller/docs.md new file mode 100644 index 000000000..e6ae0ac66 --- /dev/null +++ b/docs/gstreamer-controller/docs.md @@ -0,0 +1,339 @@ + + +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 +`gobject::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 +`gobject::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 +`gobject::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 `gobject::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 `gobject::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 `gobject::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`. diff --git a/docs/src/lib.rs b/docs/src/lib.rs index f1646ff3c..d05301bbe 100644 --- a/docs/src/lib.rs +++ b/docs/src/lib.rs @@ -20,6 +20,7 @@ pub enum Library { GstAudio, GstApp, Gst, + GstController, } fn docs(lib: Library) -> &'static str { @@ -40,6 +41,7 @@ fn docs(lib: Library) -> &'static str { Library::GstAudio => include_str!("../gstreamer-audio/docs.md"), Library::GstApp => include_str!("../gstreamer-app/docs.md"), Library::Gst => include_str!("../gstreamer/docs.md"), + Library::GstController => include_str!("../gstreamer-controller/docs.md"), } }