]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.81.jcn2
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 1 Sep 2000 14:36:02 +0000 (16:36 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 1 Sep 2000 14:36:02 +0000 (16:36 +0200)
VERSION
lily/include/music-iterator.hh
lily/include/music-wrapper-iterator.hh
lily/include/sequential-music-iterator.hh
lily/music-iterator.cc
lily/music-wrapper-iterator.cc
lily/part-combine-music-iterator.cc
lily/sequential-music-iterator.cc
mutopia/Coriolan/coriolan-paper.ly
mutopia/Coriolan/coriolan-part-combine-paper.ly

diff --git a/VERSION b/VERSION
index d8889964f6acfc8e1596f933039990fe2a3a6fea..ab1fe483c53418d92b8f5bfb3c2ad4e1294d182e 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=81
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 561e9c11eba025a2e57110a7b5cdb398854e98c1..d1293bb4093c0745b2727b38637279ca8309671c 100644 (file)
@@ -37,12 +37,12 @@ protected:
     Do the actual printing.  This should be overriden in derived classes.  It 
     is called by #print#, in the public interface
    */
-  virtual void do_print() const;
+  virtual void do_print () const;
     
   /**
     Find a bottom notation context to deliver requests to.
    */
-  virtual Translator_group* get_req_translator_l();
+  virtual Translator_group* get_req_translator_l ();
 
   /**
     Get an iterator for MUS, inheriting the translation unit from THIS.
@@ -63,32 +63,32 @@ public:
      Do the reporting.  Will try MUSIC_L_ in its own translator first,
      then its children. Returns the iterator that succeeded
   */
-  Music_iterator *  try_music (Music  *) const;
+  Music_iterator *try_music (Music*) const;
 
   /**
     The translation unit that we this iterator is reporting  to now.
    */
-  Translator_group*report_to_l() const;
+  Translator_group*report_to_l () const;
 
   void set_translator (Translator_group*);
   
   /** Get an iterator matching the type of MUS, and use TRANS to find
     an accompanying translation unit
    */
-  static Music_iterator* static_get_iterator_p (Music * mus);
-  void init_translator (Music  *, Translator_group *); 
+  static Music_iterator* static_get_iterator_p (Music *);
+  void init_translator (Music *, Translator_group *); 
 
-  Music_iterator();
+  Music_iterator ();
     
   ///  Find the next interesting point in time.
-  virtual Moment next_moment() const;
-
+  virtual Moment next_moment () const;
 
   ///Are we finished with this piece of music?
-  virtual bool ok() const;
+  virtual bool ok () const;
 
-  virtual ~Music_iterator();
+  virtual ~Music_iterator ();
 
+  virtual Music *get_next_music ();
 
   ///Report all musical information that occurs between now and UNTIL
   void process_and_next (Moment until);
@@ -97,8 +97,9 @@ public:
     Construct sub-iterators, and set the translator to 
     report to.
    */
-  virtual void construct_children();
-  void print() const;
+  virtual void construct_children ();
+
+  void print () const;
 };
 
 #endif // MUSIC_ITERATOR_HH
index 8200709e52f4d803b08c4c7d44b69220c85a0296..a9c514382587429e7d75c1077e1d43bf7eb1632c 100644 (file)
@@ -27,6 +27,7 @@ public:
   virtual void construct_children  () ;
   virtual Moment next_moment () const;
   virtual bool ok () const;
+  virtual Music *get_next_music ();
 
 protected:
   virtual void do_print () const;
index 79f493fa8724d02ba34321300383245f4e943291..8888e462b95721051e1160afd3cfe0a978245a5e 100644 (file)
@@ -25,6 +25,8 @@ public:
   virtual Moment next_moment () const;
   virtual bool ok () const;
 
+  virtual Music* get_next_music ();
+
 protected:
   virtual void do_print() const;
   virtual void do_process_and_next (Moment);
index bfa597527b0dd5464fdf5cd82f5bc5bc1ad27457..39478c2d0594844ebc121b4c4a56ca757b05425b 100644 (file)
@@ -223,3 +223,8 @@ Music_iterator::try_music_in_children (Music  *  ) const
   return 0;
 }
 
+Music*
+Music_iterator::get_next_music ()
+{
+  return 0;
+}
index af658cf72a5905d6345810cd0925f7bc0cb12328..17931466a1e271822e4fe375fbd79c20f8b5c2d1 100644 (file)
@@ -63,3 +63,10 @@ Music_wrapper_iterator::try_music_in_children (Music *m) const
 {
   return child_iter_p_->try_music (m);
 }
+
+
+Music*
+Music_wrapper_iterator::get_next_music ()
+{
+  return child_iter_p_->get_next_music ();
+}
index 1f57157c48f954039883ccfb16988e0f59f0ee8f..17e79b2423913442ea07c6ade2e3d30bd0326bda 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "part-combine-music.hh"
 #include "part-combine-music-iterator.hh"
+#include "sequential-music-iterator.hh"
 #include "translator-group.hh"
 #include "musical-request.hh"
 #include "warn.hh"
@@ -123,6 +124,8 @@ Pitch_interrogate_req* second_spanish_inquisition; // won't strike twice
 Rhythm_interrogate_req* first_rhythmic_inquisition;
 Rhythm_interrogate_req* second_rhythmic_inquisition;
 
+#include <iostream.h>
+
 void
 Part_combine_music_iterator::do_process_and_next (Moment m)
 {
@@ -130,14 +133,23 @@ Part_combine_music_iterator::do_process_and_next (Moment m)
 
   now_ = next_moment ();
 
+  Music* first_music = 0;
+  Music* second_music = 0;
+
   /*
     Hmm, shouldn't we check per iterator if next_moment < m?
    */
   if (first_iter_p_->ok ())
-    first_iter_p_->process_and_next (m);
+    {
+      first_music = first_iter_p_->get_next_music ();
+      first_iter_p_->process_and_next (m);
+    }
   
   if (second_iter_p_->ok ())
-    second_iter_p_->process_and_next (m);
+    {
+      second_music = second_iter_p_->get_next_music ();
+      second_iter_p_->process_and_next (m);
+    }
 
   Music_iterator::do_process_and_next (m);
 
@@ -187,6 +199,13 @@ Part_combine_music_iterator::do_process_and_next (Moment m)
   Array<Duration>* first_durations = &first_rhythmic_inquisition->duration_arr_;
   Array<Duration>* second_durations = &second_rhythmic_inquisition->duration_arr_;
 
+  if (!first_durations->empty ())
+    cout << "first_durations: " << first_durations->top ().length_mom ().str () << endl;
+  
+  //  if (Rhythmic_req *r = dynamic_cast<Rhythmic_req*> (first_music))
+  if (first_music)
+    cout << "first_music: " << first_music->length_mom ().str ();
+
   SCM interval = SCM_BOOL_F;
   if (first_pitches->size () && second_pitches->size ())
     {
index d99381cf5415a8645039c6251cf44388c58e6575..d98dc5738f564b6fe134dc94c4c00d47839f9d95 100644 (file)
@@ -139,3 +139,11 @@ Sequential_music_iterator::try_music_in_children (Music *m) const
 { 
   return iter_p_ ? iter_p_->try_music (m) : 0;
 }
+
+Music*
+Sequential_music_iterator::get_next_music ()
+{
+  if (cursor_ && gh_pair_p (cursor_))
+    return unsmob_music (gh_car (cursor_));
+  return 0;
+}
index 9d33209b23b0b54fd18df07569e497abcc87441f..9a277e310c95d8e986cb4b5f24c662e4d912dc11 100644 (file)
@@ -94,7 +94,7 @@
                \consists "Script_engraver";
                \consists "Script_column_engraver";
                \consists "Rhythmic_column_engraver";
-               \consists "Slur_engraver";
+%%             \consists "Slur_engraver";
                \consists "Tie_engraver";
        }
        \translator {
index c23c88937a4cd08d8b54131ee29fd3e23d7e677b..dd045ff0e41f7d54cd937a8a8b4818c7c42326ae 100644 (file)
@@ -94,7 +94,7 @@
                \consists "Script_engraver";
                \consists "Script_column_engraver";
                \consists "Rhythmic_column_engraver";
-               \consists "Slur_engraver";
+%%             \consists "Slur_engraver";
                \consists "Tie_engraver";
        }
        \translator {