#include <cmath>
#include <cctype>
#include <algorithm> // min, max
+
using namespace std;
#include "directional-element-interface.hh"
-#include "dots.hh"
#include "font-interface.hh"
#include "international.hh"
-#include "lookup.hh"
-#include "misc.hh"
-#include "music.hh"
-#include "output-def.hh"
-#include "rhythmic-head.hh"
-#include "staff-symbol-referencer.hh"
-#include "staff-symbol.hh"
#include "warn.hh"
+#include "grob.hh"
static Stencil
internal_print (Grob *me, string *font_char)
Font_metric *fm = Font_interface::get_default_font (me);
- string idx = "noteheads.s" + suffix;
- Stencil out = fm->find_by_name (idx);
+ string idx_symmetric;
+ string idx_directed;
+ string idx_either;
+ idx_symmetric = idx_either = "noteheads.s" + suffix;
+ Stencil out = fm->find_by_name (idx_symmetric);
if (out.is_empty ())
{
string prefix = "noteheads.";
if (stem_dir == CENTER)
programming_error ("must have stem dir for note head");
- idx = prefix + ((stem_dir == UP) ? "u" : "d") + suffix;
- out = fm->find_by_name (idx);
+ idx_directed = idx_either =
+ prefix + ((stem_dir == UP) ? "u" : "d") + suffix;
+ out = fm->find_by_name (idx_directed);
}
if (out.is_empty ())
{
- me->warning (_f ("note head `%s' not found", idx.c_str ()));
+ me->warning (_f ("none of note heads `%s' or `%s' found",
+ idx_symmetric.c_str (), idx_directed.c_str ()));
out = Stencil (Box (Interval (0, 0), Interval (0, 0)), SCM_EOL);
}
else
- *font_char = idx;
+ *font_char = idx_either;
return out;
}
return ly_offset2scm (get_stem_attachment (fm, key));
}
-int
-Note_head::get_balltype (Grob *me)
-{
- SCM s = me->get_property ("duration-log");
- return scm_is_number (s) ? min (int (scm_to_int (s)), 2) : 0;
-}
-ADD_INTERFACE (Note_head, "note-head-interface",
+ADD_INTERFACE (Note_head,
"Note head",
/* properties */