From: fred Date: Sun, 24 Mar 2002 19:51:09 +0000 (+0000) Subject: lilypond-0.1.7 X-Git-Tag: release/1.5.59~4271 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a04a9059dfbfb3dd9e81eada64005265b9a39218;p=lilypond.git lilypond-0.1.7 --- diff --git a/lily/musical-request.cc b/lily/musical-request.cc index 0d14c09c38..4bd6598489 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -80,6 +80,7 @@ Blank_req::do_print()const Spacing_req::do_print(); } /* *************** */ + Melodic_req::Melodic_req() { notename_i_ = 0; @@ -98,6 +99,7 @@ Melodic_req::transpose(Melodic_req const & delta) notename_i_ -= 7; octave_i_ ++; } + int new_pitch = pitch(); int delta_acc = new_pitch - old_pitch - delta_pitch; @@ -107,18 +109,28 @@ Melodic_req::transpose(Melodic_req const & delta) } } - IMPLEMENT_IS_TYPE_B1(Melodic_req,Musical_req); +bool +Melodic_req::do_equal_b(Request*r)const +{ + Melodic_req* m= r->musical()->melodic(); + return !compare( *m, *this); +} + int -Melodic_req::compare(Melodic_req const&m1, Melodic_req const&m2) -{ - if (m1.octave_i_ != m2.octave_i_) - return m1.octave_i_ -m2.octave_i_; - else if (m1.notename_i_ != m2.notename_i_) - return m1.notename_i_ - m2.notename_i_; - else if (m1.accidental_i_ != m2.accidental_i_) - return m1.accidental_i_ - m2.accidental_i_; +Melodic_req::compare(Melodic_req const &m1 , Melodic_req const&m2) +{ + int o= m1.octave_i_ - m2.octave_i_; + int n = m1.notename_i_ - m2.notename_i_; + int a = m1.accidental_i_ - m2.accidental_i_; + + if (o) + return o; + if ( n) + return n; + if (a) + return a; return 0; } @@ -126,7 +138,8 @@ void Melodic_req::do_print() const { #ifndef NPRINT - mtor << "notename: " << notename_i_ << " acc: " <musical()->rhythmic(); + + return !compare(*this, *rh); } void @@ -200,6 +221,13 @@ 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::Note_req() { forceacc_b_ = false; @@ -243,10 +271,13 @@ IMPLEMENT_IS_TYPE_B1(Slur_req,Span_req); void Slur_req::do_print()const{} /* *************** */ -int -Span_req:: compare(Span_req const &r1, Span_req const &r2) + + +bool +Span_req:: do_equal_b(Request*r)const { - return r1.spantype - r2.spantype; + Span_req * s = r->span(); + return spantype - s->spantype; } Span_req::Span_req() @@ -261,11 +292,17 @@ Script_req::Script_req(Script_req const&s) scriptdef_p_ = s.scriptdef_p_ ? s.scriptdef_p_->clone() : 0; } -int -Script_req::compare(Script_req const &d1, Script_req const &d2) +/* + don't check dirs? + + (d1.dir_i_ == d2.dir_i_ ) + */ +bool +Script_req::do_equal_b(Request*r)const { - return !(d1.dir_i_ == d2.dir_i_ && - d1.scriptdef_p_->equal_b(*d2.scriptdef_p_)); + Script_req * s = r->script(); + + return scriptdef_p_->equal_b(*s->scriptdef_p_); } Script_req::Script_req() @@ -301,13 +338,8 @@ Script_req::~Script_req() delete scriptdef_p_; } /* *************** */ -int -Text_req:: compare(Text_req const &r1, Text_req const &r2) -{ - bool b1 = (r1.dir_i_ == r2.dir_i_); - bool b2 = (r1.tdef_p_ ->equal_b(*r2.tdef_p_)); - return b1 && b2; -} + + Text_req::~Text_req() { delete tdef_p_; @@ -333,7 +365,6 @@ void Text_req::do_print() const { #ifndef NPRINT - mtor << " dir " << dir_i_ ; tdef_p_->print(); #endif