]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.99
authorfred <fred>
Tue, 26 Mar 2002 23:57:25 +0000 (23:57 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:57:25 +0000 (23:57 +0000)
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/include/musical-request.hh
lily/include/request.hh
lily/request.cc

index 0da8f321c6f9ba820212fcc40453a060d827e931..9befc70458d23fc62a47614b32c7e87e051c5335 100644 (file)
@@ -36,7 +36,7 @@ class Dynamic_engraver : public Engraver
   Spanner * finished_cresc_p_;
   Spanner * cresc_p_;
 
-  Dynamic_script_req* script_req_l_;
+  Text_script_req* script_req_l_;
   
   Span_req * current_cresc_req_;
   Drul_array<Span_req*> accepted_spanreqs_drul_;
@@ -90,9 +90,10 @@ Dynamic_engraver::do_post_move_processing ()
 bool
 Dynamic_engraver::do_try_music (Music * m)
 {
-  if (Dynamic_script_req* d = dynamic_cast <Dynamic_script_req*> (m))
+  if (dynamic_cast <Text_script_req*> (m)
+      && m->get_mus_property ("text-type") == ly_symbol2scm ("dynamic"))
     {
-      script_req_l_ = d;
+      script_req_l_ = dynamic_cast<Text_script_req*> (m);
       return true;
     }
   else if (Span_req* s =  dynamic_cast <Span_req*> (m))
@@ -132,8 +133,9 @@ Dynamic_engraver::do_process_music ()
          Axis_group_interface::set_interface (line_spanner_);
          Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS);
 
-         Request * rq = accepted_spanreqs_drul_[START];
-         if (script_req_l_) rq =  script_req_l_ ;
+         Music * rq = accepted_spanreqs_drul_[START];
+         if (script_req_l_)
+           rq =  script_req_l_ ;
          announce_element (line_spanner_, rq);
                         
 
index 92e53acd4947e8e5a8ce7c05505901df1bf5946c..7818776d04478d95696cc99a9c57bea77c5d5239 100644 (file)
@@ -33,7 +33,7 @@ protected:
   virtual void do_pre_move_processing ();
 
 private:
-  Dynamic_script_req* script_req_l_;
+  Music* script_req_l_;
   Audio_dynamic* audio_p_;
 };
 
@@ -133,9 +133,10 @@ Dynamic_performer::do_try_music (Music* r)
 {
   if (!script_req_l_)
     {
-      if(Dynamic_script_req* d = dynamic_cast <Dynamic_script_req*> (r))
+      if( dynamic_cast <Text_script_req*> (r)
+         && r->get_mus_property ("text-type") == ly_symbol2scm ("dynamic"))
        {
-         script_req_l_ = d;
+         script_req_l_ = r;
          return true;
        }
     }
index 5fb7299a69cbfc8c4730ce39a97a44e15116e9b0..8ecb9a55a22bcb0797068b6b20912bee44102b8e 100644 (file)
@@ -72,11 +72,6 @@ protected:
   virtual bool do_equal_b (Request const*) const;
 };
 
-class Dynamic_script_req : public Script_req
-{
-protected:
-  VIRTUAL_COPY_CONS (Music);
-};
 
 /// request which has some kind of pitch
 struct Melodic_req :virtual Request
index 3792ee507bf8c8b5e1cc51084b2031872f7a9efc..31cf4f8cb0f01afb770a588e0e6fb439e037abca 100644 (file)
@@ -39,9 +39,8 @@ protected:
 class Script_req : public virtual Request
 {
 public:
-  Direction dir_;
-  void set_direction (Direction d ) { dir_ =  d; }
-  Direction get_direction () const { return dir_; }
+  void set_direction (Direction d);
+  Direction get_direction () const;
 
   VIRTUAL_COPY_CONS(Music);
   Script_req ();
index 3b39385c4bed45896d7065cab3e08fd586d7b3b2..a8db23eec93f09f9a304a483d2b26302a10c8e79 100644 (file)
@@ -28,3 +28,19 @@ Request::Request ()
 {
   set_mus_property ("type", ly_symbol2scm ("request"));
 }
+
+void
+Script_req::set_direction (Direction d)
+{
+  set_mus_property ("direction", gh_int2scm (d));
+}
+
+Direction
+Script_req::get_direction () const
+{
+  SCM d = get_mus_property ("direction");
+
+  return (isdir_b (d)) ?  to_dir (d) : CENTER;
+}
+
+