2 performer-group-performer.cc -- implement Performer_group_performer
4 source file of the GNU LilyPond music typesetter
6 (c) 1996, 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 Jan Nieuwenhuizen <janneke@gnu.org>
10 #include "performer-group-performer.hh"
15 ADD_THIS_TRANSLATOR(Performer_group_performer);
19 Performer_group_performer::announce_element (Audio_element_info info)
21 announce_info_arr_.push (info);
22 Performer::announce_element (info);
26 Performer_group_performer::do_announces()
28 Link_array<Translator_group> groups = group_l_arr ();
29 for (int i=0; i < groups.size(); i++)
31 Performer_group_performer * group = dynamic_cast<Performer_group_performer*> (groups[i]);
34 group->do_announces();
40 Link_array<Translator> nongroups = nongroup_l_arr ();
41 while (announce_info_arr_.size ())
43 for (int j =0; j < announce_info_arr_.size(); j++)
45 Audio_element_info info = announce_info_arr_[j];
48 info.req_l_ = &dummy_req;
49 for (int i=0; i < nongroups.size(); i++)
50 { // Is this good enough?
51 Performer * eng = dynamic_cast<Performer*> (nongroups[i]);
52 if (eng && eng!= info.origin_trans_l_arr_[0])
53 eng->acknowledge_element (info);
56 announce_info_arr_.clear ();
57 for (int i=0; i < nongroups.size(); i++)
59 Performer * eng = dynamic_cast<Performer*> (nongroups[i]);
61 eng->process_acknowledged ();