The ControlSource is a base class for control value sources that could be used to get timestamp-value pairs.
A control source essentially is a function over time.
A ControlSource is used by first getting an instance of a specific control-source, creating a binding for the control-source to the target property of the element and then adding the binding to the element. The binding will convert the data types and value range to fit to the bound property.
For implementing a new ControlSource one has to implement ControlSourceGetValue and ControlSourceGetValueArray functions. These are then used by get_value and get_value_array to get values for specific timestamps.