X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstream-event.cc;h=12219884b1071d40e9919e4cf13b771b515d2148;hb=bbaf60edda2d5dd759050c1046cbd9865f3affbd;hp=e9fe80a22fa17d60269c418763029f41a370fca5;hpb=8e58d9bf219537b7c6655319d7e57e417b435d51;p=lilypond.git diff --git a/lily/stream-event.cc b/lily/stream-event.cc index e9fe80a22f..12219884b1 100644 --- a/lily/stream-event.cc +++ b/lily/stream-event.cc @@ -11,7 +11,9 @@ #include "ly-smobs.icc" #include "context.hh" #include "input.hh" -#include "input-smob.hh" +#include "input.hh" + +/* TODO: Rename Stream_event -> Event */ Stream_event::Stream_event () : Prob (ly_symbol2scm ("Stream_event"), SCM_EOL) @@ -25,12 +27,6 @@ Stream_event::Stream_event (SCM event_class, SCM mutable_props) mutable_property_alist_ = mutable_props; } -Stream_event::Stream_event (SCM property_alist) - : Prob (ly_symbol2scm ("Stream_event"), SCM_EOL) -{ - mutable_property_alist_ = property_alist; -} - Stream_event::Stream_event (SCM class_name, Input *origin) : Prob (ly_symbol2scm ("Stream_event"), scm_list_1 (scm_cons (ly_symbol2scm ("class"), class_name))) @@ -39,11 +35,10 @@ Stream_event::Stream_event (SCM class_name, Input *origin) set_spot (origin); } -Stream_event::Stream_event (Stream_event *ev) - : Prob (ly_symbol2scm ("Stream_event"), SCM_EOL) +SCM +Stream_event::copy_mutable_properties () const { - mutable_property_alist_ = scm_copy_tree (ev->mutable_property_alist_); - immutable_property_alist_ = ev->immutable_property_alist_; + return ly_event_deep_copy (mutable_property_alist_); } Input * @@ -53,11 +48,20 @@ Stream_event::origin () const return i ? i : &dummy_input_global; } -void Stream_event::set_spot (Input *i) +void +Stream_event::set_spot (Input *i) { set_property ("origin", make_input (*i)); } +bool +Stream_event::internal_in_event_class (SCM class_name) +{ + SCM cl = get_property ("class"); + cl = scm_call_1 (ly_lily_module_constant ("ly:make-event-class"), cl); + return scm_c_memq (class_name, cl) != SCM_BOOL_F; +} + IMPLEMENT_TYPE_P (Stream_event, "ly:stream-event?"); MAKE_SCHEME_CALLBACK (Stream_event, undump, 1);