X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fperformer-group.cc;h=5502bf0958ea2dea6237fb178c4c56352f603eee;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=a1e164b7a809544ccf34c6cf3c42ea79d111cc1f;hpb=69d88b869307a006e42d31076861403786ff599d;p=lilypond.git diff --git a/lily/performer-group.cc b/lily/performer-group.cc index a1e164b7a8..5502bf0958 100644 --- a/lily/performer-group.cc +++ b/lily/performer-group.cc @@ -1,10 +1,21 @@ /* - performer-group-performer.cc -- implement Performer_group + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter - - (c) 1996--2005 Han-Wen Nienhuys + Copyright (C) 1996--2015 Han-Wen Nienhuys Jan Nieuwenhuizen + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "performer-group.hh" @@ -14,16 +25,23 @@ #include "warn.hh" ADD_TRANSLATOR_GROUP (Performer_group, - /* doc */ "", - /* create */ "", - /* accept */ "", - /* read */ "", - /* write */ ""); + /* doc */ + "", + + /* create */ + "", + + /* read */ + "", + + /* write */ + "" + ); void Performer_group::announce_element (Audio_element_info info) { - announce_infos_.push (info); + announce_infos_.push_back (info); Translator_group *t = context ()->get_parent_context ()->implementation (); @@ -34,17 +52,17 @@ Performer_group::announce_element (Audio_element_info info) void Performer_group::acknowledge_audio_elements () { - for (int j = 0; j < announce_infos_.size (); j++) + for (vsize j = 0; j < announce_infos_.size (); j++) { Audio_element_info info = announce_infos_[j]; for (SCM p = get_simple_trans_list (); scm_is_pair (p); p = scm_cdr (p)) - { - Translator *t = unsmob_translator (scm_car (p)); - Performer *eng = dynamic_cast (t); - if (eng && eng != info.origin_trans_) - eng->acknowledge_audio_element (info); - } + { + Translator *t = unsmob (scm_car (p)); + Performer *eng = dynamic_cast (t); + if (eng && eng != info.origin_trans_) + eng->acknowledge_audio_element (info); + } } } @@ -53,9 +71,9 @@ performer_each (SCM list, Performer_method method) { for (SCM p = list; scm_is_pair (p); p = scm_cdr (p)) { - Performer *e = dynamic_cast (unsmob_translator (scm_car (p))); + Performer *e = unsmob (scm_car (p)); if (e) - (e->*method) (); + (e->*method) (); } } @@ -65,46 +83,22 @@ Performer_group::do_announces () for (SCM s = context ()->children_contexts (); scm_is_pair (s); s = scm_cdr (s)) { - Context *c = unsmob_context (scm_car (s)); + Context *c = unsmob (scm_car (s)); Performer_group *group - = dynamic_cast (c->implementation ()); + = dynamic_cast (c->implementation ()); if (group) - group->do_announces (); + group->do_announces (); } while (1) { performer_each (get_simple_trans_list (), - &Performer::create_audio_elements); + &Performer::create_audio_elements); if (!announce_infos_.size ()) - break; + break; acknowledge_audio_elements (); announce_infos_.clear (); } } - -void -Performer_group::play_element (Audio_element *e) -{ - Context *c = context_->get_parent_context (); - if (c) - { - Performer_group *pgp = dynamic_cast (c->implementation ()); - pgp->play_element (e); - } -} - -int -Performer_group::get_tempo () const -{ - Context *c = context_->get_parent_context (); - if (c) - { - Performer_group *pgp = dynamic_cast (c->implementation ()); - return pgp->get_tempo (); - } - return 60; -} -