-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.4 $
-- $Author: jcrocholl $
-- $Hash: e7f2d239e8d3d1b644c89ac969934894 $

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

with Ada.Tags; use Ada.Tags;
with Notations; use Notations;
with Placements; use Placements;
with Enum_Strings; use Enum_Strings;

package Notations.Slurs is

   type Slur_Type_Enum is (Start, Stop);
   function To_Slur_Type_Enum is new To_Enum(Slur_Type_Enum);

   -- Public representation.
   type Slur is new Notation with private;

   -- Work-around for GNAT bug.
   Slur_Tag : constant String;

   -- Pointer to representation data.
   type Slur_Access is access all Slur;

   -- Constructor for instances.
   function Create
     (Slur_Type : in Slur_Type_Enum-- The initial slur type.
      Placement : in Placement_Enum-- The initial placement.
      Number    : in Positive)       -- The initial number.
     return Slur_Access;             -- The newly created slur.

   -- Accessor to read the slur type of a slur.
   function Get_Slur_Type
     (This : access Slur)   -- The slur to read from.
     return Slur_Type_Enum-- The slur type of that slur.

   -- Accessor to read the placement of a slur.
   function Get_Placement
     (This : access Slur)   -- The slur to read from.
     return Placement_Enum-- The placement of that slur.

   -- Accessor to read the number of a slur.
   function Get_Number
     (This : access Slur-- The slur to read from.
     return Positive;     -- The number of that slur.

private

   -- Private representation.
   type Slur is
     new Notation with
      record
         Slur_Type : Slur_Type_Enum;
         Placement : Placement_Enum;
         Number    : Positive;
      end record;

   -- Work-around for GNAT bug.
   Slur_Tag : constant String := "notations.slurs.slur";

end Notations.Slurs;