X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic-output-def.cc;h=c05534131b0f5197c561d589ed133015d66d93f0;hb=2b0aa2c5bbb4af4e7d0d3c057de066dc1d6d6b8d;hp=b4a63d39f45e21a2d8a7c18d3c89582c7b236fe1;hpb=8aad615ea7bb31f49a0c2afc21eea5ff5de20437;p=lilypond.git diff --git a/lily/music-output-def.cc b/lily/music-output-def.cc index b4a63d39f4..c05534131b 100644 --- a/lily/music-output-def.cc +++ b/lily/music-output-def.cc @@ -39,22 +39,27 @@ Music_output_def::Music_output_def (Music_output_def const &s) { scope_p_ = new Scope (*s.scope_p_); translator_p_dict_p_ = new Scope (*s.translator_p_dict_p_); + default_properties_ = s.default_properties_; for (Scope_iter i (*translator_p_dict_p_); i.ok (); i++) { - Translator * t = i.val ()->access_content_Translator (false); + Translator * t = i.val ()->access_content_Translator_group (false); t-> output_def_l_ = this; } } void -Music_output_def::assign_translator (Translator*tp) +Music_output_def::assign_translator (Translator_group*tp) { String s =tp->type_str_; + if (s.empty_b ()) + { + tp->warning (_("Interpretation context with empty type")); + } if (translator_p_dict_p_->elem_b (s)) delete translator_p_dict_p_->elem (s); - translator_p_dict_p_->elem (s) = new Translator_identifier (tp, 0); + translator_p_dict_p_->elem (s) = new Translator_group_identifier (tp, 0); tp ->output_def_l_ = this; } @@ -62,7 +67,7 @@ Translator* Music_output_def::find_translator_l (String name) const { if (translator_p_dict_p_->elem_b (name)) - return translator_p_dict_p_->elem (name)->access_content_Translator (false); + return translator_p_dict_p_->elem (name)->access_content_Translator_group (false); if (global_translator_dict_p->elem_b (name)) return global_translator_dict_p->elem(name); @@ -76,7 +81,7 @@ Music_output_def::get_global_translator_p () { Translator * t = find_translator_l ("Score"); if (!t) - error (_("Can't find Score context")); + error (_f ("Can't find `%s' context", "Score")); t = t->clone (); Global_translator *g = dynamic_cast (t); t->add_processing (); @@ -88,7 +93,9 @@ void Music_output_def::print () const { #ifndef NPRINT + DEBUG_OUT << "Translators: \n"; translator_p_dict_p_->print (); + DEBUG_OUT << "Other definitions.\n"; scope_p_->print( ); #endif } @@ -96,13 +103,11 @@ Music_output_def::print () const String Music_output_def::get_default_output () const { - static SCM output_sym; - if (!output_sym) - output_sym = scm_protect_object (ly_symbol ("output")); - if (safe_global_b || !scope_p_->elem_b (output_sym)) + if (safe_global_b || !scope_p_->elem_b ("output")) return ""; - Identifier * id = scope_p_->elem (output_sym); + Identifier * id = scope_p_->elem ("output"); String *p = id->access_content_String (false); return p ? *p : String (""); } +