From: Han-Wen Nienhuys Date: Wed, 17 Sep 2003 22:01:23 +0000 (+0000) Subject: * lily/melisma-engraver.cc (try_music): use melismaBusyProperties. X-Git-Tag: release/1.9.7~4 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=9a8fd4fbc5549b38a7fa3f637b2c7501da0d6dd4;p=lilypond.git * lily/melisma-engraver.cc (try_music): use melismaBusyProperties. * scm/define-translator-properties.scm (melismaBusyProperties): add melismaBusyProperties property. --- diff --git a/ChangeLog b/ChangeLog index 3e74c3cca6..8925ecbfef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-09-18 Han-Wen Nienhuys + + * lily/melisma-engraver.cc (try_music): use melismaBusyProperties. + + * scm/define-translator-properties.scm (melismaBusyProperties): + add melismaBusyProperties property. + 2003-09-17 Han-Wen Nienhuys * input/test/ambitus-mixed.ly (texidoc): new file. diff --git a/lily/melisma-engraver.cc b/lily/melisma-engraver.cc index adc6d218fd..554d3c78da 100644 --- a/lily/melisma-engraver.cc +++ b/lily/melisma-engraver.cc @@ -23,33 +23,21 @@ public: }; -/* - HUH ? - - how's this supposed to work? - */ bool Melisma_engraver::try_music (Music *m) { - 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_->set_property ("melismaEngraverBusy",SCM_BOOL_T); - return true; - } - else - { - daddy_trans_->set_property ("melismaEngraverBusy",SCM_BOOL_F); - return false; - } + SCM melisma_properties = get_property ("melismaBusyProperties"); + bool busy = false; + + for (; gh_pair_p (melisma_properties); + melisma_properties = gh_cdr (melisma_properties)) + busy = busy || to_boolean (get_property (gh_car (melisma_properties))); + + /* + for the phrasing engraver we also need this. + */ + daddy_trans_->set_property ("melismaEngraverBusy",gh_bool2scm (busy)); + return busy; } Melisma_engraver::Melisma_engraver() @@ -61,5 +49,5 @@ ENTER_DESCRIPTION(Melisma_engraver, /* creats*/ "", /* accepts */ "melisma-playing-event", /* acks */ "", -/* reads */ "melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy", +/* reads */ "melismaBusy melismaBusyProperties slurMelismaBusy tieMelismaBusy beamMelismaBusy", /* write */ "melismaEngraverBusy"); diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index be3dda204c..064df8a77c 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -437,7 +437,8 @@ ScoreContext = \translator { changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512)) systemStartDelimiter =#'SystemStartBar - + melismaBusyProperties = #'(melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy) + clefGlyph = #"clefs-G" clefPosition = #-2 centralCPosition = #-6 diff --git a/scm/define-translator-properties.scm b/scm/define-translator-properties.scm index f343076f0b..16203d0ef2 100644 --- a/scm/define-translator-properties.scm +++ b/scm/define-translator-properties.scm @@ -316,6 +316,9 @@ the start of the music. (translator-property-description 'melismaBusy boolean? "Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected. ") +(translator-property-description 'melismaBusyProperties list? + "List of properties (symbols) to +determine whether a melisma is playing.") (translator-property-description 'melismaEngraverBusy boolean? "See melismaBusy. This is set automatically.") (translator-property-description 'metronomeMarkFormatter procedure? "How to produce a metronome markup.