X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmelisma-engraver.cc;h=83f07738761d7c1ffabb8f372a1a85894f712947;hb=refs%2Ftags%2Frelease%2F1.3.144;hp=3a89ad968fbc62b65cd4b0ae4789155e3a404229;hpb=f6e3a77381e8eb67aa01195ec3945bd978f86aa8;p=lilypond.git diff --git a/lily/melisma-engraver.cc b/lily/melisma-engraver.cc index 3a89ad968f..83f0773876 100644 --- a/lily/melisma-engraver.cc +++ b/lily/melisma-engraver.cc @@ -3,12 +3,14 @@ source file of the GNU LilyPond music typesetter - (c) 1999 Han-Wen Nienhuys + (c) 1999--2001 Han-Wen Nienhuys */ #include "engraver.hh" #include "musical-request.hh" +#include "grob.hh" +#include "translator-group.hh" /** Signal existence of melismas. @@ -16,23 +18,31 @@ class Melisma_engraver:public Engraver { public: - VIRTUAL_COPY_CONS(Translator); - bool do_try_music (Music *); + VIRTUAL_COPY_CONS (Translator); + bool try_music (Music *); }; -ADD_THIS_TRANSLATOR(Melisma_engraver); +ADD_THIS_TRANSLATOR (Melisma_engraver); bool -Melisma_engraver::do_try_music (Music *m ) +Melisma_engraver::try_music (Music *m) { - if (dynamic_cast(m)) + if (dynamic_cast (m)) { - SCM plain (get_property ("melismaBusy", 0)); - SCM slur (get_property ("slurMelismaBusy", 0)); - SCM tie (get_property ("tieMelismaBusy", 0)); - return (to_boolean (plain)) - || (to_boolean (slur)) - || (to_boolean (tie)); + SCM plain (get_property ("melismaBusy")); + SCM slur (get_property ("slurMelismaBusy")); + SCM tie (get_property ("tieMelismaBusy")); + SCM beam (get_property ("beamMelismaBusy")); + + if ((to_boolean (plain)) + || (to_boolean (slur)) + || (to_boolean (tie)) + || (to_boolean (beam))) { + + daddy_trans_l_->set_property ("melismaEngraverBusy",SCM_BOOL_T); + return true; + } } + daddy_trans_l_->set_property ("melismaEngraverBusy",SCM_BOOL_F); return false; }