2 music-list.cc -- implement Music_list, Chord, Voice
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
13 #include "music-list.hh"
15 Music_list::Music_list (Music_list
const&s
)
18 multi_level_i_
= s
.multi_level_i_
;
19 for (iter (s
.music_p_list_
.top(), i
); i
.ok (); i
++)
23 IMPLEMENT_IS_TYPE_B1(Music_list
, Music
);
24 IMPLEMENT_IS_TYPE_B1(Voice
,Music_list
);
25 IMPLEMENT_IS_TYPE_B1(Chord
,Music_list
);
28 Chord::time_int() const
31 for (iter (music_p_list_
.top(), i
); i
.ok (); i
++)
32 m
.unite (i
->time_int());
38 Chord::translate (Moment m
)
40 for (iter (music_p_list_
.top(), i
); i
.ok (); i
++)
55 Voice::time_int() const
58 for (iter (music_p_list_
.top(), i
); i
.ok (); i
++)
60 MInterval interval
= i
->time_int();
65 if (!interval
.empty_b())
66 last
+= interval
.length();
68 return offset_mom_
+ MInterval (0,last
);
72 Voice::translate (Moment dt
)
78 Music_list::Music_list()
84 Music_list::add (Music
*m_p
)
89 m_p
->parent_music_l_
= this;
90 music_p_list_
.bottom().add (m_p
);
94 Music_list::transpose (Melodic_req
const*rq
)
96 for (iter (music_p_list_
.top(),i
); i
.ok (); i
++)
101 Music_list::do_print() const
104 for (iter (music_p_list_
.top(),i
); i
.ok (); i
++)
109 IMPLEMENT_IS_TYPE_B1(Request_chord
, Chord
);
112 Request_chord::Request_chord()