4 #include "anim/track.h"
10 void (*destroy)(void);
11 void (*reshape)(int x, int y);
16 void (*update)(long tmsec);
19 void (*keyboard)(int key, int pressed);
20 void (*mouse)(int bn, int pressed, int x, int y);
21 void (*motion)(int x, int y);
23 struct anm_track track;
28 #define MAX_DSYS_SCREENS 64
30 int running; /* run/stop state */
31 int eof; /* end of demo flag, seek back to reset */
34 struct demoscreen *screens[MAX_DSYS_SCREENS];
36 struct demoscreen *act[MAX_DSYS_SCREENS];
39 struct demoscreen *scr_override;
42 struct anm_track *track;
43 float *value; /* values for each track, stored on update */
47 struct demosystem dsys;
50 int dsys_init(const char *fname);
51 void dsys_destroy(void);
53 void dsys_update(void);
58 void dsys_seek_abs(long tm);
59 void dsys_seek_rel(long dt);
60 void dsys_seek_norm(float t);
62 /* overrides the demo sequence, and runs a single screen */
63 struct demoscreen *dsys_find_screen(const char *name);
64 void dsys_run_screen(struct demoscreen *scr);
66 int dsys_add_screen(struct demoscreen *scr);
68 /* demo event tracks */
69 int dsys_add_track(const char *name);
70 int dsys_find_track(const char *name);
71 float dsys_value(const char *name);
73 #endif /* DEMOSYS_H_ */