On Sun, Apr 26, 2015 at 11:08 AM, Urs Liska <[email protected]> wrote:
> Am 26.04.2015 um 17:16 schrieb Paul Morris:
>
>>
>>
>> but engravers can have both listeners and acknowledgers, and more than
>> one of each.
>
>
You can also use an end-acknowledger to catch the end of a spanner.
>
>> It’s probably *very* rare that a user would ever need to create an
>> engraver and need to know about listeners and acknowledgers.
>>
>
But it's certainly helpful to know at least something so you don't have the
sense that you're blindly filling in slots :)
>
>> For anyone wanting to go further there’s more that I don’t understand
>> (initialize, start-translation-timestep, process-music, etc.), to quote
>> from the doc string of the make-engraver macro at the bottom of
>> scm/output-lib.scm:
>>
>> Symbols mapping to a function would be @code{initialize},
>> @code{start-translation-timestep}, @code{process-music},
>> @code{process-acknowledged}, @code{stop-translation-timestep}, and
>> @code{finalize}. Symbols mapping to another alist specified in the
>> same manner are @code{listeners} with the subordinate symbols being
>> event classes, and @code{acknowledgers} and @code{end-acknowledgers}
>> with the subordinate symbols being interfaces.”
>>
>
There is some material about these "methods" from a C++ standpoint in the
Contributor's Guide:
http://lilypond.org/doc/v2.19/Documentation/contributor/engraver-tutorial
Thanks! This is all very useful.
David
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user