-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.9 $
-- $Author: jcrocholl $
-- $Hash: ffebe29ed8a6c32f248843ed97b8f459 $

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

with Enum_Strings; use Enum_Strings;

package Keys is

   type Mode_Enum is (Default, Major, Minor);
   function To_Mode_Enum is new To_Enum(Mode_Enum);

   -- Public representation.
   type Key is limited private;

   -- Pointer to representation data.
   type Key_Access is access all Key;

   -- Constructor for instances.
   function Create
     (Fifths : in Integer;   -- The initial fifths.
      Mode   : in Mode_Enum-- The initial mode.
     return Key_Access;      -- The newly created key.

   -- Accessor to read the fifths of a key.
   function Get_Fifths
     (This : access Key-- The key to read from.
     return Integer;     -- The fifths of that key.

   -- Accessor to read the mode of a key.
   function Get_Mode
     (This : access Key-- The key to read from.
     return Mode_Enum;   -- The mode of that key.

private

   -- Private representation.
   type Key is limited record
      Fifths : Integer;
      Mode   : Mode_Enum;
   end record;

end Keys;