X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusical-request.cc;h=147fce3fa2cbce1143d66df4cda8d34a3a8bc1ae;hb=d9b43b93f2c885409bafdb157138158f65cc49aa;hp=cb81818d3d701b23740f5a9af127f19d79bdfa9e;hpb=b1aa7f76f1ad7606699fc797161a583df7367013;p=lilypond.git diff --git a/lily/musical-request.cc b/lily/musical-request.cc index cb81818d3d..147fce3fa2 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -3,191 +3,96 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1999 Han-Wen Nienhuys + (c) 1997--2002 Han-Wen Nienhuys */ #include "musical-request.hh" #include "misc.hh" #include "debug.hh" - #include "music-list.hh" -void -Span_req::do_print () const -{ -#ifndef NPRINT - DOUT << span_dir_; -#endif -} - -Abbreviation_req::Abbreviation_req () -{ - type_i_ = 0; -} -void -Abbreviation_req::do_print () const +Tremolo_req::Tremolo_req () { -#ifndef NPRINT - DOUT << "type " << type_i_ << '\n'; -#endif } - - - -void -Melodic_req::transpose (Musical_pitch delta) -{ - pitch_.transpose (delta); - - if (abs (pitch_.accidental_i_) > 2) - { - warning (_f ("transposition by %s makes accidental larger than two", - delta.str ())); - } -} - - - bool -Melodic_req::do_equal_b (Request*r) const -{ - Melodic_req* m= dynamic_cast (r); - return m&& !compare (*m, *this); -} - -int -Melodic_req::compare (Melodic_req const &m1 , Melodic_req const&m2) -{ - return Musical_pitch::compare (m1.pitch_, m2.pitch_); -} - -void -Melodic_req::do_print () const -{ - pitch_.print (); -} - - - - -int -Rhythmic_req::compare (Rhythmic_req const &r1, Rhythmic_req const &r2) +Melodic_req::do_equal_b (Request const* r) const { - return (r1.length_mom () - r2.length_mom ()); + Melodic_req const* m= dynamic_cast (r); + return m; // && !compare (*m, *this); } bool -Rhythmic_req::do_equal_b (Request*r) const +Rhythmic_req::do_equal_b (Request const* r) const { - Rhythmic_req* rh = dynamic_cast (r); - - return rh && !compare (*this, *rh); -} + Rhythmic_req const* rh = dynamic_cast (r); -void -Rhythmic_req::do_print () const -{ -#ifndef NPRINT - DOUT << "duration { " <length_mom (); } void Rhythmic_req::compress (Moment m) { - duration_.compress (m); + Duration *d = unsmob_duration (get_mus_property ("duration")); + if (d) + set_mus_property ("duration", d ->compressed (m.main_part_).smobbed_copy ()); } -void -Lyric_req::do_print () const -{ -#ifndef NPRINT - Rhythmic_req::do_print (); - DOUT << "text = " << text_str_; -#endif -} - - bool -Note_req::do_equal_b (Request*r) const +Note_req::do_equal_b (Request const* r) const { - Note_req *n = dynamic_cast (r); + Note_req const* n = dynamic_cast (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; -} - - - -void -Note_req::do_print () const -{ -#ifndef NPRINT - Melodic_req::do_print (); - if (cautionary_b_) - { - DOUT << " force cautionary accidental\n"; - } - else if (forceacc_b_) - { - DOUT << " force accidental\n"; - } - Rhythmic_req::do_print (); -#endif } bool -Span_req::do_equal_b (Request*r) const +Span_req::do_equal_b (Request const*r) const { - Span_req * s = dynamic_cast (r); - return s && span_dir_ == s->span_dir_; + Span_req const* s = dynamic_cast (r); + return s && get_span_dir () == s->get_span_dir (); } Span_req::Span_req () { - span_dir_ = CENTER; } -void -Text_script_req::do_print () const -{ - DOUT << "text" << text_str_ - << ", style = " << style_str_; -} - bool -Text_script_req::do_equal_b (Request *r) const +Text_script_req::do_equal_b (Request const* r) const { - Text_script_req * t = dynamic_cast(r); - return t && t->text_str_ == text_str_ && t->style_str_ == style_str_; -} - -void -Articulation_req::do_print () const -{ - DOUT << articulation_str_; + Text_script_req const* t = dynamic_cast (r); + return t && gh_equal_p (get_mus_property ("text"), + t->get_mus_property ("text")); } bool -Articulation_req::do_equal_b (Request*r) const +Articulation_req::do_equal_b (Request const* r) const { - Articulation_req * a = dynamic_cast(r); + Articulation_req const* a = dynamic_cast (r); - return a && articulation_str_ == a->articulation_str_; + return a && gh_equal_p (get_mus_property ("articulation-type"), + r->get_mus_property ("articulation-type")) + && get_direction () == a->get_direction (); } + + +