-- $Date: 2004/03/08 10:45:27 $
-- $Revision: 1.3 $
-- $Author: jcrocholl $
-- $Hash: f27f35facaf6155152ad481e6281bfbb $

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

with Real_Numbers; use Real_Numbers;
with Music.Notes; use Music.Notes;
with Clefs; use Clefs;
with Keys; use Keys;
with Times; use Times;
with Music.Notes; use Music.Notes;
with Music.Barlines; use Music.Barlines;

package Collectors is

   -- Public representation.
   type Collector is abstract tagged limited private;

   -- Pointer to representation data.
   type Collector_Access is access all Collector'Class;

   procedure Add_Stave
     (This : access Collector-- The collector object instance.
     is abstract;

   procedure Add_Measure
     (This : access Collector-- The collector object instance.
     is abstract;

   procedure Add_Clef
     (This : access Collector-- The collector object instance.
      Add  : access Clef)      -- Add this clef.
     is abstract;

   procedure Add_Key
     (This : access Collector-- The collector object instance.
      Add  : access Key)       -- Add this key.
     is abstract;

   procedure Add_Time
     (This : access Collector-- The collector object instance.
      Add  : access Time)      -- Add this time signature.
     is abstract;

   procedure Set_Barline
     (This : access Collector-- The collector object instance.
      Set  : access Barline)   -- Set this barline.
     is abstract;

   procedure Add_Chord
     (This : access Collector-- The collector object instance.
     is abstract;

   procedure Add_Note
     (This : access Collector-- The collector object instance.
      Add  : access Note)      -- Add this note.
     is abstract;

private

   -- Private representation.
   type Collector is abstract tagged limited null record;

end Collectors;