X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusical-request.cc;h=c4a58d0ed206c40fc26b42302826992738288948;hb=d765f3af45be51f15da55cf570a4b172200e1035;hp=fd47b955853aea6322bd857832a82d29f5bf701b;hpb=abc2e31b608746a1ac924085a87244cc32ee7178;p=lilypond.git diff --git a/lily/musical-request.cc b/lily/musical-request.cc index fd47b95585..c4a58d0ed2 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -3,205 +3,105 @@ 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 "warn.hh" #include "music-list.hh" -void -Span_req::do_print () const -{ -#ifndef NPRINT - DOUT << span_dir_; -#endif -} Tremolo_req::Tremolo_req () { - type_i_ = 0; } -void -Tremolo_req::do_print () const -{ -#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::do_equal_b (Request const* 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) -{ - 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); + Rhythmic_req const* rh = dynamic_cast (r); - return rh && !compare (*this, *rh); -} - -void -Rhythmic_req::do_print () const -{ -#ifndef NPRINT - DOUT << "duration { " <length_mom (); } void Rhythmic_req::compress (Moment m) { - duration_.compress (m); -} - -void -Lyric_req::do_print () const -{ -#ifndef NPRINT - Rhythmic_req::do_print (); - DOUT << "text = " << text_str_; -#endif + Duration *d = unsmob_duration (get_mus_property ("duration")); + if (d) + set_mus_property ("duration", d ->compressed (m.main_part_).smobbed_copy ()); } - 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; -} - -Chord_tremolo_req::Chord_tremolo_req () -{ - type_i_ = 0; } -void -Chord_tremolo_req::do_print () const -{ -#ifndef NPRINT - DOUT << type_i_; -#endif -} -void -Text_script_req::do_print () const +bool +Text_script_req::do_equal_b (Request const* r) const { - DOUT << "text" << text_str_ - << ", style = " << style_str_; + Text_script_req const* t = dynamic_cast (r); + return t && gh_equal_p (get_mus_property ("text"), + t->get_mus_property ("text")); } bool -Text_script_req::do_equal_b (Request *r) const +String_number_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_; + String_number_req const* s = dynamic_cast (r); + return s && gh_equal_p (get_mus_property ("string"), + s->get_mus_property ("string")); } -void -Articulation_req::do_print () const -{ - DOUT << articulation_str_; -} 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 (); } - -Script_req::Script_req () -{ - dir_ = CENTER; -} +ADD_MUSIC(String_number_req);