From: David Kastrup Date: Fri, 20 Jan 2012 20:38:09 +0000 (+0100) Subject: Define a post-event music type and let post-event? and ly:event? use it. X-Git-Tag: release/2.15.28-1~27 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=12eab82dd932613faa11d4c438ba48d5c5add40f;p=lilypond.git Define a post-event music type and let post-event? and ly:event? use it. --- diff --git a/lily/music-scheme.cc b/lily/music-scheme.cc index 943199ce08..93fd55d9a5 100644 --- a/lily/music-scheme.cc +++ b/lily/music-scheme.cc @@ -80,7 +80,7 @@ LY_DEFINE (ly_event_p, "ly:event?", { if (Music *m = unsmob_music (obj)) { - return scm_from_bool (m->is_mus_type ("event")); + return scm_from_bool (m->is_mus_type ("post-event")); } return SCM_BOOL_F; } diff --git a/lily/parser.yy b/lily/parser.yy index ba6650acd0..e59625cc36 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -3226,9 +3226,7 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid) unsmob_music (*destination)-> set_property ("origin", make_input (last_input_)); - bool is_event = scm_memq (ly_symbol2scm ("event"), mus->get_property ("types")) - != SCM_BOOL_F; - + bool is_event = mus->is_mus_type ("post-event"); mus->unprotect (); return is_event ? EVENT_IDENTIFIER : MUSIC_IDENTIFIER; } else if (unsmob_pitch (sid)) { diff --git a/scm/define-music-display-methods.scm b/scm/define-music-display-methods.scm index 259c0ccaae..4546afb0ac 100644 --- a/scm/define-music-display-methods.scm +++ b/scm/define-music-display-methods.scm @@ -136,37 +136,8 @@ expression." ;;; post events ;;; -(define post-event? - (make-music-type-predicate - 'AbsoluteDynamicEvent - 'ArpeggioEvent - 'ArticulationEvent - 'BeamEvent - 'BeamForbidEvent - 'BendAfterEvent - 'CrescendoEvent - 'DecrescendoEvent - 'EpisemaEvent - 'ExtenderEvent - 'FingeringEvent - 'GlissandoEvent - 'HarmonicEvent - 'HyphenEvent - 'MultiMeasureTextEvent - 'NoteGroupingEvent - 'PhrasingSlurEvent - 'SlurEvent - 'SostenutoEvent - 'StringNumberEvent - 'StrokeFingerEvent - 'SustainEvent - 'TextScriptEvent - 'TextSpanEvent - 'TieEvent - 'TremoloEvent - 'TrillSpanEvent - 'TupletSpanEvent - 'UnaCordaEvent)) +(define (post-event? m) + (music-is-of-type? m 'post-event)) (define* (event-direction->lily-string event #:optional (required #t)) (let ((direction (ly:music-property event 'direction))) diff --git a/scm/define-music-types.scm b/scm/define-music-types.scm index b5b64b08c8..0dc9c7ee71 100644 --- a/scm/define-music-types.scm +++ b/scm/define-music-types.scm @@ -29,7 +29,7 @@ Syntax: @var{note}@code{\\x}, where @code{\\x} is a dynamic mark like @code{\\ppp} or @code{\\sfz}. A complete list is in file @file{ly/@/dynamic-scripts-init.ly}.") - (types . (general-music event dynamic-event absolute-dynamic-event)) + (types . (general-music post-event event dynamic-event absolute-dynamic-event)) )) (AlternativeEvent @@ -64,7 +64,7 @@ context, and 3.@tie{}the context where @var{func} is called.") . ((description . "Make an arpeggio on this note. Syntax: @w{@var{note}@code{-\\arpeggio}}") - (types . (general-music arpeggio-event event)) + (types . (general-music post-event arpeggio-event event)) )) ;; todo: use articulation-event for slur as well. @@ -77,7 +77,7 @@ Syntax: @var{note}@code{x}@code{y}, where @code{x} is a direction (no direction specified), and where @code{y} is an articulation (such as @w{@code{-.}}, @w{@code{->}}, @code{\\tenuto}, @code{\\downbow}). See the Notation Reference for details.") - (types . (general-music event articulation-event script-event)) + (types . (general-music post-event event articulation-event script-event)) )) (AutoChangeMusic @@ -105,22 +105,22 @@ the start of the measure.") . ((description . "Start or stop a beam. Syntax for manual control: @code{c8-[ c c-] c8}") - (types . (general-music event beam-event span-event)) + (types . (general-music post-event event beam-event span-event)) )) (BeamForbidEvent . ((description . "Specify that a note may not auto-beamed.") - (types . (general-music event beam-forbid-event)) + (types . (general-music post-event event beam-forbid-event)) )) (BreakDynamicSpanEvent . ((description . "End an alignment spanner for dynamics here.") - (types . (general-music break-span-event break-dynamic-span-event event)) + (types . (general-music post-event break-span-event break-dynamic-span-event event)) )) (BendAfterEvent . ((description . "A drop/@/fall/@/doit jazz articulation.") - (types . (general-music bend-after-event event)))) + (types . (general-music post-event bend-after-event event)))) (BreathingEvent . ((description . "Create a @q{breath mark} or @q{comma}. @@ -168,7 +168,7 @@ Syntax: @var{note}@code{\\<} @dots{} @var{note}@code{\\!} An alternative syntax is @var{note}@code{\\cr} @dots{} @var{note}@code{\\endcr}.") - (types . (general-music span-event span-dynamic-event crescendo-event + (types . (general-music post-event span-event span-dynamic-event crescendo-event event)) )) @@ -179,7 +179,7 @@ Syntax: @var{note}@code{\\>} @dots{} @var{note}@code{\\!} An alternative syntax is @var{note}@code{\\decr} @dots{} @var{note}@code{\\enddecr}.") - (types . (general-music span-event span-dynamic-event decrescendo-event + (types . (general-music post-event span-event span-dynamic-event decrescendo-event event)) )) @@ -190,7 +190,7 @@ An alternative syntax is @var{note}@code{\\decr} @dots{} (EpisemaEvent . ((description . "Begin or end an episema.") - (types . (general-music span-event event episema-event)) + (types . (general-music post-event span-event event episema-event)) )) (Event @@ -209,12 +209,12 @@ An alternative syntax is @var{note}@code{\\decr} @dots{} (ExtenderEvent . ((description . "Extend lyrics.") - (types . (general-music extender-event event)) + (types . (general-music post-event extender-event event)) )) (FingeringEvent . ((description . "Specify what finger to use for this note.") - (types . (general-music fingering-event event)) + (types . (general-music post-event fingering-event event)) )) (FootnoteEvent @@ -224,7 +224,7 @@ An alternative syntax is @var{note}@code{\\decr} @dots{} (GlissandoEvent . ((description . "Start a glissando on this note.") - (types . (general-music glissando-event event)) + (types . (general-music post-event glissando-event event)) )) (GraceMusic @@ -237,12 +237,12 @@ An alternative syntax is @var{note}@code{\\decr} @dots{} (HarmonicEvent . ((description . "Mark a note as harmonic.") - (types . (general-music event harmonic-event)) + (types . (general-music post-event event harmonic-event)) )) (HyphenEvent . ((description . "A hyphen between lyric syllables.") - (types . (general-music hyphen-event event)) + (types . (general-music post-event hyphen-event event)) )) (KeyChangeEvent @@ -262,7 +262,7 @@ Syntax: @code{\\key} @var{name} @var{scale}") . ((description . "Don't damp this chord. Syntax: @var{note}@code{\\laissezVibrer}") - (types . (general-music event laissez-vibrer-event)) + (types . (general-music post-event event laissez-vibrer-event)) )) (LigatureEvent @@ -321,7 +321,7 @@ Syntax: @code{R2.*4} for 4 measures in 3/4 time.") Syntax: @code{R-\\markup @{ \\roman \"bla\" @}} Note the explicit font switch.") - (types . (general-music event multi-measure-text-event)) + (types . (general-music post-event event multi-measure-text-event)) )) (Music @@ -337,7 +337,7 @@ Note the explicit font switch.") (NoteGroupingEvent . ((description . "Start or stop grouping brackets.") - (types . (general-music event note-grouping-event)) + (types . (general-music post-event event note-grouping-event)) )) (OttavaMusic @@ -412,7 +412,7 @@ goes down).") Syntax: @var{note}@code{\\(} and @var{note}@code{\\)}") (spanner-id . "") - (types . (general-music span-event event phrasing-slur-event)) + (types . (general-music post-event span-event event phrasing-slur-event)) )) (PropertySet @@ -476,7 +476,7 @@ Syntax: @code{\\unset @var{context}.@var{prop}}") (RepeatTieEvent . ((description . "Ties for starting a second volta bracket.") - (types . (general-music event repeat-tie-event)) + (types . (general-music post-event event repeat-tie-event)) )) (RestEvent @@ -544,7 +544,7 @@ Syntax: @code{\\skip} @var{duration}") Syntax: @var{note}@code{(} and @var{note}@code{)}") (spanner-id . "") - (types . (general-music span-event event slur-event)) + (types . (general-music post-event span-event event slur-event)) )) (SoloOneEvent @@ -561,7 +561,7 @@ Syntax: @var{note}@code{(} and @var{note}@code{)}") (SostenutoEvent . ((description . "Depress or release sostenuto pedal.") - (types . (general-music event pedal-event sostenuto-event)) + (types . (general-music post-event event pedal-event sostenuto-event)) )) (SpacingSectionEvent @@ -583,19 +583,19 @@ different time than stopped.") . ((description . "Specify on which string to play this note. Syntax: @code{\\@var{number}}") - (types . (general-music string-number-event event)) + (types . (general-music post-event string-number-event event)) )) (StrokeFingerEvent . ((description . "Specify with which finger to pluck a string. Syntax: @code{\\rightHandFinger @var{text}}") - (types . (general-music stroke-finger-event event)) + (types . (general-music post-event stroke-finger-event event)) )) (SustainEvent . ((description . "Depress or release sustain pedal.") - (types . (general-music event pedal-event sustain-event)) + (types . (general-music post-event event pedal-event sustain-event)) )) (TempoChangeEvent @@ -605,20 +605,20 @@ Syntax: @code{\\rightHandFinger @var{text}}") (TextScriptEvent . ((description . "Print text.") - (types . (general-music script-event text-script-event event)) + (types . (general-music post-event script-event text-script-event event)) )) (TextSpanEvent . ((description . "Start a text spanner, for example, an octavation.") - (types . (general-music span-event event text-span-event)) + (types . (general-music post-event span-event event text-span-event)) )) (TieEvent . ((description . "A tie. Syntax: @w{@var{note}@code{-~}}") - (types . (general-music tie-event event)) + (types . (general-music post-event tie-event event)) )) (TimeScaledMusic @@ -651,7 +651,7 @@ Syntax: @code{\\times @var{fraction} @var{music}}, e.g., (TremoloEvent . ((description . "Unmeasured tremolo.") - (types . (general-music event tremolo-event)) + (types . (general-music post-event event tremolo-event)) )) (TremoloRepeatedMusic @@ -670,18 +670,18 @@ Syntax: @code{\\times @var{fraction} @var{music}}, e.g., (TrillSpanEvent . ((description . "Start a trill spanner.") - (types . (general-music span-event event trill-span-event)) + (types . (general-music post-event span-event event trill-span-event)) )) (TupletSpanEvent . ((description . "Used internally to signal where tuplet brackets start and stop.") - (types . (tuplet-span-event span-event event general-music)) + (types . (tuplet-span-event span-event event general-music post-event)) )) (UnaCordaEvent . ((description . "Depress or release una-corda pedal.") - (types . (general-music event pedal-event una-corda-event)) + (types . (general-music post-event event pedal-event una-corda-event)) )) (UnfoldedRepeatedMusic diff --git a/scm/lily.scm b/scm/lily.scm index 5c2c846275..21c9599b66 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -516,7 +516,7 @@ messages into errors.") (,ly:dir? . "direction") (,ly:dispatcher? . "dispatcher") (,ly:duration? . "duration") - (,ly:event? . "event") + (,ly:event? . "post event") (,ly:font-metric? . "font metric") (,ly:grob? . "graphical (layout) object") (,ly:grob-array? . "array of grobs")