#include "debug.hh"
#include "p-score.hh"
#include "score-elem.hh"
-#include "input-engraver.hh"
+#include "input-translator.hh"
+
+Engraver* get_engraver_p(String);
+
+void
+Engraver_group_engraver::print()const
+{
+ Engraver::print();
+}
Engraver_group_engraver::~Engraver_group_engraver()
{
else
i++;
}
-
}
bool
Engraver_group_engraver::Engraver_group_engraver()
{
- igrav_l_ =0;
+ itrans_l_ = 0;
}
void
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)
+ if (!hebbes_b && daddy_grav_l_)
hebbes_b = daddy_grav_l_->try_request(req_l);
return hebbes_b ;
}
Engraver_group_engraver::terminate_engraver(Engraver*r_l)
{
mtor << "Removing " << r_l->name() << " at " << get_staff_info().when() << "\n";
- r_l->do_removal_processing();
+ r_l->removal_processing();
Engraver * grav_p =remove_engraver_p(r_l);
delete grav_p;
}
IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator);
-IMPLEMENT_STATIC_NAME(Engraver_group_engraver);
+
ADD_THIS_ENGRAVER(Engraver_group_engraver);
void
Engraver_group_engraver::do_print()const
{
#ifndef NPRINT
- mtor << "ID: " << id_str_ << "\n";
+ if ( !check_debug)
+ return ;
+ mtor << "ID: " << id_str_ ;
+ mtor << " iterators: " << iterator_count_<< "\n";
for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
i->print();
#endif
Engraver_group_engraver::find_get_translator_l(String n,String id)
{
Translator * ret=0;
- Input_engraver * igrav_l= igrav_l_-> recursive_find ( n );
- if (igrav_l ) {
+ Input_translator * itrans_l= itrans_l_-> recursive_find ( n );
+ if (itrans_l ) {
ret = find_engraver_l(n,id);
if (!ret) {
Engraver_group_engraver * group =
- igrav_l-> get_group_engraver_p();
+ itrans_l-> get_group_engraver_p();
add(group);
ret = group;
- if (group->igrav_l_->is_name_b( n ) )
+ if (group->itrans_l_->is_name_b( n ) )
ret ->id_str_ = id;
else
return ret->find_get_translator_l(n,id);
nongroup_l_arr_[i]->acknowledge_element(info);
}
}
- announce_info_arr_.set_size(0);
+ announce_info_arr_.clear();
}
Engraver_group_engraver::do_removal_processing()
{
for (PCursor<Engraver*> i(grav_list_.top()); i.ok(); i++)
- i->do_removal_processing();
+ i->removal_processing();
}
Staff_info
if ( is_bottom_engraver_b() )
return daddy_grav_l_->get_default_interpreter();
- Engraver_group_engraver *grav_p= igrav_l_->
- get_default_igrav_l()->get_group_engraver_p();
+ Engraver_group_engraver *grav_p= itrans_l_->
+ get_default_itrans_l()->get_group_engraver_p();
add(grav_p );
if (grav_p->is_bottom_engraver_b())
return grav_p;
bool
Engraver_group_engraver::is_bottom_engraver_b()const
{
- return !igrav_l_->get_default_igrav_l();
+ return !itrans_l_->get_default_itrans_l();
}
+
+Engraver*
+Engraver_group_engraver::get_simple_engraver(char const *type)const
+{
+ for (int i=0; i < nongroup_l_arr_.size(); i++) {
+ if (nongroup_l_arr_[i]->name() == type )
+ return nongroup_l_arr_[i];
+ }
+ if ( daddy_grav_l_ )
+ return daddy_grav_l_->get_simple_engraver(type);
+ return 0;
+}
+