From: Han-Wen Nienhuys Date: Thu, 3 Aug 2006 16:09:00 +0000 (+0000) Subject: (listen_beam): add method for X-Git-Tag: cvs/HEAD~191 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=95bae2d9c9ebf9fd1c1e408ec39d6f20d5d53308;p=lilypond.git (listen_beam): add method for Grace_beam_engraver too. --- diff --git a/ChangeLog b/ChangeLog index 01efb50d05..e4bc82eeee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-08-03 Han-Wen Nienhuys + + * lily/beam-engraver.cc (listen_beam): add method for + Grace_beam_engraver too. + 2006-08-03 Mats Bengtsson * python/convertrules.py: Fix indentation bug that broke diff --git a/input/typography-demo.ly b/input/typography-demo.ly index 8dfc39302c..e56612f84b 100644 --- a/input/typography-demo.ly +++ b/input/typography-demo.ly @@ -8,7 +8,7 @@ heavily mutilated Edition Peters Morgenlied by Schubert" } -\version "2.7.39" +\version "2.9.13" ignoreMelisma = \set ignoreMelismata = ##t ignoreMelismaOff = \unset ignoreMelismata @@ -129,7 +129,7 @@ pianoLH = \relative c'' \repeat volta 2\new Voice { \lyricsto "singer" \new Lyrics \firstVerse \lyricsto "singer" \new Lyrics \secondVerse \new PianoStaff << - \set PianoStaff.instrument = \markup { + \set PianoStaff.instrumentName = \markup { \bold \bigger\bigger\bigger\bigger \huge diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index fbd212efa1..42d0a8db41 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -284,6 +284,8 @@ class Grace_beam_engraver : public Beam_engraver public: TRANSLATOR_DECLARATIONS (Grace_beam_engraver); + DECLARE_TRANSLATOR_LISTENER (beam); + protected: virtual bool valid_start_point (); virtual bool valid_end_point (); @@ -307,6 +309,22 @@ Grace_beam_engraver::valid_end_point () return beam_ && valid_start_point (); } +/* + Ugh, C&P code. + */ +IMPLEMENT_TRANSLATOR_LISTENER (Grace_beam_engraver, beam); +void +Grace_beam_engraver::listen_beam (Stream_event *ev) +{ + Direction d = to_dir (ev->get_property ("span-direction")); + + if (d == START && valid_start_point ()) + start_ev_ = ev; + else if (d == STOP && valid_end_point ()) + now_stop_ev_ = ev; +} + + ADD_ACKNOWLEDGER (Grace_beam_engraver, stem); ADD_ACKNOWLEDGER (Grace_beam_engraver, rest);