X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fchord-name-engraver.cc;h=7a4302a91209f7a298e1d843ebcfee07595f963c;hb=a2991295b2c1fb36bec19de207161855ca3c1756;hp=7b72e3bc26464a322cf0840730681711492b3ddc;hpb=df4a7c4a55148e065d878dcc2f7e09ac27ea9c32;p=lilypond.git diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 7b72e3bc26..7a4302a912 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998--2000 Jan Nieuwenhuizen + (c) 1998--2001 Jan Nieuwenhuizen */ #include "engraver.hh" @@ -28,13 +28,14 @@ public: protected: virtual void stop_translation_timestep (); virtual void acknowledge_grob (Grob_info i); - void deprecated_process_music (); + virtual void create_grobs (); virtual bool try_music (Music *); private: void add_note (Note_req *); Item* chord_name_p_; + Protected_scm chord_; Protected_scm last_chord_; }; @@ -45,7 +46,7 @@ Chord_name_engraver::Chord_name_engraver () { chord_name_p_ = 0; chord_ = gh_cons (SCM_EOL, gh_cons (SCM_EOL, SCM_EOL)); - last_chord_ = gh_cons (SCM_EOL, gh_cons (SCM_EOL, SCM_EOL)); + last_chord_ = chord_; } void @@ -77,24 +78,6 @@ Chord_name_engraver::try_music (Music* m) return false; } -/* Uh, if we do acknowledge_grob, shouldn't we postpone - deprecated_process_music until do_process_acknowlegded? - - Sigh, I can *never* remember how this works, can't we - possibly-please just number these functions: - - do_creation0 - - post_move1 - try_music2 - deprecated_process_music3 (or is it acknowledge_grob3 ?) - acknowledge_grob4 - - do_pre_move9 - - do_removal99 - - and what was the deal with this ``do'' prefix again? */ void Chord_name_engraver::acknowledge_grob (Grob_info i) { @@ -103,29 +86,16 @@ Chord_name_engraver::acknowledge_grob (Grob_info i) } void -Chord_name_engraver::deprecated_process_music () +Chord_name_engraver::create_grobs () { if (!chord_name_p_ && gh_car (chord_) != SCM_EOL) { -#if 0 - bool find_inversion_b = false; - SCM chord_inversion = get_property ("chordInversion"); - if (gh_boolean_p (chord_inversion)) - find_inversion_b = gh_scm2bool (chord_inversion); - - chord_ = Chord::pitches_and_requests_to_chord (pitches_, - inversion_, - bass_, - find_inversion_b); - -#endif - chord_name_p_ = new Item (get_property ("ChordName")); chord_name_p_->set_grob_property ("chord", chord_); announce_grob (chord_name_p_, 0); - SCM s = get_property ("drarnChords"); //FIXME! - if (to_boolean (s) && last_chord_ != SCM_EOL && - gh_equal_p (chord_, last_chord_)) + SCM s = get_property ("chordChanges"); + if (to_boolean (s) && gh_car (last_chord_) != SCM_EOL + && gh_equal_p (chord_, last_chord_)) chord_name_p_->set_grob_property ("begin-of-line-visible", SCM_BOOL_T); } } @@ -139,7 +109,8 @@ Chord_name_engraver::stop_translation_timestep () } chord_name_p_ = 0; - last_chord_ = chord_; + if (gh_car (chord_) != SCM_EOL) + last_chord_ = chord_; chord_ = gh_cons (SCM_EOL, gh_cons (SCM_EOL, SCM_EOL)); }