From 832507ffe615fe778656efef0699368ed18df756 Mon Sep 17 00:00:00 2001 From: hanwen Date: Mon, 9 Feb 2004 19:07:55 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 3 +++ lily/global-translator.cc | 7 +++++++ lily/include/clef.hh | 1 - lily/include/context-def.hh | 2 +- lily/include/global-translator.hh | 12 ++++++------ lily/include/score-engraver.hh | 26 ++++++++++---------------- lily/include/score-performer.hh | 1 - lily/include/translator-group.hh | 25 ++++++++++++------------- lily/include/translator.hh | 4 ---- lily/music-iterator.cc | 2 +- lily/music-output-def.cc | 4 +++- lily/score-engraver.cc | 4 ++-- lily/score-performer.cc | 3 +-- lily/timing-translator.cc | 2 +- lily/translator-def.cc | 3 +-- lily/translator-group.cc | 10 ++-------- lily/translator.cc | 5 ++++- 17 files changed, 54 insertions(+), 60 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3f9baa4cc8..9d8536e2a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ 2004-02-09 Han-Wen Nienhuys + * lily/include/translator-group.hh: move Music_output_def member + to Global_translator. + * scripts/lilypond-book.py (do_file): fix latex output. * VERSION: release 2.1.20 diff --git a/lily/global-translator.cc b/lily/global-translator.cc index dc62806811..1edda61cbb 100644 --- a/lily/global-translator.cc +++ b/lily/global-translator.cc @@ -16,6 +16,13 @@ Global_translator::Global_translator () { + output_def_ = 0; +} + +Music_output_def* +Global_translator::get_output_def () const +{ + return output_def_; } void diff --git a/lily/include/clef.hh b/lily/include/clef.hh index 896aaa29e6..387284374b 100644 --- a/lily/include/clef.hh +++ b/lily/include/clef.hh @@ -17,7 +17,6 @@ struct Clef DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM )); DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM )); static bool has_interface (Grob*); - }; diff --git a/lily/include/context-def.hh b/lily/include/context-def.hh index ba6c0069da..0011b7c7c8 100644 --- a/lily/include/context-def.hh +++ b/lily/include/context-def.hh @@ -42,7 +42,7 @@ public: void set_acceptor (SCM accepts, bool add); Link_array path_to_acceptable_translator (SCM type_string, Music_output_def* odef) const; - Translator_group * instantiate (Music_output_def*, SCM extra_ops); + Translator_group * instantiate (SCM extra_ops); SCM to_alist () const; bool is_alias (SCM) const; diff --git a/lily/include/global-translator.hh b/lily/include/global-translator.hh index 37937d558b..979e398a7b 100644 --- a/lily/include/global-translator.hh +++ b/lily/include/global-translator.hh @@ -17,11 +17,10 @@ class Global_translator : public virtual Translator_group { PQueue extra_mom_pq_; + Music_output_def* output_def_; + friend class Music_output_def; public: VIRTUAL_COPY_CONS (Translator); - Moment final_mom_; - Moment prev_mom_; - Moment now_mom_; Global_translator (); int get_moments_left () const; @@ -37,12 +36,13 @@ public: virtual void one_time_step (); virtual void finish (); virtual void start (); - + virtual Music_output_def* get_output_def () const; virtual Moment now_mom () const; - + Moment final_mom_; + Moment prev_mom_; + Moment now_mom_; protected: - }; diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index c822ecb355..5168f9c72c 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -20,41 +20,35 @@ class Score_engraver : public Engraver_group_engraver, public Global_translator { System *system_; - int breaks_; - + int breaks_; // used for stat printing Link_array elems_; - Paper_column* command_column_; Paper_column* musical_column_; + Paper_score * pscore_; + void make_columns (); void set_columns (Paper_column*,Paper_column*); void typeset_all (); - -public: - TRANSLATOR_DECLARATIONS(Score_engraver); - Paper_score * pscore_; - - void forbid_breaks (); - - virtual Music_output *get_output (); -protected: +protected: + /* Global_translator */ virtual void prepare (Moment); virtual void finish (); virtual void one_time_step (); - virtual int get_depth () const { return Global_translator::get_depth ();} -protected: /* Engraver_group_engraver interface */ virtual void acknowledge_grob (Grob_info); - virtual bool try_music (Music*); virtual void initialize (); virtual void finalize (); virtual void announce_grob (Grob_info); virtual void typeset_grob (Grob*elem); - virtual void stop_translation_timestep (); + +public: + TRANSLATOR_DECLARATIONS(Score_engraver); + void forbid_breaks (); + virtual Music_output *get_output (); }; #endif /* SCORE_ENGRAVER_HH */ diff --git a/lily/include/score-performer.hh b/lily/include/score-performer.hh index d7dc38bb8c..29de4d2c3f 100644 --- a/lily/include/score-performer.hh +++ b/lily/include/score-performer.hh @@ -32,7 +32,6 @@ protected: virtual int get_tempo () const; virtual void play_element (Audio_element* p); virtual Music_output *get_output (); - private: void header (Midi_stream&); diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index 0f31427ec3..0ae9e840f1 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -28,46 +28,45 @@ class Scheme_hash_table; hierarchically grouped Translators */ class Translator_group : public virtual Translator { - - Scheme_hash_table *properties_dict () const; +public: + String id_string_; +private: int iterator_count_; - friend class Interpretation_context_handle; + + Scheme_hash_table *properties_dict () const; SCM add_translator (SCM, Translator*); - protected: ~Translator_group (); virtual SCM get_simple_trans_list (); + public: void execute_pushpop_property (SCM prop, SCM sym, SCM val); SCM internal_get_property (SCM name_sym) const; SCM properties_as_alist () const; - void unset_property (SCM var_sym); void internal_set_property (SCM var_sym, SCM value); Translator_group *where_defined (SCM name_sym) const; - - String id_string_; String context_name () const; - VIRTUAL_COPY_CONS (Translator); Translator_group (Translator_group const &); Translator_group (); void add_fresh_group_translator (Translator *trans); void add_used_group_translator (Translator *trans); - int get_depth () const; bool is_bottom_context () const; bool is_removable () const; void terminate_translator (Translator*r); Translator *remove_translator (Translator*trans); void check_removal (); Translator_group *find_existing_translator (SCM context_name, String id); - Translator_group *find_create_translator (SCM context_name, String id, SCM ops); - Link_array path_to_acceptable_translator (SCM alias, - Music_output_def*) const; + Translator_group *find_create_translator (SCM context_name, + String id, SCM ops); + Link_array + path_to_acceptable_translator (SCM alias, + Music_output_def*) const; Translator_group*get_default_interpreter (); - + VIRTUAL_COPY_CONS (Translator); public: bool try_music_on_nongroup_children (Music *m); diff --git a/lily/include/translator.hh b/lily/include/translator.hh index 7b17db61b9..fa8d1d2b03 100644 --- a/lily/include/translator.hh +++ b/lily/include/translator.hh @@ -68,10 +68,6 @@ private: protected: // should be private. SCM simple_trans_list_; friend class Context_def; - // ugir. - // friend SCM Translator_group::get_simple_trans_list (); - - public: Global_translator * top_translator () const; TRANSLATOR_DECLARATIONS(Translator); diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc index ea15581fe9..4a4c10f955 100644 --- a/lily/music-iterator.cc +++ b/lily/music-iterator.cc @@ -26,7 +26,7 @@ Music_iterator::Music_iterator () smobify_self (); } -Music_iterator::Music_iterator (Music_iterator const& src) +Music_iterator::Music_iterator (Music_iterator const& ) { assert (false); } diff --git a/lily/music-output-def.cc b/lily/music-output-def.cc index 04a7b04cd3..6743e62f6d 100644 --- a/lily/music-output-def.cc +++ b/lily/music-output-def.cc @@ -100,8 +100,10 @@ Music_output_def::get_global_translator () if (!t) error (_f ("can't find `%s' context", "Score")); - Translator_group * tg = t->instantiate (this, SCM_EOL); + Translator_group * tg = t->instantiate (SCM_EOL); + dynamic_cast (tg)->output_def_ = this; + tg->initialize (); return dynamic_cast (tg); diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 31349ad2cf..a505efcc2d 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -103,10 +103,9 @@ Score_engraver::initialize () unsmob_context_def (definition_)->apply_default_property_operations (this); - assert (dynamic_cast (output_def_)); assert (!daddy_trans_); pscore_ = new Paper_score; - pscore_->paper_ = dynamic_cast (output_def_); + pscore_->paper_ = dynamic_cast (get_output_def ()); SCM props = get_property ("System"); @@ -275,6 +274,7 @@ Score_engraver::get_output () return o; } + bool Score_engraver::try_music (Music*r) { diff --git a/lily/score-performer.cc b/lily/score-performer.cc index c8aaaa13d7..9c1e55f3c2 100644 --- a/lily/score-performer.cc +++ b/lily/score-performer.cc @@ -112,9 +112,8 @@ void Score_performer::initialize () { unsmob_context_def (definition_)->apply_default_property_operations (this); - assert (dynamic_cast (output_def_)); performance_ = new Performance; - performance_->midi_ = dynamic_cast (output_def_); + performance_->midi_ = dynamic_cast (get_output_def ()); Translator_group::initialize (); } diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 64be59c4f8..80e71deadf 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -111,7 +111,7 @@ Timing_translator::start_translation_timestep () while (!global); Moment now = global->now_mom_; - Moment dt = now - global -> prev_mom_; + Moment dt = now - global->prev_mom_; if (dt < Moment (0)) { programming_error ("Moving backwards in time"); diff --git a/lily/translator-def.cc b/lily/translator-def.cc index f2037b2276..f48e78d3aa 100644 --- a/lily/translator-def.cc +++ b/lily/translator-def.cc @@ -253,13 +253,12 @@ Context_def::get_translator_names (SCM user_mod) const Translator_group * -Context_def::instantiate (Music_output_def* md, SCM ops) +Context_def::instantiate (SCM ops) { Translator * g = get_translator (translator_group_type_); g = g->clone (); Translator_group *tg = dynamic_cast (g); - tg->output_def_ = md; tg->definition_ = self_scm (); SCM trans_names = get_translator_names (ops); diff --git a/lily/translator-group.cc b/lily/translator-group.cc index 357e34372f..4475d08aae 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -150,7 +150,7 @@ Translator_group::find_create_translator (SCM n, String id, SCM operations) SCM ops = (i == path.size () -1) ? operations : SCM_EOL; Translator_group * new_group - = path[i]->instantiate (output_def_, ops); + = path[i]->instantiate (ops); if (i == path.size () -1) { @@ -189,12 +189,6 @@ Translator_group::try_music (Music* m) return hebbes_b ; } -int -Translator_group::get_depth () const -{ - return (daddy_trans_) ? daddy_trans_->get_depth () + 1 : 0; -} - void Translator_group::terminate_translator (Translator*r) { @@ -253,7 +247,7 @@ Translator_group::get_default_interpreter () warning (_f ("can't find or create: `%s'", ly_symbol2string (nm).to_str0 ())); t = unsmob_context_def (this->definition_); } - Translator_group *tg = t->instantiate (output_def_, SCM_EOL); + Translator_group *tg = t->instantiate (SCM_EOL); add_fresh_group_translator (tg); if (!tg->is_bottom_context ()) return tg->get_default_interpreter (); diff --git a/lily/translator.cc b/lily/translator.cc index d71a73fb98..c8a99998c5 100644 --- a/lily/translator.cc +++ b/lily/translator.cc @@ -75,7 +75,10 @@ Translator::do_announces () Music_output_def * Translator::get_output_def () const { - return output_def_; + return + (daddy_trans_) + ? daddy_trans_->get_output_def () + : 0; } SCM -- 2.39.5