]> git.donarmstrong.com Git - lilypond.git/blob - lily/object-key-undumper-scheme.cc
b20f94c0ef72d21212f2f269110f2212630ffce4
[lilypond.git] / lily / object-key-undumper-scheme.cc
1 /*
2   object-key-undumper-scheme.cc --  implement Object_key_undumper bindings
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7
8 */
9
10 #include "object-key-undumper.hh"
11
12 LY_DEFINE(ly_undumper_read_keys, "ly:undumper-read-keys",
13           2,0,0,
14           (SCM undumper, SCM keys),
15           "Read serialized @var{keys} into @var{undumper}."
16           )
17 {
18   Object_key_undumper *u = unsmob_key_undumper (undumper);
19   SCM_ASSERT_TYPE(u, undumper, SCM_ARG1, __FUNCTION__, "Undumper");
20
21   u->parse_contents (keys);
22   return SCM_UNSPECIFIED;
23 }
24
25 LY_DEFINE(ly_make_undumper, "ly:make-undumper",
26           0, 0,0,
27           (),
28           "Create a key undumper. "
29           )
30 {
31   Object_key_undumper *u = new Object_key_undumper ();
32   SCM x = u->self_scm();
33   scm_gc_unprotect_object (x);
34   return x;
35 }
36
37
38 LY_DEFINE(ly_undumper_lookup, "ly:undumper-lookup",
39           2,0,0,
40           (SCM undumper, SCM serial),
41           "Return the object key for number @var{serial}. "
42           )
43   
44 {
45   Object_key_undumper* u = unsmob_key_undumper (undumper);
46
47   SCM_ASSERT_TYPE(u, undumper, SCM_ARG1, __FUNCTION__, "undumper");
48   SCM_ASSERT_TYPE(scm_is_integer(serial), serial, SCM_ARG2, __FUNCTION__, "integer");
49   return u->get_key (scm_to_int (serial))->self_scm();
50 }
51
52