X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fkey-performer.cc;h=219454115a04dc673f2ce903d04d2be68afded22;hb=3af0951f9a11677240efa6228683dd4fcea13eaf;hp=a611405244433a2872e2134050bfb64f164fb2aa;hpb=652ed35a2013489d0a14fede6307cd2595abb2c4;p=lilypond.git diff --git a/lily/key-performer.cc b/lily/key-performer.cc index a611405244..219454115a 100644 --- a/lily/key-performer.cc +++ b/lily/key-performer.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Jan Nieuwenhuizen + Copyright (C) 1997--2015 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 @@ -22,6 +22,7 @@ #include "performer.hh" #include "stream-event.hh" #include "warn.hh" +#include "lily-imports.hh" #include "translator.icc" @@ -35,7 +36,7 @@ protected: void process_music (); void stop_translation_timestep (); - DECLARE_TRANSLATOR_LISTENER (key_change); + void listen_key_change (Stream_event *); private: Stream_event *key_ev_; Audio_key *audio_; @@ -57,15 +58,14 @@ Key_performer::process_music () if (key_ev_) { SCM pitchlist = key_ev_->get_property ("pitch-alist"); - SCM proc = ly_lily_module_constant ("alterations-in-key"); - SCM acc = scm_call_1 (proc, pitchlist); + SCM acc = Lily::alterations_in_key (pitchlist); Pitch key_do (0, scm_to_int (scm_caar (pitchlist)), ly_scm2rational (scm_cdar (pitchlist))); - Pitch c_do (0, 0, 0); + Pitch c_do; SCM c_pitchlist = ly_transpose_key_alist (pitchlist, @@ -98,7 +98,6 @@ Key_performer::stop_translation_timestep () } } -IMPLEMENT_TRANSLATOR_LISTENER (Key_performer, key_change); void Key_performer::listen_key_change (Stream_event *ev) { @@ -106,6 +105,12 @@ Key_performer::listen_key_change (Stream_event *ev) key_ev_ = ev; } +void +Key_performer::boot () +{ + ADD_LISTENER (Key_performer, key_change); +} + ADD_TRANSLATOR (Key_performer, /* doc */ "",