Hosted by
|
with Keys; use Keys;
with Times; use Times;
with Lists;
with Music; use Music;
with Clefs; use Clefs;
with Music.Notes; use Music.Notes;
with Music.Directions; use Music.Directions;
with Music.Barlines; use Music.Barlines;
package Measures is
package Clef_Lists is new Lists(Clef_Access);
subtype Clef_List is Clef_Lists.List;
subtype Clef_List_Access is Clef_Lists.List_Access;
package Time_Lists is new Lists(Time_Access);
subtype Time_List is Time_Lists.List;
subtype Time_List_Access is Time_Lists.List_Access;
package Music_Lists is new Lists(Music_Data_Access);
subtype Music_List is Music_Lists.List;
subtype Music_List_Access is Music_Lists.List_Access;
type Measure is limited private;
type Measure_Access is access all Measure;
function Create
(Number : in Natural := 0)
return Measure_Access;
function Get_Number
(This : access Measure)
return Natural;
procedure Set_Divisions
(This : access Measure;
Divisions : in Positive := 1);
function Get_Divisions
(This : access Measure)
return Positive;
procedure Set_Key
(This : access Measure;
Key : in Key_Access);
function Get_Key
(This : access Measure)
return Key_Access;
procedure Set_Staves
(This : access Measure;
Staves : in Natural := 0);
function Get_Staves
(This : access Measure)
return Natural;
function Get_Clefs
(This : access Measure)
return Clef_List_Access;
function Get_Times
(This : access Measure)
return Time_List_Access;
function Get_Musics
(This : access Measure)
return Music_List_Access;
procedure Add_Clef
(This : access Measure;
Add : access Clef);
procedure Add_Time
(This : access Measure;
Add : access Time);
procedure Add_Music
(This : access Measure;
Add : access Music_Data'Class);
private
type Measure is limited record
Number : Natural := 0;
Divisions : Positive := 1;
Key : Key_Access;
Staves : Natural := 0;
Clefs : Clef_List_Access;
Times : Time_List_Access;
Musics : Music_List_Access;
end record;
end Measures;
|