/* ccm-timeline.h generated by valac 0.16.1, the Vala compiler, do not modify */


#ifndef __CCM_TIMELINE_H__
#define __CCM_TIMELINE_H__

#include <glib.h>
#include <glib-object.h>
#include <float.h>
#include <math.h>

G_BEGIN_DECLS


#define CCM_TYPE_TIMELINE_DIRECTION (ccm_timeline_direction_get_type ())

#define CCM_TYPE_TIMELINE (ccm_timeline_get_type ())
#define CCM_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CCM_TYPE_TIMELINE, CCMTimeline))
#define CCM_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CCM_TYPE_TIMELINE, CCMTimelineClass))
#define CCM_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CCM_TYPE_TIMELINE))
#define CCM_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CCM_TYPE_TIMELINE))
#define CCM_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CCM_TYPE_TIMELINE, CCMTimelineClass))

typedef struct _CCMTimeline CCMTimeline;
typedef struct _CCMTimelineClass CCMTimelineClass;
typedef struct _CCMTimelinePrivate CCMTimelinePrivate;

typedef enum  {
	CCM_TIMELINE_DIRECTION_FORWARD,
	CCM_TIMELINE_DIRECTION_BACKWARD
} CCMTimelineDirection;

struct _CCMTimeline {
	GObject parent_instance;
	CCMTimelinePrivate * priv;
};

struct _CCMTimelineClass {
	GObjectClass parent_class;
	void (*started) (CCMTimeline* self);
	void (*paused) (CCMTimeline* self);
	void (*new_frame) (CCMTimeline* self, gint inNumFrame);
	void (*completed) (CCMTimeline* self);
};


GType ccm_timeline_direction_get_type (void) G_GNUC_CONST;
GType ccm_timeline_get_type (void) G_GNUC_CONST;
void ccm_timeline_initialize (gint inPriority);
CCMTimeline* ccm_timeline_new (guint inNbFrames, guint inFps);
CCMTimeline* ccm_timeline_construct (GType object_type, guint inNbFrames, guint inFps);
CCMTimeline* ccm_timeline_new_for_duration (guint inDuration);
CCMTimeline* ccm_timeline_construct_for_duration (GType object_type, guint inDuration);
void ccm_timeline_start (CCMTimeline* self);
void ccm_timeline_pause (CCMTimeline* self);
void ccm_timeline_stop (CCMTimeline* self);
void ccm_timeline_rewind (CCMTimeline* self);
void ccm_timeline_advance (CCMTimeline* self, guint inNumFrame);
void ccm_timeline_skip (CCMTimeline* self, gint inNbFrames);
void ccm_timeline_set_priority (gint inPriority);
CCMTimelineDirection ccm_timeline_get_direction (CCMTimeline* self);
void ccm_timeline_set_direction (CCMTimeline* self, CCMTimelineDirection value);
guint ccm_timeline_get_speed (CCMTimeline* self);
void ccm_timeline_set_speed (CCMTimeline* self, guint value);
guint ccm_timeline_get_n_frames (CCMTimeline* self);
void ccm_timeline_set_n_frames (CCMTimeline* self, guint value);
guint ccm_timeline_get_duration (CCMTimeline* self);
void ccm_timeline_set_duration (CCMTimeline* self, guint value);
gboolean ccm_timeline_get_master (CCMTimeline* self);
void ccm_timeline_set_master (CCMTimeline* self, gboolean value);
gboolean ccm_timeline_get_loop (CCMTimeline* self);
void ccm_timeline_set_loop (CCMTimeline* self, gboolean value);
gboolean ccm_timeline_get_is_playing (CCMTimeline* self);
guint ccm_timeline_get_current_frame (CCMTimeline* self);
gdouble ccm_timeline_get_progress (CCMTimeline* self);


G_END_DECLS

#endif
