X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstcontrolsource.h;h=295d46f60a69ef6674bd87ea31ee1a15d669df02;hb=1fda8c3bcf2cd66d404c68843672f8fc963bf3a7;hp=e7be6cfabe7638e5528674559fabffd39a8e3d41;hpb=d3264c4b9d60bd37ddd17c956e0218d88f546ddf;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstcontrolsource.h b/gst/gstcontrolsource.h index e7be6cf..295d46f 100644 --- a/gst/gstcontrolsource.h +++ b/gst/gstcontrolsource.h @@ -16,8 +16,8 @@ * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301, USA. */ #ifndef __GST_CONTROL_SOURCE_H__ @@ -59,109 +59,91 @@ typedef struct _GstValueArray GstValueArray; struct _GstTimedValue { GstClockTime timestamp; - GValue value; + gdouble value; }; /** - * GstValueArray: - * @property_name: the name of the property this array belongs to - * @nbsamples: number of samples requested - * @sample_interval: interval between each sample - * @values: pointer to the array - * - * Structure to receive multiple values at once. - */ -struct _GstValueArray -{ - const gchar *property_name; - gint nbsamples; - GstClockTime sample_interval; - gpointer *values; -}; - -/** - * GstControlSourceGetValue + * GstControlSourceGetValue: * @self: the #GstControlSource instance * @timestamp: timestamp for which a value should be calculated - * @value: a #GValue which will be set to the result. It must be initialized to the correct type. + * @value: a value which will be set to the result. * * Function for returning a value for a given timestamp. * * Returns: %TRUE if the value was successfully calculated. * */ -typedef gboolean (* GstControlSourceGetValue) (GstControlSource *self, GstClockTime timestamp, GValue *value); +typedef gboolean (* GstControlSourceGetValue) (GstControlSource *self, + GstClockTime timestamp, gdouble *value); /** - * GstControlSourceGetValueArray + * GstControlSourceGetValueArray: * @self: the #GstControlSource instance * @timestamp: timestamp for which a value should be calculated - * @value_array: array to put control-values in + * @interval: the time spacing between subsequent values + * @n_values: the number of values + * @values: array to put control-values in * - * Function for returning a #GstValueArray for a given timestamp. + * Function for returning an array of values for starting at a given timestamp. * * Returns: %TRUE if the values were successfully calculated. * */ -typedef gboolean (* GstControlSourceGetValueArray) (GstControlSource *self, GstClockTime timestamp, GstValueArray *value_array); - -/** - * GstControlSourceBind - * @self: the #GstControlSource instance - * @pspec: #GParamSpec that should be bound to - * - * Function for binding a #GstControlSource to a #GParamSpec. - * - * Returns: %TRUE if the property could be bound to the #GstControlSource, %FALSE otherwise. - */ -typedef gboolean (* GstControlSourceBind) (GstControlSource *self, GParamSpec *pspec); +typedef gboolean (* GstControlSourceGetValueArray) (GstControlSource *self, + GstClockTime timestamp, GstClockTime interval, guint n_values, gdouble *values); /** * GstControlSource: * @get_value: Function for returning a value for a given timestamp - * @get_value_array: Function for returning a #GstValueArray for a given timestamp + * @get_value_array: Function for returning a values array for a given timestamp * * The instance structure of #GstControlSource. */ struct _GstControlSource { - GObject parent; + GstObject parent; /*< public >*/ GstControlSourceGetValue get_value; /* Returns the value for a property at a given timestamp */ GstControlSourceGetValueArray get_value_array; /* Returns values for a property in a given timespan */ /*< private >*/ - gboolean bound; gpointer _gst_reserved[GST_PADDING]; }; /** * GstControlSourceClass: * @parent_class: Parent class - * @bind: Class method for binding the #GstControlSource to a specific GParamSpec * * The class structure of #GstControlSource. */ struct _GstControlSourceClass { - GObjectClass parent_class; - - GstControlSourceBind bind; /* Binds the GstControlSource to a specific GParamSpec */ + GstObjectClass parent_class; /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; -GType gst_control_source_get_type (void); +GST_API +GType gst_control_source_get_type (void); /* Functions */ + +GST_API gboolean gst_control_source_get_value (GstControlSource *self, GstClockTime timestamp, - GValue *value); + gdouble *value); +GST_API gboolean gst_control_source_get_value_array (GstControlSource *self, GstClockTime timestamp, - GstValueArray *value_array); - -gboolean gst_control_source_bind (GstControlSource *self, GParamSpec *pspec); + GstClockTime interval, guint n_values, + gdouble *values); +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstControlSource, gst_object_unref) +#endif + +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstValueArray, gst_object_unref) +#endif G_END_DECLS