-IMPLEMENT_IS_TYPE_B1 (Musical_req,Request);
+
void
Musical_req::do_print () const{}
void
-IMPLEMENT_IS_TYPE_B1(Span_req,Request);
-IMPLEMENT_IS_TYPE_B2(Musical_span_req, Span_req, Musical_span_req);
+
+
void
Musical_span_req::do_print () const
Span_req::do_print () const
{
#ifndef NPRINT
- DOUT << spantype;
+ DOUT << spantype_;
#endif
}
-IMPLEMENT_IS_TYPE_B1 (Spacing_req,Request);
+
Spacing_req::Spacing_req ()
{
#endif
}
-IMPLEMENT_IS_TYPE_B1 (Abbreviation_req, Musical_req);
+
Abbreviation_req::Abbreviation_req ()
{
}
-IMPLEMENT_IS_TYPE_B2 (Blank_req,Spacing_req,Rhythmic_req);
+
void
Blank_req::do_print () const
}
}
-IMPLEMENT_IS_TYPE_B1 (Melodic_req,Musical_req);
+
bool
Melodic_req::do_equal_b (Request*r) const
{
- Melodic_req* m= r->access_Musical_req ()->access_Melodic_req ();
- return !compare (*m, *this);
+ Melodic_req* m= dynamic_cast <Melodic_req *> (r);
+ return m&& !compare (*m, *this);
}
int
bool
Rhythmic_req::do_equal_b (Request*r) const
{
- Rhythmic_req* rh = r->access_Musical_req ()->access_Rhythmic_req ();
+ Rhythmic_req* rh = dynamic_cast <Rhythmic_req *> (r);
- return !compare (*this, *rh);
+ return rh && !compare (*this, *rh);
}
-Rhythmic_req::Rhythmic_req ()
-{
-}
-IMPLEMENT_IS_TYPE_B1 (Rhythmic_req,Musical_req);
-
void
Rhythmic_req::do_print () const
{
{
duration_.compress (m);
}
-
-
-
-
-IMPLEMENT_IS_TYPE_B1 (Lyric_req,Rhythmic_req);
void
Lyric_req::do_print () const
bool
Note_req::do_equal_b (Request*r) const
{
- return Rhythmic_req::do_equal_b (r) && Melodic_req::do_equal_b (r);
+ Note_req *n = dynamic_cast<Note_req*> (r);
+ return n&& Rhythmic_req::do_equal_b (n) && Melodic_req::do_equal_b (n);
}
Note_req::Note_req ()
{
+ cautionary_b_ = false;
forceacc_b_ = false;
}
-IMPLEMENT_IS_TYPE_B2 (Note_req,Melodic_req,Rhythmic_req);
+
void
Note_req::do_print () const
{
#ifndef NPRINT
Melodic_req::do_print ();
- if (forceacc_b_)
+ if (cautionary_b_)
+ {
+ DOUT << " force cautionary accidental\n";
+ }
+ else if (forceacc_b_)
{
DOUT << " force accidental\n";
}
#endif
}
-IMPLEMENT_IS_TYPE_B1 (Rest_req, Rhythmic_req);
-
void
Rest_req::do_print () const
{
Rhythmic_req::do_print ();
}
-
-
-
-IMPLEMENT_IS_TYPE_B1 (Multi_measure_rest_req, Rhythmic_req);
-
void
Multi_measure_rest_req::do_print () const
{
}
-
-IMPLEMENT_IS_TYPE_B1 (Beam_req,Span_req);
-
-Beam_req::Beam_req ()
-{
-}
-
void
Beam_req::do_print () const
{
}
-
-IMPLEMENT_IS_TYPE_B1 (Abbreviation_beam_req, Span_req);
-
Abbreviation_beam_req::Abbreviation_beam_req ()
{
type_i_ = 0;
{
}
-IMPLEMENT_IS_TYPE_B1 (Slur_req,Span_req);
+
void
Slur_req::do_print () const
{
}
-IMPLEMENT_IS_TYPE_B1 (Plet_req,Span_req);
-Plet_req::Plet_req ()
+
+
+
+Extender_req::Extender_req ()
{
- plet_i_ = 0;
}
void
-Plet_req::do_print () const
+Extender_req::do_print () const
{
}
bool
-Span_req:: do_equal_b (Request*r) const
+Span_req::do_equal_b (Request*r) const
{
- Span_req * s = r->access_Span_req ();
- return spantype == s->spantype;
+ Span_req * s = dynamic_cast <Span_req *> (r);
+ return s && spantype_ == s->spantype_;
}
Span_req::Span_req ()
{
- spantype = NOSPAN;
+ spantype_ = CENTER;
}
Script_req::Script_req (Script_req const&s)
bool
Script_req::do_equal_b (Request*r) const
{
- Script_req * s = r->access_Script_req ();
-
- return scriptdef_p_->equal_b (*s->scriptdef_p_);
+ Script_req * s = dynamic_cast <Script_req *> (r);
+ return s && scriptdef_p_->equal_b (*s->scriptdef_p_);
}
Script_req::Script_req ()
}
-IMPLEMENT_IS_TYPE_B1 (Script_req,Request);
+
void
Script_req::do_print () const
Script_req::do_print ();
}
-
-IMPLEMENT_IS_TYPE_B2 (Musical_script_req,Musical_req, Script_req);
-
-
Script_req::~Script_req ()
{
delete scriptdef_p_;
tdef_p_ = tdef_p;
}
-
-IMPLEMENT_IS_TYPE_B1 (Text_req,Musical_req);
-
void
Text_req::do_print () const
{
#endif
}
-
-
-IMPLEMENT_IS_TYPE_B1 (Skip_req,Musical_req);
-
void
Skip_req::do_print () const
{
#ifndef NPRINT
-
DOUT << "duration: " << duration ();
#endif
}
-
-
-IMPLEMENT_IS_TYPE_B1 (Dynamic_req,Musical_req);
-
void
Dynamic_req::do_print () const
{
Musical_req::do_print ();
}
-
-IMPLEMENT_IS_TYPE_B1 (Absolute_dynamic_req,Musical_req);
-
void
Absolute_dynamic_req::do_print () const
{
#endif
}
-
bool
Absolute_dynamic_req::do_equal_b (Request *r) const
{
- Absolute_dynamic_req *a = r->access_Musical_req ()->access_Dynamic_req ()->access_Absolute_dynamic_req ();
- return loudness_ == a->loudness_;
+ Absolute_dynamic_req *a = dynamic_cast <Absolute_dynamic_req *> (r);
+ return a&& loudness_ == a->loudness_;
}
String
bool
Span_dynamic_req::do_equal_b (Request *req) const
{
- Span_dynamic_req * s = req->access_Musical_req ()->access_Span_dynamic_req ();
+ Span_dynamic_req * s = dynamic_cast <Span_dynamic_req *> (req);
- return Span_req::do_equal_b (req) && s->dynamic_dir_ == dynamic_dir_;
+ return s&& Span_req::do_equal_b (req) && s->dynamic_dir_ == dynamic_dir_;
}
Span_dynamic_req::Span_dynamic_req ()
dynamic_dir_ = CENTER;
}
-
-IMPLEMENT_IS_TYPE_B1 (Span_dynamic_req,Musical_req);
-
void
Span_dynamic_req::do_print () const
{
}
-IMPLEMENT_IS_TYPE_B1 (Tie_req,Musical_req);
+