]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beam-performer.cc
(get_indexed_char): scale metrics by
[lilypond.git] / lily / beam-performer.cc
index 24662aa4e652ae24b6a28d51848809acc1115b5d..70df79d95fe1ce563f3485eca75177ef6b433a8b 100644 (file)
@@ -7,18 +7,14 @@
  */
 
 #include "performer.hh"
-#include "event.hh"
 #include "audio-item.hh"
 #include "audio-column.hh"
-#include "global-translator.hh"
+#include "global-context.hh"
 #include "warn.hh"
 
-/**
-Convert evs to audio beams.
-*/
 class Beam_performer : public Performer {
 public:
-  TRANSLATOR_DECLARATIONS(Beam_performer);
+  TRANSLATOR_DECLARATIONS (Beam_performer);
   
 protected:
   virtual bool try_music (Music *ev) ;
@@ -31,22 +27,24 @@ private:
   bool beam_;
 };
 
+Beam_performer::Beam_performer ()
+{
+  beam_ = false;
+  start_ev_ = 0;
+  now_stop_ev_ = 0;
+}
+
 void 
 Beam_performer::process_music ()
 {
   if (now_stop_ev_)
     {
       beam_ = false;
+      set_melisma (false);
     }
 
   if (start_ev_)
     {
-      if (beam_)
-       {
-         start_ev_->origin ()->warning (_ ("already have a beam"));
-         return;
-       }
-      
       beam_ = true;
       set_melisma (true);
     }
@@ -58,36 +56,28 @@ Beam_performer::set_melisma (bool ml)
 {
   SCM b = get_property ("autoBeaming");
   if (!to_boolean (b))
-    daddy_trans_->set_property ("beamMelismaBusy", ml ? SCM_BOOL_T :SCM_BOOL_F);
+context ()->set_property ("beamMelismaBusy", ml ? SCM_BOOL_T :SCM_BOOL_F);
 }
 
-
 void
 Beam_performer::start_translation_timestep ()
 {
-  if (beam_)
-    {
-      set_melisma (true);
-    }
-  
   start_ev_ = 0;
   now_stop_ev_ = 0;
 }
-
-
  
 bool
 Beam_performer::try_music (Music *m)
 {
   if (m->is_mus_type ("beam-event"))
     {
-      Direction d = to_dir (m->get_mus_property ("span-direction"));
+      Direction d = to_dir (m->get_property ("span-direction"));
 
       if (d == START)
        {
          start_ev_ = m;
        }
-      else if (d==STOP)
+      else if (d == STOP)
        {
          now_stop_ev_ = m;
        }
@@ -96,10 +86,6 @@ Beam_performer::try_music (Music *m)
   return false;
 }
 
-ENTER_DESCRIPTION(Beam_performer,"","",
+ADD_TRANSLATOR (Beam_performer,"","",
                  "beam-event","","","");
 
-Beam_performer::Beam_performer()
-{
-  beam_ = false;
-}