/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2002--2012 Juergen Reuter <reuter@ipd.uka.de>
+ Copyright (C) 2002--2015 Juergen Reuter <reuter@ipd.uka.de>
Han-Wen Nienhuys <hanwen@xs4all.nl
public:
TRANSLATOR_DECLARATIONS (Ambitus_engraver);
protected:
- DECLARE_ACKNOWLEDGER (note_head);
+ void acknowledge_note_head (Grob_info);
void process_music ();
void stop_translation_timestep ();
is_typeset_ = false;
}
-Ambitus_engraver::Ambitus_engraver ()
+Ambitus_engraver::Ambitus_engraver (Context *c)
+ : Engraver (c)
{
ambitus_ = 0;
heads_.set (0, 0);
int offset = robust_scm2int (get_property ("middleCOffset"), 0);
start_c0_ = clef_pos + offset;
- start_key_sig_ = get_property ("keySignature");
+ start_key_sig_ = get_property ("keyAlterations");
is_typeset_ = true;
}
Ambitus_engraver::acknowledge_note_head (Grob_info info)
{
Stream_event *nr = info.event_cause ();
- if (nr && nr->in_event_class ("note-event"))
+ if (nr && nr->in_event_class ("note-event")
+ && !to_boolean (info.grob ()->get_property ("ignore-ambitus")))
{
SCM p = nr->get_property ("pitch");
/*
If the engraver is added to a percussion context,
filter out unpitched note heads.
*/
- if (!unsmob_pitch (p))
+ if (!unsmob<Pitch> (p))
return;
- Pitch pitch = *unsmob_pitch (p);
+ Pitch pitch = *unsmob<Pitch> (p);
Drul_array<bool> expands = pitch_interval_.add_point (pitch);
if (expands[UP])
causes_[UP] = nr;
scm_from_int (p.get_notename ())),
start_key_sig_);
- if (handle == SCM_BOOL_F)
+ if (scm_is_false (handle))
handle = scm_assoc (scm_from_int (p.get_notename ()),
start_key_sig_);
- Rational sig_alter = (handle != SCM_BOOL_F)
+ Rational sig_alter = (scm_is_true (handle))
? robust_scm2rational (scm_cdr (handle), Rational (0))
: Rational (0);
}
}
-ADD_ACKNOWLEDGER (Ambitus_engraver, note_head);
+void
+Ambitus_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Ambitus_engraver, note_head);
+}
+
ADD_TRANSLATOR (Ambitus_engraver,
/* doc */
"Create an ambitus.",
"AmbitusNoteHead ",
/* read */
- "keySignature "
+ "keyAlterations "
"middleCClefPosition "
"middleCOffset ",