#include "lily-proto.hh"
#include "plist.hh"
+#include "varray.hh"
#include "moment.hh"
class Music_iterator {
public:
Music_iterator *daddy_iter_l_;
- NAME_MEMBERS();
- Register_group_register *report_to_reg_l_;
+ DECLARE_MY_RUNTIME_TYPEINFO;
+ Array<Translator *>report_to_l_arr_;
+
+ Translator *report_to_l()const;
- static Music_iterator* static_get_iterator_p(Music*,Register_group_register*);
+ static Music_iterator* static_get_iterator_p(Music*,Translator*);
Music_iterator* get_iterator_p(Music*)const;
- void set_reg(Register_group_register*);
+ void set_translator(Translator*);
+ void push_translator(Translator*);
+ void pop_translator();
+
+
Music_iterator();
- virtual void next(Moment until);
+
+ 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;
- virtual Register_group_register * get_req_acceptor_l();
-};
-
-// duh.
-class Request_iterator : public Music_iterator {
- Request *req_l_;
- bool last_b_;
-public:
- Request_iterator(Request const *);
- NAME_MEMBERS();
-protected:
- virtual bool ok() const;
- virtual Moment next_moment() const;
-
- virtual void do_print()const;
- virtual void next(Moment);
+ virtual Translator * get_req_translator_l();
};
class Change_iterator : public Music_iterator {
Change_reg * change_l_;
public:
- NAME_MEMBERS();
- virtual void next(Moment);
+ DECLARE_MY_RUNTIME_TYPEINFO;
+ virtual void process_and_next(Moment);
Change_iterator(Change_reg*);
};
const Chord *chord_C_;
Pointer_list<Music_iterator*> children_p_list_;
public:
+ ~Chord_iterator();
Chord_iterator(Chord const*);
- NAME_MEMBERS();
+ DECLARE_MY_RUNTIME_TYPEINFO;
protected:
virtual void do_print()const;
virtual void construct_children();
- virtual void next(Moment);
+ virtual void process_and_next(Moment);
virtual Moment next_moment()const;
virtual bool ok()const;
};
-class Voice_element_iterator : public Chord_iterator {
+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();
-public:
- Voice_element_iterator(Voice_element*);
- NAME_MEMBERS();
+ virtual bool ok()const;
+ virtual void do_print()const;
};
void next_element();
public:
Voice_iterator(Voice const*);
- NAME_MEMBERS();
+ DECLARE_MY_RUNTIME_TYPEINFO;
protected:
virtual void do_print()const;
virtual void construct_children();
~Voice_iterator();
- virtual void next(Moment);
+ virtual void process_and_next(Moment);
virtual Moment next_moment()const;
virtual bool ok()const;
};