From b1248c8de31e4d474834f2e1f956aea4db9ca35a Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 21:28:18 +0000 Subject: [PATCH] lilypond-1.1.0 --- lily/abbrev.cc | 2 +- lily/abbreviation-beam-engraver.cc | 6 ++-- lily/auto-plet-engraver.cc | 27 ++++++++-------- lily/bar-column-engraver.cc | 2 +- lily/bar-column.cc | 2 +- lily/bar-engraver.cc | 6 ++-- lily/bar-number-engraver.cc | 2 +- lily/beam.cc | 2 +- lily/clef-engraver.cc | 8 ++--- lily/collision-engraver.cc | 2 +- lily/collision.cc | 4 +-- lily/dot-column-engraver.cc | 2 +- lily/dot-column.cc | 4 +-- lily/dynamic-engraver.cc | 18 +++++------ lily/engraver.cc | 4 +-- lily/gourlay-breaking.cc | 2 +- lily/graphical-lisp-element.cc | 0 lily/hara-kiri-line-group-engraver.cc | 2 +- lily/hara-kiri-vertical-group-spanner.cc | 4 +-- lily/include/auto-plet-engraver.hh | 4 +-- lily/include/engraver.hh | 1 + lily/include/graphical-lisp-element.hh | 39 ++++++++++++++++++++++++ lily/include/lily-proto.hh | 7 +---- lily/include/score-element-info.hh | 2 ++ lily/include/score-engraver.hh | 1 + lily/key-engraver.cc | 10 +++--- lily/local-key-item.cc | 4 +-- lily/lyric-engraver.cc | 6 ++-- lily/lyric-performer.cc | 6 ++-- lily/mark-engraver.cc | 6 ++-- lily/note-column.cc | 10 +++--- lily/performer.cc | 2 +- lily/pitch-squash-engraver.cc | 2 +- lily/plet-engraver.cc | 10 +++--- lily/plet-spanner.cc | 6 ++-- lily/priority-halign-engraver.cc | 2 +- lily/rest-collision-engraver.cc | 2 +- lily/rest-collision.cc | 4 +-- lily/rest-engraver.cc | 6 ++-- lily/rhythmic-column-engraver.cc | 5 +-- lily/rhythmic-head.cc | 2 +- lily/score-element-info.cc | 1 + lily/score-engraver.cc | 27 ++++++++-------- lily/script-column.cc | 6 ++-- lily/script.cc | 2 +- lily/separating-group-spanner.cc | 4 +-- lily/separating-line-group-engraver.cc | 2 +- lily/single-malt-grouping-item.cc | 4 +-- lily/slur-engraver.cc | 8 ++--- lily/slur.cc | 4 +-- lily/span-bar-engraver.cc | 4 +-- lily/span-score-bar-engraver.cc | 2 +- lily/staff-margin-engraver.cc | 2 +- lily/stem.cc | 4 +-- lily/text-spanner.cc | 2 +- lily/tie.cc | 6 ++-- lily/time-signature-engraver.cc | 2 +- 57 files changed, 178 insertions(+), 138 deletions(-) create mode 100644 lily/graphical-lisp-element.cc create mode 100644 lily/include/graphical-lisp-element.hh diff --git a/lily/abbrev.cc b/lily/abbrev.cc index 4af78938bc..eb87945cd7 100644 --- a/lily/abbrev.cc +++ b/lily/abbrev.cc @@ -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 (n) : 0; } diff --git a/lily/abbreviation-beam-engraver.cc b/lily/abbreviation-beam-engraver.cc index 67c09cb7fc..be29437462 100644 --- a/lily/abbreviation-beam-engraver.cc +++ b/lily/abbreviation-beam-engraver.cc @@ -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 (r); if (!mus_l) return false; - Abbreviation_beam_req * b = mus_l->access_Abbreviation_beam_req (); + Abbreviation_beam_req * b = dynamic_cast (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 (i.elem_l_); int type_i = span_reqs_drul_[LEFT]->type_i_; s->flag_i_ = intlog2 (type_i) - 2; diff --git a/lily/auto-plet-engraver.cc b/lily/auto-plet-engraver.cc index 8812f6245c..254f029f59 100644 --- a/lily/auto-plet-engraver.cc +++ b/lily/auto-plet-engraver.cc @@ -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 (r); if (!(c && - c->access_Bracket_req ())) + dynamic_cast (c))) { return false; } - Bracket_req * b = c->access_Bracket_req (); + Bracket_req * b = dynamic_cast (c); bracket_req_arr_.push (b); return true; } - void Tuplet_engraver::do_process_requests () { int stopcount =0; - Link_array start_arr; + Link_array 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 (i.elem_l_); for (int j =0; j add_column (nc); + // started_span_p_arr_[j]->add_column (nc); + ; } } diff --git a/lily/bar-column-engraver.cc b/lily/bar-column-engraver.cc index 2f1d760fa5..0832448a2a 100644 --- a/lily/bar-column-engraver.cc +++ b/lily/bar-column-engraver.cc @@ -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 (info.elem_l_); if (!it) return; diff --git a/lily/bar-column.cc b/lily/bar-column.cc index e61c398900..74ce5386af 100644 --- a/lily/bar-column.cc +++ b/lily/bar-column.cc @@ -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 (n) : 0; } } diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 78721871b1..7a2a515cdc 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -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 (r_l); + if (!c_l|| !dynamic_cast (c_l)) return false; - Bar_req * b= c_l->access_Bar_req (); + Bar_req * b= dynamic_cast (c_l); if (bar_req_l_ && bar_req_l_->equal_b (b)) return false; diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index 76163d5b3f..380cb65145 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -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 (i.elem_l_); if (script_p_ || !it || !it->is_type_b (Bar::static_name())) return; diff --git a/lily/beam.cc b/lily/beam.cc index 075f08df2d..a9dd24bda3 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -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 (o), n? (Stem*) dynamic_cast (n):0); } Interval diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index 8195fbd9bf..462a9c1402 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -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 (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 (r_l); + if (!creq_l || !dynamic_cast (creq_l)) return false; - clef_req_l_ = creq_l->access_Clef_change_req (); + clef_req_l_ = dynamic_cast (creq_l); read_req (clef_req_l_); return true; } diff --git a/lily/collision-engraver.cc b/lily/collision-engraver.cc index be5ab22866..d7c6a102ab 100644 --- a/lily/collision-engraver.cc +++ b/lily/collision-engraver.cc @@ -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 (i.elem_l_); if (c->rest_b ()) return ; diff --git a/lily/collision.cc b/lily/collision.cc index c63c71747c..3a07ce18e1 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -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 (o_l), + (Note_column*)(n_l?dynamic_cast (n_l):0)); } diff --git a/lily/dot-column-engraver.cc b/lily/dot-column-engraver.cc index 04ae0bfba4..ae6259ac4c 100644 --- a/lily/dot-column-engraver.cc +++ b/lily/dot-column-engraver.cc @@ -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 (info.elem_l_); if (! (i && i->is_type_b (Rhythmic_head::static_name ()))) return; diff --git a/lily/dot-column.cc b/lily/dot-column.cc index bb1885ca88..cee8a3edec 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -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 (o); + Item *ni = n?dynamic_cast (n):0; if (oi&&oi->is_type_b (Rhythmic_head::static_name ())) head_l_arr_.substitute ((Rhythmic_head*)oi, (Rhythmic_head*)ni); diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 1b7107f80d..2b38c4c08e 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -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 (r); if (!m) return false; - Dynamic_req * d = m->access_Dynamic_req (); + Dynamic_req * d = dynamic_cast (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 (d) + && dynamic_cast (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 (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 (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 (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 (dreq_l)) { - Span_dynamic_req* span_l = dreq_l->access_Span_dynamic_req (); + Span_dynamic_req* span_l = dynamic_cast (dreq_l); if (span_l->spantype == Span_req::STOP) { if (!cresc_p_) diff --git a/lily/engraver.cc b/lily/engraver.cc index ecad055870..8a79b60346 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -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 (daddy_trans_l_) : 0; } diff --git a/lily/gourlay-breaking.cc b/lily/gourlay-breaking.cc index d8fda8415c..8fd59f00d3 100644 --- a/lily/gourlay-breaking.cc +++ b/lily/gourlay-breaking.cc @@ -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 index 0000000000..e69de29bb2 diff --git a/lily/hara-kiri-line-group-engraver.cc b/lily/hara-kiri-line-group-engraver.cc index ab12bf8780..d85437a921 100644 --- a/lily/hara-kiri-line-group-engraver.cc +++ b/lily/hara-kiri-line-group-engraver.cc @@ -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 (e)); Line_group_engraver_group::typeset_element (e); } diff --git a/lily/hara-kiri-vertical-group-spanner.cc b/lily/hara-kiri-vertical-group-spanner.cc index 849a2552fa..38468cf91c 100644 --- a/lily/hara-kiri-vertical-group-spanner.cc +++ b/lily/hara-kiri-vertical-group-spanner.cc @@ -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 (o), + (n)? (Note_head*)dynamic_cast (n) : 0); } diff --git a/lily/include/auto-plet-engraver.hh b/lily/include/auto-plet-engraver.hh index a8cafb9c7c..b17e166415 100644 --- a/lily/include/auto-plet-engraver.hh +++ b/lily/include/auto-plet-engraver.hh @@ -23,8 +23,8 @@ public: protected: Link_array bracket_req_arr_; - Link_array started_span_p_arr_; - Link_array stop_now_span_p_arr_; + Link_array started_span_p_arr_; + Link_array stop_now_span_p_arr_; virtual void do_removal_processing (); virtual void acknowledge_element (Score_element_info); diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh index a8086af1f5..9dc6594c8e 100644 --- a/lily/include/engraver.hh +++ b/lily/include/engraver.hh @@ -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 index 0000000000..531322bf72 --- /dev/null +++ b/lily/include/graphical-lisp-element.hh @@ -0,0 +1,39 @@ +/* + graphical-lisp-element.hh -- declare Graphical_lisp_element + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + + +#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 + diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index b7af83ec16..0ac8ebf0cc 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -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 ; diff --git a/lily/include/score-element-info.hh b/lily/include/score-element-info.hh index 95d69a0d48..9870cecb15 100644 --- a/lily/include/score-element-info.hh +++ b/lily/include/score-element-info.hh @@ -19,10 +19,12 @@ */ struct Score_element_info { Score_element * elem_l_; + Request*req_l_; Array origin_grav_l_arr_; Score_element_info (Score_element*, Request*); + Score_element_info(); }; diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index 5d59fc06f7..fae750a39a 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -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 (); }; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 83fd6ec6db..bb66802d86 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -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 (req_l); + if (!creq_l|| !dynamic_cast (creq_l)) return false; if (keyreq_l_) return false; // TODO - keyreq_l_ = creq_l->access_Key_change_req (); + keyreq_l_ = dynamic_cast (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 (info.req_l_) ; - if (r_l && r_l->access_Clef_change_req ()) + if (r_l && dynamic_cast (r_l)) { int i= get_property ("createKeyOnClefChange").length_i (); if (i) diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc index 2b2d0dd5db..a0dc2907a6 100644 --- a/lily/local-key-item.cc +++ b/lily/local-key-item.cc @@ -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 (o); + Item* n_l = n?dynamic_cast (n):0; support_items_.substitute (o_l, n_l); } diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index ceba7c467e..da7102b1f7 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -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 (r); + if (!m || ! dynamic_cast (m)) return false; - lreq_l_ = m->access_Lyric_req (); + lreq_l_ = dynamic_cast (m); return true; } diff --git a/lily/lyric-performer.cc b/lily/lyric-performer.cc index bcbbc9d501..43fe0f2634 100644 --- a/lily/lyric-performer.cc +++ b/lily/lyric-performer.cc @@ -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 (req_l); + if (!m_l || ! dynamic_cast (m_l)) return false; - lreq_arr_.push (m_l->access_Lyric_req ()); + lreq_arr_.push (dynamic_cast (m_l)); return true; } diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index 35c803e688..71119e4eb6 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -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 (r_l); + if (!c_l || !dynamic_cast (c_l) || mark_req_l_) return false; - mark_req_l_ = c_l->access_Mark_req (); + mark_req_l_ = dynamic_cast (c_l); return true; } diff --git a/lily/note-column.cc b/lily/note-column.cc index 8f700129e5..b00cb5ea0a 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -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 (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 (o), + (n)? (Note_head*)dynamic_cast (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 (o), + (n)? (Rest*)dynamic_cast (n) : 0); } } diff --git a/lily/performer.cc b/lily/performer.cc index 7fdbdc001a..7c5e541f82 100644 --- a/lily/performer.cc +++ b/lily/performer.cc @@ -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 (daddy_trans_l_) : 0; } diff --git a/lily/pitch-squash-engraver.cc b/lily/pitch-squash-engraver.cc index 026027ed04..4851cee02c 100644 --- a/lily/pitch-squash-engraver.cc +++ b/lily/pitch-squash-engraver.cc @@ -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 (i.elem_l_); nl->position_i_ =0; } } diff --git a/lily/plet-engraver.cc b/lily/plet-engraver.cc index 8da468ec92..ed85c58bfd 100644 --- a/lily/plet-engraver.cc +++ b/lily/plet-engraver.cc @@ -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 (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 (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 (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 (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 (mus_l); if (!p) return false; diff --git a/lily/plet-spanner.cc b/lily/plet-spanner.cc index 5b7637f12e..4a032ffc72 100644 --- a/lily/plet-spanner.cc +++ b/lily/plet-spanner.cc @@ -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 (n) : 0; + if (dynamic_cast (o) == stem_l_drul_[LEFT]) stem_l_drul_[LEFT] = new_l; - else if (o->access_Item () == stem_l_drul_[RIGHT]) + else if (dynamic_cast (o) == stem_l_drul_[RIGHT]) stem_l_drul_[RIGHT] = new_l; } diff --git a/lily/priority-halign-engraver.cc b/lily/priority-halign-engraver.cc index 60300b18a1..2aa56cb7cf 100644 --- a/lily/priority-halign-engraver.cc +++ b/lily/priority-halign-engraver.cc @@ -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 (i.elem_l_); if (it->break_priority_i_ == 0) halign_p_->center_l_ = it; diff --git a/lily/rest-collision-engraver.cc b/lily/rest-collision-engraver.cc index d139313be2..2c52168807 100644 --- a/lily/rest-collision-engraver.cc +++ b/lily/rest-collision-engraver.cc @@ -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 (i.elem_l_)); } void diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index 38d393f160..54cfe814c1 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -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 (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 (n):0; rest_l_arr_.substitute ((Note_column*)o_l, n_l); ncol_l_arr_.substitute ((Note_column*)o_l, n_l); } diff --git a/lily/rest-engraver.cc b/lily/rest-engraver.cc index 96c40d75c2..f4f2e6efbe 100644 --- a/lily/rest-engraver.cc +++ b/lily/rest-engraver.cc @@ -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 (r); + if (!m || !dynamic_cast (m)) return false; - rest_req_l_ = m->access_Rest_req (); // ugh + rest_req_l_ = dynamic_cast (m); // ugh return true; } diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 6d7fc6927b..8c1cacfdf5 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -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 (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 (i.req_l_)) { script_l_arr_.push ((Script*)item); } diff --git a/lily/rhythmic-head.cc b/lily/rhythmic-head.cc index ab9e7396dc..d4625e7c2b 100644 --- a/lily/rhythmic-head.cc +++ b/lily/rhythmic-head.cc @@ -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 (n) :0; } IMPLEMENT_IS_TYPE_B1(Rhythmic_head, Item); diff --git a/lily/score-element-info.cc b/lily/score-element-info.cc index a0c6f68e85..81aa07fdbf 100644 --- a/lily/score-element-info.cc +++ b/lily/score-element-info.cc @@ -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; diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 1b30731fd7..30a38f5360 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -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 ( announce_info_arr_[i].req_l_); + if (m && dynamic_cast (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 (elem_p)) { - Spanner *s = elem_p->access_Spanner (); + Spanner *s = dynamic_cast (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 (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 (r)) return gotcha; - Command_req * c = r->access_Command_req (); - if (c->access_Break_req ()) + Command_req * c = dynamic_cast (r); + if (dynamic_cast (c)) { - Break_req* b = (Break_req*)c->access_Break_req (); + Break_req* b = (Break_req*)dynamic_cast (c); if (b->penalty_i_ <= Break_req::DISALLOW) break_penalty_i_ = b->penalty_i_; else if (b->penalty_i_ >= Break_req::FORCE) diff --git a/lily/script-column.cc b/lily/script-column.cc index f67907c869..d85e1a6e0b 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -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 (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 (o),(Script*) (n?dynamic_cast (n):0)); + support_l_arr_.substitute (dynamic_cast (o), (n?dynamic_cast (n):0)); } } diff --git a/lily/script.cc b/lily/script.cc index 76c9cbc02a..ee525907ae 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -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 (n) : 0; } } diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc index cffc4ee276..059afad994 100644 --- a/lily/separating-group-spanner.cc +++ b/lily/separating-group-spanner.cc @@ -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 (n) : 0; + spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)dynamic_cast (o), ns); } } diff --git a/lily/separating-line-group-engraver.cc b/lily/separating-line-group-engraver.cc index 878bb1f1dc..f43b99a3c3 100644 --- a/lily/separating-line-group-engraver.cc +++ b/lily/separating-line-group-engraver.cc @@ -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 (i.elem_l_); if (it && !it->axis_group_l_a_[X_AXIS]) { Single_malt_grouping_item *&p_ref_ (it->breakable_b_ ? diff --git a/lily/single-malt-grouping-item.cc b/lily/single-malt-grouping-item.cc index 284a494d7e..56541540f1 100644 --- a/lily/single-malt-grouping-item.cc +++ b/lily/single-malt-grouping-item.cc @@ -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 (o)) { - item_l_arr_.unordered_substitute (o->access_Item (), n ? n->access_Item () : 0); + item_l_arr_.unordered_substitute (dynamic_cast (o), n ? dynamic_cast (n) : 0); } } diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index 8c43bfddfb..e7447b7432 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -15,11 +15,11 @@ 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 (req_l); + if (!mus_l || !dynamic_cast (mus_l)) return false; - new_slur_req_l_arr_.push (mus_l->access_Slur_req ()); + new_slur_req_l_arr_.push (dynamic_cast (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 (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++) diff --git a/lily/slur.cc b/lily/slur.cc index 28bd21fa6e..41769d8e0c 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -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 (o))) >=0) { if (n) - encompass_arr_[i] = (Note_column*)n->access_Item (); + encompass_arr_[i] = (Note_column*)dynamic_cast (n); else encompass_arr_.del (i); } diff --git a/lily/span-bar-engraver.cc b/lily/span-bar-engraver.cc index 61898273c0..4d3dc1f6f4 100644 --- a/lily/span-bar-engraver.cc +++ b/lily/span-bar-engraver.cc @@ -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 (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 (i.elem_l_); } } diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc index 524d5b20ad..d3cff445e5 100644 --- a/lily/span-score-bar-engraver.cc +++ b/lily/span-score-bar-engraver.cc @@ -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 (i.elem_l_); Piano_brace * piano_l = (Piano_brace*) b; piano_l->extra_move_left_f_ = paper ()->interline_f (); // ugh } diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index 26150a6ba0..a80d36bd0a 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -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 (i.elem_l_); if (!it || script_p_ diff --git a/lily/stem.cc b/lily/stem.cc index b9e7e59b8a..423b40b397 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -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 (o); + Item * n_l = n? dynamic_cast (n) : 0; head_l_arr_.substitute ((Note_head*)o_l, (Note_head*)n_l); rest_l_arr_.substitute ((Rest*)o_l, (Rest*)n_l); } diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc index 2bafc76723..522081cedf 100644 --- a/lily/text-spanner.cc +++ b/lily/text-spanner.cc @@ -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 (n):0); } diff --git a/lily/tie.cc b/lily/tie.cc index cc36ab22c0..002c5e9694 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -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 (n):0; + if (dynamic_cast (o) == head_l_drul_[LEFT]) head_l_drul_[LEFT] = new_l; - else if (o->access_Item () == head_l_drul_[RIGHT]) + else if (dynamic_cast (o) == head_l_drul_[RIGHT]) head_l_drul_[RIGHT] = new_l; } diff --git a/lily/time-signature-engraver.cc b/lily/time-signature-engraver.cc index 1e52ea151e..89e29e61ed 100644 --- a/lily/time-signature-engraver.cc +++ b/lily/time-signature-engraver.cc @@ -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 (result); Time_signature_change_req *req = timing_grav_l->time_signature_req_l(); if (req) -- 2.39.5