]> git.donarmstrong.com Git - lilypond.git/blob - lily/scheme-listener-scheme.cc
Run `make grand-replace'.
[lilypond.git] / lily / scheme-listener-scheme.cc
1 /*
2   scheme-listener-scheme.cc -- Connect listeners to Scheme through Scheme_listener
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2006--2008 Erik Sandberg  <mandolaerik@gmail.com>
7 */
8
9 #include "scheme-listener.hh"
10
11 LY_DEFINE (ly_make_listener, "ly:make-listener",
12            1, 0, 0, (SCM callback),
13            "Create a listener.  Any time the listener hears an object,"
14            " it will call @var{callback} with that object.\n"
15            "\n"
16            "@var{callback} should take exactly one argument.")
17 {
18   LY_ASSERT_TYPE (ly_is_procedure, callback, 1);
19   Scheme_listener *l = new Scheme_listener (callback);
20   SCM listener = GET_LISTENER (l->call).smobbed_copy ();
21   l->unprotect ();
22   return listener;
23 }