]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lyric-combine-music-iterator.cc
* lily/parser.yy (command_element): move clef stuff into Scheme.
[lilypond.git] / lily / lyric-combine-music-iterator.cc
index 127945b3d6276e47848c17c2f7b76560bbc3e3ce..5f3598186cc84fd0e31328479b0c1e3f0f547b35 100644 (file)
@@ -10,7 +10,7 @@
 #include "translator-group.hh"
 #include "lyric-combine-music-iterator.hh"
 #include "lyric-combine-music.hh"
-#include "musical-request.hh"
+#include "request.hh"
 #include "note-head.hh"
 #include "grob.hh"
 
 /*
   Ugh, why static?
  */
-Busy_playing_req *busy_req;
-Melisma_req *melisma_start_req;
-Melisma_req *melisma_stop_req;
-Melisma_playing_req * melisma_playing_req;
+Music *busy_req;
+Music *melisma_start_req;
+Music *melisma_stop_req;
+Music *melisma_playing_req;
 
 Lyric_combine_music_iterator::Lyric_combine_music_iterator ()
 {
   if (!busy_req)
     {
-      busy_req = new Busy_playing_req;
-      melisma_playing_req = new Melisma_playing_req;
-      melisma_stop_req = new Melisma_req;
-      melisma_start_req = new Melisma_req;      
-      melisma_start_req->set_span_dir (START);
-      melisma_stop_req->set_span_dir (STOP);
+      busy_req
+       = make_music_by_name (ly_symbol2scm ("BusyPlayingEvent"));
+      melisma_playing_req
+       = make_music_by_name (ly_symbol2scm ("MelismaPlayingEvent"));
+      melisma_stop_req
+       = make_music_by_name (ly_symbol2scm ("MelismaEvent"));
+      melisma_start_req
+       = make_music_by_name (ly_symbol2scm ("MelismaEvent"));
+
+      melisma_start_req->set_mus_property ("span-direction", gh_int2scm (START));
+      melisma_stop_req->set_mus_property ("span-direction", gh_int2scm (STOP));
     }
   
   music_iter_ =0;
@@ -136,8 +141,13 @@ Lyric_combine_music_iterator::do_quit ()
 Lyric_combine_music_iterator::Lyric_combine_music_iterator (Lyric_combine_music_iterator const & src)
     : Music_iterator (src)
 {
-  lyric_iter_ = src.lyric_iter_ ? src.lyric_iter_->clone () : 0;
-  music_iter_ = src.music_iter_ ? src.music_iter_->clone () : 0;  
+  lyric_iter_ = 0;
+  music_iter_ = 0;
+
+  if (src.lyric_iter_)
+    lyric_iter_ =  src.lyric_iter_->clone ();
+  if (src.music_iter_)
+    music_iter_ =  src.music_iter_->clone ();
 
   if (lyric_iter_)
     scm_gc_unprotect_object (lyric_iter_->self_scm());