testtimer.c
资源名称:NETVIDEO.rar [点击查看]
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- /* 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;
- static Uint32 ticktock(Uint32 interval)
- {
- ++ticks;
- return(interval);
- }
- static Uint32 callback(Uint32 interval, void *param)
- {
- printf("Timer %d : param = %dn", interval, (int) param);
- return interval;
- }
- int main(int argc, char *argv[])
- {
- int desired;
- SDL_TimerID t1, t2, t3;
- if ( SDL_Init(SDL_INIT_TIMER) < 0 ) {
- fprintf(stderr, "Couldn't load SDL: %sn", SDL_GetError());
- exit(1);
- }
- atexit(SDL_Quit);
- /* 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 secondsn");
- 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 msn",
- 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 1n");
- t2 = SDL_AddTimer(50, callback, (void*)2);
- if(!t2)
- fprintf(stderr,"Could not create timer 2n");
- t3 = SDL_AddTimer(233, callback, (void*)3);
- if(!t3)
- fprintf(stderr,"Could not create timer 3n");
- /* Wait 10 seconds */
- printf("Waiting 10 secondsn");
- SDL_Delay(10*1000);
- printf("Removing timer 1 and waiting 5 more secondsn");
- SDL_RemoveTimer(t1);
- SDL_Delay(5*1000);
- SDL_RemoveTimer(t2);
- SDL_RemoveTimer(t3);
- return(0);
- }