]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-score.cc
* lily/dynamic-engraver.cc (stop_translation_timestep): first set
[lilypond.git] / lily / paper-score.cc
index b8bc7d318fd405d91ae1628c3fcc927304514f63..b7568416793f3dbc0b3e7c06858aef087d9bb233 100644 (file)
 #include "system.hh"
 #include "warn.hh"
 
-Paper_score::Paper_score ()
+Paper_score::Paper_score (Output_def *layout)
 {
-  layout_ = 0;
+  layout_ = layout;
   system_ = 0;
+  systems_ = SCM_EOL;
+  paper_systems_ = SCM_EOL;
 }
 
 Paper_score::Paper_score (Paper_score const &s)
@@ -33,8 +35,16 @@ Paper_score::Paper_score (Paper_score const &s)
   assert (false);
 }
 
+
 void
-Paper_score::typeset_line (System *system)
+Paper_score::derived_mark () const
+{
+  scm_gc_mark (systems_);
+  scm_gc_mark (paper_systems_);
+}
+
+void
+Paper_score::typeset_system (System *system)
 {
   if (!system_)
     system_ = system;
@@ -59,15 +69,15 @@ Paper_score::calc_breaking ()
   return sol;
 }
 
-SCM
-Paper_score::process (String)
+void
+Paper_score::process ()
 {
   if (be_verbose_global)
-    progress_indication (_f ("Element count %d (spanners %d) ",
-                            system_->element_count (),
-                            system_->spanner_count ()));
+    message (_f ("Element count %d (spanners %d) ",
+                system_->element_count (),
+                system_->spanner_count ()));
 
-  progress_indication (_ ("Preprocessing graphical objects...") + " ");
+  message (_ ("Preprocessing graphical objects...") + " ");
 
   /* FIXME: Check out why we need this - removing gives assertion failures
      down the road.
@@ -81,14 +91,25 @@ Paper_score::process (String)
 
   Array<Column_x_positions> breaking = calc_breaking ();
   system_->break_into_pieces (breaking);
-  SCM lines = system_->get_lines ();
-#if 0
-  /* gourlay:do_solve also prints newline.  */
-  progress_indication ("\n");
-#endif
 
-  /* Only keep result stencils in lines_, *title_; delete all grobs.  */
-  systems_ = SCM_EOL;
+  paper_systems_ = system_->get_paper_systems ();
+}
 
-  return lines;
+System *
+Paper_score::root_system () const
+{
+  return system_;
+}
+
+Output_def *
+Paper_score::layout () const
+{
+  return layout_;
+}
+  
+
+SCM
+Paper_score::get_paper_systems () const
+{
+  return paper_systems_;
 }