mirror of
				https://github.com/CPunch/Laika.git
				synced 2025-10-31 10:30:17 +00:00 
			
		
		
		
	- cnc's main.c has an example of scheduling tasks - switched to C11, might go back to C99 if i get the motivation to write a windows-specific getTime() implementation
		
			
				
	
	
		
			32 lines
		
	
	
		
			967 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			967 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef LAIKA_TASK_H
 | |
| #define LAIKA_TASK_H
 | |
| 
 | |
| #include <time.h>
 | |
| 
 | |
| struct sLaika_task;
 | |
| struct sLaika_taskService;
 | |
| typedef void (*taskCallback)(struct sLaika_taskService *service, struct sLaika_task *task, clock_t currTick, void *uData);
 | |
| 
 | |
| struct sLaika_task {
 | |
|     struct sLaika_task *next;
 | |
|     taskCallback callback;
 | |
|     void *uData;
 | |
|     long scheduled;
 | |
| };
 | |
| 
 | |
| struct sLaika_taskService {
 | |
|     struct sLaika_task *headTask;
 | |
| };
 | |
| 
 | |
| void laikaT_initTaskService(struct sLaika_taskService *service);
 | |
| void laikaT_cleanTaskService(struct sLaika_taskService *service);
 | |
| 
 | |
| struct sLaika_task *laikaT_newTask(struct sLaika_taskService *service, int delta, taskCallback callback, void *uData);
 | |
| void laikaT_delTask(struct sLaika_taskService *service, struct sLaika_task *task);
 | |
| 
 | |
| void laikaT_pollTasks(struct sLaika_taskService *service);
 | |
| 
 | |
| /* will return the delta time in ms till the next event. -1 for no tasks scheduled */
 | |
| int laikaT_timeTillTask(struct sLaika_taskService *service);
 | |
| 
 | |
| #endif |