]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/dynamic-performer.cc
* scripts/lilypond-book.py (output): Remove obsolete(!?)
[lilypond.git] / lily / dynamic-performer.cc
index 0860f3fa225f04fde3315e6dffaa54585102c0f5..ad0859e09af90815c74629769b0192dadbd141ac 100644 (file)
@@ -3,16 +3,15 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2000--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 2000--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performer.hh"
 
 #include "audio-item.hh"
-#include "music.hh"
+#include "stream-event.hh"
 #include "translator.icc"
 
-
 /*
   TODO:
 
@@ -25,12 +24,12 @@ class Dynamic_performer : public Performer
 public:
   TRANSLATOR_DECLARATIONS (Dynamic_performer);
 protected:
-  virtual bool try_music (Music *event);
   void stop_translation_timestep ();
-  virtual void create_audio_elements ();
+  void process_music ();
 
+  DECLARE_TRANSLATOR_LISTENER (absolute_dynamic);
 private:
-  Music *script_event_;
+  Stream_event *script_event_;
   Audio_dynamic *audio_;
 };
 
@@ -41,7 +40,7 @@ Dynamic_performer::Dynamic_performer ()
 }
 
 void
-Dynamic_performer::create_audio_elements ()
+Dynamic_performer::process_music ()
 {
   if (script_event_)
     {
@@ -78,16 +77,14 @@ Dynamic_performer::create_audio_elements ()
          SCM s = get_property ("midiInstrument");
 
          if (!scm_is_string (s))
-           s = get_property ("instrument");
+           s = get_property ("instrumentName");
 
          if (!scm_is_string (s))
            s = scm_makfrom0str ("piano");
 
          SCM eq = get_property ("instrumentEqualizer");
          if (ly_is_procedure (eq))
-           {
-             s = scm_call_1 (eq, s);
-           }
+           s = scm_call_1 (eq, s);
 
          if (is_number_pair (s))
            {
@@ -113,23 +110,17 @@ Dynamic_performer::stop_translation_timestep ()
     }
 }
 
-bool
-Dynamic_performer::try_music (Music *r)
+IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_performer, absolute_dynamic);
+void
+Dynamic_performer::listen_absolute_dynamic (Stream_event *r)
 {
   if (!script_event_)
-    {
-      if (r->is_mus_type ("absolute-dynamic-event")) // fixme.
-       {
-         script_event_ = r;
-         return true;
-       }
-    }
-  return false;
+    script_event_ = r;
 }
 
 ADD_TRANSLATOR (Dynamic_performer,
-               /*descr*/                "",
-               /* creats*/ "",
-               /* accepts */ "absolute-dynamic-event",
-               /*reads */"dynamicAbsoluteVolumeFunction midiMaximumVolume midiMinimumVolume midiInstrument instrumentEqualizer",
+               /* doc */                "",
+               /* creat*/ "",
+               /* accept */ "absolute-dynamic-event",
+               /* read */ "dynamicAbsoluteVolumeFunction midiMaximumVolume midiMinimumVolume midiInstrument instrumentEqualizer",
                /*writes*/"");