GtkTimeline: remove settable FPS

The frames-per-second for an animation should be controlled by how
fast we can process frames and the the frame-rate of the display; it's not
a meaningful app-settable property.

https://bugzilla.gnome.org/show_bug.cgi?id=685460
This commit is contained in:
Owen W. Taylor 2011-11-10 18:01:44 -05:00
parent db89b600e0
commit cbce5bcd0b
2 changed files with 1 additions and 76 deletions

View File

@ -29,7 +29,6 @@ typedef struct GtkTimelinePriv GtkTimelinePriv;
struct GtkTimelinePriv
{
guint duration;
guint fps;
guint source_id;
GTimer *timer;
@ -49,7 +48,6 @@ struct GtkTimelinePriv
enum {
PROP_0,
PROP_FPS,
PROP_DURATION,
PROP_LOOP,
PROP_DIRECTION,
@ -90,14 +88,6 @@ gtk_timeline_class_init (GtkTimelineClass *klass)
object_class->get_property = gtk_timeline_get_property;
object_class->finalize = gtk_timeline_finalize;
g_object_class_install_property (object_class,
PROP_FPS,
g_param_spec_uint ("fps",
"FPS",
"Frames per second for the timeline",
1, G_MAXUINT,
DEFAULT_FPS,
G_PARAM_READWRITE));
g_object_class_install_property (object_class,
PROP_DURATION,
g_param_spec_uint ("duration",
@ -170,7 +160,6 @@ gtk_timeline_init (GtkTimeline *timeline)
GTK_TYPE_TIMELINE,
GtkTimelinePriv);
priv->fps = DEFAULT_FPS;
priv->duration = 0.0;
priv->direction = GTK_TIMELINE_DIRECTION_FORWARD;
priv->screen = gdk_screen_get_default ();
@ -190,9 +179,6 @@ gtk_timeline_set_property (GObject *object,
switch (prop_id)
{
case PROP_FPS:
_gtk_timeline_set_fps (timeline, g_value_get_uint (value));
break;
case PROP_DURATION:
gtk_timeline_set_duration (timeline, g_value_get_uint (value));
break;
@ -225,9 +211,6 @@ gtk_timeline_get_property (GObject *object,
switch (prop_id)
{
case PROP_FPS:
g_value_set_uint (value, priv->fps);
break;
case PROP_DURATION:
g_value_set_uint (value, priv->duration);
break;
@ -416,9 +399,6 @@ gtk_timeline_start (GtkTimeline *timeline)
else
priv->timer = g_timer_new ();
/* sanity check */
g_assert (priv->fps > 0);
if (priv->screen)
{
settings = gtk_settings_get_for_screen (priv->screen);
@ -430,7 +410,7 @@ gtk_timeline_start (GtkTimeline *timeline)
g_signal_emit (timeline, signals [STARTED], 0);
if (enable_animations)
priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps),
priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (DEFAULT_FPS),
(GSourceFunc) gtk_timeline_run_frame,
timeline);
else
@ -532,57 +512,6 @@ gtk_timeline_get_elapsed_time (GtkTimeline *timeline)
return priv->elapsed_time;
}
/*
* gtk_timeline_get_fps:
* @timeline: A #GtkTimeline
*
* Returns the number of frames per second.
*
* Return Value: frames per second
*/
guint
gtk_timeline_get_fps (GtkTimeline *timeline)
{
GtkTimelinePriv *priv;
g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 1);
priv = timeline->priv;
return priv->fps;
}
/*
* gtk_timeline_set_fps:
* @timeline: A #GtkTimeline
* @fps: frames per second
*
* Sets the number of frames per second that
* the timeline will play.
*/
void
gtk_timeline_set_fps (GtkTimeline *timeline,
guint fps)
{
GtkTimelinePriv *priv;
g_return_if_fail (GTK_IS_TIMELINE (timeline));
g_return_if_fail (fps > 0);
priv = timeline->priv;
priv->fps = fps;
if (gtk_timeline_is_running (timeline))
{
g_source_remove (priv->source_id);
priv->source_id = gdk_threads_add_timeout (FRAME_INTERVAL (priv->fps),
(GSourceFunc) gtk_timeline_run_frame,
timeline);
}
g_object_notify (G_OBJECT (timeline), "fps");
}
/**
* gtk_timeline_get_loop:
* @timeline: A #GtkTimeline

View File

@ -84,10 +84,6 @@ void gtk_timeline_rewind (GtkTimeline
gboolean gtk_timeline_is_running (GtkTimeline *timeline);
guint gtk_timeline_get_elapsed_time (GtkTimeline *timeline);
guint gtk_timeline_get_fps (GtkTimeline *timeline);
void gtk_timeline_set_fps (GtkTimeline *timeline,
guint fps);
gboolean gtk_timeline_get_loop (GtkTimeline *timeline);
void gtk_timeline_set_loop (GtkTimeline *timeline,
gboolean loop);