X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftranslator-group.cc;h=d7036957d73512caa575917e3fcc5b3478810e5f;hb=fe2ea684b9dcdd98146d608a43e27acc881ff3cd;hp=f26842df02077a6c6a19434ff9a1eb084759be51;hpb=79d510aebf1d131d3023a2a8639b98236cefb8f2;p=lilypond.git diff --git a/lily/translator-group.cc b/lily/translator-group.cc index f26842df02..d7036957d7 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -6,7 +6,7 @@ (c) 1997--2004 Han-Wen Nienhuys */ -#include "music-output-def.hh" +#include "output-def.hh" #include "translator-group.hh" #include "translator.hh" #include "warn.hh" @@ -20,16 +20,14 @@ Translator_group* Translator_group::get_daddy_translator () const { - Translator *t - = unsmob_translator (daddy_context_->daddy_context_->implementation_); - return dynamic_cast (t); + return context ()->get_parent_context ()->implementation (); } void translator_each (SCM list, Translator_method method) { - for (SCM p = list; gh_pair_p (p); p = ly_cdr (p)) + for (SCM p = list; ly_c_pair_p (p); p = ly_cdr (p)) (unsmob_translator (ly_car (p))->*method) (); } @@ -37,8 +35,8 @@ translator_each (SCM list, Translator_method method) void Translator_group::initialize () { - SCM tab = scm_make_vector (gh_int2scm (19), SCM_BOOL_F); - daddy_context_->set_property ("acceptHashTable", tab); + SCM tab = scm_make_vector (scm_int2num (19), SCM_BOOL_F); + context ()->set_property ("acceptHashTable", tab); } @@ -46,10 +44,10 @@ bool translator_accepts_any_of (Translator*tr, SCM ifaces) { SCM ack_ifs = scm_assoc (ly_symbol2scm ("events-accepted"), - tr->translator_description()); - ack_ifs = gh_cdr (ack_ifs); - for (SCM s = ifaces; ly_pair_p (s); s = ly_cdr (s)) - if (scm_memq (ly_car (s), ack_ifs) != SCM_BOOL_F) + tr->translator_description ()); + ack_ifs = ly_cdr (ack_ifs); + for (SCM s = ifaces; ly_c_pair_p (s); s = ly_cdr (s)) + if (scm_c_memq (ly_car (s), ack_ifs) != SCM_BOOL_F) return true; return false; } @@ -58,7 +56,7 @@ SCM find_accept_translators (SCM gravlist, SCM ifaces) { SCM l = SCM_EOL; - for (SCM s = gravlist; ly_pair_p (s); s = ly_cdr (s)) + for (SCM s = gravlist; ly_c_pair_p (s); s = ly_cdr (s)) { Translator* tr = unsmob_translator (ly_car (s)); if (translator_accepts_any_of (tr, ifaces)) @@ -76,19 +74,19 @@ Translator_group::try_music (Music* m) SCM name = scm_sloppy_assq (ly_symbol2scm ("name"), m->get_property_alist (false)); - if (!gh_pair_p (name)) + if (!ly_c_pair_p (name)) return false; - name = gh_cdr (name); + name = ly_cdr (name); SCM accept_list = scm_hashq_ref (tab, name, SCM_UNDEFINED); if (accept_list == SCM_BOOL_F) { accept_list = find_accept_translators (get_simple_trans_list (), - m->get_mus_property ("types")); + m->get_property ("types")); scm_hashq_set_x (tab, name, accept_list); } - for (SCM p = accept_list; gh_pair_p (p); p = ly_cdr (p)) + for (SCM p = accept_list; ly_c_pair_p (p); p = ly_cdr (p)) { Translator * t = unsmob_translator (ly_car (p)); if (t && t->try_music (m)) @@ -97,28 +95,6 @@ Translator_group::try_music (Music* m) return false; } -SCM -names_to_translators (SCM namelist, Context*tg) -{ - SCM l = SCM_EOL; - for (SCM s = namelist; gh_pair_p (s) ; s = ly_cdr (s)) - { - Translator * t = get_translator (ly_car (s)); - if (!t) - warning (_f ("can't find: `%s'", s)); - else - { - Translator * tr = t->clone (); - SCM str = tr->self_scm (); - l = gh_cons (str, l); - - tr->daddy_context_ = tg; - scm_gc_unprotect_object (str); - } - } - return l; -} - SCM Translator_group::get_simple_trans_list () @@ -126,12 +102,11 @@ Translator_group::get_simple_trans_list () return simple_trans_list_; } - void -recurse_down_translators (Context * c, Translator_method ptr, Direction dir) +recurse_over_translators (Context * c, Translator_method ptr, Direction dir) { Translator_group * tg - = dynamic_cast (unsmob_translator (c->implementation_)); + = dynamic_cast (c->implementation ()); /* @@ -140,15 +115,15 @@ recurse_down_translators (Context * c, Translator_method ptr, Direction dir) if (dir == DOWN) { translator_each (tg->get_simple_trans_list (), - ptr); + ptr); (tg->*ptr) (); } - for (SCM s = c->context_list_ ; gh_pair_p (s); - s =gh_cdr (s)) + for (SCM s = c->children_contexts () ; ly_c_pair_p (s); + s =ly_cdr (s)) { - recurse_down_translators (unsmob_context (gh_car (s)), ptr, dir); + recurse_over_translators (unsmob_context (ly_car (s)), ptr, dir); } if (dir == UP)