X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fstream-event-scheme.cc;h=ea9365496187c371bbe721be6b72906b1b8586f2;hb=3ee0df13c3fe001cef0bef15adcbadfb2c394fd8;hp=bdccd1483b7c26d2d50bc930448fd2a3516bcc66;hpb=2a8dcc4faa8a16229774d3414eedbf46feceac84;p=lilypond.git diff --git a/lily/stream-event-scheme.cc b/lily/stream-event-scheme.cc index bdccd1483b..ea93654961 100644 --- a/lily/stream-event-scheme.cc +++ b/lily/stream-event-scheme.cc @@ -9,15 +9,21 @@ #include "stream-event.hh" LY_DEFINE (ly_make_stream_event, "ly:make-stream-event", - 1, 0, 0, (SCM proplist), - "Creates a stream event, with the given property list.\n" ) + 1, 1, 0, (SCM cl, SCM proplist), + "Creates a stream event of class @var{cl} with the given mutable property list.\n" ) { - SCM_ASSERT_TYPE (scm_list_p (proplist), proplist, SCM_ARG1, __FUNCTION__, "association list"); - Stream_event *e = new Stream_event (proplist); + SCM_ASSERT_TYPE (scm_is_symbol (cl), cl, SCM_ARG1, __FUNCTION__, "symbol"); + if (proplist != SCM_UNDEFINED) + { + SCM_ASSERT_TYPE (scm_list_p (proplist), proplist, SCM_ARG2, __FUNCTION__, "association list"); + } + else + proplist = SCM_EOL; + Stream_event *e = new Stream_event (cl, proplist); return e->unprotect (); } -LY_DEFINE (ly_stream_event_property, "ly:stream-event-property", +LY_DEFINE (ly_event_property, "ly:event-property", 2, 0, 0, (SCM sev, SCM sym), "Get the property @var{sym} of stream event @var{mus}.\n" "If @var{sym} is undefined, return @code{' ()}.\n") @@ -28,3 +34,11 @@ LY_DEFINE (ly_stream_event_property, "ly:stream-event-property", return e->internal_get_property (sym); } + +LY_DEFINE (ly_event_set_property, "ly:event-set-property!", + 3, 0, 0, (SCM ev, SCM sym, SCM val), + "Set property @var{sym} in event @var{ev} to @var{val}."){ + Stream_event *sc = unsmob_stream_event (ev); + SCM_ASSERT_TYPE (sc, ev, SCM_ARG1, __FUNCTION__, "event"); + return ly_prob_set_property_x (ev, sym, val); +}