]> git.donarmstrong.com Git - lilypond.git/blob - lily/lyric-combine-music.cc
(class Music): include SCM init argument.
[lilypond.git] / lily / lyric-combine-music.cc
1 /*   
2   lyric-combine-music.cc --  implement Lyric_combine_music
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1999--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #include "lyric-combine-music.hh"
11
12 #include "pitch.hh"
13
14 Lyric_combine_music::Lyric_combine_music (SCM x)
15   : Music (x)
16 {
17 }
18
19 MAKE_SCHEME_CALLBACK(Lyric_combine_music,length_callback,1);
20 SCM
21 Lyric_combine_music::length_callback (SCM m)
22 {
23   Music * me = unsmob_music (m);
24   Music *melody = unsmob_music (scm_car (me->get_property ("elements")));
25   return melody->get_length ().smobbed_copy ();
26 }
27
28 Music*
29 Lyric_combine_music::get_music () const
30 {
31   SCM l = get_property ("elements");
32   if (!scm_is_pair (l))
33     return 0;
34   return unsmob_music (scm_car (l));
35 }
36
37
38 Music*
39 Lyric_combine_music::get_lyrics () const
40 {
41   SCM l = get_property ("elements");
42   if (!scm_is_pair (l))
43     return 0;
44   l = scm_cdr (l);
45   if (!scm_is_pair (l))
46     return 0;
47   return unsmob_music (scm_car (l));
48 }
49
50
51 ADD_MUSIC (Lyric_combine_music);