home *** CD-ROM | disk | FTP | other *** search
/ developer.apple.com / developer.apple.com.tar / developer.apple.com / tools / CarbonExample.dmg / CarbonExample / test.c < prev    next >
C/C++ Source or Header  |  2004-06-28  |  1KB  |  71 lines

  1. #include <CoreServices/CoreServices.h>
  2.  
  3. void MyInit( void );
  4. void MyTimerProc( TMTaskPtr tmTaskPtr );
  5.  
  6. Boolean gQuitFlag = false;
  7. int gCount = 0;
  8.  
  9. TimerUPP gMyTimerProc = NULL;
  10.  
  11. int main( int argc, char *argv[])
  12. {
  13.     MyInit();
  14.  
  15.     while ( false == gQuitFlag ) {
  16.         ;
  17.     }
  18.  
  19.     DisposeTimerUPP( gMyTimerProc );
  20.  
  21.     return 0;
  22. }
  23.  
  24. void MyTimerProc( TMTaskPtr tmTaskPtr )
  25. {
  26.     DateTimeRec localDateTime;
  27.     
  28.     GetTime( &localDateTime );
  29.  
  30.     printf( "MyTimerProc at %d:%d:%d\n", localDateTime.hour, localDateTime.minute, localDateTime.second );
  31.  
  32.     gCount++;
  33.  
  34.     if ( gCount > 4 )
  35.     {
  36.         gQuitFlag = true;
  37.     }
  38.     else
  39.     {
  40.         PrimeTimeTask( ( QElemPtr )tmTaskPtr, 1000 );
  41.     }
  42. }
  43.  
  44. void MyInit( void )
  45. {
  46.     struct TMTask myTask;
  47.     OSErr err = 0;
  48.  
  49.     gMyTimerProc = NewTimerUPP( MyTimerProc );
  50.  
  51.     if ( gMyTimerProc != NULL )
  52.     {
  53.         myTask.qLink = NULL;
  54.         myTask.qType = 0;
  55.         myTask.tmAddr = gMyTimerProc;
  56.         myTask.tmCount = 0;
  57.         myTask.tmWakeUp = 0;
  58.         myTask.tmReserved = 0;
  59.         
  60.         err = InstallTimeTask( ( QElemPtr )&myTask );
  61.         
  62.         if ( err == noErr )
  63.             PrimeTimeTask( ( QElemPtr )&myTask, 1000 );
  64.         else {
  65.             DisposeTimerUPP( gMyTimerProc );
  66.             gMyTimerProc = NULL;
  67.             gQuitFlag = true;
  68.         }
  69.     }
  70. }
  71.