-- $Date: 2004/03/08 11:05:10 $
-- $Revision: 1.5 $
-- $Author: jcrocholl $
-- $Hash: 59781160c720951e48878b00df2cd54c $

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

with Ada.Tags; use Ada.Tags;
with Music; use Music;
with Enum_Strings; use Enum_Strings;

package Music.Barlines is

   type Location_Enum is (Left, Right);
   function To_Location_Enum is new To_Enum(Location_Enum);

   type Bar_Style_Enum is (Regular, Dotted, Heavy, Light_Light,
     Light_Heavy, Heavy_Light, Heavy_Heavy, None);
   function To_Bar_Style_Enum is new To_Enum(Bar_Style_Enum);

   -- Public representation.
   type Barline is new Music_Data with private;

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

   -- Pointer to representation data.
   type Barline_Access is access all Barline;

   -- Constructor for instances.
   function Create
     (Location  : in Location_Enum;  -- The initial location.
      Bar_Style : in Bar_Style_Enum-- The initial bar style.
     return Barline_Access;          -- The newly created barline.

   -- Accessor to read the location of a barline.
   function Get_Location
     (This : access Barline-- The barline to read from.
     return Location_Enum;   -- The location of that barline.

   -- Accessor to read the bar style of a barline.
   function Get_Bar_Style
     (This : access Barline-- The barline to read from.
     return Bar_Style_Enum;  -- The bar style of that barline.

private

   -- Private representation.
   type Barline is
     new Music_Data with
      record
         Location  : Location_Enum;
         Bar_Style : Bar_Style_Enum;
      end record;

   -- Work-around for GNAT bug.
   Barline_Tag : constant String := "music.barlines.barline";

end Music.Barlines;