]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/percent-repeat-engraver.cc
* lily/pfb.cc (LY_DEFINE): ly:ttf->pfa, new function.
[lilypond.git] / lily / percent-repeat-engraver.cc
index 2639dfabdc32609998887328f219413f35292747..1914d1f52f3f5d617a110535ae192d1b4fe0d90d 100644 (file)
@@ -3,13 +3,11 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 2000--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
-#include "engraver.hh"
 #include "repeated-music.hh"
-#include "engraver-group-engraver.hh"
 #include "global-context.hh"
 #include "warn.hh"
 #include "misc.hh"
 #include "item.hh"
 #include "percent-repeat-iterator.hh"
 #include "bar-line.hh"
-
 #include "score-engraver.hh"
-#include "context.hh"
-
 
 /**
   This acknowledges repeated music with "percent" style.  It typesets
@@ -39,7 +34,7 @@ class Percent_repeat_engraver : public Engraver
 public:
   TRANSLATOR_DECLARATIONS (Percent_repeat_engraver);
 protected:
-  Repeated_music * repeat_;
+  Music *repeat_;
 
   /// moment (global time) where beam started.
   Moment start_mom_;
@@ -71,7 +66,7 @@ Percent_repeat_engraver::Percent_repeat_engraver ()
 {
   perc_  = 0;
   finished_perc_ = 0;
-  repeat_ =0;
+  repeat_ = 0;
 
   double_percent_ = 0;
 }
@@ -79,14 +74,13 @@ Percent_repeat_engraver::Percent_repeat_engraver ()
 bool
 Percent_repeat_engraver::try_music (Music * m)
 {
-  Repeated_music * rp = dynamic_cast<Repeated_music*> (m);
-  if (rp
-      && rp->get_property ("iterator-ctor")
+  if (m->is_mus_type ("repeated-music")
+      && m->get_property ("iterator-ctor")
          == Percent_repeat_iterator::constructor_proc
       && !repeat_)
     {
-      body_length_ = rp->body_get_length ();
-      int count =   rp->repeat_count ();
+      body_length_ = Repeated_music::body_get_length (m);
+      int count = Repeated_music::repeat_count (m);
       
       Moment now = now_mom ();
       start_mom_ = now;
@@ -107,7 +101,7 @@ Percent_repeat_engraver::try_music (Music * m)
          return false;
        }
 
-      repeat_ = rp;
+      repeat_ = m;
 
       
       Global_context *global = get_global_context ();
@@ -139,7 +133,7 @@ Percent_repeat_engraver::process_music ()
          finished_perc_ = perc_;
          typeset_perc ();
          perc_ = make_spanner ("PercentRepeat", repeat_->self_scm ());
-         SCM col =get_property ("currentCommandColumn");
+         SCM col = get_property ("currentCommandColumn");
          perc_->set_bound (LEFT, unsmob_grob (col));
        }
       else if (repeat_sign_type_ == DOUBLE_MEASURE)
@@ -173,7 +167,7 @@ Percent_repeat_engraver::typeset_perc ()
 {
   if (finished_perc_)
     {
-      SCM col =get_property ("currentCommandColumn");
+      SCM col = get_property ("currentCommandColumn");
       finished_perc_->set_bound (RIGHT, unsmob_grob (col));
       finished_perc_ = 0;
     }
@@ -210,7 +204,7 @@ Percent_repeat_engraver::stop_translation_timestep ()
 
 
 
-ENTER_DESCRIPTION (Percent_repeat_engraver,
+ADD_TRANSLATOR (Percent_repeat_engraver,
 /* descr */       "Make whole bar and double bar repeats.",
 /* creats*/       "PercentRepeat DoublePercentRepeat",
 /* accepts */     "repeated-music",