-- $Date: 2004/03/08 10:46:30 $
-- $Revision: 1.4 $
-- $Author: jcrocholl $
-- $Hash: 4de09a8e65cf6a0c35479e2398278b0c $

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

with Ada.Tags; use Ada.Tags;
with Glyph_Images; use Glyph_Images;
with XML_Writers; use XML_Writers;

package Collectors.MIDI is

   -- Public representation.
   type MIDI_Collector is new Collector with private;

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

   -- Pointer to representation data.
   type MIDI_Collector_Access is access all MIDI_Collector;

   -- Constructor for instances.
   function Create
     return MIDI_Collector_Access-- The newly created midi collector.

   procedure Add_Stave
     (This : access MIDI_Collector); -- The midi collector object instance.

   procedure Add_Measure
     (This : access MIDI_Collector); -- The midi collector object instance.

   procedure Add_Clef
     (This : access MIDI_Collector-- The midi collector object instance.
      Add  : access Clef);          -- Add this clef.

   procedure Add_Key
     (This : access MIDI_Collector-- The midi collector object instance.
      Add  : access Key);           -- Add this key.

   procedure Add_Time
     (This : access MIDI_Collector-- The midi collector object instance.
      Add  : access Time);          -- Add this time signature.

   procedure Set_Barline
     (This : access MIDI_Collector-- The midi collector object instance.
      Set  : access Barline);       -- Set this barline.

   procedure Add_Chord
     (This : access MIDI_Collector); -- The midi collector object instance.

   procedure Add_Note
     (This : access MIDI_Collector-- The midi collector object instance.
      Add  : access Note);          -- Add this note.

   procedure Write
     (This     : access MIDI_Collector-- The midi collector object instance.
      Filename : in String);            -- Write to this file, "-" for stdout.

private

   -- Private representation.
   type MIDI_Collector is
     new Collector with null record;

   -- Work-around for GNAT bug.
   MIDI_Collector_Tag : constant String := "collectors.midi.midi_collector";

end Collectors.MIDI;