GESTimelineObject: new API : _find_track_object

This allows getting the TrackObject for a corresponding TimelineObject
and Track combination
This commit is contained in:
Edward Hervey 2010-03-12 17:17:30 +01:00
parent 15be8b3847
commit 62c24ee380
3 changed files with 38 additions and 0 deletions

View file

@ -148,6 +148,7 @@ GES_TIMELINE_OBJECT_START
ges_timeline_object_set_inpoint
ges_timeline_object_set_start
ges_timeline_object_set_duration
ges_timeline_object_find_track_object
<SUBSECTION Standard>
ges_timeline_object_create_track_object
ges_timeline_object_fill_track_object

View file

@ -359,3 +359,36 @@ ges_timeline_object_set_priority (GESTimelineObject * object, guint priority)
object->priority = priority;
}
/**
* ges_timeline_object_find_track_object:
* @object: a #GESTimelineObject
* @track: a #GESTrack
*
* Finds the #GESTrackObject controlled by @object that is used in @track.
*
* Note: The reference count of the returned #GESTrackObject will be increased,
* unref when done with it.
*
* Returns: The #GESTrackObject used by @track, else #NULL.
*/
GESTrackObject *
ges_timeline_object_find_track_object (GESTimelineObject * object,
GESTrack * track)
{
GESTrackObject *ret = NULL;
if (G_LIKELY (object->trackobjects)) {
GList *tmp;
for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp))
if (GES_TRACK_OBJECT (tmp->data)->track == track) {
ret = GES_TRACK_OBJECT (tmp->data);
g_object_ref (ret);
break;
}
}
return ret;
}

View file

@ -161,6 +161,10 @@ ges_timeline_object_fill_track_object (GESTimelineObject * object,
GESTrackObject * trackobj,
GstElement * gnlobj);
GESTrackObject *
ges_timeline_object_find_track_object (GESTimelineObject * object,
GESTrack * track);
G_END_DECLS
#endif /* _GES_TIMELINE_OBJECT */