2 part-combine-music.cc -- implement Part_combine_music
4 source file of the GNU LilyPond music typesetter
6 (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
10 #include "part-combine-music.hh"
11 #include "part-combine-music-iterator.hh"
12 #include "musical-pitch.hh"
14 Part_combine_music::Part_combine_music (SCM what, Music * f, Music * s)
16 assert (gh_string_p (what));
17 set_mus_property ("what", what);
18 set_mus_property ("one", f->self_scm ());
19 set_mus_property ("two", s->self_scm ());
21 scm_unprotect_object (f->self_scm());
22 scm_unprotect_object (s->self_scm());
24 set_mus_property ("type",
25 Part_combine_music_iterator::constructor_cxx_function);
29 Part_combine_music::transpose (Musical_pitch p)
31 first_l ()->transpose (p);
32 second_l () ->transpose (p);
38 Part_combine_music::length_mom () const
40 return first_l ()->length_mom ();
44 Part_combine_music::to_relative_octave (Musical_pitch p)
46 p = first_l ()->to_relative_octave (p);
47 return second_l ()->to_relative_octave (p);
51 Part_combine_music::compress (Moment m)
53 first_l ()->compress (m);
54 second_l ()->compress (m);
58 Part_combine_music::first_l () const
60 return unsmob_music (get_mus_property ("one"));
64 Part_combine_music::second_l () const
66 return unsmob_music (get_mus_property ("two"));