diff options
-rw-r--r-- | src/idotimeline.c | 21 | ||||
-rw-r--r-- | src/idotimeline.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/idotimeline.c b/src/idotimeline.c index bcf875b..e3c32a9 100644 --- a/src/idotimeline.c +++ b/src/idotimeline.c @@ -688,6 +688,27 @@ ido_timeline_get_progress (IdoTimeline *timeline) return priv->progress; } +void +ido_timeline_set_progress (IdoTimeline *timeline, gdouble progress) +{ + IdoTimelinePriv *priv; + + g_return_if_fail (IDO_IS_TIMELINE (timeline)); + + priv = IDO_TIMELINE_GET_PRIV (timeline); + + if (priv->source_id) + { + g_timer_stop (priv->timer); + g_source_remove (priv->source_id); + priv->source_id = 0; + } + + priv->progress = progress; + + ido_timeline_start (timeline); +} + gdouble ido_timeline_calculate_progress (gdouble linear_progress, IdoTimelineProgressType progress_type) diff --git a/src/idotimeline.h b/src/idotimeline.h index 66f96a3..5df6b97 100644 --- a/src/idotimeline.h +++ b/src/idotimeline.h @@ -104,6 +104,8 @@ void ido_timeline_set_direction (IdoTimeline IdoTimelineDirection direction); gdouble ido_timeline_get_progress (IdoTimeline *timeline); +void ido_timeline_set_progress (IdoTimeline *timeline, + gdouble progress); gdouble ido_timeline_calculate_progress (gdouble linear_progress, IdoTimelineProgressType progress_type); |