]> git.donarmstrong.com Git - lilypond.git/blob - lily/part-combine-music.cc
7059eca24c49d2515b3edb4e907735ee17ce58d4
[lilypond.git] / lily / part-combine-music.cc
1 /*   
2   part-combine-music.cc --  implement Part_combine_music
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
7   
8  */
9
10 #include "part-combine-music.hh"
11 #include "part-combine-music-iterator.hh"
12 #include "pitch.hh"
13
14 Part_combine_music::Part_combine_music (SCM l)
15   : Music (l)
16 {
17   set_mus_property ("iterator-ctor",
18                     Part_combine_music_iterator::constructor_cxx_function);
19 }
20
21 void
22 Part_combine_music::transpose (Pitch p)
23 {
24   first_l ()->transpose (p);
25   second_l () ->transpose (p);
26 }
27
28
29
30 Moment
31 Part_combine_music::length_mom () const
32 {
33   return first_l ()->length_mom ();
34 }
35
36 Pitch
37 Part_combine_music::to_relative_octave (Pitch p)
38 {
39   p = first_l ()->to_relative_octave (p);
40   return second_l ()->to_relative_octave (p);
41 }
42
43 void
44 Part_combine_music::compress (Moment m)
45 {
46   first_l ()->compress (m);
47   second_l ()->compress (m);
48 }
49
50 Music*
51 Part_combine_music::first_l () const
52 {
53   return unsmob_music (get_mus_property ("one"));
54 }
55
56 Music*
57 Part_combine_music::second_l () const
58 {
59   return unsmob_music (get_mus_property ("two"));
60 }