-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.7 $
-- $Author: jcrocholl $
-- $Hash: ee6ea183a97cf6776afbb9677aae4cc3 $

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

with Enum_Strings; use Enum_Strings;

with Strings; use Strings;

package Lyrics is

   type Syllabic_Enum is (N_Begin, N_End, Middle, Single);
   function To_Syllabic_Enum is new To_Enum(Syllabic_Enum);

   type Special_Enum is (None, Extend, Laughing, Humming);
   function To_Special_Enum is new To_Enum(Special_Enum);

   -- Public representation.
   type Lyric is limited private;

   -- Pointer to representation data.
   type Lyric_Access is access all Lyric;

   -- Constructor for instances.
   function Create
     (Number   : in Natural := 0;  -- The initial number.
      Syllabic : in Syllabic_Enum-- The initial syllabic.
      Text     : in String;        -- The initial text.
      Special  : in Special_Enum)  -- The initial special.
     return Lyric_Access;          -- The newly created lyric.

   -- Accessor to read the number of a lyric.
   function Get_Number
     (This : access Lyric-- The lyric to read from.
     return Natural;       -- The number of that lyric.

   -- Accessor to read the syllabic of a lyric.
   function Get_Syllabic
     (This : access Lyric-- The lyric to read from.
     return Syllabic_Enum-- The syllabic of that lyric.

   -- Accessor to read the text of a lyric.
   function Get_Text
     (This : access Lyric-- The lyric to read from.
     return String;        -- The text of that lyric.

   -- Accessor to read the special of a lyric.
   function Get_Special
     (This : access Lyric-- The lyric to read from.
     return Special_Enum;  -- The special of that lyric.

private

   -- Private representation.
   type Lyric is limited record
      Number   : Natural := 0;
      Syllabic : Syllabic_Enum;
      Text     : String_Access;
      Special  : Special_Enum;
   end record;

end Lyrics;