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>
12 #include "music-list.hh"
14 Music_list::Music_list(Music_list const&s)
16 multi_level_i_ = s.multi_level_i_;
17 for (iter(s.music_p_list_.top(), i); i.ok(); i++)
21 IMPLEMENT_STATIC_NAME(Music_list);
22 IMPLEMENT_STATIC_NAME(Chord);
23 IMPLEMENT_STATIC_NAME(Voice);
24 IMPLEMENT_IS_TYPE_B1(Music_list, Music);
25 IMPLEMENT_IS_TYPE_B1(Voice,Music_list);
26 IMPLEMENT_IS_TYPE_B1(Chord,Music_list);
29 Chord::time_int()const
32 for (iter(music_p_list_.top(), i); i.ok(); i++)
33 m.unite(i->time_int());
37 Chord::translate(Moment m)
39 for (iter(music_p_list_.top(), i); i.ok(); i++)
54 Voice::time_int() const
57 for (iter(music_p_list_.top(), i); i.ok(); i++)
58 last += i->time_int().length();
59 return offset_mom_ + MInterval(0,last);
63 Voice::translate(Moment dt)
69 Music_list::Music_list()
75 Music_list::add(Music*m_p)
80 m_p->parent_music_l_ = this;
81 music_p_list_.bottom().add(m_p);
85 Music_list::transpose(Melodic_req const*rq)
87 for (iter(music_p_list_.top(),i); i.ok(); i++)
92 Music_list::do_print()const
95 for (iter(music_p_list_.top(),i); i.ok(); i++)
100 IMPLEMENT_IS_TYPE_B1(Voice_element, Chord);
101 IMPLEMENT_STATIC_NAME(Voice_element);
103 Voice_element::Voice_element()