- String style = ly_scm2string (scm_symbol_to_string (scm_style));
-
- /*
- * Shall we use a common custos font character regardless if on
- * staffline or not, or shall we use individual font characters
- * for both cases?
- */
- bool adjust =
- to_boolean (me->get_grob_property ("adjust-if-on-staffline"));
-
- String idx = "custodes-" + style + "-";
-
- int neutral_pos;
- SCM ntr_pos = me->get_grob_property ("neutral-position");
- if (gh_number_p (ntr_pos))
- neutral_pos = gh_scm2int (ntr_pos);
- else
- neutral_pos = 0;
-
- Direction neutral_direction =
- to_dir (me->get_grob_property ("neutral-direction"));
-
- int pos = (int)rint (Staff_symbol_referencer::position_f (me));
- int sz = Staff_symbol_referencer::line_count (me)-1;
-
- if (pos < neutral_pos)
- idx += "u";
- else if (pos > neutral_pos)
- idx += "d";
- else if (neutral_direction == UP)
- idx += "u";
- else if (neutral_direction == DOWN)
- idx += "d";
- else // auto direction; not yet supported -> use "d"
- idx += "d";
-
- if (adjust)
- {
- idx += (((pos ^ sz) & 0x1) == 0) ? "1" : "0";
- }
- else
- {
- idx += "2";
- }