X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmusic-iterator.hh;h=352af5f3799194511c3ee3d264712b604927ad22;hb=2862b1027f316a2f0444fa92e441ee28acf7a463;hp=636fc659c9111a3d87a8eba96d9638b1462320e2;hpb=68ffccad7c4d4ce0386cb60c537c99523e61c4d9;p=lilypond.git diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh index 636fc659c9..352af5f379 100644 --- a/lily/include/music-iterator.hh +++ b/lily/include/music-iterator.hh @@ -1,5 +1,5 @@ /* - music-iterator.hh -- declare {Music,Chord,Voice}_iterator + music-iterator.hh -- declare Music_iterator source file of the GNU LilyPond music typesetter @@ -14,88 +14,34 @@ #include "plist.hh" #include "varray.hh" #include "moment.hh" +#include "virtual-methods.hh" class Music_iterator { - Arrayreport_to_l_arr_; - void push_translator (Translator*); - void pop_translator(); + Arrayreport_to_l_arr_; + void push_translator (Translator*); + void pop_translator(); protected: - bool first_b_; - virtual void do_print()const; + bool first_b_; + virtual void do_print() const; - virtual Translator * get_req_translator_l(); - Music_iterator* get_iterator_p (Music*)const; - void set_translator (Translator*); - Music_iterator *daddy_iter_l_; + virtual Translator * get_req_translator_l(); + Music_iterator* get_iterator_p (Music*) const; + void set_translator (Translator*); + Music_iterator *daddy_iter_l_; public: - Translator *report_to_l()const; - DECLARE_MY_RUNTIME_TYPEINFO; + Translator *report_to_l() const; + DECLARE_MY_RUNTIME_TYPEINFO; - static Music_iterator* static_get_iterator_p (Music*,Translator*); - Music_iterator(); + static Music_iterator* static_get_iterator_p (Music*,Translator*); + Music_iterator(); - virtual void process_and_next (Moment until); - virtual Moment next_moment()const; - virtual bool ok()const; - virtual ~Music_iterator(); - virtual void construct_children(); - void print()const; -}; - - -class Chord_iterator : public Music_iterator -{ - const Chord *chord_C_; - Pointer_list children_p_list_; -public: - ~Chord_iterator(); - Chord_iterator (Chord const*); - DECLARE_MY_RUNTIME_TYPEINFO; -protected: - virtual void do_print()const; - virtual void construct_children(); - virtual void process_and_next (Moment); - virtual Moment next_moment()const; - virtual bool ok()const; -}; - -class Request_chord_iterator : public Music_iterator { - const Request_chord * elt_l_; - Moment elt_duration_; - bool last_b_; -public: - Request_chord_iterator (Request_chord*); - DECLARE_MY_RUNTIME_TYPEINFO; - -protected: - virtual void process_and_next (Moment); - virtual Moment next_moment()const; - virtual void construct_children(); - virtual bool ok()const; - virtual void do_print()const; -}; - - -class Voice_iterator : private PCursor, public Music_iterator -{ - Moment here_mom_; - const Voice * voice_C_; - Music_iterator * iter_p_; - void start_next_element(); - void leave_element(); - void set_voice_translator(); - -public: - Voice_iterator (Voice const*); - DECLARE_MY_RUNTIME_TYPEINFO; -protected: - virtual void do_print()const; - virtual void construct_children(); - ~Voice_iterator(); - virtual void process_and_next (Moment); - virtual Moment next_moment()const; - virtual bool ok()const; + virtual void process_and_next (Moment until); + virtual Moment next_moment() const; + virtual bool ok() const; + virtual ~Music_iterator(); + virtual void construct_children(); + void print() const; }; #endif // MUSIC_ITERATOR_HH