Hosted by
|
with Score_Instruments; use Score_Instruments;
with Midi_Instruments; use Midi_Instruments;
with Lists;
with Measures;
with Strings; use Strings;
package Parts is
package Measure_Lists is new Lists(Measures.Measure_Access);
subtype Measure_List is Measure_Lists.List;
subtype Measure_List_Access is Measure_Lists.List_Access;
type Part is limited private;
type Part_Access is access all Part;
function Create
(Id : in String)
return Part_Access;
function Get_Id
(This : access Part)
return String;
procedure Set_Name
(This : access Part;
Name : in String);
function Get_Name
(This : access Part)
return String;
procedure Set_Score_Instrument
(This : access Part;
Score_Instrument : in Score_Instrument_Access);
function Get_Score_Instrument
(This : access Part)
return Score_Instrument_Access;
procedure Set_Midi_Instrument
(This : access Part;
Midi_Instrument : in Midi_Instrument_Access);
function Get_Midi_Instrument
(This : access Part)
return Midi_Instrument_Access;
function Get_Measures
(This : access Part)
return Measure_List_Access;
procedure Add_Measure
(This : access Part;
Add : access Measures.Measure);
private
type Part is limited record
Id : String_Access;
Name : String_Access;
Score_Instrument : Score_Instrument_Access;
Midi_Instrument : Midi_Instrument_Access;
Measures : Measure_List_Access;
end record;
end Parts;
|