source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "musical-request.hh"
-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
pitch_.print ();
}
+
+Tonic_req::Tonic_req ()
+{
+}
+
+void
+Tonic_req::do_print () const
+{
+#ifndef NPRINT
+ Melodic_req::do_print ();
+#endif
+}
+
int
Rhythmic_req::compare (Rhythmic_req const &r1, Rhythmic_req const &r2)
{
- return (r1.duration () - r2.duration ());
+ return (r1.length_mom () - r2.length_mom ());
}
bool
}
-IMPLEMENT_IS_TYPE_B1 (Rhythmic_req,Musical_req);
+
void
Rhythmic_req::do_print () const
Moment
-Rhythmic_req::duration () const
+Rhythmic_req::length_mom () const
{
- return duration_.length ();
+ return duration_.length_mom ();
}
void
{
duration_.compress (m);
}
-
-
-
-
-IMPLEMENT_IS_TYPE_B1 (Lyric_req,Rhythmic_req);
void
Lyric_req::do_print () const
forceacc_b_ = false;
}
-IMPLEMENT_IS_TYPE_B2 (Note_req,Melodic_req,Rhythmic_req);
+
void
Note_req::do_print () const
#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);
-
-
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
{
}
Span_req::do_equal_b (Request*r) const
{
Span_req * s = dynamic_cast <Span_req *> (r);
- return s && spantype == s->spantype;
+ return s && spantype_ == s->spantype_;
}
Span_req::Span_req ()
{
- spantype = NOSPAN;
+ spantype_ = CENTER;
}
Script_req::Script_req (Script_req const&s)
Script_req::do_equal_b (Request*r) const
{
Script_req * s = dynamic_cast <Script_req *> (r);
-
- return s&& scriptdef_p_->equal_b (*s->scriptdef_p_);
+ 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_;
}
-
-Text_req::~Text_req ()
-{
- delete tdef_p_;
- tdef_p_ = 0;
-}
-
-Text_req::Text_req (Text_req const& src)
-{
- tdef_p_ = new Text_def (*src.tdef_p_);
- dir_ = src.dir_;
-}
-
-Text_req::Text_req (int dir_i, Text_def* tdef_p)
-{
- dir_ = Direction (dir_i);
- tdef_p_ = tdef_p;
-}
-
-
-IMPLEMENT_IS_TYPE_B1 (Text_req,Musical_req);
-
-void
-Text_req::do_print () const
-{
-#ifndef NPRINT
- DOUT << " dir " << dir_;
- tdef_p_->print ();
-#endif
-}
-
-
-
-IMPLEMENT_IS_TYPE_B1 (Skip_req,Musical_req);
-
void
Skip_req::do_print () const
{
#ifndef NPRINT
-
- DOUT << "duration: " << duration ();
+ DOUT << "duration: " << length_mom ();
#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
{
#ifndef NPRINT
- Dynamic_req::do_print ();
- DOUT << " loudness " <<loudness_str ();
+ DOUT << " loudness " <<loudness_str_ ;
#endif
}
-
bool
Absolute_dynamic_req::do_equal_b (Request *r) const
{
Absolute_dynamic_req *a = dynamic_cast <Absolute_dynamic_req *> (r);
- return a&& loudness_ == a->loudness_;
+ return a&& loudness_str_ == a->loudness_str_;
}
-String
-Dynamic_req::loudness_static_str (Loudness l)
-{
- switch (l)
- {
- case FFF: return "fff";
- case FF: return "ff";
- case F: return "f";
- case MF: return "mf";
- case MP: return "mp";
- case P: return "p";
- case PP: return "pp";
- case PPP: return "ppp";
- case FP: return "fp";
- case SF: return "sf";
- case SFZ: return "sfz";
- }
- return "";
-}
-
-String
-Absolute_dynamic_req::loudness_str () const
-{
- String str = loudness_static_str (loudness_);
- if (str.empty_b ())
- {
- String s = "mf";
- warning (_f ("never heard of dynamic scale `\%s\', assuming %s",
- str, s));
- str = s;
- }
- return str;
-}
-
-
Absolute_dynamic_req::Absolute_dynamic_req ()
{
- loudness_ = MF;
+ loudness_str_ = "fm"; // yes, "illegal" on purpose.
}
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);
+