]> git.donarmstrong.com Git - lilypond.git/commitdiff
*** empty log message ***
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 9 Feb 2004 19:07:55 +0000 (19:07 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 9 Feb 2004 19:07:55 +0000 (19:07 +0000)
17 files changed:
ChangeLog
lily/global-translator.cc
lily/include/clef.hh
lily/include/context-def.hh
lily/include/global-translator.hh
lily/include/score-engraver.hh
lily/include/score-performer.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/music-iterator.cc
lily/music-output-def.cc
lily/score-engraver.cc
lily/score-performer.cc
lily/timing-translator.cc
lily/translator-def.cc
lily/translator-group.cc
lily/translator.cc

index 3f9baa4cc8e88e99589dd995fdf144b8ffecf23f..9d8536e2a42219337fea80b538fa96cd7c01ef65 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,9 @@
 
 2004-02-09  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * 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
index dc6280681157dbd899191c58c4f98503f94c31b3..1edda61cbb9a8cb655f1cc46a3f9eea003673f7e 100644 (file)
 
 Global_translator::Global_translator ()
 {
+  output_def_ = 0;
+}
+
+Music_output_def* 
+Global_translator::get_output_def () const
+{
+  return output_def_;
 }
 
 void
index 896aaa29e655d7886117c7e46fda00d18bfcd0e0..387284374b4770c1dcc742f9f8920400ccd5d113 100644 (file)
@@ -17,7 +17,6 @@ struct Clef
   DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM ));
   DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
   static bool has_interface (Grob*);
-  
 };
 
 
index ba6c0069da556468040d06137130e431501127c2..0011b7c7c8399f655859cb0cf9e369f1fb32fb77 100644 (file)
@@ -42,7 +42,7 @@ public:
   void set_acceptor (SCM accepts, bool add);
 
   Link_array<Context_def> 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;
index 37937d558b28bc4a572c646f4307c3a9d4dbb107..979e398a7b23d23781e3700da121f4a0ecd8213a 100644 (file)
 class Global_translator : public virtual Translator_group
 {
   PQueue<Moment> 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:
-
 };
 
 
index c822ecb355b48441e19f4e4a8571e3af7158b09f..5168f9c72cefbe01a144a309a4381c946f880ae2 100644 (file)
@@ -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<Grob> 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 */
index d7dc38bb8c3179348989b9318cf3354bb6caf11d..29de4d2c3fb4a87b31b020f8b5fd9f30c27fdf0f 100644 (file)
@@ -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&);
 
index 0f31427ec3bcd2e64ce23d7803a28f1e30135c29..0ae9e840f13c86c1c16508a74d7073c42c387998 100644 (file)
@@ -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<Translator_group> path_to_acceptable_translator (SCM alias,
-                                                             Music_output_def*) const;
+  Translator_group *find_create_translator (SCM context_name,
+                                           String id, SCM ops);
+  Link_array<Translator_group>
+    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);
   
index 7b17db61b97d19e9f9b195749ece6af8a0e933ac..fa8d1d2b037b7798cfaf82082f19ad40fff65792 100644 (file)
@@ -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);
index ea15581fe9cbbd639f48cb0f24dfdf6d59cc6071..4a4c10f955f4b0ff2909b91907f55df794101ff3 100644 (file)
@@ -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);
 }
index 04a7b04cd37f6d9727eb3b6d0f27cd361b44e998..6743e62f6d4f46bcb5e2960bc39af1f32aacd0bc 100644 (file)
@@ -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<Global_translator*> (tg)->output_def_ = this;
   
+
   tg->initialize ();
   
   return dynamic_cast <Global_translator *> (tg);
index 31349ad2cf3b7add88629e247c90d2c84a3e7a3a..a505efcc2d545902fdbc983095e3c4147ec8bfff 100644 (file)
@@ -103,10 +103,9 @@ Score_engraver::initialize ()
    
   unsmob_context_def (definition_)->apply_default_property_operations (this);
 
-  assert (dynamic_cast<Paper_def *> (output_def_));
   assert (!daddy_trans_);
   pscore_ = new Paper_score;
-  pscore_->paper_ = dynamic_cast<Paper_def*> (output_def_);
+  pscore_->paper_ = dynamic_cast<Paper_def*> (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)
 {
index c8aaaa13d7ea2d6465c71666a3daa48b42c345bd..9c1e55f3c23365a6fecfd2af8a5f586a60f66cc6 100644 (file)
@@ -112,9 +112,8 @@ void
 Score_performer::initialize ()
 {
   unsmob_context_def (definition_)->apply_default_property_operations (this);
-  assert (dynamic_cast<Midi_def *> (output_def_));
   performance_ = new Performance;
-  performance_->midi_ = dynamic_cast<Midi_def*> (output_def_);
+  performance_->midi_ = dynamic_cast<Midi_def*> (get_output_def ());
 
   Translator_group::initialize ();
 }
index 64be59c4f838c902c1df87c1efe821baee320204..80e71deadfed26d3e5fec9cb8ea795e9f84b74ac 100644 (file)
@@ -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");
index f2037b227666833bde4c56c43a3e2e713ec6dd8f..f48e78d3aa3a9d0c979bcb1e0888bbeb9ca9f720 100644 (file)
@@ -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<Translator_group*> (g);
-  tg->output_def_ = md;
   tg->definition_ = self_scm ();
 
   SCM trans_names = get_translator_names (ops); 
index 357e34372f4dd80e2b7a3fa7d4e0c5e7169e6a77..4475d08aae0a07920ed41929525310a8654a1596 100644 (file)
@@ -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 ();
index d71a73fb9890c707126c547c66c3f6348883f117..c8a99998c55bc1e6424cdaebf8436c18c0d89d7f 100644 (file)
@@ -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