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