Fixes Issue 1504, allowing feather beam line breaking.
[lilypond/patrick.git] / lily / rhythmic-head.cc
blobadeb4a871ccab82d2516dd5076aa238e78d49e6e
1 /*
2 This file is part of LilyPond, the GNU music typesetter.
4 Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
6 LilyPond is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 LilyPond is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
20 #include "rhythmic-head.hh"
22 #include "item.hh"
23 #include "rest.hh"
24 #include "staff-symbol-referencer.hh"
25 #include "stem.hh"
26 #include "warn.hh"
28 Item *
29 Rhythmic_head::get_dots (Grob *me)
31 SCM s = me->get_object ("dot");
32 return unsmob_item (s);
35 Item *
36 Rhythmic_head::get_stem (Grob *me)
38 SCM s = me->get_object ("stem");
39 return unsmob_item (s);
42 int
43 Rhythmic_head::dot_count (Grob *me)
45 return get_dots (me)
46 ? robust_scm2int (get_dots (me)->get_property ("dot-count"), 0) : 0;
49 void
50 Rhythmic_head::set_dots (Grob *me, Item *dot)
52 me->set_object ("dot", dot->self_scm ());
55 int
56 Rhythmic_head::duration_log (Grob *me)
58 SCM s = me->get_property ("duration-log");
59 return scm_is_number (s) ? scm_to_int (s) : 0;
62 ADD_INTERFACE (Rhythmic_head,
63 "Note head or rest.",
65 /* properties */
66 "dot "
67 "duration-log "
68 "stem "