protected:
void stop_translation_timestep ();
void process_music ();
- DECLARE_ACKNOWLEDGER (bar_line);
+ void acknowledge_bar_line (Grob_info);
virtual void derived_mark () const;
private:
scm_gc_mark (prev_glyph_);
}
-Cue_clef_engraver::Cue_clef_engraver ()
+Cue_clef_engraver::Cue_clef_engraver (Context *c)
+ : Engraver (c)
{
clef_ = 0;
modifier_ = 0;
SCM clefpos = get_property ("cueClefPosition");
SCM transposition = get_property ("cueClefTransposition");
- if (scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
- || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
- || scm_equal_p (transposition, prev_transposition_) == SCM_BOOL_F)
+ if (!ly_is_equal (glyph, prev_glyph_)
+ || !ly_is_equal (clefpos, prev_cpos_)
+ || !ly_is_equal (transposition, prev_transposition_))
{
set_glyph ();
if (scm_is_string (glyph))
{
if (clef_)
{
- SCM vis = 0;
if (to_boolean (clef_->get_property ("non-default")))
- vis = get_property ("explicitCueClefVisibility");
+ {
+ SCM vis = get_property ("explicitCueClefVisibility");
- if (vis)
- clef_->set_property ("break-visibility", vis);
+ if (scm_is_vector (vis))
+ clef_->set_property ("break-visibility", vis);
+ }
clef_ = 0;
modifier_ = 0;
}
}
-ADD_ACKNOWLEDGER (Cue_clef_engraver, bar_line);
+void
+Cue_clef_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Cue_clef_engraver, bar_line);
+}
+
ADD_TRANSLATOR (Cue_clef_engraver,
/* doc */
"Determine and set reference point for pitches in cued voices.",