From c9df8c40e85fc4b30f26c7c9af994f997a7820b3 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 27 Dec 2005 17:36:29 +0000 Subject: [PATCH] * input/regression/stem-direction-context.ly: remove rest. * lily/melody-engraver.cc (process_music): restart for bar lines. (acknowledge_slur): restart for slurs. --- ChangeLog | 7 +++ input/regression/stem-direction-context.ly | 2 +- lily/melody-engraver.cc | 50 +++++++++++++++++++--- lily/relocate.cc | 2 +- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4915cb1b15..7b96aa657b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-12-27 Han-Wen Nienhuys + + * input/regression/stem-direction-context.ly: remove rest. + + * lily/melody-engraver.cc (process_music): restart for bar lines. + (acknowledge_slur): restart for slurs. + 2005-12-27 Heikki Junes * Documentation/user/invoking.itely: describe how to view SVG diff --git a/input/regression/stem-direction-context.ly b/input/regression/stem-direction-context.ly index 79f56305f5..db0b790851 100644 --- a/input/regression/stem-direction-context.ly +++ b/input/regression/stem-direction-context.ly @@ -10,7 +10,7 @@ \relative c'' \new Voice { c4 b c b - c c c r + c c c c b a b a } diff --git a/lily/melody-engraver.cc b/lily/melody-engraver.cc index a0d66b2d69..885c570894 100644 --- a/lily/melody-engraver.cc +++ b/lily/melody-engraver.cc @@ -16,35 +16,71 @@ class Melody_engraver : public Engraver { Grob *melody_item_; + Grob *stem_; protected: DECLARE_ACKNOWLEDGER (stem); + DECLARE_ACKNOWLEDGER (slur); TRANSLATOR_DECLARATIONS (Melody_engraver); + void stop_translation_timestep (); + void process_music (); }; Melody_engraver::Melody_engraver () { + stem_ = 0; melody_item_ = 0; } void -Melody_engraver::acknowledge_stem (Grob_info info) +Melody_engraver::process_music () { - extract_grob_set (info.grob (), "rests", rests); - if (rests.size ()) + if (scm_is_string (get_property ("whichBar"))) melody_item_ = 0; - else +} + +void +Melody_engraver::stop_translation_timestep () +{ + if (stem_) { - if (!melody_item_) - melody_item_ = make_item ("MelodyItem", info.grob ()->self_scm ()); + extract_grob_set (stem_, "rests", rests); + if (rests.size ()) + melody_item_ = 0; + else + { + if (!melody_item_) + melody_item_ = make_item ("MelodyItem", stem_->self_scm ()); - Melody_spanner::add_stem (melody_item_, info.grob ()); + Melody_spanner::add_stem (melody_item_, stem_); + } } + stem_ = 0; +} + + +void +Melody_engraver::acknowledge_slur (Grob_info info) +{ + (void)info; + melody_item_ = 0; } + +void +Melody_engraver::acknowledge_stem (Grob_info info) +{ + stem_ = info.grob (); +} + + + #include "translator.icc" + ADD_ACKNOWLEDGER (Melody_engraver, stem); +ADD_ACKNOWLEDGER (Melody_engraver, slur); + ADD_TRANSLATOR (Melody_engraver, "Create information for context dependent typesetting decisions. ", "MelodyItem", diff --git a/lily/relocate.cc b/lily/relocate.cc index db4b6c6074..2783973d63 100644 --- a/lily/relocate.cc +++ b/lily/relocate.cc @@ -127,7 +127,7 @@ set_relocation (String bindir, String prefix) SCM_MAJOR_VERSION, SCM_MINOR_VERSION)); set_env_file ("PANGO_RC_FILE", sysconfdir + "/pango/pangorc"); - sane_putenv ("PANGO_PREFIX", prefix); + sane_putenv ("PANGO_PREFIX", prefix, true); prepend_env_path ("PATH", bindir); } -- 2.39.5