nuclear@12: /* nuclear@12: New demosystem by Nuclear / Mindlapse nuclear@12: Copyright (C) 2011-2013 John Tsiombikas nuclear@12: nuclear@12: This program is free software: you can redistribute it and/or modify nuclear@12: it under the terms of the GNU General Public License as published by nuclear@12: the Free Software Foundation, either version 3 of the License, or nuclear@12: (at your option) any later version. nuclear@12: nuclear@12: This program is distributed in the hope that it will be useful, nuclear@12: but WITHOUT ANY WARRANTY; without even the implied warranty of nuclear@12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nuclear@12: GNU General Public License for more details. nuclear@12: nuclear@12: You should have received a copy of the GNU General Public License nuclear@12: along with this program. If not, see . nuclear@12: */ nuclear@9: #ifndef DSYS_IMPL_H_ nuclear@9: #define DSYS_IMPL_H_ nuclear@9: nuclear@9: #include "dsys.h" nuclear@9: nuclear@9: struct dsys_demo { nuclear@9: demotime_t tm, src_tm, start_tm, stop_tm, duration; nuclear@9: demotime_t stoppage_tm; nuclear@9: nuclear@9: struct dsys_event *evlist; nuclear@9: int num_ev; nuclear@9: nuclear@9: struct dsys_event *nextev, *active; nuclear@9: nuclear@9: int running; nuclear@9: }; nuclear@9: nuclear@9: struct callback { nuclear@9: void (*func)(struct dsys_event*, void*); nuclear@9: void *cls; nuclear@9: nuclear@9: struct callback *next; nuclear@9: }; nuclear@9: nuclear@9: nuclear@9: struct dsys_event { nuclear@9: enum dsys_evtype type; nuclear@9: nuclear@9: char *name; nuclear@9: demotime_t t0, t1; nuclear@9: float val; nuclear@9: nuclear@9: float (*eval)(struct dsys_event*, demotime_t); nuclear@9: nuclear@9: struct callback *cblist; nuclear@9: nuclear@9: struct dsys_event *next, *prev; nuclear@9: }; nuclear@9: nuclear@9: #endif /* DSYS_IMPL_H_ */