]> git.donarmstrong.com Git - lilypond.git/blob - lily/scheme-listener-scheme.cc
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[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 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            "Creates a listener. Any time the listener hears\n"
14            " an object, it will call @var{callback}\n"
15            " with that object.\n"
16            "\n"
17            " @var{callback} should take exactly one argument." )
18 {
19   SCM_ASSERT_TYPE (ly_is_procedure (callback), callback, SCM_ARG1, __FUNCTION__, "procedure");
20   Scheme_listener *l = new Scheme_listener (callback);
21   SCM listener = GET_LISTENER (l->call).smobbed_copy ();
22   l->unprotect ();
23   return listener;
24 }