*/
class Engraver_group_engraver : public Engraver, public virtual Translator {
protected:
-
Pointer_list<Engraver*> grav_list_;
Link_array<Engraver_group_engraver> group_l_arr_;
Link_array<Engraver> nongroup_l_arr_;
Array<Score_elem_info> announce_info_arr_;
virtual void do_print()const;
-
virtual bool removable_b()const;
-
public:
- virtual void print() const { Engraver::print(); }
+ Engraver*get_simple_engraver(char const*typeinfo)const;
+ virtual void print() const ;
Input_translator * itrans_l_;
void check_removal();
*/
virtual void terminate_engraver(Engraver * grav_l);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
+ DECLARE_MY_RUNTIME_TYPEINFO;
/**
Remove #grav_l# from the list, and return it.
*/
Translator * ancestor_l(int l=1);
int depth_i() const;
-
};
#endif // ENGRAVERGROUP_HH
DECLARE_MY_RUNTIME_TYPEINFO;
Input_translator* itrans_l_;
- Performer_group_performer();
- ~Performer_group_performer();
-
virtual void add( Performer* perf_p );
- virtual void print()const { Performer::print() ; }
- virtual Moment get_mom() const;
virtual bool do_try_request( Request* req_l );
- virtual bool try_request(Request*r) { return Performer::try_request(r) ; }
-
- // <ugh>
- virtual void set_track( int& track_i_r );
- virtual int get_track_i() const;
- // </ugh>
+ virtual void print() const;
+ virtual bool try_request(Request* r);
+
protected:
-
+ virtual ~Performer_group_performer();
virtual Translator* find_get_translator_l( String name, String id );
virtual Translator* get_default_interpreter();
/*
performer-group-performer.cc -- implement Performer_group_performer
+ source file of the GNU LilyPond music typesetter
+
(c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "debug.hh"
IMPLEMENT_IS_TYPE_B2(Performer_group_performer,Performer, Translator);
-
ADD_THIS_PERFORMER(Performer_group_performer);
-Performer_group_performer::Performer_group_performer()
-{
-}
-
Performer_group_performer::~Performer_group_performer()
{
+
}
void
return daddy_perf_l_->depth_i() + 1;
}
+void
+Performer_group_performer::do_creation_processing()
+{
+ for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ i->creation_processing();
+}
+
+void
+Performer_group_performer::do_print()const
+{
+#ifndef NPRINT
+ if ( !check_debug)
+ return ;
+ for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ i->print();
+#endif
+}
+
+void
+Performer_group_performer::do_removal_processing()
+{
+ for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+ i->do_removal_processing();
+}
+
+bool
+Performer_group_performer::do_try_request( Request* req_l )
+{
+ bool hebbes_b =false;
+ for (int i =0; !hebbes_b && i < nongroup_l_arr_.size() ; i++)
+ hebbes_b =nongroup_l_arr_[i]->try_request(req_l);
+ if ( !hebbes_b && daddy_perf_l_ )
+ hebbes_b = daddy_perf_l_->try_request(req_l);
+ return hebbes_b ;
+}
+
Translator*
Performer_group_performer::find_get_translator_l( String n,String id )
{
return perf_p->get_default_interpreter();
}
-Moment
-Performer_group_performer::get_mom() const
-{
- Moment mom = Performer::get_mom();
-
- for ( int i = 0; i < nongroup_l_arr_.size(); i++ )
- nongroup_l_arr_[ i ]->set( mom );
-
- return mom;
-}
-
bool
Performer_group_performer::is_bottom_performer_b() const
{
return !itrans_l_->get_default_itrans_l();
}
-
-void
-Performer_group_performer::process_requests()
-{
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
- i->process_requests();
-}
-
-//<ugh>
-int
-Performer_group_performer::get_track_i() const
-{
- int track_i = Performer::get_track_i();
-
- for ( int i = 0; i < nongroup_l_arr_.size(); i++ )
- nongroup_l_arr_[ i ]->set_track( track_i );
-
- return track_i;
-}
-
-void
-Performer_group_performer::set_track( int& track_i_r )
-{
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
- i->set_track( track_i_r );
-}
-//</ugh>
-
-bool
-Performer_group_performer::do_try_request( Request* req_l )
-{
- bool hebbes_b =false;
- for (int i =0; !hebbes_b && i < nongroup_l_arr_.size() ; i++)
- hebbes_b =nongroup_l_arr_[i]->try_request(req_l);
- if ( !hebbes_b && daddy_perf_l_ )
- hebbes_b = daddy_perf_l_->try_request(req_l);
- return hebbes_b ;
-}
-
void
-Performer_group_performer::do_print()const
-{
-#ifndef NPRINT
- if ( !check_debug)
- return ;
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
- i->print();
-#endif
+Performer_group_performer::print() const
+{
+ Performer::print();
}
void
-Performer_group_performer::do_creation_processing()
+Performer_group_performer::process_requests()
{
for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
- i->creation_processing();
+ i->process_requests();
}
-void
-Performer_group_performer::do_removal_processing()
+bool
+Performer_group_performer::try_request( Request* r )
{
- for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
- i->do_removal_processing();
+ return Performer::try_request( r );
}