]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/score-column.cc
patch::: 1.1.31.jcn1: Re: LilyPond 1.1.30
[lilypond.git] / lily / score-column.cc
index 3a699e5dc507b7307a663f8182b3db58be5041ef..05280c5cb1743ee272af348a65b52dc8d8d62b47 100644 (file)
@@ -1,77 +1,68 @@
 /*
   score-column.cc -- implement Score_column
 
-  source file of the LilyPond music typesetter
+  source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "debug.hh"
 #include "p-col.hh"
 #include "score-column.hh"
+#include "command-request.hh"
 
-int
-Score_column::compare(Score_column & c1, Score_column &c2)
+Score_column::Score_column (Moment w, bool musical_b)
 {
-       return sign(c1.when_ - c2.when_);
+  break_penalty_i_ = 0;
+  when_ = w;
+  musical_b_ = musical_b;
 }
 
 void
-Score_column::set_breakable()
-{
-    pcol_l_->set_breakable();
-}
-
-Score_column::Score_column(Moment w)
-{
-    when_ = w;
-    pcol_l_ = new PCol(0);
-    musical_b_ = false;
-}
-
-bool
-Score_column::used_b() {
-    return pcol_l_->used_b();
-}
-
-void
-Score_column::print() const
+Score_column::do_print() const
 {
 #ifndef NPRINT
-    mtor << "Score_column { mus "<< musical_b_ <<" at " <<  when_<<'\n';
-    mtor << "durations: [";
-    for (int i=0; i < durations.size(); i++)
-       mtor << durations[i] << " ";
-    mtor << "]\n";
-    pcol_l_->print();
-    mtor << "}\n";
+  DOUT << "mus "<< musical_b_ << " at " <<  when_ << '\n';
+  if (break_penalty_i_ >= Break_req::FORCE)
+    DOUT << "Break forced";
+      
+  DOUT << "durations: [";
+  for (int i=0; i < durations.size(); i++)
+    DOUT << durations[i] << " ";
+  DOUT << "]\n";
+  Paper_column::do_print();
 #endif
 }
 
 int
-Moment_compare(Moment &a , Moment& b)
+Moment_compare (Moment const &m1, Moment const &m2)
 {
-    return sign(a-b);
+  return sign (m1-m2);
 }
 
 void
 Score_column::preprocess()
 {
-    durations.sort(Moment_compare);
+  Paper_column ::preprocess ();
+  durations.sort (Moment_compare);
 }
+
 void
-Score_column::add_duration(Moment d)
+Score_column::add_duration (Moment d)
 {
-    assert(d);
-    for (int i = 0; i< durations.size(); i++) {
-       if (d == durations[i])
-           return ;
+  if (!d)
+    {
+      warning (_f ("ignoring zero duration added to column at %s",
+              when_.str ()));
+      return;
+    }
+  
+  for (int i = 0; i< durations.size(); i++) 
+    {
+      if (d == durations[i])
+       return ;
     }
-    durations.push(d);
+  durations.push (d);
 }
 
-bool
-Score_column::breakable_b()
-{
-    return pcol_l_->breakable_b();
-}
+