diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 48962afffe..89e1453239 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -281,6 +281,7 @@ ges_timeline_object_get_layer ges_timeline_object_find_track_object ges_timeline_object_add_track_object ges_timeline_object_get_effects +ges_timeline_object_get_top_effect_position GES_TIMELINE_OBJECT_DURATION GES_TIMELINE_OBJECT_INPOINT diff --git a/ges/ges-timeline-object.c b/ges/ges-timeline-object.c index ba3e84af72..0e0f8afd10 100644 --- a/ges/ges-timeline-object.c +++ b/ges/ges-timeline-object.c @@ -822,6 +822,24 @@ ges_timeline_object_get_effects (GESTimelineObject * object) return ret; } +/** +* ges_timeline_object_get_top_effect_position: +* +* @object: The origin #GESTimelineObject +* @effect: The #GESTrackEffect we want to get the top position from +* +* Gets the top position of an effect. +* +* Returns: The top position of the effect, -1 if something went wrong. +*/ +gint +ges_timeline_object_get_top_effect_position (GESTimelineObject * object, + GESTrackOperation * effect) +{ + return find_object_mapping (object, + GES_TRACK_OBJECT (effect))->priority_offset; +} + /* * PROPERTY NOTIFICATIONS FROM TRACK OBJECTS */ diff --git a/ges/ges-timeline-object.h b/ges/ges-timeline-object.h index c6b2344158..6650231cbe 100644 --- a/ges/ges-timeline-object.h +++ b/ges/ges-timeline-object.h @@ -244,6 +244,10 @@ ges_timeline_object_add_track_object (GESTimelineObject *object, GESTrackObject GList * ges_timeline_object_get_effects (GESTimelineObject *object); +gint +ges_timeline_object_get_top_effect_position (GESTimelineObject *object, + GESTrackOperation *effect); + G_END_DECLS #endif /* _GES_TIMELINE_OBJECT */ diff --git a/tests/check/ges/effects.c b/tests/check/ges/effects.c index f26e9fa99a..6386b7db85 100644 --- a/tests/check/ges/effects.c +++ b/tests/check/ges/effects.c @@ -135,7 +135,10 @@ GST_START_TEST (test_get_effects_from_tl) effects = ges_timeline_object_get_effects (GES_TIMELINE_OBJECT (source)); for (tmp = effects; tmp; tmp = tmp->next) { - int priority = GES_TRACK_OBJECT (tmp->data)->priority; + gint priority = + ges_timeline_object_get_top_effect_position (GES_TIMELINE_OBJECT + (source), + GES_TRACK_OPERATION (tmp->data)); fail_unless (priority > effect_prio); fail_unless (GES_IS_TRACK_EFFECT (tmp->data)); effect_prio = priority;