1. package Allegro.Timers is 
  2.  
  3.     -- Allegro 4.2.2 - Timer routines 
  4.     -- This package is complete 
  5.  
  6.     type A_Timer_Handler is 
  7.         access procedure; 
  8.  
  9.     type A_Paramaterized_Timer_Handler is 
  10.         access procedure( param : Address ); 
  11.  
  12.     type A_Rest_Callback is 
  13.         access procedure; 
  14.  
  15.     type Clock_Ticks is private; 
  16.  
  17.     ---------------------------------------------------------------------------- 
  18.  
  19.     function Get_Retrace_Count return Integer; 
  20.  
  21.     function Install_Int( proc   : not null A_Timer_Handler; 
  22.                           millis : Integer ) return Integer; 
  23.  
  24.     function Install_Int_Ex( proc  : not null A_Timer_Handler; 
  25.                              speed : Clock_Ticks ) return Integer; 
  26.  
  27.     function Install_Param_Int( proc   : not null A_Paramaterized_Timer_Handler; 
  28.                                 param  : Address; 
  29.                                 millis : Integer ) return Integer; 
  30.  
  31.     function Install_Param_Int_Ex( proc  : not null A_Paramaterized_Timer_Handler; 
  32.                                    param : Address; 
  33.                                    speed : Clock_Ticks ) return Integer; 
  34.  
  35.     function Install_Timer return Integer; 
  36.  
  37.     procedure Remove_Int( proc : not null A_Timer_Handler ); 
  38.  
  39.     procedure Remove_Param_Int( proc  : not null A_Paramaterized_Timer_Handler; 
  40.                                 param : Address ); 
  41.  
  42.     procedure Remove_Timer; 
  43.  
  44.     procedure Rest( millis : Unsigned_32 ); 
  45.  
  46.     procedure Rest_Callback( millis : Unsigned_32; callback : A_Rest_Callback ); 
  47.  
  48.     function Msec_To_Ticks( x : Natural ) return Clock_Ticks; 
  49.  
  50.     function Secs_To_Ticks( x : Natural ) return Clock_Ticks; 
  51.  
  52.     function Bps_To_Ticks( x : Natural ) return Clock_Ticks; 
  53.  
  54.     function Bpm_To_Ticks( x : Natural ) return Clock_Ticks; 
  55.  
  56. private 
  57.  
  58.     type Clock_Ticks is new Integer; 
  59.  
  60.     ---------------------------------------------------------------------------- 
  61.  
  62.     pragma Convention( C, A_Timer_Handler ); 
  63.     pragma Convention( C, A_Paramaterized_Timer_Handler ); 
  64.     pragma Convention( C, A_Rest_Callback ); 
  65.  
  66.     pragma Import( C, Get_Retrace_Count, "get_retrace_count" ); 
  67.     pragma Import( C, Install_Int, "install_int" ); 
  68.     pragma Import( C, Install_Int_Ex, "install_int_ex" ); 
  69.     pragma Import( C, Install_Param_Int, "install_param_int" ); 
  70.     pragma Import( C, Install_Param_Int_Ex, "install_param_int_ex" ); 
  71.     pragma Import( C, Install_Timer, "install_timer" ); 
  72.     pragma Import( C, Remove_Int, "remove_int" ); 
  73.     pragma Import( C, Remove_Param_Int, "remove_param_int" ); 
  74.     pragma Import( C, Remove_Timer, "remove_timer" ); 
  75.     pragma Import( C, Rest, "rest" ); 
  76.     pragma Import( C, Rest_Callback, "rest_callback" ); 
  77.  
  78. end Allegro.Timers;