dbf-udg

annotate libs/dsys2/dsys.h @ 11:5f99c4c7a9fe

now it looks pretty much ok
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 20 Feb 2013 04:55:03 +0200
parents 7056437a361b
children 1abbed71e9c9
rev   line source
nuclear@9 1 #ifndef DSYS2_H_
nuclear@9 2 #define DSYS2_H_
nuclear@9 3
nuclear@9 4 #include <stdio.h>
nuclear@9 5
nuclear@9 6 struct dsys_demo;
nuclear@9 7 struct dsys_event;
nuclear@9 8
nuclear@9 9 typedef float demotime_t;
nuclear@9 10
nuclear@9 11 enum dsys_evtype {
nuclear@9 12 DSYS_SINGLE,
nuclear@9 13 DSYS_PERIODIC
nuclear@9 14 };
nuclear@9 15
nuclear@9 16 #ifdef __cplusplus
nuclear@9 17 extern "C" {
nuclear@9 18 #endif
nuclear@9 19
nuclear@9 20 struct dsys_demo *dsys_open(const char *fname);
nuclear@9 21 struct dsys_demo *dsys_open_stream(FILE *fp);
nuclear@9 22 void dsys_close(struct dsys_demo *demo);
nuclear@9 23
nuclear@9 24 void dsys_update(struct dsys_demo *demo, demotime_t tm);
nuclear@9 25
nuclear@9 26
nuclear@9 27 void dsys_start(struct dsys_demo *demo);
nuclear@9 28 void dsys_stop(struct dsys_demo *demo);
nuclear@9 29 int dsys_is_running(struct dsys_demo *demo);
nuclear@9 30
nuclear@9 31
nuclear@9 32 demotime_t dsys_duration(struct dsys_demo *demo);
nuclear@9 33 demotime_t dsys_time(struct dsys_demo *demo);
nuclear@9 34 float dsys_progress(struct dsys_demo *demo);
nuclear@9 35
nuclear@9 36 /* seek without continuity */
nuclear@9 37 void dsys_seek(struct dsys_demo *demo, demotime_t tm);
nuclear@9 38 void dsys_seek_norm(struct dsys_demo *demo, float t);
nuclear@9 39
nuclear@9 40 /* seek by accelerating time */
nuclear@9 41 void dsys_warp(struct dsys_demo *demo, demotime_t tm);
nuclear@9 42 void dsys_warp_norm(struct dsys_demo *demo, float t);
nuclear@9 43
nuclear@9 44
nuclear@9 45 /* events */
nuclear@9 46 struct dsys_event *dsys_event(struct dsys_demo *demo, const char *name);
nuclear@9 47
nuclear@11 48 void dsys_set_event_eval(struct dsys_event *ev, float (*eval)(struct dsys_event*, demotime_t));
nuclear@11 49
nuclear@9 50 enum dsys_evtype dsys_event_type(struct dsys_event *ev);
nuclear@9 51 float dsys_event_value(struct dsys_event *ev);
nuclear@9 52
nuclear@9 53 int dsys_event_callback(struct dsys_event *ev, void (*func)(struct dsys_event*, void*), void *cls);
nuclear@9 54 int dsys_event_link(struct dsys_event *ev, float *link);
nuclear@9 55
nuclear@9 56 /* event evaluators */
nuclear@9 57 float dsys_eval_step(struct dsys_event *ev, demotime_t t);
nuclear@9 58 float dsys_eval_lerp(struct dsys_event *ev, demotime_t t);
nuclear@9 59 float dsys_eval_sigmoid(struct dsys_event *ev, demotime_t t);
nuclear@9 60
nuclear@9 61 /* time conversion */
nuclear@9 62 demotime_t dsys_sec_to_dtime(float sec);
nuclear@9 63 demotime_t dsys_msec_to_dtime(unsigned long msec);
nuclear@9 64
nuclear@9 65 float dsys_dtime_to_sec(demotime_t tm);
nuclear@9 66 unsigned long dsys_dtime_to_msec(demotime_t tm);
nuclear@9 67
nuclear@9 68 #ifdef __cplusplus
nuclear@9 69 }
nuclear@9 70 #endif
nuclear@9 71
nuclear@9 72
nuclear@9 73 #endif /* DSYS2_H_ */