]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.0
authorfred <fred>
Tue, 26 Mar 2002 21:28:18 +0000 (21:28 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:28:18 +0000 (21:28 +0000)
57 files changed:
lily/abbrev.cc
lily/abbreviation-beam-engraver.cc
lily/auto-plet-engraver.cc
lily/bar-column-engraver.cc
lily/bar-column.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/beam.cc
lily/clef-engraver.cc
lily/collision-engraver.cc
lily/collision.cc
lily/dot-column-engraver.cc
lily/dot-column.cc
lily/dynamic-engraver.cc
lily/engraver.cc
lily/gourlay-breaking.cc
lily/graphical-lisp-element.cc [new file with mode: 0644]
lily/hara-kiri-line-group-engraver.cc
lily/hara-kiri-vertical-group-spanner.cc
lily/include/auto-plet-engraver.hh
lily/include/engraver.hh
lily/include/graphical-lisp-element.hh [new file with mode: 0644]
lily/include/lily-proto.hh
lily/include/score-element-info.hh
lily/include/score-engraver.hh
lily/key-engraver.cc
lily/local-key-item.cc
lily/lyric-engraver.cc
lily/lyric-performer.cc
lily/mark-engraver.cc
lily/note-column.cc
lily/performer.cc
lily/pitch-squash-engraver.cc
lily/plet-engraver.cc
lily/plet-spanner.cc
lily/priority-halign-engraver.cc
lily/rest-collision-engraver.cc
lily/rest-collision.cc
lily/rest-engraver.cc
lily/rhythmic-column-engraver.cc
lily/rhythmic-head.cc
lily/score-element-info.cc
lily/score-engraver.cc
lily/script-column.cc
lily/script.cc
lily/separating-group-spanner.cc
lily/separating-line-group-engraver.cc
lily/single-malt-grouping-item.cc
lily/slur-engraver.cc
lily/slur.cc
lily/span-bar-engraver.cc
lily/span-score-bar-engraver.cc
lily/staff-margin-engraver.cc
lily/stem.cc
lily/text-spanner.cc
lily/tie.cc
lily/time-signature-engraver.cc

index 4af78938bc5c78c2ef3fee0a1ec5bc04feddaa49..eb87945cd775fbac66812fdb3a74982a89f005f3 100644 (file)
@@ -129,7 +129,7 @@ void
 Abbreviation::do_substitute_dependent (Score_element*o, Score_element*n)
 {
   if (stem_l_ == o)
-    stem_l_ = n ? (Stem*)n->access_Item () : 0;
+    stem_l_ = n ? dynamic_cast<Stem*> (n) : 0;
 }
 
 
index 67c09cb7fcbd097e50eed7929202c4d2e3402074..be29437462043ae1f04b27e9318d7dcea687e28c 100644 (file)
@@ -27,11 +27,11 @@ Abbreviation_beam_engraver::Abbreviation_beam_engraver ()
 bool
 Abbreviation_beam_engraver::do_try_request (Request*r)
 {
-  Musical_req* mus_l = r->access_Musical_req ();
+  Musical_req* mus_l = dynamic_cast <Musical_req *> (r);
   if (!mus_l)
     return false;
 
-  Abbreviation_beam_req * b = mus_l->access_Abbreviation_beam_req ();
+  Abbreviation_beam_req * b = dynamic_cast <Abbreviation_beam_req *> (mus_l);
 
   if (!b)
     return false;
@@ -85,7 +85,7 @@ Abbreviation_beam_engraver::acknowledge_element (Score_element_info i)
   if (!abeam_p_ || !i.elem_l_->is_type_b (Stem::static_name ()))
     return;
 
-  Stem* s = (Stem*)i.elem_l_->access_Item ();
+  Stem* s = (Stem*)dynamic_cast <Item *> (i.elem_l_);
 
   int type_i = span_reqs_drul_[LEFT]->type_i_;
   s->flag_i_ = intlog2 (type_i) - 2;
index 8812f6245c4e728e5563f31faffcbc0612a9d0ca..254f029f59a6b5e9e554f2e840bb3880fc5c3026 100644 (file)
@@ -9,30 +9,29 @@
 
 #include "auto-plet-engraver.hh"
 #include "command-request.hh"
-#include "slur.hh"
+#include "plet-spanner.hh"
 #include "note-column.hh"
 
 bool
 Tuplet_engraver::do_try_request (Request *r)
 {
-  Command_req * c = r->access_Command_req ();
+  Command_req * c = dynamic_cast <Command_req *> (r);
   if (!(c &&
-      c->access_Bracket_req ()))
+      dynamic_cast <Bracket_req *> (c)))
     {
       return false;
     }
 
-  Bracket_req * b = c->access_Bracket_req ();
+  Bracket_req * b = dynamic_cast <Bracket_req *> (c);
   bracket_req_arr_.push (b);
   return true;
 }
 
-
 void
 Tuplet_engraver::do_process_requests ()
 {
   int stopcount =0;
-  Link_array<Slur> start_arr;
+  Link_array<Plet_spanner> start_arr;
   
   for (int i=0; i < bracket_req_arr_.size (); i++)
     {
@@ -40,16 +39,17 @@ Tuplet_engraver::do_process_requests ()
        stopcount++;
       if (bracket_req_arr_[i]->spantype == Span_req::START)
        {
-         Slur *sp =new Slur;
-         start_arr.push  (sp);
-         announce_element (Score_element_info (sp, bracket_req_arr_[i]));
+         Plet_spanner* glep = new Plet_spanner ();
+         start_arr.push  (glep);
+// lots of stuff does info->elem_l_->is_type ()
+//       announce_element (Score_element_info (glep, bracket_req_arr_[i]));
        }
     }
 
   for (; stopcount--; )
     {
-      Slur *sp = started_span_p_arr_.pop ();
-      stop_now_span_p_arr_.push (sp);
+      Plet_spanner* glep = started_span_p_arr_.pop ();
+      stop_now_span_p_arr_.push (glep);
     }
 
   for (int i=0; i < start_arr.size (); i++)
@@ -61,9 +61,10 @@ Tuplet_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_column::static_name ()))
     {
-      Note_column *nc = (Note_column*)i.elem_l_->access_Item ();
+      Note_column *nc = (Note_column*)dynamic_cast <Item *> (i.elem_l_);
       for (int j =0; j  <started_span_p_arr_.size (); j++)
-       started_span_p_arr_[j]->add_column (nc);
+       // started_span_p_arr_[j]->add_column (nc);
+       ;
     }
 }
 
index 2f1d760fa512bcf5fd263bf6194319a4128678af..0832448a2a0bc8feb9d12ed615de78b8ac5d98eb 100644 (file)
@@ -52,7 +52,7 @@ Bar_column_engraver::create_column ()
 void
 Bar_column_engraver::acknowledge_element (Score_element_info info)
 {
-  Item * it = info.elem_l_->access_Item ();
+  Item * it = dynamic_cast <Item *> (info.elem_l_);
   if (!it)
     return;
 
index e61c398900b5d1cb9bb36fa580b3133354e6e63c..74ce5386af7a62bb13f114732051f8edc67bab9a 100644 (file)
@@ -28,7 +28,7 @@ Bar_column::do_substitute_dependency (Score_element*o,Score_element*n)
   Script_column::do_substitute_dependency (o,n);
   if (o == bar_l_) 
     {
-      bar_l_ = n ? (Bar*)n->access_Item () : 0;
+      bar_l_ = n ? (Bar*)dynamic_cast <Item *> (n) : 0;
     }
 }
 
index 78721871b1b5da420a5bdcf91178b450a149add6..7a2a515cdc7456684173e3bc28c71eb673bba4a5 100644 (file)
@@ -23,10 +23,10 @@ Bar_engraver::Bar_engraver()
 bool
 Bar_engraver::do_try_request (Request*r_l)
 {
-  Command_req* c_l = r_l->access_Command_req ();
-  if (!c_l|| !c_l->access_Bar_req ()) 
+  Command_req* c_l = dynamic_cast <Command_req *> (r_l);
+  if (!c_l|| !dynamic_cast <Bar_req *> (c_l)) 
     return false;
-  Bar_req  * b= c_l->access_Bar_req ();
+  Bar_req  * b= dynamic_cast <Bar_req *> (c_l);
   if (bar_req_l_ && bar_req_l_->equal_b (b))
     return false;
   
index 76163d5b3fd8f2da5535a35d35d03373742dba6a..380cb651458965476d7045920b3e39d4006cb88f 100644 (file)
@@ -26,7 +26,7 @@ void
 Bar_number_engraver::acknowledge_element (Score_element_info i)
 {
 
-  Item *it=i.elem_l_->access_Item ();
+  Item *it=dynamic_cast <Item *> (i.elem_l_);
   if (script_p_
       || !it || !it->is_type_b (Bar::static_name()))
       return;
index 075f08df2d7d4fe7d2d86daa338b3546ee49ee31..a9dd24bda379306a3309e03769e52b883e604fab 100644 (file)
@@ -126,7 +126,7 @@ void
 Beam::do_substitute_dependent (Score_element*o,Score_element*n)
 {
   if (o->is_type_b (Stem::static_name ()))
-      stems_.substitute ((Stem*)o->access_Item (),  n? (Stem*) n->access_Item ():0);
+      stems_.substitute ((Stem*)dynamic_cast <Item *> (o),  n? (Stem*) dynamic_cast <Item *> (n):0);
 }
 
 Interval
index 8195fbd9bf6c382b4e76f2f489e7fdcf15ac3ebf..462a9c140272e3dc89f91e570545a05707127bc0 100644 (file)
@@ -157,7 +157,7 @@ Clef_engraver::acknowledge_element (Score_element_info info)
     }
 
   /* ugh; should make Clef_referenced baseclass */
-  Item * it_l =info.elem_l_->access_Item ();
+  Item * it_l =dynamic_cast <Item *> (info.elem_l_);
 if (it_l)
   {
   if (it_l->is_type_b (Note_head::static_name ()))
@@ -195,11 +195,11 @@ Clef_engraver::do_creation_processing()
 bool
 Clef_engraver::do_try_request (Request * r_l)
 {
-  Command_req* creq_l= r_l->access_Command_req ();
-  if (!creq_l || !creq_l->access_Clef_change_req ())
+  Command_req* creq_l= dynamic_cast <Command_req *> (r_l);
+  if (!creq_l || !dynamic_cast <Clef_change_req *> (creq_l))
     return false;
 
-  clef_req_l_ = creq_l->access_Clef_change_req ();
+  clef_req_l_ = dynamic_cast <Clef_change_req *> (creq_l);
   read_req (clef_req_l_);
   return true;
 }
index be5ab22866eb77323ef5cce2b501d17f4f3b5d96..d7c6a102abbe2a4f79a9965c9f7747b57f1a051b 100644 (file)
@@ -30,7 +30,7 @@ Collision_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_column::static_name ()))
     {
-      Note_column * c = (Note_column*) i.elem_l_->access_Item ();
+      Note_column * c = (Note_column*) dynamic_cast <Item *> (i.elem_l_);
       if (c->rest_b ())
        return ;
 
index c63c71747c1f300c1971ff94b6ea3acd0ce846dc..3a07ce18e1374f84e9842ca49764973f53fda7bc 100644 (file)
@@ -165,6 +165,6 @@ IMPLEMENT_IS_TYPE_B1(Collision, Item);
 void
 Collision::do_substitute_dependency (Score_element*o_l,Score_element*n_l)
 {
-  clash_l_arr_.substitute ((Note_column*)o_l->access_Item (),
-                          (Note_column*)(n_l?n_l->access_Item ():0));
+  clash_l_arr_.substitute ((Note_column*)dynamic_cast <Item *> (o_l),
+                          (Note_column*)(n_l?dynamic_cast <Item *> (n_l):0));
 }
index 04ae0bfba46d236bd4210ce3a6eaa1321549916a..ae6259ac4c20517f11b7f00965bac3795aacf6c1 100644 (file)
@@ -30,7 +30,7 @@ Dot_column_engraver::do_pre_move_processing ()
 void
 Dot_column_engraver::acknowledge_element (Score_element_info info)
 {
-  Item * i=info.elem_l_->access_Item ();
+  Item * i=dynamic_cast <Item *> (info.elem_l_);
   
   if (! (i && i->is_type_b (Rhythmic_head::static_name ())))
       return;
index bb1885ca88e5660373978cb81aa139bf4dcc5f5d..cee8a3edec21470a64a8d467b31b5d3faae9976b 100644 (file)
@@ -32,8 +32,8 @@ Dot_column::add_head (Rhythmic_head *r)
 void
 Dot_column::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item *oi =o->access_Item ();
-  Item *ni = n?n->access_Item ():0;
+  Item *oi =dynamic_cast <Item *> (o);
+  Item *ni = n?dynamic_cast <Item *> (n):0;
   
   if (oi&&oi->is_type_b (Rhythmic_head::static_name ()))
     head_l_arr_.substitute ((Rhythmic_head*)oi, (Rhythmic_head*)ni);
index 1b7107f80d3ddbbf6bbfdb3392939302c7cbac2d..2b38c4c08eec52421e1b5bd141a116d7773d0ff4 100644 (file)
@@ -34,23 +34,23 @@ Dynamic_engraver::do_post_move_processing()
 bool
 Dynamic_engraver::do_try_request (Request * r)
 {
-  Musical_req * m = r->access_Musical_req ();
+  Musical_req * m = dynamic_cast <Musical_req *> (r);
   if (!m)
     return false;
-  Dynamic_req * d = m->access_Dynamic_req ();
+  Dynamic_req * d = dynamic_cast <Dynamic_req *> (m);
   if (!d)
     return false;
 
 #if 0
-  if (cresc_p_ && d->access_Span_dynamic_req ()
-      && d->access_Span_dynamic_req ()->spantype == Span_req::START)
+  if (cresc_p_ && dynamic_cast <Span_dynamic_req *> (d)
+      && dynamic_cast <Span_dynamic_req *> (d)->spantype == Span_req::START)
     return false;
 #endif
   for (int i=0; i < dynamic_req_l_arr_.size (); i++)
     if (d->equal_b (dynamic_req_l_arr_[i]))
       return true;
 
-  dynamic_req_l_arr_.push (m->access_Dynamic_req ());
+  dynamic_req_l_arr_.push (dynamic_cast <Dynamic_req *> (m));
   return true;
 }
 void
@@ -60,7 +60,7 @@ Dynamic_engraver::do_process_requests()
   for (int i=0; i < dynamic_req_l_arr_.size(); i++)
     {
       Dynamic_req *dreq_l = dynamic_req_l_arr_[i];
-      if (dreq_l->access_Absolute_dynamic_req ())
+      if (dynamic_cast <Absolute_dynamic_req *> (dreq_l))
        {
 
          if (dynamic_p_)
@@ -71,7 +71,7 @@ Dynamic_engraver::do_process_requests()
          
          Text_def * td_p = new Text_def;
          td_p->align_dir_ = CENTER;
-         String loud = dreq_l->access_Absolute_dynamic_req ()->loudness_str ();
+         String loud = dynamic_cast <Absolute_dynamic_req *> (dreq_l)->loudness_str ();
          td_p->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_;
          td_p->style_str_ = "dynamic";
 
@@ -80,9 +80,9 @@ Dynamic_engraver::do_process_requests()
          dynamic_p_ = new Text_item (td_p);
          announce_element (Score_element_info (dynamic_p_, dreq_l));
        }
-      else if (dreq_l->access_Span_dynamic_req ())
+      else if (dynamic_cast <Span_dynamic_req *> (dreq_l))
        {
-         Span_dynamic_req* span_l = dreq_l->access_Span_dynamic_req ();
+         Span_dynamic_req* span_l = dynamic_cast <Span_dynamic_req *> (dreq_l);
          if (span_l->spantype == Span_req::STOP)
            {
              if (!cresc_p_)
index ecad05587023cc8ee2a188e9357a5bb31168b3d7..8a79b6034624437b24ed07b99626e2409683c4e7 100644 (file)
@@ -26,13 +26,13 @@ Engraver::announce_element (Score_element_info i)
   daddy_grav_l()->announce_element (i);
 }
 
-
 void
 Engraver::typeset_element (Score_element*p)
 {
   daddy_grav_l()->typeset_element (p);
 }
 
+
 Paper_def*
 Engraver::paper() const
 {
@@ -57,6 +57,6 @@ Engraver_group_engraver*
 Engraver::daddy_grav_l () const
 {
   return (daddy_trans_l_ )
-       ? (Engraver_group_engraver*) daddy_trans_l_->access_Engraver  ()
+       ? (Engraver_group_engraver*) dynamic_cast <Engraver *> (daddy_trans_l_)
        : 0;
 }
index d8fda8415c363d96d14973201049b74e1e4d4178..8fd59f00d32d66dca2ce5f779e99a4e103248ee9 100644 (file)
@@ -14,7 +14,7 @@
 #include "p-score.hh"
 #include "paper-def.hh"
 
-const HAPPY_DOTS_I = 3;
+const int HAPPY_DOTS_I = 3;
 
 /**
   Helper to trace back an optimal path 
diff --git a/lily/graphical-lisp-element.cc b/lily/graphical-lisp-element.cc
new file mode 100644 (file)
index 0000000..e69de29
index ab12bf878026534798043651112d0f578277e04c..d85437a921f80d3bb7e6147714ca581c18f90b19 100644 (file)
@@ -26,7 +26,7 @@ Hara_kiri_line_group_engraver::typeset_element(Score_element * e)
 {
   if (e->is_type_b (Note_head::static_name ()))
     ((Hara_kiri_vertical_group_spanner*)staffline_p_)->add_note 
-      ((Note_head*)e->access_Item ());
+      ((Note_head*)dynamic_cast <Item *> (e));
 
   Line_group_engraver_group::typeset_element (e);
 }
index 849a2552fa181a6ce70db8a52fea20d5f90bedb5..38468cf91cf8677ad8e3d033e79ebb6500f17d7e 100644 (file)
@@ -44,8 +44,8 @@ void
 Hara_kiri_vertical_group_spanner::do_substitute_dependency (Score_element*o, Score_element*n)
 {
   if (o->is_type_b (Note_head::static_name ()))
-    head_l_arr_.substitute ((Note_head*)o->access_Item (), 
-      (n)? (Note_head*)n->access_Item () : 0);
+    head_l_arr_.substitute ((Note_head*)dynamic_cast <Item *> (o), 
+      (n)? (Note_head*)dynamic_cast <Item *> (n) : 0);
 }
 
 
index a8cafb9c7c414d1c558836a6fb28daf4a688608f..b17e1664156df8bcaacd421c9392ba2b7d1b1767 100644 (file)
@@ -23,8 +23,8 @@ public:
 protected:
   Link_array<Bracket_req> bracket_req_arr_;
 
-  Link_array<Slur> started_span_p_arr_;
-  Link_array<Slur> stop_now_span_p_arr_;
+  Link_array<Plet_spanner> started_span_p_arr_;
+  Link_array<Plet_spanner> stop_now_span_p_arr_;
 
   virtual void do_removal_processing ();
   virtual void acknowledge_element (Score_element_info);
index a8086af1f556cc3d09b79d9b6bff25830c0e4dd4..9dc6594c8eaaca34f5d98830806a7f7e850c57cc 100644 (file)
@@ -36,6 +36,7 @@ protected:
     Invoke walker method to typeset element. Default: pass on to daddy.
     */
   virtual void typeset_element (Score_element*elem_p);
+
     
   /**
     take note of item/spanner
diff --git a/lily/include/graphical-lisp-element.hh b/lily/include/graphical-lisp-element.hh
new file mode 100644 (file)
index 0000000..531322b
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  graphical-lisp-element.hh -- declare Graphical_lisp_element
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+
+#ifndef GRAPHICAL_LISP_ELEMENT_HH
+#define GRAPHICAL_LISP_ELEMENT_HH
+#error
+#include "lily-guile.hh"
+#include "lily-proto.hh"
+#include "string.hh"
+
+#define virtual
+#define static
+#include "virtual-methods.hh"
+
+class Graphical_lisp_element 
+{
+public:
+  DECLARE_MY_RUNTIME_TYPEINFO;
+
+  Graphical_lisp_element (String);
+
+  void* access (String);
+  void call (String, void*);
+
+private:
+  String type_str_;
+};
+
+#undef virtual
+#undef static
+
+#endif // GRAPHICAL_LISP_ELEMENT_HH
+
index b7af83ec1620ba502e2518e234f8b0dfa390ec75..0ac8ebf0cca5081a675d3f2893e15374e570f7ad 100644 (file)
@@ -77,6 +77,7 @@ struct Element_group_item;
 struct Engraver_group_engraver;
 struct General_script_def;
 struct Graphical_element;
+
 struct Graphical_axis_group;
 struct Mark_req;
 struct Music_output;
@@ -174,9 +175,6 @@ struct Piano_brace;
 struct Performer;
 struct Performer_group_performer;
 struct Property_iterator;
-struct Ps_lookup;
-struct Ps_outputter;
-struct Ps_stream;
 struct Request;
 struct Request_column;
 struct Engraver;
@@ -228,9 +226,6 @@ struct Symtables;
 struct Super_element;
 struct Translation_property;
 struct Tempo_req;
-struct Tex_lookup;
-struct Tex_outputter;
-struct Tex_stream;
 struct Text_def;
 struct Text_gob;
 struct Text_item ;
index 95d69a0d484a2929bdbb6433e15a95a83ad44b92..9870cecb15324ecffd6f2b5d067c01d4bfdc0239 100644 (file)
   */
 struct Score_element_info {
     Score_element * elem_l_;
+
     Request*req_l_;
     Array<Engraver*> origin_grav_l_arr_;
 
     Score_element_info (Score_element*, Request*);
+
     Score_element_info();
 };
 
index 5d59fc06f7d1c399984f88b8c7a105d7a7469f6e..fae750a39a08a9ea22b6d47791c5a7821414e328 100644 (file)
@@ -53,6 +53,7 @@ protected:
   virtual void announce_element (Score_element_info);
   virtual void do_announces();
   virtual void typeset_element (Score_element*elem_p);
+
   virtual void do_pre_move_processing();
   virtual void do_add_processing ();
 };
index 83fd6ec6db5be709db24f5d19f11ae33790ec7c6..bb66802d8604f6045f07449fe4ea758a8ef9e52f 100644 (file)
@@ -36,13 +36,13 @@ Key_engraver::create_key ()
 bool
 Key_engraver::do_try_request (Request * req_l)
 {
-  Command_req* creq_l= req_l->access_Command_req ();
-  if (!creq_l|| !creq_l->access_Key_change_req ())
+  Command_req* creq_l= dynamic_cast <Command_req *> (req_l);
+  if (!creq_l|| !dynamic_cast <Key_change_req *> (creq_l))
     return false;
    
   if (keyreq_l_)
     return false;              // TODO
-  keyreq_l_ = creq_l->access_Key_change_req ();
+  keyreq_l_ = dynamic_cast <Key_change_req *> (creq_l);
   read_req (keyreq_l_);
   return true;
 }
@@ -50,9 +50,9 @@ Key_engraver::do_try_request (Request * req_l)
 void
 Key_engraver::acknowledge_element (Score_element_info info)
 {
-  Command_req * r_l = info.req_l_->access_Command_req () ;
+  Command_req * r_l = dynamic_cast <Command_req *> (info.req_l_) ;
 
-  if (r_l && r_l->access_Clef_change_req ()) 
+  if (r_l && dynamic_cast <Clef_change_req *> (r_l)) 
     {
       int i= get_property ("createKeyOnClefChange").length_i ();
       if (i)
index 2b2d0dd5db1660f3790c532679ad7451275355eb..a0dc2907a6b4f72326b8d1c2fe4bc1b9b5cef7b1 100644 (file)
@@ -116,8 +116,8 @@ IMPLEMENT_IS_TYPE_B1(Local_key_item,Item);
 void
 Local_key_item::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item* o_l = o->access_Item ();
-  Item* n_l = n?n->access_Item ():0;
+  Item* o_l = dynamic_cast <Item *> (o);
+  Item* n_l = n?dynamic_cast <Item *> (n):0;
 
   support_items_.substitute (o_l, n_l);
 }
index ceba7c467e16cbc683b119e006a322e5072c83ab..da7102b1f7212bfef8c534b2158823c42db4ee96 100644 (file)
@@ -23,10 +23,10 @@ Lyric_engraver::Lyric_engraver()
 bool
 Lyric_engraver::do_try_request (Request*r)
 {
-  Musical_req * m =r->access_Musical_req ();
-  if (!m || ! m->access_Lyric_req ()) 
+  Musical_req * m =dynamic_cast <Musical_req *> (r);
+  if (!m || ! dynamic_cast <Lyric_req *> (m)) 
     return false;
-  lreq_l_ = m->access_Lyric_req ();
+  lreq_l_ = dynamic_cast <Lyric_req *> (m);
 
   return true;
 }
index bcbbc9d501961648ec39e1b74aab550aa52da127..43fe0f26342269eff31fd571ec7f23eae27ddd07 100644 (file)
@@ -44,10 +44,10 @@ Lyric_performer::do_process_requests()
 bool
 Lyric_performer::do_try_request (Request* req_l)
 {
-  Musical_req* m_l = req_l->access_Musical_req ();
-  if (!m_l || ! m_l->access_Lyric_req ()) 
+  Musical_req* m_l = dynamic_cast <Musical_req *> (req_l);
+  if (!m_l || ! dynamic_cast <Lyric_req *> (m_l)) 
     return false;
-  lreq_arr_.push (m_l->access_Lyric_req ());
+  lreq_arr_.push (dynamic_cast <Lyric_req *> (m_l));
 
   return true;
 }
index 35c803e688b6f1b9c64ac11ea3faab0db509b505..71119e4eb63a05e0f967f5a6070d366c7eacc7c4 100644 (file)
@@ -26,11 +26,11 @@ Mark_engraver::Mark_engraver ()
 bool
 Mark_engraver::do_try_request (Request* r_l)
 {
-  Command_req* c_l = r_l->access_Command_req ();
-  if (!c_l || !c_l->access_Mark_req () || mark_req_l_) 
+  Command_req* c_l = dynamic_cast <Command_req *> (r_l);
+  if (!c_l || !dynamic_cast <Mark_req *> (c_l) || mark_req_l_) 
     return false;
 
-  mark_req_l_ = c_l->access_Mark_req ();
+  mark_req_l_ = dynamic_cast <Mark_req *> (c_l);
 
   return true;
 }
index 8f700129e5b30f5e36f2c04d016227ad74fbc59b..b00cb5ea0aa7c5fbead811724d1bd26e8d6283ec 100644 (file)
@@ -102,18 +102,18 @@ Note_column::do_substitute_dependency (Score_element*o, Score_element*n)
 {
   if (stem_l_ == o) 
     {
-      stem_l_ = n ? (Stem*)n->access_Item ():0;
+      stem_l_ = n ? (Stem*)dynamic_cast <Item *> (n):0;
     }
   if (o->is_type_b (Note_head::static_name ()))
     {
-      head_l_arr_.substitute ((Note_head*)o->access_Item (), 
-                             (n)? (Note_head*)n->access_Item () : 0);
+      head_l_arr_.substitute ((Note_head*)dynamic_cast <Item *> (o), 
+                             (n)? (Note_head*)dynamic_cast <Item *> (n) : 0);
     }
   Script_column::do_substitute_dependency (o,n);
   if (o->is_type_b (Rest::static_name ())) 
     {
-      rest_l_arr_.substitute ((Rest*)o->access_Item (), 
-                             (n)? (Rest*)n->access_Item () : 0);
+      rest_l_arr_.substitute ((Rest*)dynamic_cast <Item *> (o), 
+                             (n)? (Rest*)dynamic_cast <Item *> (n) : 0);
     }
 }
 
index 7fdbdc001aced144dbe1fcd1b81b0ddad213875a..7c5e541f82ecc3d2e42c4de10bbb28d601851601 100644 (file)
@@ -30,6 +30,6 @@ Performer_group_performer*
 Performer::daddy_perf_l () const
 {
   return (daddy_trans_l_) 
-    ?(Performer_group_performer*) daddy_trans_l_->access_Performer ()
+    ?(Performer_group_performer*) dynamic_cast <Performer *> (daddy_trans_l_)
     : 0;
 }
index 026027ed04d309d1ad3de7376548767c6203b90a..4851cee02cfdbd1faa72b28f081e62e4174b90e8 100644 (file)
@@ -15,7 +15,7 @@ Pitch_squash_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_head::static_name ()))
     {
-      Note_head * nl = (Note_head*)i.elem_l_->access_Item ();
+      Note_head * nl = (Note_head*)dynamic_cast <Item *> (i.elem_l_);
       nl->position_i_  =0;
     }
 }
index 8da468ec92d2d13b0373c113d8b5b3a105a2aaaf..ed85c58bfddeeafab1061a3e96a31167c34ed7b3 100644 (file)
@@ -35,16 +35,16 @@ Plet_engraver::acknowledge_element (Score_element_info i)
     return;
 
   if (!plet_spanner_p_->stem_l_drul_[LEFT])
-    plet_spanner_p_->set_stem (LEFT, (Stem*)i.elem_l_->access_Item ());
+    plet_spanner_p_->set_stem (LEFT, (Stem*)dynamic_cast <Item *> (i.elem_l_));
   else
     if (span_reqs_drul_[RIGHT] && !plet_spanner_p_->stem_l_drul_[RIGHT]) 
-      plet_spanner_p_->set_stem (RIGHT, (Stem*)i.elem_l_->access_Item ());
+      plet_spanner_p_->set_stem (RIGHT, (Stem*)dynamic_cast <Item *> (i.elem_l_));
 }
 
 bool
 Plet_engraver::do_try_request (Request* req_l)
 {
-  Musical_req* mus_l = req_l->access_Musical_req ();
+  Musical_req* mus_l = dynamic_cast <Musical_req *> (req_l);
   if (!mus_l)
     return false;
 
@@ -52,7 +52,7 @@ Plet_engraver::do_try_request (Request* req_l)
     UGH! This is incorrect!
     Beam_req might not reach the Plet_engraver if ordering is wrong!
    */
-  Beam_req* b = mus_l->access_Beam_req ();
+  Beam_req* b = dynamic_cast <Beam_req *> (mus_l);
   if (b)
     {
       if (b->spantype)
@@ -63,7 +63,7 @@ Plet_engraver::do_try_request (Request* req_l)
       return false;
     }
     
-  Plet_req* p = mus_l->access_Plet_req ();
+  Plet_req* p = dynamic_cast <Plet_req *> (mus_l);
   if (!p)
     return false;
 
index 5b7637f12e103b07a417c55bbb54dcbb5cc3b3d2..4a032ffc72354c5b418b4541b830d7467e456dad 100644 (file)
@@ -130,10 +130,10 @@ Plet_spanner::do_post_processing ()
 void
 Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n)
 {
-  Stem* new_l = n ? (Stem*)n->access_Item () : 0;
-  if (o->access_Item () == stem_l_drul_[LEFT])
+  Stem* new_l = n ? (Stem*)dynamic_cast <Item *> (n) : 0;
+  if (dynamic_cast <Item *> (o) == stem_l_drul_[LEFT])
     stem_l_drul_[LEFT] = new_l;
-  else if (o->access_Item () == stem_l_drul_[RIGHT])
+  else if (dynamic_cast <Item *> (o) == stem_l_drul_[RIGHT])
     stem_l_drul_[RIGHT] = new_l;
 }
   
index 60300b18a11a262ea394d084667a5758ab33df38..2aa56cb7cf17a6705d2ede2d59c922d328b1cd11 100644 (file)
@@ -38,7 +38,7 @@ Priority_horizontal_align_engraver::acknowledge_element (Score_element_info i)
          halign_p_->breakable_b_ = true;
          announce_element (Score_element_info (halign_p_,0));
        }
-      Item * it = i.elem_l_->access_Item ();
+      Item * it = dynamic_cast <Item *> (i.elem_l_);
       if (it->break_priority_i_ == 0)
        halign_p_->center_l_ = it;
 
index d139313be214320c85660e061bdaf33d207259cb..2c52168807a3f3a02764970b5194573dc4b745f4 100644 (file)
@@ -37,7 +37,7 @@ void
 Rest_collision_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_column::static_name()))
-    note_column_l_arr_.push ((Note_column*)i.elem_l_->access_Item ());
+    note_column_l_arr_.push ((Note_column*)dynamic_cast <Item *> (i.elem_l_));
 }
 
 void
index 38d393f16091b54ecc5dc577df2b9eb3966771f6..54cfe814c1458152123cef4c40f81416c84092e8 100644 (file)
@@ -133,12 +133,12 @@ Rest_collision::do_print() const
 void
 Rest_collision::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item*o_l = o->access_Item ();
+  Item*o_l = dynamic_cast <Item *> (o);
   
 
   if (o_l&&o_l->is_type_b (Note_column::static_name ()))
     {
-      Note_column *n_l = n?(Note_column*)n->access_Item ():0;
+      Note_column *n_l = n?(Note_column*)dynamic_cast <Item *> (n):0;
       rest_l_arr_.substitute ((Note_column*)o_l, n_l);
       ncol_l_arr_.substitute ((Note_column*)o_l, n_l);
     }
index 96c40d75c2a79cef0426e924c20b2571f5da386b..f4f2e6efbe8b2085aa17284593aa0c1d6e9c28f5 100644 (file)
@@ -62,11 +62,11 @@ Rest_engraver::do_process_requests ()
 bool
 Rest_engraver::do_try_request (Request *r)
 {
-  Musical_req *m = r->access_Musical_req ();
-  if (!m || !m->access_Rest_req ())
+  Musical_req *m = dynamic_cast <Musical_req *> (r);
+  if (!m || !dynamic_cast <Rest_req *> (m))
     return false;
 
-  rest_req_l_ = m->access_Rest_req (); // ugh
+  rest_req_l_ = dynamic_cast <Rest_req *> (m); // ugh
   return true;
 }
 
index 6d7fc6927b3135ba0b926006dc361300ef78d923..8c1cacfdf5689884f7929b558682494fe9884137 100644 (file)
@@ -12,6 +12,7 @@
 #include "note-column.hh"
 #include "script.hh"
 #include "dot-column.hh"
+#include "musical-request.hh"
 
 Rhythmic_column_engraver::Rhythmic_column_engraver()
 {
@@ -66,12 +67,12 @@ Rhythmic_column_engraver::process_acknowledged ()
 void
 Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
 {
-  Item * item =  i.elem_l_->access_Item ();
+  Item * item =  dynamic_cast <Item *> (i.elem_l_);
   if (!item)
     return;
   if (item->is_type_b (Script::static_name ())
       && i.req_l_
-      && i.req_l_->access_Musical_req ()) 
+      && dynamic_cast <Musical_req *> (i.req_l_)) 
     {
       script_l_arr_.push ((Script*)item);
     }
index ab9e7396dc53b2f37cdc66c6c6ff6972f3b393a4..d4625e7c2b979d3a1461693d9a8aadea6061985c 100644 (file)
@@ -52,7 +52,7 @@ void
 Rhythmic_head::do_substitute_dependent (Score_element*o,Score_element*n)
 {
   if (o == dots_l_)
-    dots_l_ = n ? (Dots*)n->access_Item () :0;
+    dots_l_ = n ? (Dots*)dynamic_cast <Item *> (n) :0;
 }
 
 IMPLEMENT_IS_TYPE_B1(Rhythmic_head, Item);
index a0c6f68e8552a8047866cc42351ec8da649d5f2b..81aa07fdbf4a6d3d4bcc98890686dfbf5f13f4aa 100644 (file)
@@ -15,6 +15,7 @@ Score_element_info::Score_element_info (Score_element*s_l, Request*r_l)
   req_l_ = r_l;
 }
 
+
 Score_element_info::Score_element_info()
 {
   elem_l_ = 0;
index 1b30731fd710d69d6e5f80516fb1e6adf5433d2d..30a38f5360cf12c182909ddee006cb08ec623a68 100644 (file)
@@ -18,6 +18,7 @@
 #include "paper-def.hh"
 
 
+
 Score_engraver::Score_engraver()
 {
   break_penalty_i_ = 0;
@@ -103,8 +104,8 @@ Score_engraver::do_announces()
          */
        if (announce_info_arr_[i].req_l_) 
          {
-           Musical_req *m = announce_info_arr_[i].req_l_->access_Musical_req ();
-           if (m && m->access_Rhythmic_req ()) 
+           Musical_req *m =dynamic_cast <Musical_req *> ( announce_info_arr_[i].req_l_);
+           if (m && dynamic_cast <Rhythmic_req *> (m)) 
              {
                musical_column_l_->add_duration (m->duration());
              }
@@ -117,23 +118,22 @@ Score_engraver::do_announces()
 void
 Score_engraver::typeset_element (Score_element *elem_p)
 {
-  elem_p_arr_.push(elem_p);
+  elem_p_arr_.push (elem_p);
 }
 
+
 void
 Score_engraver::typeset_all()
 {
   for  (int i =0; i < elem_p_arr_.size(); i++) 
     {
       Score_element * elem_p = elem_p_arr_[i];
-      if (elem_p->access_Spanner ()) 
+      if (dynamic_cast <Spanner *> (elem_p)) 
        {
-         Spanner *s = elem_p->access_Spanner ();
+         Spanner *s = dynamic_cast <Spanner *> (elem_p);
          pscore_p_->typeset_unbroken_spanner (s);
 
-
-
-                 /*
+           /*
            do something sensible if spanner not 
            spanned on 2 items.
           */
@@ -148,7 +148,7 @@ Score_engraver::typeset_all()
        }
       else 
        {
-         Item *item_p = elem_p->access_Item ();
+         Item *item_p = dynamic_cast <Item *> (elem_p);
          pscore_p_->typeset_element (item_p);
          if (!item_p->axis_group_l_a_[X_AXIS]) {
            if (item_p->breakable_b_) 
@@ -228,7 +228,6 @@ Score_engraver::get_staff_info() const
 }
 
 
-
 Music_output*
 Score_engraver::get_output_p ()
 {
@@ -242,13 +241,13 @@ Score_engraver::do_try_request (Request*r)
 {
   bool gotcha = Engraver_group_engraver::do_try_request (r);  
 
-  if (gotcha || !r->access_Command_req ())
+  if (gotcha || !dynamic_cast <Command_req *> (r))
     return gotcha;
 
-  Command_req * c = r->access_Command_req ();
-  if (c->access_Break_req ())
+  Command_req * c = dynamic_cast <Command_req *> (r);
+  if (dynamic_cast <Break_req *> (c))
     {
-      Break_req* b = (Break_req*)c->access_Break_req ();
+      Break_req* b = (Break_req*)dynamic_cast <Break_req *> (c);
       if (b->penalty_i_ <= Break_req::DISALLOW)
        break_penalty_i_ = b->penalty_i_;
       else if (b->penalty_i_ >= Break_req::FORCE)
index f67907c8695258398039a4205a9014e73f843907..d85e1a6e0bdde1e21d2067a6c46fba7200a4b7d3 100644 (file)
@@ -105,9 +105,9 @@ Script_column::add_support (Item*i_l)
 void
 Script_column::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  if (o->access_Item ()) 
+  if (dynamic_cast <Item *> (o)) 
     {
-      script_l_arr_.substitute ((Script*)o->access_Item (),(Script*) (n?n->access_Item ():0));
-      support_l_arr_.substitute (o->access_Item (), (n?n->access_Item ():0));
+      script_l_arr_.substitute ((Script*)dynamic_cast <Item *> (o),(Script*) (n?dynamic_cast <Item *> (n):0));
+      support_l_arr_.substitute (dynamic_cast <Item *> (o), (n?dynamic_cast <Item *> (n):0));
     }
 }
index 76c9cbc02a522ca85b3b0957b2234a144ff1207c..ee525907ae929e1fb27a75f18d3c95244219be0f 100644 (file)
@@ -27,7 +27,7 @@ Script::do_substitute_dependency (Score_element*o,Score_element*n)
   Staff_side::do_substitute_dependency (o,n);
   if (o == stem_l_)
     {
-      stem_l_ = n ? (Stem*)n->access_Item () : 0;
+      stem_l_ = n ? (Stem*)dynamic_cast <Item *> (n) : 0;
     }
 }
 
index cffc4ee2763b32aecedefc58c5ace8bc62abc8bc..059afad994521fe15d33079eaf802d79ec5c9be0 100644 (file)
@@ -65,8 +65,8 @@ Separating_group_spanner::do_substitute_dependency (Score_element*o, Score_eleme
   if (o->is_type_b (Single_malt_grouping_item::static_name ()))
     {
       Single_malt_grouping_item*ns = n ?
-       (Single_malt_grouping_item*)n->access_Item () : 0;
-      spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)o->access_Item (), ns);
+       (Single_malt_grouping_item*)dynamic_cast <Item *> (n) : 0;
+      spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)dynamic_cast <Item *> (o), ns);
     }
 }
 
index 878bb1f1dc12b635d9b1a79e3fa8d6041c8fdfa7..f43b99a3c30a498e10557aac67424f505ce6b3f4 100644 (file)
@@ -38,7 +38,7 @@ Separating_line_group_engraver::do_removal_processing ()
 void
 Separating_line_group_engraver::acknowledge_element (Score_element_info i)
 {
-  Item * it = i.elem_l_->access_Item ();
+  Item * it = dynamic_cast <Item *> (i.elem_l_);
   if (it && !it->axis_group_l_a_[X_AXIS])
     {
       Single_malt_grouping_item *&p_ref_ (it->breakable_b_ ?
index 284a494d7e85954087d3efa1f38d488538654339..56541540f127874be31888dd2898af73092de6a7 100644 (file)
@@ -46,9 +46,9 @@ IMPLEMENT_IS_TYPE_B1(Single_malt_grouping_item, Item);
 void
 Single_malt_grouping_item::do_substitute_dependency (Score_element*o, Score_element*n)
 {
-  if (o->access_Item ())
+  if (dynamic_cast <Item *> (o))
     {
-      item_l_arr_.unordered_substitute (o->access_Item (),  n ? n->access_Item () : 0);
+      item_l_arr_.unordered_substitute (dynamic_cast <Item *> (o),  n ? dynamic_cast <Item *> (n) : 0);
     }
 }
 
index 8c43bfddfbc9613ec828a2ca89312799ee2d2362..e7447b74320e71ba59d6c1c93d3ea2d0316eb746 100644 (file)
 bool
 Slur_engraver::do_try_request (Request *req_l)
 {
-  Musical_req *mus_l = req_l->access_Musical_req ();
-  if (!mus_l || !mus_l->access_Slur_req ())
+  Musical_req *mus_l = dynamic_cast <Musical_req *> (req_l);
+  if (!mus_l || !dynamic_cast <Slur_req *> (mus_l))
     return false;
 
-  new_slur_req_l_arr_.push (mus_l->access_Slur_req ());
+  new_slur_req_l_arr_.push (dynamic_cast <Slur_req *> (mus_l));
   return true;
 }
 
@@ -28,7 +28,7 @@ Slur_engraver::acknowledge_element (Score_element_info info)
 {
   if (info.elem_l_->is_type_b (Note_column::static_name ()))
     {
-      Note_column *col_l =(Note_column*) info.elem_l_->access_Item() ;// ugh
+      Note_column *col_l =(Note_column*) dynamic_cast <Item *> (info.elem_l_) ;// ugh
       for (int i = 0; i < slur_l_stack_.size(); i++)
        slur_l_stack_[i]->add_column (col_l);
       for (int i = 0; i < end_slur_l_arr_.size(); i++)
index 28bd21fa6e3ce40faf11e5907e36d674a1b12061..41769d8e0c6d7b2f3188d4722b542eb2c7dd356e 100644 (file)
@@ -76,10 +76,10 @@ void
 Slur::do_substitute_dependency (Score_element*o, Score_element*n)
 {
   int i;
-  while ((i = encompass_arr_.find_i ((Note_column*)o->access_Item ())) >=0) 
+  while ((i = encompass_arr_.find_i ((Note_column*)dynamic_cast <Item *> (o))) >=0) 
     {
       if (n)
-       encompass_arr_[i] = (Note_column*)n->access_Item ();
+       encompass_arr_[i] = (Note_column*)dynamic_cast <Item *> (n);
       else
        encompass_arr_.del (i);
     }
index 61898273c0494e355684a3a804bae4511494bca2..4d3dc1f6f46c18f60767f5a93f37d7d359c8a842 100644 (file)
@@ -40,7 +40,7 @@ Span_bar_engraver::acknowledge_element (Score_element_info i)
   if (depth > 1
       && i.elem_l_->is_type_b (Bar::static_name())) 
     {
-      bar_l_arr_.push ((Bar*)i.elem_l_->access_Item ());
+      bar_l_arr_.push ((Bar*)dynamic_cast <Item *> (i.elem_l_));
        
       if (bar_l_arr_.size() >= 2 && !spanbar_p_) 
        /*
@@ -65,7 +65,7 @@ Span_bar_engraver::acknowledge_element (Score_element_info i)
   else if  (i.elem_l_->is_type_b (Vertical_align_spanner::static_name()) 
            && i.origin_grav_l_arr_.size() <= 2) 
     {
-      valign_l_ = (Vertical_align_spanner*)i.elem_l_->access_Spanner ();
+      valign_l_ = (Vertical_align_spanner*)dynamic_cast <Spanner *> (i.elem_l_);
     }
 }
 
index 524d5b20adfe715abe9461d5873dbd9658930329..d3cff445e5fe397baabad9a2632d7e0096989066 100644 (file)
@@ -50,7 +50,7 @@ Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
   Span_bar_engraver::acknowledge_element (i);
   if (i.elem_l_->is_type_b (Piano_brace::static_name ()))
     {
-      Span_bar* b =  i.elem_l_->access_Span_bar ();
+      Span_bar* b =  dynamic_cast <Span_bar *> (i.elem_l_);
       Piano_brace * piano_l = (Piano_brace*) b;
       piano_l->extra_move_left_f_  = paper ()->interline_f (); // ugh
     }
index 26150a6ba06aa5396162116aa4cb896dbd80138e..a80d36bd0a8bdbb844e8ae1b5194073491ea62cd 100644 (file)
@@ -40,7 +40,7 @@ Staff_margin_engraver::Staff_margin_engraver ()
 void
 Staff_margin_engraver::acknowledge_element (Score_element_info i)
 {
-  Item * it =  i.elem_l_->access_Item ();
+  Item * it =  dynamic_cast <Item *> (i.elem_l_);
 
   if (!it
       || script_p_ 
index b9e7e59b8a7319c01dc38e17801da9b52b830dcf..423b40b397e8fa220bfedf0c2c97c5b89d25e2e5 100644 (file)
@@ -347,8 +347,8 @@ Stem::hpos_f () const
 void
  Stem::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item * o_l = o->access_Item ();
-  Item * n_l = n? n->access_Item () : 0;
+  Item * o_l = dynamic_cast <Item *> (o);
+  Item * n_l = n? dynamic_cast <Item *> (n) : 0;
   head_l_arr_.substitute ((Note_head*)o_l, (Note_head*)n_l);
   rest_l_arr_.substitute ((Rest*)o_l, (Rest*)n_l);
 }
index 2bafc76723ffb2e70aacf1f7c9ddb723cc668fae..522081cedfa146e31b50277c983da4eda25c717f 100644 (file)
@@ -81,7 +81,7 @@ void
 Text_spanner::do_substitute_dependency (Score_element* o, Score_element*n)
 {
   if (support_span_l_ == o) 
-       support_span_l_ = (Directional_spanner*) (n?n->access_Spanner ():0);
+       support_span_l_ = (Directional_spanner*) (n?dynamic_cast <Spanner *> (n):0);
 }
 
 
index cc36ab22c0fec51cd04a2ec65029b34bb818a928..002c5e969478b3a621020b89d283840d4b2e1709 100644 (file)
@@ -151,10 +151,10 @@ Tie::do_post_processing()
 void
 Tie::do_substitute_dependency (Score_element*o, Score_element*n)
 {
-  Note_head *new_l =n?(Note_head*)n->access_Item ():0;
-  if (o->access_Item () == head_l_drul_[LEFT])
+  Note_head *new_l =n?(Note_head*)dynamic_cast <Item *> (n):0;
+  if (dynamic_cast <Item *> (o) == head_l_drul_[LEFT])
     head_l_drul_[LEFT] = new_l;
-  else if (o->access_Item () == head_l_drul_[RIGHT])
+  else if (dynamic_cast <Item *> (o) == head_l_drul_[RIGHT])
     head_l_drul_[RIGHT] = new_l;
 }
 
index 1e52ea151e3450a509eefd90fbfcc2ef28e9a6e1..89e29e61ed882bebbf8eac0e32c8c2a94e03ea1e 100644 (file)
@@ -30,7 +30,7 @@ Time_signature_engraver::do_process_requests()
       return ;
     }
   
-  Timing_engraver * timing_grav_l= (Timing_engraver*) result->access_Engraver  ();
+  Timing_engraver * timing_grav_l= (Timing_engraver*) dynamic_cast <Engraver *> (result);
   
   Time_signature_change_req *req = timing_grav_l->time_signature_req_l();
   if (req)