Direction octave_dir_;
protected:
- PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
- PRECOMPUTED_VIRTUAL void process_music ();
- DECLARE_ACKNOWLEDGER(bar_line);
+ void stop_translation_timestep ();
+ void process_music ();
+ DECLARE_ACKNOWLEDGER (bar_line);
+
+ virtual void derived_mark () const;
private:
Item *clef_;
Item *octavate_;
void inspect_clef_properties ();
};
+void
+Clef_engraver::derived_mark () const
+{
+ scm_gc_mark (prev_octavation_);
+ scm_gc_mark (prev_cpos_);
+ scm_gc_mark (prev_glyph_);
+}
+
Clef_engraver::Clef_engraver ()
{
clef_ = 0;
int dir = sign (abs_oct);
abs_oct = abs (abs_oct) + 1;
- SCM txt = scm_number_to_string (scm_int2num (abs_oct),
+ SCM txt = scm_number_to_string (scm_from_int (abs_oct),
scm_from_int (10));
g->set_property ("text",
g->set_parent (clef_, Y_AXIS);
g->set_parent (clef_, X_AXIS);
- g->set_property ("direction", scm_int2num (dir));
+ g->set_property ("direction", scm_from_int (dir));
octavate_ = g;
}
}
if (to_boolean (force_clef))
{
- Context *w = context ()->where_defined (ly_symbol2scm ("forceClef"));
+ SCM prev;
+ Context *w = context ()->where_defined (ly_symbol2scm ("forceClef"), &prev);
w->set_property ("forceClef", SCM_EOL);
}
}
}
}
-ADD_ACKNOWLEDGER(Clef_engraver, bar_line);
+ADD_ACKNOWLEDGER (Clef_engraver, bar_line);
ADD_TRANSLATOR (Clef_engraver,
/* descr */ "Determine and set reference point for pitches",
/* creats*/ "Clef OctavateEight",
/* accepts */ "",
- /* acks */ "",
/* reads */ "clefPosition clefGlyph middleCPosition clefOctavation explicitClefVisibility forceClef",
/* write */ "");