From: fred Date: Sun, 24 Mar 2002 20:05:02 +0000 (+0000) Subject: lilypond-0.1.42 X-Git-Tag: release/1.5.59~3477 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=92da56ae32f4897d1e7732ffcb0fe7231e1d0d30;p=lilypond.git lilypond-0.1.42 --- diff --git a/lily/beam-grav.cc b/lily/beam-grav.cc index 2d931e150f..6592166fa2 100644 --- a/lily/beam-grav.cc +++ b/lily/beam-grav.cc @@ -12,8 +12,6 @@ #include "beam.hh" #include "musical-request.hh" #include "grouping.hh" -#include "text-spanner.hh" -#include "text-def.hh" #include "p-col.hh" Beam_engraver::Beam_engraver() @@ -21,7 +19,6 @@ Beam_engraver::Beam_engraver() span_reqs_drul_[LEFT] = span_reqs_drul_[RIGHT] =0; beam_p_ =0; current_grouping_p_ =0; - plet_spanner_p_ =0; } bool @@ -50,61 +47,39 @@ Beam_engraver::do_try_request(Request*r) void Beam_engraver::do_process_requests() { - if ( !beam_p_ && span_reqs_drul_[LEFT]) - { - current_grouping_p_ = new Rhythmic_grouping; - beam_p_ = new Beam; - if (span_reqs_drul_[LEFT]->nplet) - { - plet_spanner_p_ = new Text_spanner; - Text_def *defp = new Text_def; - plet_spanner_p_->set_support (beam_p_); - - defp->align_i_ = 0; - defp->text_str_ = span_reqs_drul_[LEFT]->nplet; - defp->style_str_="italic"; - plet_spanner_p_->spec_p_ = defp; - announce_element (Score_elem_info(plet_spanner_p_,0)); - } - - Scalar prop = get_property ("beamslopedamping"); - if (prop.isnum_b ()) - { - beam_p_->damping_i_ = prop; - } - - prop = get_property ("beamquantisaton"); - if (prop.isnum_b ()) - { - beam_p_->quantisation_ = (Beam::Quantise)(int)prop; - } - - announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT])); - } + if (beam_p_ || !span_reqs_drul_[LEFT]) + return; + + current_grouping_p_ = new Rhythmic_grouping; + beam_p_ = new Beam; + + Scalar prop = get_property ("beamslopedamping"); + if (prop.isnum_b ()) + beam_p_->damping_i_ = prop; + + prop = get_property ("beamquantisaton"); + if (prop.isnum_b ()) + beam_p_->quantisation_ = (Beam::Quantise)(int)prop; + + announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT])); } void Beam_engraver::do_pre_move_processing() { - if (beam_p_ && span_reqs_drul_[RIGHT]) - { - Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_; - rg_C->extend (current_grouping_p_->interval()); - beam_p_->set_grouping (*rg_C, *current_grouping_p_); - typeset_element (beam_p_); - beam_p_ = 0; - - delete current_grouping_p_; - current_grouping_p_ = 0; - - span_reqs_drul_[RIGHT] = - span_reqs_drul_[LEFT] = 0; - if (plet_spanner_p_) - { - typeset_element (plet_spanner_p_); - plet_spanner_p_ =0; - } - } + if (!beam_p_ || !span_reqs_drul_[RIGHT]) + return; + + Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_; + rg_C->extend (current_grouping_p_->interval()); + beam_p_->set_grouping (*rg_C, *current_grouping_p_); + typeset_element (beam_p_); + beam_p_ = 0; + + delete current_grouping_p_; + current_grouping_p_ = 0; + + span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0; } void diff --git a/lily/include/beam-grav.hh b/lily/include/beam-grav.hh index 027fd92679..81b68adfc1 100644 --- a/lily/include/beam-grav.hh +++ b/lily/include/beam-grav.hh @@ -20,7 +20,6 @@ class Beam_engraver : public Engraver { Drul_array span_reqs_drul_; Beam *beam_p_; - Text_spanner *plet_spanner_p_; Rhythmic_grouping *current_grouping_p_; public: diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 34059b4447..48d8e98723 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -41,6 +41,7 @@ struct Beam; struct Beam_engraver; struct Beam_req; struct Blank_req; +struct Bow; struct Box; struct Break_align_item; struct Bracket_req; @@ -152,6 +153,9 @@ struct Paper_score; struct Paper_def; struct Partial_measure_req; struct Plet; +struct Plet_engraver; +struct Plet_req; +struct Plet_spanner; struct Pulk_voice; struct Pulk_voices; struct Rational; @@ -211,6 +215,7 @@ struct Text_gob; struct Text_item ; struct Text_engraver; struct Text_req; +struct Text_spanner; struct Tie; struct Tie_engraver; struct Tie_req; diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index f53fc44de1..28fa8d04aa 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -37,6 +37,7 @@ public: virtual Dynamic_req* dynamic() { return 0; } virtual Absolute_dynamic_req * absdynamic() { return 0; } virtual Tie_req * tie() { return 0; } + virtual Plet_req* plet() { return 0; } virtual Span_dynamic_req * span_dynamic() { return 0; } virtual Abbreviation_req* abbrev() { return 0; } REQUESTMETHODS(Musical_req, musical); @@ -174,12 +175,9 @@ public: }; -/** Start / stop a beam at this note. if #nplet# is set, the staff -will try to put an appropriate number over the beam */ +/** Start / stop a beam at this note */ class Beam_req : public Span_req { public: - int nplet; - /* *************** */ REQUESTMETHODS(Beam_req,beam); @@ -213,6 +211,16 @@ public: }; +/// a plet (bracket with) number +class Plet_req : public Span_req { +public: + int plet_i_; + + REQUESTMETHODS(Plet_req,plet); + + Plet_req (); +}; + class Musical_script_req : public Musical_req, public Script_req { public: REQUESTMETHODS(Musical_script_req, musicalscript); diff --git a/lily/musical-request.cc b/lily/musical-request.cc index 0e3dd06ce8..bf2fe3590b 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -263,7 +263,6 @@ IMPLEMENT_IS_TYPE_B1(Beam_req,Span_req); Beam_req::Beam_req() { - nplet = 0; } void @@ -286,12 +285,23 @@ Abbreviation_beam_req::do_print () const } 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 () +{ + plet_i_ = 0; +} + +void +Plet_req::do_print () const +{ +} + /* *************** */ bool diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc index f100b72ae7..9a4406b24a 100644 --- a/lily/text-spanner.cc +++ b/lily/text-spanner.cc @@ -24,6 +24,7 @@ Text_spanner::set_support (Directional_spanner*d) support_span_l_ =d; add_dependency (d); } + void Text_spanner::do_add_processing () {