Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
90 lines (71 loc) · 1.95 KB

testtimer.c

File metadata and controls

90 lines (71 loc) · 1.95 KB
 
Apr 26, 2001
Apr 26, 2001
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Test program to check the resolution of the SDL timer on the current
platform
*/
#include <stdlib.h>
#include <stdio.h>
#include "SDL.h"
#define DEFAULT_RESOLUTION 1
static int ticks = 0;
Jul 10, 2006
Jul 10, 2006
15
16
static Uint32 SDLCALL
ticktock(Uint32 interval)
Apr 26, 2001
Apr 26, 2001
17
{
Jul 10, 2006
Jul 10, 2006
18
19
++ticks;
return (interval);
Apr 26, 2001
Apr 26, 2001
20
21
}
Jul 10, 2006
Jul 10, 2006
22
23
static Uint32 SDLCALL
callback(Uint32 interval, void *param)
Apr 26, 2001
Apr 26, 2001
24
{
Jul 10, 2006
Jul 10, 2006
25
26
printf("Timer %d : param = %d\n", interval, (int) (uintptr_t) param);
return interval;
Apr 26, 2001
Apr 26, 2001
27
28
}
Jul 10, 2006
Jul 10, 2006
29
30
int
main(int argc, char *argv[])
Apr 26, 2001
Apr 26, 2001
31
{
Jul 10, 2006
Jul 10, 2006
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
int desired;
SDL_TimerID t1, t2, t3;
if (SDL_Init(SDL_INIT_TIMER) < 0) {
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
return (1);
}
/* Start the timer */
desired = 0;
if (argv[1]) {
desired = atoi(argv[1]);
}
if (desired == 0) {
desired = DEFAULT_RESOLUTION;
}
SDL_SetTimer(desired, ticktock);
/* Wait 10 seconds */
printf("Waiting 10 seconds\n");
SDL_Delay(10 * 1000);
/* Stop the timer */
SDL_SetTimer(0, NULL);
/* Print the results */
if (ticks) {
fprintf(stderr,
"Timer resolution: desired = %d ms, actual = %f ms\n",
desired, (double) (10 * 1000) / ticks);
}
/* Test multiple timers */
printf("Testing multiple timers...\n");
t1 = SDL_AddTimer(100, callback, (void *) 1);
if (!t1)
fprintf(stderr, "Could not create timer 1: %s\n", SDL_GetError());
t2 = SDL_AddTimer(50, callback, (void *) 2);
if (!t2)
fprintf(stderr, "Could not create timer 2: %s\n", SDL_GetError());
t3 = SDL_AddTimer(233, callback, (void *) 3);
if (!t3)
fprintf(stderr, "Could not create timer 3: %s\n", SDL_GetError());
/* Wait 10 seconds */
printf("Waiting 10 seconds\n");
SDL_Delay(10 * 1000);
printf("Removing timer 1 and waiting 5 more seconds\n");
SDL_RemoveTimer(t1);
SDL_Delay(5 * 1000);
SDL_RemoveTimer(t2);
SDL_RemoveTimer(t3);
SDL_Quit();
return (0);
Apr 26, 2001
Apr 26, 2001
90
}