]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/dispatcher.hh
Issue 4365: non-member unsmob<T> replaces T::unsmob and T::is_smob
[lilypond.git] / lily / include / dispatcher.hh
index 1f5f41243b395be1677f3d526cfd6195f670143d..f7efad821467b6aaf51d9a0dfc89019a35db265f 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "listener.hh"
 #include "stream-event.hh"
+#include "smobs.hh"
 
 class Dispatcher : public Smob<Dispatcher>
 {
@@ -37,17 +38,18 @@ private:
      (dist . priority) pair. */
   SCM dispatchers_;
   SCM listen_classes_;
-  DECLARE_LISTENER (dispatch);
+  void dispatch (SCM);
   /* priority counter. Listeners with low priority receive events
      first. */
   int priority_count_;
-  void internal_add_listener (Listener, SCM event_class, int priority);
+  void internal_add_listener (SCM callback, SCM event_class, int priority);
 public:
   Dispatcher ();
   void broadcast (Stream_event *ev);
   bool is_listened_class (SCM);
   SCM listened_types ();
   void add_listener (Listener, SCM event_class);
+  void add_listener (SCM callback, SCM event_class);
   void remove_listener (Listener, SCM event_class);
   void register_as_listener (Dispatcher *dist);
   void unregister_as_listener (Dispatcher *dist);