during stop_translation_timestep().
* lily/a2-engraver.cc: restrict acknowledged grob types.
* lily/chord-name-engraver.cc: remove acknowledge_grob().
2002-07-07 Han-Wen <hanwen@cs.uu.nl>
+ * lily/score-engraver.cc (one_time_step): warn for grobs created
+ during stop_translation_timestep().
+
+ * lily/a2-engraver.cc: restrict acknowledged grob types.
+
+ * lily/chord-name-engraver.cc: remove acknowledge_grob().
+
* Documentation/user/tutorial.itely: doc carnage.
2002-07-06 Rune Zedeler <rune@zedeler.dk>
@section Miscellaneous
-@lilypondfile[printfilename]{generic-property-override.ly}
-
-
@lilypondfile[printfilename]{rhythmic-staff.ly}
MAJOR_VERSION=1
MINOR_VERSION=5
PATCH_LEVEL=65
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=u1
# Use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
",
/* creats*/ "TextScript",
-/* acks */ "grob-interface tie-interface note-head-interface ",
-/* reads */ "combineParts noDirection soloADue soloText soloIIText aDueText split-interval unison solo unisilence unirhythm",
+/* acks */ "multi-measure-rest-interface
+slur-interface stem-interface tie-interface note-head-interface"
+,/* reads */ "combineParts noDirection soloADue soloText soloIIText aDueText split-interval unison solo unisilence unirhythm",
/* write */ "");
ENTER_DESCRIPTION(Break_align_engraver,
/* descr */ "Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder",
/* creats*/ "BreakAlignment BreakAlignGroup LeftEdge",
-/* acks */ "grob-interface", // break-aligned-interface ?
-/* reads */ "breakAlignOrder",
+/* acks */ "break-aligned-interface"
+,/* reads */ "breakAlignOrder",
/* write */ "");
class Chord_name_engraver : public Engraver
{
-
TRANSLATOR_DECLARATIONS( Chord_name_engraver);
-
protected:
virtual void stop_translation_timestep ();
- virtual void acknowledge_grob (Grob_info i);
- virtual void process_acknowledged_grobs ();
+ virtual void process_music ();
virtual bool try_music (Music *);
private:
}
void
-Chord_name_engraver::acknowledge_grob (Grob_info i)
+Chord_name_engraver::process_music ()
{
- if (Note_req* n = dynamic_cast<Note_req*> (i.music_cause ()))
- add_note (n);
-}
-
-void
-Chord_name_engraver::process_acknowledged_grobs ()
-{
- if (!chord_name_p_ && ly_car (chord_) != SCM_EOL)
+ if (ly_car (chord_) != SCM_EOL)
{
chord_name_p_ = new Item (get_property ("ChordName"));
chord_name_p_->set_grob_property ("chord", chord_);
/* descr */ "Catch Note_req's, Tonic_reqs, Inversion_reqs, Bass_req
and generate the appropriate chordname.",
/* creats*/ "ChordName",
-/* acks */ "grob-interface",
+/* acks */ "",
/* reads */ "chordChanges",
/* write */ "");
Engraver::announce_grob (info);
}
+void
+Engraver_group_engraver::start_translation_timestep ()
+{
+ Translator_group::start_translation_timestep();
+}
void
Engraver_group_engraver::process_acknowledged_grobs_in_simple_children ()
public:
TRANSLATOR_DECLARATIONS(Engraver_group_engraver);
+ virtual void start_translation_timestep ();
virtual void initialize ();
virtual void do_announces ();
virtual void announce_grob (Grob_info);
Translator_group * daddy_trans_l_ ;
- void announces ();
-
void removal_processing ();
/**
ask daddy for a feature
command_column_l_->set_grob_property ("breakable", SCM_BOOL_T);
- Grob_info i1 (command_column_l_);
- i1.origin_trans_l_ = this;
-
- Grob_info i2 (musical_column_l_);
- i2.origin_trans_l_ = this;
-
- announce_grob (i1);
- announce_grob (i2);
}
}
command_column_l_->set_grob_property ("when", now_mom_.smobbed_copy ());
musical_column_l_->set_grob_property ("when", now_mom_.smobbed_copy ());
- start_translation_timestep ();
+ Grob_info i1 (command_column_l_);
+ i1.origin_trans_l_ = this;
+
+ Grob_info i2 (musical_column_l_);
+ i2.origin_trans_l_ = this;
+
+
+ announce_grob (i1);
+ announce_grob (i2);
+
+ Translator_group::start_translation_timestep();
}
void
if (!to_boolean (get_property ("skipTypesetting")))
{
process_music ();
- announces ();
+ do_announces ();
}
stop_translation_timestep ();
check_removal ();
+
+
+ for (int i = announce_info_arr_.size(); i--;)
+ {
+ Grob *g = announce_info_arr_[i].grob_l_;
+ String msg= "Grob "
+ + g->name()
+ + " was created too late!";
+ g->programming_error (msg);
+ }
+ announce_info_arr_.clear ();
}
void
{
// fixme: put this back.
// process_music ();
- announces ();
+ do_announces ();
stop_translation_timestep ();
check_removal ();
}
ENTER_DESCRIPTION(Separating_line_group_engraver,
/* descr */ "Generates objects for computing spacing parameters.",
/* creats*/ "SeparationItem SeparatingGroupSpanner",
-/* acks */ "grob-interface",
+/* acks */ "item-interface",
/* reads */ "",
/* write */ "");
void
Translator_group::do_announces ()
{
- each (&Translator::announces);
+ each (&Translator::do_announces);
}
void
}
void
-Translator::announces ()
+Translator::do_announces ()
{
- do_announces ();
}
Music_output_def *
{
}
-void
-Translator::do_announces ()
-{
-}
-
void
Translator::initialize ()
{
(translator-property-description 'localKeySignature list? "the key
signature at this point in the measure. The format is the same as for keySignature. Is reset at every bar line."
)
-
+(translator-property-description 'localKeySignatureChanges list? "??
+ [DOCME]")
(translator-property-description 'measureLength moment? "Length of one
measure in the current time signature last?")
(translator-property-description 'measurePosition moment? " How much