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;
}
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;
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;
#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++)
{
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++)
{
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);
+ ;
}
}
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;
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;
}
}
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;
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;
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
}
/* 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 ()))
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;
}
{
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 ;
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));
}
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;
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);
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
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_)
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";
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_)
daddy_grav_l()->announce_element (i);
}
-
void
Engraver::typeset_element (Score_element*p)
{
daddy_grav_l()->typeset_element (p);
}
+
Paper_def*
Engraver::paper() const
{
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;
}
#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
{
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);
}
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);
}
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);
Invoke walker method to typeset element. Default: pass on to daddy.
*/
virtual void typeset_element (Score_element*elem_p);
+
/**
take note of item/spanner
--- /dev/null
+/*
+ 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
+
struct Engraver_group_engraver;
struct General_script_def;
struct Graphical_element;
+
struct Graphical_axis_group;
struct Mark_req;
struct Music_output;
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;
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 ;
*/
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();
};
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 ();
};
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;
}
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)
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);
}
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;
}
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;
}
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;
}
{
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);
}
}
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;
}
{
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;
}
}
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;
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)
return false;
}
- Plet_req* p = mus_l->access_Plet_req ();
+ Plet_req* p = dynamic_cast <Plet_req *> (mus_l);
if (!p)
return false;
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;
}
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;
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
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);
}
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;
}
#include "note-column.hh"
#include "script.hh"
#include "dot-column.hh"
+#include "musical-request.hh"
Rhythmic_column_engraver::Rhythmic_column_engraver()
{
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);
}
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);
req_l_ = r_l;
}
+
Score_element_info::Score_element_info()
{
elem_l_ = 0;
#include "paper-def.hh"
+
Score_engraver::Score_engraver()
{
break_penalty_i_ = 0;
*/
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());
}
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.
*/
}
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_)
}
-
Music_output*
Score_engraver::get_output_p ()
{
{
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)
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));
}
}
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;
}
}
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);
}
}
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_ ?
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);
}
}
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;
}
{
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++)
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);
}
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_)
/*
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_);
}
}
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
}
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_
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);
}
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);
}
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;
}
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)