ClutterTimeline *timeline = l->data;
if (clutter_timeline_is_playing (timeline))
- _clutter_timeline_set_delta (timeline, msecs);
+ clutter_timeline_advance_delta (timeline, msecs);
}
master_clock->msecs_delta = msecs;
void _clutter_id_to_color (guint id, ClutterColor *col);
-void _clutter_timeline_set_delta (ClutterTimeline *timeline,
- guint msecs);
-
/* use this function as the accumulator if you have a signal with
* a G_TYPE_BOOLEAN return value; this will stop the emission as
* soon as one handler returns TRUE
if (priv->fps != fps)
{
- g_object_ref (timeline);
+ g_object_freeze_notify (G_OBJECT (timeline));
priv->fps = fps;
priv->frame_interval = 1000 / priv->fps;
- /* FIXME if the timeline is playing restart */
-
- g_object_freeze_notify (G_OBJECT (timeline));
+ /* if the timeline is playing restart */
+ if (priv->is_playing)
+ clutter_timeline_rewind (timeline);
g_object_notify (G_OBJECT (timeline), "duration");
g_object_notify (G_OBJECT (timeline), "fps");
g_object_thaw_notify (G_OBJECT (timeline));
-
- g_object_unref (timeline);
}
}
}
/*
- * clutter_timeline_set_delta:
+ * clutter_timeline_advance_delta:
* @timeline: a #ClutterTimeline
* @msecs: advance in milliseconds
*
* skip frames.
*/
void
-_clutter_timeline_set_delta (ClutterTimeline *timeline,
- guint msecs)
+clutter_timeline_advance_delta (ClutterTimeline *timeline,
+ guint msecs)
{
ClutterTimelinePrivate *priv;
void clutter_timeline_advance_to_marker (ClutterTimeline *timeline,
const gchar *marker_name);
+/*< private >*/
+void clutter_timeline_advance_delta (ClutterTimeline *timeline,
+ guint msecs);
+
G_END_DECLS
#endif /* _CLUTTER_TIMELINE_H__ */