TimelineObject: add a function to sort list of applied effects

This commit is contained in:
Thibault Saunier 2011-01-31 11:15:33 +01:00 committed by Edward Hervey
parent 0e4528112d
commit 070be5aff3

View file

@ -54,6 +54,8 @@ static void
track_object_priority_changed_cb (GESTrackObject * child,
GParamSpec * arg G_GNUC_UNUSED, GESTimelineObject * object);
gint sort_track_effects (gpointer a, gpointer b, GESTimelineObject * object);
G_DEFINE_ABSTRACT_TYPE (GESTimelineObject, ges_timeline_object,
G_TYPE_INITIALLY_UNOWNED);
@ -738,6 +740,30 @@ ges_timeline_object_get_track_objects (GESTimelineObject * object)
return ret;
}
gint
sort_track_effects (gpointer a, gpointer b, GESTimelineObject * object)
{
guint prio_offset_a, prio_offset_b;
ObjectMapping *map_a, *map_b;
GESTrackObject *obj_a, *obj_b;
obj_a = GES_TRACK_OBJECT (a);
obj_b = GES_TRACK_OBJECT (b);
map_a = find_object_mapping (object, obj_a);
map_b = find_object_mapping (object, obj_b);
prio_offset_a = map_a->priority_offset;
prio_offset_b = map_b->priority_offset;
if ((gint) prio_offset_a > (guint) prio_offset_b)
return 1;
if ((guint) prio_offset_a < (guint) prio_offset_b)
return -1;
return 0;
}
/*
* PROPERTY NOTIFICATIONS FROM TRACK OBJECTS