-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.8 $
-- $Author: jcrocholl $
-- $Hash: dff60c4181e462865801c8b6d256fc04 $

-- This file was automatically created with ado.php.
-- Manual changes will be lost when it is updated.

with Enum_Strings; use Enum_Strings;

package Times is

   type Symbol_Enum is (Common, Cut, Single_Number, Normal);
   function To_Symbol_Enum is new To_Enum(Symbol_Enum);

   -- Public representation.
   type Time is limited private;

   -- Pointer to representation data.
   type Time_Access is access all Time;

   -- Constructor for instances.
   function Create
     (Symbol       : in Symbol_Enum := Normal; -- The initial symbol.
      Beats        : in Positive;              -- The initial beats.
      Beat_Type    : in Positive;              -- The initial beat type.
      Senza_Misura : in Boolean)               -- The initial senza misura.
     return Time_Access;                       -- The newly created time.

   -- Accessor to read the symbol of a time.
   function Get_Symbol
     (This : access Time-- The time to read from.
     return Symbol_Enum;  -- The symbol of that time.

   -- Accessor to read the beats of a time.
   function Get_Beats
     (This : access Time-- The time to read from.
     return Positive;     -- The beats of that time.

   -- Accessor to read the beat type of a time.
   function Get_Beat_Type
     (This : access Time-- The time to read from.
     return Positive;     -- The beat type of that time.

   -- Accessor to read the senza misura of a time.
   function Get_Senza_Misura
     (This : access Time-- The time to read from.
     return Boolean;      -- The senza misura of that time.

private

   -- Private representation.
   type Time is limited record
      Symbol       : Symbol_Enum := Normal; -- How to print this time signature.
      Beats        : Positive;              -- Number of beats per measure.
      Beat_Type    : Positive;              -- Denominator.
      Senza_Misura : Boolean;               -- Explicitly no time signature.
   end record;

end Times;