- case MLP_NONE:
- return Stencil ();
- case MLP_BB:
- out = brew_flexa (me, delta_pitch, false,
- flexa_width, thickness, true, DOWN);
- break;
- case MLP_sc:
- out = Font_interface::get_default_font (me)->find_by_name ("noteheads--2mensural");
- break;
- case MLP_ss:
- out = Font_interface::get_default_font (me)->find_by_name ("noteheads--1mensural");
- break;
- case MLP_cs:
- out = Font_interface::get_default_font (me)->find_by_name ("noteheads-lmensural");
- break;
- case MLP_SS:
- out = brew_flexa (me, delta_pitch, false,
- flexa_width, thickness, true, UP);
- break;
- case MLP_LB:
- out = brew_flexa (me, delta_pitch, false,
- flexa_width, thickness, false, CENTER);
- break;
- default:
- programming_error (_f ("Mensural_ligature:"
- "unexpected case fall-through"));
- return Stencil ();
+ case MLP_NONE:
+ return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));
+ case MLP_MAXIMA:
+ duration_log--;
+ case MLP_LONGA:
+ duration_log--;
+ case MLP_BREVIS:
+ duration_log--;
+ suffix = ::to_string (duration_log) + color
+ + (duration_log < -1 ? "lig" : "") + "mensural";
+ index = prefix + "s";
+ out = fm->find_by_name (index + "r" + suffix);
+ if (!out.is_empty ()
+ && !Staff_symbol_referencer::on_line
+ (me,
+ robust_scm2int (me->get_property ("staff-position"), 0)))
+ index += "r";
+ out = fm->find_by_name (index + suffix);
+ break;
+ case MLP_FLEXA_BEGIN:
+ case MLP_FLEXA_END:
+ out = brew_flexa (me, black, flexa_width, thickness,
+ note_shape == MLP_FLEXA_BEGIN);
+ break;
+ default:
+ programming_error ("Mensural_ligature:"
+ " unexpected case fall-through");
+ return Lookup::blank (Box (Interval (0, 0), Interval (0, 0)));