X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flistener.cc;h=836f8cdc6f1b450829ff7337befa4bbc3763db33;hb=13ac53fdee55b5fbe96cee26471db2d34e655d8a;hp=cb966adc9a9c20e5b4117b7412c7340ec0b2073a;hpb=e8b68d8a878a0ee0381719230cf911dbcefa168d;p=lilypond.git diff --git a/lily/listener.cc b/lily/listener.cc index cb966adc9a..836f8cdc6f 100644 --- a/lily/listener.cc +++ b/lily/listener.cc @@ -18,56 +18,5 @@ */ #include "listener.hh" -#include "ly-smobs.icc" -#include "warn.hh" -Listener::Listener () -{ - target_ = 0; - type_ = 0; -} - -Listener::Listener (const void *target, Listener_function_table *type) -{ - target_ = (void *)target; - type_ = type; -} - -Listener::Listener (Listener const &other) -{ - target_ = other.target_; - type_ = other.type_; -} - -void Listener::listen (SCM ev) const -{ - (type_->listen_callback) (target_, ev); -} - -SCM -Listener::mark_smob (SCM sm) -{ - Listener *me = (Listener *) SCM_CELL_WORD_1 (sm); - if (me->type_) - (me->type_->mark_callback) (me->target_); - return SCM_EOL; -} - -int -Listener::print_smob (SCM, SCM p, scm_print_state *) -{ - scm_puts ("#", p); - return 1; -} - -SCM -Listener::equal_p (SCM a, SCM b) -{ - Listener *l1 = Listener::unsmob (a); - Listener *l2 = Listener::unsmob (b); - - return (*l1 == *l2) ? SCM_BOOL_T : SCM_BOOL_F; -} - -IMPLEMENT_SIMPLE_SMOBS (Listener); -IMPLEMENT_TYPE_P (Listener, "ly:listener?"); +const char * const Listener::type_p_name_ = "ly:listener?";