/[pcsx2_0.9.7]/trunk/3rdparty/SDL-1.3.0-5387/test/testtimer.c
ViewVC logotype

Contents of /trunk/3rdparty/SDL-1.3.0-5387/test/testtimer.c

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.22