]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.7
authorfred <fred>
Tue, 26 Mar 2002 21:44:31 +0000 (21:44 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:44:31 +0000 (21:44 +0000)
lily/include/music-iterator.hh
lily/include/music-wrapper.hh
lily/include/property-iterator.hh

index 38dff72bd3b597dd025309cd82626fcaca907f0c..749baac14c741d2258fda04e812423b88c075ab0 100644 (file)
 #include "moment.hh"
 #include "virtual-methods.hh"
 
+/** Walk through music and deliver music to translation units, synced
+  in time.  This classa provides both the implementation of the shared
+  code, and the public interface.
+
+  Derived classes should only have a public constructor.
+  The state of an iterator would be the intersection of the particular music 
+  construct with one point in musical time.
+ */
 class Music_iterator {
   Array<Translator_group*>report_to_l_arr_;
   void push_translator (Translator_group*);
   void pop_translator();
+
 protected:
   Music const * music_l_;
   bool first_b_;
+
+  /**
+    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;
     
+  /**
+    Find a bottom notation context to deliver requests to.
+   */
   virtual Translator_group* get_req_translator_l();
-  Music_iterator* get_iterator_p (Music const*) const;
+
+  /**
+    Get an iterator for MUS, inheriting the translation unit from THIS.
+   */
+  Music_iterator* get_iterator_p (Music const*mus) const;
   void set_translator (Translator_group*);
+
+  /** Do the actual reporting.  This should be overriden in derived
+    classes.  It is called by #process_and_next#, the public interface 
+    */
   virtual void do_process_and_next (Moment until);
-  void inherit_info (Music_iterator const *parent);
+
 public:
+
+  /**
+    The translation unit that we this iterator is reporting  to now.
+   */
   Translator_group*report_to_l() const;
+
   
-  static Music_iterator* static_get_iterator_p (Music const*,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 const* mus,Translator_group* trans);
+
   Music_iterator();
     
+  ///  Find the next interesting point in time.
   virtual Moment next_moment() const;
+
+  ///Are we finished with this piece of music?
   virtual bool ok() const;
+
   virtual ~Music_iterator();
+
+
+  ///Report all musical information that occurs between now and UNTIL
   void process_and_next (Moment until);
 
   /**
     Construct sub-iterators, and set the translator to 
-    report to
+    report to.
    */
   virtual void construct_children();
   void print() const;
index afb153e5ca66cd477319e748bbe8b88aed804e44..46008d2f5c921be343cdf8755aca7c28dbb15b9a 100644 (file)
 #include "music.hh"
 #include "musical-pitch.hh"
 
+/** A Music that modifies an existing Music.  This data structure
+  corresponds to a production that takes a single Music argument,
+  
+  Music: STUFF Music 
+
+  */
 class Music_wrapper : public Music
 {
 public:
@@ -23,7 +29,7 @@ public:
   
   VIRTUAL_COPY_CONS(Music);
   Music_wrapper (Music_wrapper const&);
-  virtual Moment  duration () const;
+  virtual Moment duration () const;
   virtual ~Music_wrapper ();
 };
 
index 3dc7898c2bf1e2dd5ba579b0fc4734367850a686..b42f95c797d401bc58e9cee6f684a5702391e2da 100644 (file)
 #define PROPERTY_ITERATOR_HH
 
 #include "music-iterator.hh"
-
+/**
+  Iterate a property.  
+ */
 class Property_iterator : public Music_iterator
 {
-  Translation_property *property_l() const;
-  
 public:
-  
+  // construction  
 protected:
   virtual void do_process_and_next (Moment);
 };