1. -- 
  2. -- Copyright (c) 2013 Kevin Wellwood 
  3. -- All rights reserved. 
  4. -- 
  5. -- This source code is distributed under the Modified BSD License. For terms and 
  6. -- conditions, see license.txt. 
  7. -- 
  8.  
  9. with Interfaces;                        use Interfaces; 
  10. with Interfaces.C;                      use Interfaces.C; 
  11.  
  12. -- Allegro 5.0.9 - Timer routines 
  13. package Allegro.Timers is 
  14.  
  15.     type Allegro_Timer is limited private; 
  16.     type A_Allegro_Timer is access all Allegro_Timer; 
  17.  
  18.     function Allegro_USecs_To_Secs( x : double ) return double; 
  19.  
  20.     function Allegro_MSecs_To_Secs( x : double ) return double; 
  21.  
  22.     function Allegro_BPS_To_Secs( x : double ) return double; 
  23.  
  24.     function Allegro_BPM_To_Secs( x : double ) return double; 
  25.  
  26.     function Al_Create_Timer( speed_secs : double ) return A_Allegro_Timer; 
  27.     pragma Import( C, Al_Create_Timer, "al_create_timer" ); 
  28.  
  29.     procedure Al_Destroy_Timer( timer : in out A_Allegro_Timer ); 
  30.  
  31.     procedure Al_Start_Timer( timer : A_Allegro_Timer ); 
  32.     pragma Import( C, Al_Start_Timer, "al_start_timer" ); 
  33.  
  34.     procedure Al_Stop_Timer( timer : A_Allegro_Timer ); 
  35.     pragma Import( C, Al_Stop_Timer, "al_stop_timer" ); 
  36.  
  37.     function Al_Get_Timer_Started( timer : A_Allegro_Timer ) return Boolean; 
  38.  
  39.     function Al_Get_Timer_Count( timer : A_Allegro_Timer ) return Integer_64; 
  40.     pragma Import( C, Al_Get_Timer_Count, "al_get_timer_count" ); 
  41.  
  42.     procedure Al_Set_Timer_Count( timer : A_Allegro_Timer; count : Integer_64 ); 
  43.     pragma Import( C, Al_Set_Timer_Count, "al_set_timer_count" ); 
  44.  
  45.     procedure Al_Add_Timer_Count( timer : A_Allegro_Timer; diff : Integer_64 ); 
  46.     pragma Import( C, Al_Add_Timer_Count, "al_add_timer_count" ); 
  47.  
  48.     function Al_Get_Timer_Speed( timer : A_Allegro_Timer ) return double; 
  49.     pragma Import( C, Al_Get_Timer_Speed, "al_get_timer_speed" ); 
  50.  
  51.     procedure Al_Set_Timer_Speed( timer      : A_Allegro_Timer; 
  52.                                   speed_secs : double ); 
  53.     pragma Import( C, Al_Set_Timer_Speed, "al_set_timer_speed" ); 
  54.  
  55.     function Al_Get_Timer_Event_Source( timer : A_Allegro_Timer ) return A_Allegro_Event_Source; 
  56.     pragma Import( C, Al_Get_Timer_Event_Source, "al_get_timer_event_source" ); 
  57.  
  58. private 
  59.  
  60.     type Allegro_Timer is limited null record; 
  61.     pragma Convention( C, Allegro_Timer ); 
  62.  
  63. end Allegro.Timers;