]> git.donarmstrong.com Git - lilypond.git/commitdiff
* buildscripts/output-distance.py (FileLink.calc_distance): count
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 1 Sep 2006 09:08:30 +0000 (09:08 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 1 Sep 2006 09:08:30 +0000 (09:08 +0000)
orphans in distance too.

* lily/control-track-performer.cc (add_text): new file: generate
the control track.

ChangeLog
Documentation/user/programming-interface.itely
buildscripts/output-distance.py
lily/control-track-performer.cc [new file with mode: 0644]

index bcf5cae3142b8e5ba328eeb1e85f5993d10b5125..2d57d37734a4262fb2e768658f9b474bd6508c0d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2006-09-01  Han-Wen Nienhuys  <hanwen@lilypond.org>
 
+       * buildscripts/output-distance.py (FileLink.calc_distance): count
+       orphans in distance too.
+
        * python/midi.c (midi_parse_track): robustness: don't read past
        end of string.
 
index 4bc023aab23bb231226d5eb482593dc093aec572..4536fff21ac5aa661fae9320a994c3e500ee4f4b 100644 (file)
@@ -197,8 +197,9 @@ AltOff = {
 
 @noindent
 This example may be rewritten to pass in music expressions,
-
-@lilypond[quote,verbatim,ragged-right]
+@c fixme
+@ignore
+i@l ilypond[quote,verbatim,ragged-right]
 withAlt = #(define-music-function (parser location mag music) (number? ly:music?)
   #{ \override Stem #'length = #$(* 7.0 mag)
      \override NoteHead #'font-size =
@@ -209,8 +210,8 @@ withAlt = #(define-music-function (parser location mag music) (number? ly:music?
 
 { c'2 \withAlt #0.5 {c'4 c'}
   \withAlt #1.5 {c' c'} c'2 }
-@end lilypond
-
+@end l ilypond
+@end ignore
 
 @node Void functions
 @subsection Void functions
index fcb8e3731c5bc1d7f931fa14bee65c5cc852184e..1249746e6f496474cae5f6747bdc614b0f7e4b13 100644 (file)
@@ -281,9 +281,13 @@ class FileLink:
 
     def calc_distance (self):
         d = 0.0
+
+        orphan_distance = 0.0
         for l in self.system_links.values ():
             d = max (d, l.geometric_distance ())
-        return d
+            orphan_distance += l.orphan_count ()
+            
+        return d + orphan_distance
 
     def distance (self):
         if type (self._distance) != type (0.0):
diff --git a/lily/control-track-performer.cc b/lily/control-track-performer.cc
new file mode 100644 (file)
index 0000000..ec4ef83
--- /dev/null
@@ -0,0 +1,70 @@
+
+
+#include "warn.hh"
+#include "audio-item.hh"
+#include "audio-staff.hh"
+#include "performer.hh"
+#include "string-convert.hh"
+#include "lily-version.hh"
+
+#include "translator.icc"
+
+class Control_track_performer : public Performer
+{
+  Audio_staff *control_track_;
+  vector<Audio_item*> texts_;
+
+  void add_text (Audio_text::Type, string);
+  TRANSLATOR_DECLARATIONS(Control_track_performer);
+protected:
+
+  virtual void initialize ();
+  virtual void acknowledge_audio_element (Audio_element_info info);
+};
+
+
+Control_track_performer::Control_track_performer ()
+{
+  control_track_ = 0;
+}
+
+void
+Control_track_performer::acknowledge_audio_element (Audio_element_info info)
+{
+  if (Audio_tempo *tempo = dynamic_cast<Audio_tempo*> (info.elem_))
+    {
+      control_track_->add_audio_item (tempo);
+    }
+  if (Audio_time_signature * sig = dynamic_cast<Audio_time_signature *> (info.elem_))
+    {
+      control_track_->add_audio_item (sig);
+    }
+}
+
+void
+Control_track_performer::add_text (Audio_text::Type text_type, string str)
+{
+  Audio_item *text = new Audio_text (text_type, str);
+  control_track_->add_audio_item (text);
+  texts_.push_back (text);
+
+  announce_element (Audio_element_info (text, 0));
+  
+}
+
+void
+Control_track_performer::initialize ()
+{
+  control_track_ = new Audio_staff;
+  announce_element (Audio_element_info (control_track_, 0));
+
+  string id_string = String_convert::pad_to (gnu_lilypond_version_string (), 30);
+  
+  add_text (Audio_text::TRACK_NAME, "control track");
+  add_text (Audio_text::TEXT, "creator: ");
+  add_text (Audio_text::TEXT, id_string);
+}
+
+ADD_TRANSLATOR (Control_track_performer, "", "",
+               "",
+               "", "");