]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lyric-combine-music.cc
release: 1.5.29
[lilypond.git] / lily / lyric-combine-music.cc
index f474443bcaf96b7308e3ab6b2d65901e115a3502..3ab20f6d33af597aef3f625f2c25915e45cffdbb 100644 (file)
@@ -3,26 +3,24 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1999--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
 #include "lyric-combine-music.hh"
 #include "lyric-combine-music-iterator.hh"
-#include "musical-pitch.hh"
+#include "pitch.hh"
 
-Lyric_combine_music::Lyric_combine_music (Music * m, Music * l)
+Lyric_combine_music::Lyric_combine_music (SCM l)
+  : Music (l)
 {
-  set_mus_property ("music", m->self_scm ());
-  set_mus_property ("lyrics", l->self_scm ());  
-
-  set_mus_property ("type",
+  set_mus_property ("iterator-ctor",
                    Lyric_combine_music_iterator::constructor_cxx_function);
 }
 
 
 void
-Lyric_combine_music::transpose (Musical_pitch p)
+Lyric_combine_music::transpose (Pitch p)
 {
   music_l ()->transpose (p);
   lyrics_l () ->transpose (p);
@@ -35,8 +33,8 @@ Lyric_combine_music::length_mom () const
   return music_l ()->length_mom ();
 }
 
-Musical_pitch
-Lyric_combine_music::to_relative_octave (  Musical_pitch p )
+Pitch
+Lyric_combine_music::to_relative_octave (Pitch p)
 {
   p = music_l ()->to_relative_octave (p);
   return lyrics_l () ->to_relative_octave (p);
@@ -48,14 +46,33 @@ Lyric_combine_music::compress (Moment m)
   music_l ()->compress (m);
 }
 
+
+
 Music*
 Lyric_combine_music::music_l () const
 {
-  return unsmob_music (get_mus_property ("music"));
+  SCM l = get_mus_property ("elements");
+  if (!gh_pair_p (l))
+    return 0;
+  return unsmob_music (gh_car (l));
 }
 
+
 Music*
 Lyric_combine_music::lyrics_l () const
 {
-  return unsmob_music (get_mus_property ("lyrics"));
+  SCM l = get_mus_property ("elements");
+  if (!gh_pair_p (l))
+    return 0;
+  l = gh_cdr (l);
+  if (!gh_pair_p (l))
+    return 0;
+  return unsmob_music (gh_car (l));
 }
+
+Lyric_combine_music::Lyric_combine_music ()
+  : Music (SCM_EOL)
+{
+}
+
+ADD_MUSIC (Lyric_combine_music);