]> git.donarmstrong.com Git - lilypond.git/blob - lily/page-marker.cc
Add a new kind of object, Page_marker, at the same level as scores and
[lilypond.git] / lily / page-marker.cc
1 /*
2   page-marker.cc -- implement Page_marker
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
7 */
8
9 #include "page-marker.hh"
10 #include "ly-smobs.icc"
11
12 Page_marker::Page_marker (SCM symbol, SCM permission)
13 {
14   symbol_ = symbol;
15   permission_ = permission;
16   smobify_self ();
17 }
18
19 Page_marker::~Page_marker ()
20 {
21 }
22
23 IMPLEMENT_SMOBS (Page_marker);
24 IMPLEMENT_DEFAULT_EQUAL_P (Page_marker);
25 IMPLEMENT_TYPE_P (Page_marker, "ly:page-marker?");
26
27 SCM
28 Page_marker::mark_smob (SCM smob)
29 {
30   Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob);
31   scm_gc_mark (pm->symbol_);
32   scm_gc_mark (pm->permission_);
33   return SCM_EOL;
34 }
35
36 int
37 Page_marker::print_smob (SCM smob, SCM port, scm_print_state*)
38 {
39   Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob);
40   (void)pm;
41   scm_puts ("#<Page_marker>", port);
42   return 1;
43 }
44
45 SCM
46 Page_marker::permission_symbol ()
47 {
48   return symbol_;
49 }
50
51 SCM
52 Page_marker::permission_value ()
53 {
54   return permission_;
55 }