]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/part-combine-music.cc
''
[lilypond.git] / lily / part-combine-music.cc
index ea53d706b5b605a2873f5478563e5289056c4b4b..8724d8607113841323fec17b5dcf12d30d25ae70 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2002 Jan Nieuwenhuizen <janneke@gnu.org>
   
  */
 
 #include "part-combine-music-iterator.hh"
 #include "pitch.hh"
 
-Part_combine_music::Part_combine_music (SCM  what, Music * f, Music * s)
+Part_combine_music::Part_combine_music (SCM l)
+  : Music (l)
 {
-  assert (gh_string_p (what));
-  set_mus_property ("what", what);
-  set_mus_property ("one", f->self_scm ());
-  set_mus_property ("two", s->self_scm ());  
-
-  scm_unprotect_object (f->self_scm());
-  scm_unprotect_object (s->self_scm());  
-
-  set_mus_property ("type",
+  set_mus_property ("iterator-ctor",
                    Part_combine_music_iterator::constructor_cxx_function);
 }
 
@@ -57,11 +50,29 @@ Part_combine_music::compress (Moment m)
 Music*
 Part_combine_music::first_l () const
 {
-  return unsmob_music (get_mus_property ("one"));
+  SCM l = get_mus_property ("elements");
+  if (!gh_pair_p (l))
+    return 0;
+  return unsmob_music (gh_car (l));
 }
 
+
 Music*
 Part_combine_music::second_l () const
 {
-  return unsmob_music (get_mus_property ("two"));
+  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));
+}
+
+
+Part_combine_music::Part_combine_music ()
+  : Music (SCM_EOL)
+{
 }
+
+ADD_MUSIC (Part_combine_music);