]> git.donarmstrong.com Git - lilypond.git/blob - lily/scheme-listener.cc
Run `make grand-replace'.
[lilypond.git] / lily / scheme-listener.cc
1 /*
2   scheme-listener.cc -- Implement 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 IMPLEMENT_LISTENER (Scheme_listener, call)
12 void
13 Scheme_listener::call (SCM ev)
14 {
15   scm_call_1 (callback_, ev);
16 }
17
18 IMPLEMENT_SMOBS (Scheme_listener);
19 IMPLEMENT_DEFAULT_EQUAL_P (Scheme_listener);
20
21 Scheme_listener::Scheme_listener (SCM c)
22 {
23   callback_ = SCM_EOL;
24   self_scm_ = SCM_EOL;
25   smobify_self ();
26   callback_ = c; 
27 }
28
29 SCM
30 Scheme_listener::mark_smob (SCM obj)
31 {
32   Scheme_listener *me = (Scheme_listener *) SCM_CELL_WORD_1 (obj);
33   return me->callback_;
34 }
35
36 int
37 Scheme_listener::print_smob (SCM obj, SCM p, scm_print_state*)
38 {
39   Scheme_listener *me = (Scheme_listener *) SCM_CELL_WORD_1 (obj);
40   scm_puts ("#<Scheme_listener ", p);
41   scm_write (me->callback_, p);
42   scm_puts (">", p);
43   return 1;
44 }
45
46 Scheme_listener::~Scheme_listener ()
47 {
48 }