/* stream-event.cc -- implement Stream_event source file of the GNU LilyPond music typesetter (c) 2005-2006 Erik Sandberg
*/ #include "stream-event.hh" #include "ly-smobs.icc" #include "context.hh" #include "input.hh" #include "input-smob.hh" // ES todo: Add stuff to lily-proto.hh: Stream_event and its subclasses, Stream_creator, etc. Stream_event::~Stream_event () { } void Stream_event::init () { self_scm_ = SCM_EOL; property_alist_ = SCM_EOL; origin_ = 0; smobify_self (); } Stream_event::Stream_event () { init (); } Stream_event::Stream_event (Context *c, Input *origin) { init (); set_property ("context", scm_int2num (c->get_unique())); origin_ = origin; } Stream_event::Stream_event (SCM property_alist) { init (); property_alist_ = property_alist; origin_ = &dummy_input_global; } Stream_event::Stream_event (Context *c, SCM class_name) { init (); set_property ("context", scm_int2num (c->get_unique())); set_property ("class", class_name); origin_ = &dummy_input_global; } Stream_event::Stream_event (Stream_event *ev) { init (); property_alist_ = scm_copy_tree (ev->property_alist_); origin_ = ev->origin_; } Input * Stream_event::origin () const { return origin_; } SCM Stream_event::mark_smob (SCM sm) { Stream_event *me = (Stream_event *) SCM_CELL_WORD_1 (sm); return me->property_alist_; } int Stream_event::print_smob (SCM s, SCM port, scm_print_state *) { scm_puts ("#