mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 22:16:22 +00:00
libs/gst/controller/: make G_TYPE_STRING controlable
Original commit message from CVS: * libs/gst/controller/gstcontroller.c: (gst_controlled_property_set_interpolation_mode), (gst_controlled_property_new): * libs/gst/controller/gstcontroller.h: * libs/gst/controller/gstinterpolation.c: (interpolate_none_get_string_value_array): make G_TYPE_STRING controlable
This commit is contained in:
parent
334b141a32
commit
ff3b09e189
4 changed files with 45 additions and 1 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2006-01-12 Stefan Kost <ensonic@users.sf.net>
|
||||
|
||||
* libs/gst/controller/gstcontroller.c:
|
||||
(gst_controlled_property_set_interpolation_mode),
|
||||
(gst_controlled_property_new):
|
||||
* libs/gst/controller/gstcontroller.h:
|
||||
* libs/gst/controller/gstinterpolation.c:
|
||||
(interpolate_none_get_string_value_array):
|
||||
make G_TYPE_STRING controlable
|
||||
|
||||
2006-01-12 Stefan Kost <ensonic@users.sf.net>
|
||||
|
||||
* tools/README:
|
||||
|
|
|
@ -213,6 +213,11 @@ gst_controlled_property_set_interpolation_mode (GstControlledProperty * self,
|
|||
self->get_value_array =
|
||||
interpolation_methods[mode]->get_enum_value_array;
|
||||
break;
|
||||
case G_TYPE_STRING:
|
||||
self->get = interpolation_methods[mode]->get_string;
|
||||
self->get_value_array =
|
||||
interpolation_methods[mode]->get_string_value_array;
|
||||
break;
|
||||
default:
|
||||
self->get = NULL;
|
||||
self->get_value_array = NULL;
|
||||
|
@ -340,6 +345,12 @@ gst_controlled_property_new (GObject * object, const gchar * name)
|
|||
g_value_set_enum (&prop->default_value, tpspec->default_value);
|
||||
}
|
||||
break;
|
||||
case G_TYPE_STRING:{
|
||||
GParamSpecString *tpspec = G_PARAM_SPEC_STRING (pspec);
|
||||
|
||||
g_value_set_string (&prop->default_value, tpspec->default_value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
GST_WARNING ("incomplete implementation for paramspec type '%s'",
|
||||
G_PARAM_SPEC_TYPE_NAME (pspec));
|
||||
|
|
|
@ -131,6 +131,8 @@ typedef struct _GstInterpolateMethod
|
|||
InterpolateGetValueArray get_boolean_value_array;
|
||||
InterpolateGet get_enum;
|
||||
InterpolateGetValueArray get_enum_value_array;
|
||||
InterpolateGet get_string;
|
||||
InterpolateGetValueArray get_string_value_array;
|
||||
} GstInterpolateMethod;
|
||||
|
||||
/**
|
||||
|
|
|
@ -135,6 +135,21 @@ interpolate_none_get_enum_value_array (GstControlledProperty * prop,
|
|||
return (TRUE);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
interpolate_none_get_string_value_array (GstControlledProperty * prop,
|
||||
GstClockTime timestamp, GstValueArray * value_array)
|
||||
{
|
||||
gint i;
|
||||
GstClockTime ts = timestamp;
|
||||
gchar **values = (gchar **) value_array->values;
|
||||
|
||||
for (i = 0; i < value_array->nbsamples; i++) {
|
||||
*values = (gchar *) g_value_get_string (interpolate_none_get (prop, ts));
|
||||
ts += value_array->sample_interval;
|
||||
values++;
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
static GstInterpolateMethod interpolate_none = {
|
||||
interpolate_none_get,
|
||||
|
@ -152,7 +167,9 @@ static GstInterpolateMethod interpolate_none = {
|
|||
interpolate_none_get,
|
||||
interpolate_none_get_boolean_value_array,
|
||||
interpolate_none_get,
|
||||
interpolate_none_get_enum_value_array
|
||||
interpolate_none_get_enum_value_array,
|
||||
interpolate_none_get,
|
||||
interpolate_none_get_string_value_array
|
||||
};
|
||||
|
||||
/* returns the default value of the property, except for times with specific values */
|
||||
|
@ -198,6 +215,8 @@ static GstInterpolateMethod interpolate_trigger = {
|
|||
interpolate_trigger_get,
|
||||
NULL,
|
||||
interpolate_trigger_get,
|
||||
NULL,
|
||||
interpolate_trigger_get,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -282,6 +301,8 @@ static GstInterpolateMethod interpolate_linear = {
|
|||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue