From f8f86f7e61fbea1b289f98f26e6253532dc4a356 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 18 Aug 2005 11:40:23 +0000 Subject: [PATCH] * scm/define-grob-properties.scm (all-user-grob-properties): add @code{} tags to property description. * lily/include/line-group-group-engraver.hh (Module): remove file. * python/convertrules.py (conv): add rule for Engraver_group_engraver -> Engraver_group. * lily/include/performer-group-performer.hh: analogous. * lily/include/engraver-group-engraver.hh: rename to Engraver_group. * lily/context-def.cc (instantiate): check for Engraver_group_engraver and Performer_group_performer not Engraver/Performer. Fixes crashes when doing \with { \consist .. } --- ChangeLog | 12 +++++++++ lily/context-def.cc | 7 +++-- lily/engraver-group-engraver.cc | 28 ++++++++++---------- lily/engraver.cc | 6 ++--- lily/include/engraver-group-engraver.hh | 9 +++---- lily/include/engraver.hh | 4 +-- lily/include/lily-proto.hh | 4 +-- lily/include/line-group-group-engraver.hh | 32 ----------------------- lily/include/performer-group-performer.hh | 6 ++--- lily/include/performer.hh | 4 +-- lily/include/recording-group-engraver.hh | 4 +-- lily/include/score-engraver.hh | 2 +- lily/include/score-performer.hh | 3 ++- lily/key-engraver.cc | 17 +++++++----- lily/performer-group-performer.cc | 20 +++++++------- lily/performer.cc | 4 +-- lily/recording-group-engraver.cc | 4 +-- lily/score-engraver.cc | 8 +++--- lily/score-performer.cc | 2 +- lily/translator-group-ctors.cc | 8 +++--- python/convertrules.py | 10 +++++++ scm/define-grob-properties.scm | 2 +- 22 files changed, 96 insertions(+), 100 deletions(-) delete mode 100644 lily/include/line-group-group-engraver.hh diff --git a/ChangeLog b/ChangeLog index 6195ed73e1..0e45887281 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ 2005-08-18 Han-Wen Nienhuys + * scm/define-grob-properties.scm (all-user-grob-properties): add + @code{} tags to property description. + + * lily/include/line-group-group-engraver.hh (Module): remove file. + + * python/convertrules.py (conv): add rule for + Engraver_group_engraver -> Engraver_group. + + * lily/include/performer-group-performer.hh: analogous. + + * lily/include/engraver-group-engraver.hh: rename to Engraver_group. + * lily/context-def.cc (instantiate): check for Engraver_group_engraver and Performer_group_performer not Engraver/Performer. Fixes crashes when doing \with { \consist .. } diff --git a/lily/context-def.cc b/lily/context-def.cc index fa563bd80a..738da30f81 100644 --- a/lily/context-def.cc +++ b/lily/context-def.cc @@ -18,6 +18,9 @@ #include "translator-group.hh" #include "warn.hh" +#include "engraver-group-engraver.hh" +#include "performer-group-performer.hh" + Context_def::Context_def () { context_aliases_ = SCM_EOL; @@ -336,9 +339,9 @@ Context_def::instantiate (SCM ops, Object_key const *key) g->simple_trans_list_ = trans_list; context->implementation_ = g; - if (dynamic_cast (g)) + if (dynamic_cast (g)) g->simple_trans_list_ = filter_performers (g->simple_trans_list_); - else if (dynamic_cast (g)) + else if (dynamic_cast (g)) g->simple_trans_list_ = filter_engravers (g->simple_trans_list_); g->context_ = context; diff --git a/lily/engraver-group-engraver.cc b/lily/engraver-group-engraver.cc index ff632c7317..a3a5f99ec8 100644 --- a/lily/engraver-group-engraver.cc +++ b/lily/engraver-group-engraver.cc @@ -1,5 +1,5 @@ /* - engraver-group-engraver.cc -- implement Engraver_group_engraver + engraver-group-engraver.cc -- implement Engraver_group source file of the GNU LilyPond music typesetter @@ -15,20 +15,20 @@ #include "translator-dispatch-list.hh" void -Engraver_group_engraver::announce_grob (Grob_info info) +Engraver_group::announce_grob (Grob_info info) { announce_infos_.push (info); - Engraver_group_engraver *dad_eng + Engraver_group *dad_eng = context_->get_parent_context () - ? dynamic_cast (context_->get_parent_context ()->implementation ()) + ? dynamic_cast (context_->get_parent_context ()->implementation ()) : 0; if (dad_eng) dad_eng->announce_grob (info); } void -Engraver_group_engraver::acknowledge_grobs () +Engraver_group::acknowledge_grobs () { if (!announce_infos_.size ()) return; @@ -74,15 +74,15 @@ Engraver_group_engraver::acknowledge_grobs () the group count? */ int -Engraver_group_engraver::pending_grob_count () const +Engraver_group::pending_grob_count () const { int count = announce_infos_.size (); for (SCM s = context_->children_contexts (); scm_is_pair (s); s = scm_cdr (s)) { Context *c = unsmob_context (scm_car (s)); - Engraver_group_engraver *group - = dynamic_cast (c->implementation ()); + Engraver_group *group + = dynamic_cast (c->implementation ()); if (group) count += group->pending_grob_count (); @@ -91,7 +91,7 @@ Engraver_group_engraver::pending_grob_count () const } void -Engraver_group_engraver::do_announces () +Engraver_group::do_announces () { do { @@ -99,8 +99,8 @@ Engraver_group_engraver::do_announces () scm_is_pair (s); s = scm_cdr (s)) { Context *c = unsmob_context (scm_car (s)); - Engraver_group_engraver *group - = dynamic_cast (c->implementation ()); + Engraver_group *group + = dynamic_cast (c->implementation ()); if (group) group->do_announces (); } @@ -118,7 +118,7 @@ Engraver_group_engraver::do_announces () while (pending_grob_count () > 0); } -Engraver_group_engraver::Engraver_group_engraver () +Engraver_group::Engraver_group () { acknowledge_hash_table_ = SCM_EOL; acknowledge_hash_table_ = scm_c_make_hash_table (61); @@ -126,7 +126,7 @@ Engraver_group_engraver::Engraver_group_engraver () #include "translator.icc" -ADD_TRANSLATOR_GROUP (Engraver_group_engraver, +ADD_TRANSLATOR_GROUP (Engraver_group, /* doc */ "A group of engravers taken together", /* create */ "", /* accept */ "", @@ -134,7 +134,7 @@ ADD_TRANSLATOR_GROUP (Engraver_group_engraver, /* write */ ""); void -Engraver_group_engraver::derived_mark () const +Engraver_group::derived_mark () const { scm_gc_mark (acknowledge_hash_table_); } diff --git a/lily/engraver.cc b/lily/engraver.cc index 2d9d6ae359..487b289f26 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -17,10 +17,10 @@ #include "score-context.hh" #include "lilypond-key.hh" -Engraver_group_engraver * +Engraver_group * Engraver::get_daddy_engraver () const { - return dynamic_cast (get_daddy_translator ()); + return dynamic_cast (get_daddy_translator ()); } void @@ -41,7 +41,7 @@ Engraver::announce_grob (Grob *e, SCM cause) Grob_info i (this, e); - Engraver_group_engraver *g = get_daddy_engraver (); + Engraver_group *g = get_daddy_engraver (); if (g) g->announce_grob (i); } diff --git a/lily/include/engraver-group-engraver.hh b/lily/include/engraver-group-engraver.hh index b57f4e0bea..0462922a24 100644 --- a/lily/include/engraver-group-engraver.hh +++ b/lily/include/engraver-group-engraver.hh @@ -1,6 +1,5 @@ - /* - engraver-group-engraver.hh -- declare Engraver_group_engraver + engraver-group-engraver.hh -- declare Engraver_group source file of the GNU LilyPond music typesetter @@ -13,14 +12,14 @@ #include "engraver.hh" #include "translator-group.hh" -class Engraver_group_engraver : public virtual Translator_group +class Engraver_group : public virtual Translator_group { protected: Array announce_infos_; SCM acknowledge_hash_table_; public: - VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Engraver_group_engraver); - Engraver_group_engraver (); + VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Engraver_group); + Engraver_group (); virtual void derived_mark () const; void do_announces (); virtual void announce_grob (Grob_info); diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh index f80da70d73..df63173e8c 100644 --- a/lily/include/engraver.hh +++ b/lily/include/engraver.hh @@ -20,7 +20,7 @@ class Engraver : public Translator { - friend class Engraver_group_engraver; + friend class Engraver_group; protected: /* take note of item/spanner @@ -30,7 +30,7 @@ protected: */ virtual void acknowledge_grob (Grob_info) {} virtual void announce_grob (Grob_info); - Engraver_group_engraver *get_daddy_engraver () const; + Engraver_group *get_daddy_engraver () const; public: /** diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 76275cfab9..05af750dbf 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -46,7 +46,7 @@ class Context_def; class Context_specced_music; class Engraver; class Engraver; -class Engraver_group_engraver; +class Engraver_group; class Event; class Event_chord; class Event_chord_iterator; @@ -124,7 +124,7 @@ class Paper_score; class Paper_system; class Performance; class Performer; -class Performer_group_performer; +class Performer_group; class Piano_bar_engraver; class Pitch; class Pitch_squash_engraver; diff --git a/lily/include/line-group-group-engraver.hh b/lily/include/line-group-group-engraver.hh deleted file mode 100644 index 92b6f8a269..0000000000 --- a/lily/include/line-group-group-engraver.hh +++ /dev/null @@ -1,32 +0,0 @@ -/* - line-group-engraver.hh -- declare Line_group_engraver - - source file of the GNU LilyPond music typesetter - - (c) 1997--2005 Han-Wen Nienhuys -*/ - -#ifndef LINE_GROUP_GRAV_HH -#define LINE_GROUP_GRAV_HH - -#include "engraver-group-engraver.hh" - -/** - Engravers put elements on the same or lowel level in a line. - - DEPRECATED. -*/ -class Line_group_engraver_group : public Engraver_group_engraver -{ -protected: - Spanner *staffline_; - - virtual void create_line_spanner (); - virtual void initialize (); - virtual void finalize (); -public: - TRANSLATOR_DECLARATIONS (Line_group_engraver_group); -}; - -#endif // LINE_GROUP_GRAV_HH - diff --git a/lily/include/performer-group-performer.hh b/lily/include/performer-group-performer.hh index 2a8d9a8d4e..07baa64d2d 100644 --- a/lily/include/performer-group-performer.hh +++ b/lily/include/performer-group-performer.hh @@ -1,5 +1,5 @@ /* - performer-group-performer.hh -- declare Performer_group_performer + performer-group-performer.hh -- declare Performer_group (c) 1996--2005 Han-Wen Nienhuys Jan Nieuwenhuizen @@ -13,10 +13,10 @@ typedef void (Performer:: *Performer_method) (void); -class Performer_group_performer : public virtual Translator_group +class Performer_group : public virtual Translator_group { public: - VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Performer_group_performer); + VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Performer_group); void do_announces (); virtual void announce_element (Audio_element_info); diff --git a/lily/include/performer.hh b/lily/include/performer.hh index 0473d1c181..86fef48990 100644 --- a/lily/include/performer.hh +++ b/lily/include/performer.hh @@ -18,8 +18,8 @@ class Performer : public Translator { public: VIRTUAL_COPY_CONSTRUCTOR (Translator, Performer); - friend class Performer_group_performer; - Performer_group_performer *get_daddy_performer () const; + friend class Performer_group; + Performer_group *get_daddy_performer () const; protected: virtual void announce_element (Audio_element_info); diff --git a/lily/include/recording-group-engraver.hh b/lily/include/recording-group-engraver.hh index 5444ed6054..e582b5eeb1 100644 --- a/lily/include/recording-group-engraver.hh +++ b/lily/include/recording-group-engraver.hh @@ -1,5 +1,5 @@ /* - recording-group-engraver.hh -- declare + recording-group-engraver.hh -- declare Recording_group_engraver source file of the GNU LilyPond music typesetter @@ -11,7 +11,7 @@ #include "engraver-group-engraver.hh" -class Recording_group_engraver : public Engraver_group_engraver +class Recording_group_engraver : public Engraver_group { public: VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Recording_group_engraver); diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index 94273c0887..56976d7dd5 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -13,7 +13,7 @@ #include "score-translator.hh" class Score_engraver : public virtual Score_translator, - public virtual Engraver_group_engraver + public virtual Engraver_group { System *system_; diff --git a/lily/include/score-performer.hh b/lily/include/score-performer.hh index bd8528b876..126a5851a3 100644 --- a/lily/include/score-performer.hh +++ b/lily/include/score-performer.hh @@ -14,7 +14,8 @@ /** Top level performer. Completely takes care of MIDI output */ -class Score_performer : public Score_translator, public virtual Performer_group_performer +class Score_performer : public Score_translator, + public virtual Performer_group { public: VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Score_performer); diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index b0d2557da8..89608562c6 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -76,10 +76,6 @@ Key_engraver::create_key (bool is_default) || key == SCM_EOL) && !scm_is_eq (last, key)) { - cancellation_ = make_item ("KeyCancellation", - key_event_ - ? key_event_->self_scm () : SCM_EOL); - SCM restore = SCM_EOL; SCM *tail = &restore; for (SCM s = last; scm_is_pair (s); s = scm_cdr (s)) @@ -92,9 +88,16 @@ Key_engraver::create_key (bool is_default) } } - cancellation_->set_property ("alteration-alist", restore); - cancellation_->set_property ("c0-position", - get_property ("middleCPosition")); + if (scm_is_pair (restore)) + { + cancellation_ = make_item ("KeyCancellation", + key_event_ + ? key_event_->self_scm () : SCM_EOL); + + cancellation_->set_property ("alteration-alist", restore); + cancellation_->set_property ("c0-position", + get_property ("middleCPosition")); + } } item_->set_property ("alteration-alist", key); } diff --git a/lily/performer-group-performer.cc b/lily/performer-group-performer.cc index 37715b538e..ef4a9d8799 100644 --- a/lily/performer-group-performer.cc +++ b/lily/performer-group-performer.cc @@ -1,5 +1,5 @@ /* - performer-group-performer.cc -- implement Performer_group_performer + performer-group-performer.cc -- implement Performer_group source file of the GNU LilyPond music typesetter @@ -13,7 +13,7 @@ #include "audio-element.hh" #include "warn.hh" -ADD_TRANSLATOR_GROUP (Performer_group_performer, +ADD_TRANSLATOR_GROUP (Performer_group, /* doc */ "", /* create */ "", /* accept */ "", @@ -21,18 +21,18 @@ ADD_TRANSLATOR_GROUP (Performer_group_performer, /* write */ ""); void -Performer_group_performer::announce_element (Audio_element_info info) +Performer_group::announce_element (Audio_element_info info) { announce_infos_.push (info); Translator_group *t = context ()->get_parent_context ()->implementation (); - if (Performer_group_performer *eg = dynamic_cast (t)) + if (Performer_group *eg = dynamic_cast (t)) eg->announce_element (info); } void -Performer_group_performer::acknowledge_audio_elements () +Performer_group::acknowledge_audio_elements () { for (int j = 0; j < announce_infos_.size (); j++) { @@ -60,7 +60,7 @@ performer_each (SCM list, Performer_method method) } void -Performer_group_performer::do_announces () +Performer_group::do_announces () { while (1) { @@ -76,23 +76,23 @@ Performer_group_performer::do_announces () } void -Performer_group_performer::play_element (Audio_element *e) +Performer_group::play_element (Audio_element *e) { Context *c = context_->get_parent_context (); if (c) { - Performer_group_performer *pgp = dynamic_cast (c->implementation ()); + Performer_group *pgp = dynamic_cast (c->implementation ()); pgp->play_element (e); } } int -Performer_group_performer::get_tempo () const +Performer_group::get_tempo () const { Context *c = context_->get_parent_context (); if (c) { - Performer_group_performer *pgp = dynamic_cast (c->implementation ()); + Performer_group *pgp = dynamic_cast (c->implementation ()); return pgp->get_tempo (); } return 60; diff --git a/lily/performer.cc b/lily/performer.cc index f5e9e7f602..45ade53504 100644 --- a/lily/performer.cc +++ b/lily/performer.cc @@ -23,11 +23,11 @@ Performer::get_tempo () const return get_daddy_performer ()->get_tempo (); } -Performer_group_performer * +Performer_group * Performer::get_daddy_performer () const { return - dynamic_cast (get_daddy_translator ()); + dynamic_cast (get_daddy_translator ()); } void diff --git a/lily/recording-group-engraver.cc b/lily/recording-group-engraver.cc index 54b059d8f7..8548928dd6 100644 --- a/lily/recording-group-engraver.cc +++ b/lily/recording-group-engraver.cc @@ -12,7 +12,7 @@ void Recording_group_engraver::derived_mark () const { - Engraver_group_engraver::derived_mark (); + Engraver_group::derived_mark (); scm_gc_mark (now_events_); scm_gc_mark (accumulator_); } @@ -72,7 +72,7 @@ Recording_group_engraver::fetch_precomputable_methods (Translator_group_void_met } ADD_TRANSLATOR_GROUP (Recording_group_engraver, - "Engraver_group_engraver that records all music events " + "Engraver_group that records all music events " "for this context. Calls the procedure " "in @code{recordEventSequence} when finished.", "", diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index d8bbe720e8..44e7a9e427 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -36,7 +36,7 @@ Score_engraver::derived_mark () const if (pscore_) scm_gc_mark (pscore_->self_scm ()); Score_translator::derived_mark (); - Engraver_group_engraver::derived_mark (); + Engraver_group::derived_mark (); } void @@ -85,7 +85,7 @@ Score_engraver::initialize () system_ = pscore_->root_system (); context ()->set_property ("rootSystem", system_->self_scm ()); - Engraver_group_engraver::initialize (); + Engraver_group::initialize (); } void @@ -102,7 +102,7 @@ Score_engraver::one_time_step () if (!to_boolean (context ()->get_property ("skipTypesetting"))) { precomputed_recurse_over_translators (context (), PROCESS_MUSIC, UP); - Engraver_group_engraver::do_announces (); + Engraver_group::do_announces (); } precomputed_recurse_over_translators (context (), STOP_TRANSLATION_TIMESTEP, UP); @@ -154,7 +154,7 @@ Score_engraver::forbid_breaks () bool Score_engraver::try_music (Music *m) { - if (Engraver_group_engraver::try_music (m)) + if (Engraver_group::try_music (m)) return true; return false; diff --git a/lily/score-performer.cc b/lily/score-performer.cc index c7d8165312..b5983bb25e 100644 --- a/lily/score-performer.cc +++ b/lily/score-performer.cc @@ -94,7 +94,7 @@ Score_performer::derived_mark () const scm_gc_mark (performance_->self_scm ()); Score_translator::derived_mark (); - Performer_group_performer::derived_mark (); + Performer_group::derived_mark (); } void diff --git a/lily/translator-group-ctors.cc b/lily/translator-group-ctors.cc index 4932048f9a..529a60184b 100644 --- a/lily/translator-group-ctors.cc +++ b/lily/translator-group-ctors.cc @@ -18,10 +18,10 @@ Translator_group * get_translator_group (SCM sym) { - if (sym == ly_symbol2scm ("Engraver_group_engraver")) - return new Engraver_group_engraver (); - else if (sym == ly_symbol2scm ("Performer_group_performer")) - return new Performer_group_performer (); + if (sym == ly_symbol2scm ("Engraver_group")) + return new Engraver_group (); + else if (sym == ly_symbol2scm ("Performer_group")) + return new Performer_group (); else if (sym == ly_symbol2scm ("Score_engraver")) return new Score_engraver (); else if (sym == ly_symbol2scm ("Score_performer")) diff --git a/python/convertrules.py b/python/convertrules.py index 796cd0068c..0bd24bd3a4 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -2542,6 +2542,16 @@ conversions.append (((2, 7, 4), conv, '''keyAccidentalOrder->keyAlterationOrder''')) + +def conv (str): + str = re.sub('Performer_group_performer', 'Performer_group', str) + str = re.sub('Engraver_group_engraver', 'Engraver_group', str) + return str + +conversions.append (((2, 7, 6), conv, + '''Performer_group_performer -> Performer_group, Engraver_group_engraver -> Engraver_group''')) + + ################################################################ def str_to_tuple (s): diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index fb4e97fff2..bafa9c8cd1 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -277,7 +277,7 @@ slur, the closer it is to this height.") of note-column for horizontal shifting. This is used by @internalsref{note-collision-interface}.") (avoid-slur ,symbol? "Method of handling slur collisions. -Choices are @{around}, @{inside}, @{outside}. If unset, script +Choices are @code{around}, @code{inside}, @code{outside}. If unset, script and slur ignore eachother.") (inspect-quants ,number-pair? "If debugging is set, set beam quant to this position, and print the respective scores.") -- 2.39.2