]> git.donarmstrong.com Git - lilypond.git/blob - lily/part-combine-music.cc
155f2de24cd102cf7e66ec4cb21671191c3f01c8
[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 "musical-pitch.hh"
12
13 Part_combine_music::Part_combine_music (String what, Music * f, Music * s)
14 {
15   what_str_ = what;
16   set_mus_property ("one", f->self_scm ());
17   set_mus_property ("two", s->self_scm ());  
18
19   scm_unprotect_object (f->self_scm());
20   scm_unprotect_object (s->self_scm());  
21
22   set_mus_property ("type", ly_symbol2scm ("part-combined-music"));
23 }
24
25 void
26 Part_combine_music::transpose (Musical_pitch p)
27 {
28   first_l ()->transpose (p);
29   second_l () ->transpose (p);
30 }
31
32
33
34 Moment
35 Part_combine_music::length_mom () const
36 {
37   return first_l ()->length_mom ();
38 }
39
40 Musical_pitch
41 Part_combine_music::to_relative_octave (Musical_pitch p)
42 {
43   p = first_l ()->to_relative_octave (p);
44   return second_l ()->to_relative_octave (p);
45 }
46
47 void
48 Part_combine_music::compress (Moment m)
49 {
50   first_l ()->compress (m);
51   second_l ()->compress (m);
52 }
53
54 Music*
55 Part_combine_music::first_l () const
56 {
57   return unsmob_music (get_mus_property ("one"));
58 }
59
60 Music*
61 Part_combine_music::second_l () const
62 {
63   return unsmob_music (get_mus_property ("two"));
64 }