]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/ligature-engraver.cc
* scm/lily.scm (collect-scores-for-book): new function.
[lilypond.git] / lily / ligature-engraver.cc
index a026118b98667e4b2dc3406725988d42bd772aa6..0e221aa38d86911a27de38af9e9a0c122ec29f6a 100644 (file)
@@ -12,7 +12,8 @@
 #include "note-head.hh"
 #include "rest.hh"
 #include "warn.hh"
-#include "translator-group.hh"
+#include "context.hh"
+
 
 /*
  * This abstract class provides the general framework for ligatures of
@@ -79,7 +80,7 @@ Ligature_engraver::try_music (Music *m)
 {
   if (m->is_mus_type ("ligature-event"))
     {
-      Direction d = to_dir (m->get_mus_property ("span-direction"));
+      Direction d = to_dir (m->get_property ("span-direction"));
       reqs_drul_[d] = m;
       return true;
     }
@@ -114,9 +115,9 @@ Ligature_engraver::override_stencil_callback ()
 {
   SCM target_callback = ly_symbol2scm ("print-function");
   SCM source_callback = ly_symbol2scm ("ligature-primitive-callback");
-  SCM noteHeadProperties = updated_grob_properties (daddy_trans_, ly_symbol2scm ("NoteHead"));
+  SCM noteHeadProperties = updated_grob_properties (context (), ly_symbol2scm ("NoteHead"));
   SCM value = ly_cdr (scm_sloppy_assq (source_callback, noteHeadProperties));
-  execute_pushpop_property (daddy_trans_, ly_symbol2scm ("NoteHead"),
+  execute_pushpop_property (context (), ly_symbol2scm ("NoteHead"),
                            target_callback, value);
 }
 
@@ -138,7 +139,7 @@ Ligature_engraver::revert_stencil_callback ()
 {
   SCM symbol = ly_symbol2scm ("NoteHead");
   SCM key = ly_symbol2scm ("print-function");
-  execute_pushpop_property (daddy_trans_, symbol, key, SCM_UNDEFINED);
+  execute_pushpop_property (context (), symbol, key, SCM_UNDEFINED);
 }
 
 void
@@ -173,7 +174,7 @@ Ligature_engraver::process_music ()
   if (ligature_)
     {
       // TODO: maybe forbid breaks only if not transcribing
-      top_engraver ()->forbid_breaks ();
+      get_score_engraver ()->forbid_breaks ();
     }
 
   if (reqs_drul_[START])
@@ -187,7 +188,7 @@ Ligature_engraver::process_music ()
       prev_start_req_ = reqs_drul_[START];
       ligature_ = create_ligature_spanner ();
       brew_ligature_primitive_proc =
-       ligature_->get_grob_property ("ligature-primitive-callback");
+       ligature_->get_property ("ligature-primitive-callback");
       if (brew_ligature_primitive_proc == SCM_EOL)
        {
          warning ("Ligature_engraver: ligature-primitive-callback undefined");
@@ -204,8 +205,9 @@ Ligature_engraver::process_music ()
        }
 
       ligature_start_mom_ = now_mom ();
-      
-      announce_grob(ligature_, reqs_drul_[START]->self_scm());
+
+      // TODO: dump cause into make_item/spanner. 
+      // announce_grob (ligature_, reqs_drul_[START]->self_scm ());
       override_stencil_callback ();
     }
 }
@@ -270,12 +272,12 @@ Ligature_engraver::acknowledge_grob (Grob_info info)
       if (Note_head::has_interface (info.grob_))
        {
          primitives_.push (info);
-         info.grob_->set_grob_property ("print-function",
+         info.grob_->set_property ("print-function",
                                         brew_ligature_primitive_proc);
        }
       if (Rest::has_interface (info.grob_))
        {
-         info.music_cause ()->origin ()->warning (_ ("ligature may not contain rest; ignoring rest"));
+         info.music_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest"));
          prev_start_req_->origin ()->warning (_ ("ligature was started here"));
          // TODO: maybe better should stop ligature here rather than
          // ignoring the rest?