X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftiming-translator.cc;h=67c2ffeed1a34fded9052512ed206bac5abb53c8;hb=b872748c6aa8bb721ced458691b38ac2fac5dfc8;hp=8298a2b56f4ac3154ea0cb017f5ae1723d1e883a;hpb=e7aa6c445f463844dbaa52d38ea4aac2882b5601;p=lilypond.git diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 8298a2b56f..67c2ffeed1 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2014 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,6 +23,7 @@ #include "translator-group.hh" #include "global-context.hh" #include "moment.hh" +#include "lily-imports.hh" void Timing_translator::stop_translation_timestep () @@ -47,9 +48,8 @@ Timing_translator::stop_translation_timestep () void Timing_translator::initialize () { - Context *timing = unsmob_context (scm_call_2 (ly_lily_module_constant ("ly:context-find"), - context ()->self_scm (), - ly_symbol2scm ("Timing"))); + Context *timing = unsmob + (Lily::ly_context_find (context ()->self_scm (), ly_symbol2scm ("Timing"))); if (timing != context ()) { context ()->add_alias (ly_symbol2scm ("Timing")); @@ -78,7 +78,7 @@ Timing_translator::initialize () SCM measureLength = timing->get_property ("measureLength"); - if (!unsmob_moment (measureLength)) + if (!unsmob (measureLength)) { measureLength = Moment (ly_scm2rational @@ -96,32 +96,25 @@ Timing_translator::initialize () if (!scm_is_pair (timeSignatureSettings)) { programming_error ("missing timeSignatureSettings"); - // A memoized constant is not the prettiest thing as a fallback - // since it does not track changes of the variable. However, - // this is still better than nothing, and we already complained - // via a programming_error - timeSignatureSettings = ly_lily_module_constant ("default-time-signature-settings"); + timeSignatureSettings = Lily::default_time_signature_settings; } context ()->set_property ("timeSignatureSettings", timeSignatureSettings); SCM beamExceptions = timing->get_property ("beamExceptions"); if (!scm_is_pair (beamExceptions)) { - beamExceptions = - scm_call_2 (ly_lily_module_constant ("beam-exceptions"), - timeSignatureFraction, - timeSignatureSettings); + beamExceptions = Lily::beam_exceptions (timeSignatureFraction, + timeSignatureSettings); } context ()->set_property ("beamExceptions", beamExceptions); SCM baseMoment = timing->get_property ("baseMoment"); - if (!unsmob_moment (baseMoment)) + if (!unsmob (baseMoment)) { baseMoment = Moment (ly_scm2rational - (scm_call_2 (ly_lily_module_constant ("base-length"), - timeSignatureFraction, - timeSignatureSettings))).smobbed_copy (); + (Lily::base_length (timeSignatureFraction, + timeSignatureSettings))).smobbed_copy (); } context ()->set_property ("baseMoment", baseMoment); @@ -129,10 +122,9 @@ Timing_translator::initialize () if (!scm_is_pair (beatStructure)) { beatStructure = - scm_call_3 (ly_lily_module_constant ("beat-structure"), - ly_rational2scm (unsmob_moment (baseMoment)->main_part_), - timeSignatureFraction, - timeSignatureSettings); + Lily::beat_structure (ly_rational2scm (unsmob (baseMoment)->main_part_), + timeSignatureFraction, + timeSignatureSettings); } context ()->set_property ("beatStructure", beatStructure); @@ -147,13 +139,14 @@ Rational Timing_translator::measure_length () const { SCM l = get_property ("measureLength"); - if (unsmob_moment (l)) - return unsmob_moment (l)->main_part_; + if (unsmob (l)) + return unsmob (l)->main_part_; else return Rational (1); } -Timing_translator::Timing_translator () +Timing_translator::Timing_translator (Context *c) + : Translator (c) { } @@ -181,8 +174,8 @@ Timing_translator::start_translation_timestep () Moment measposp; SCM s = get_property ("measurePosition"); - if (unsmob_moment (s)) - measposp = *unsmob_moment (s); + if (unsmob (s)) + measposp = *unsmob (s); else { measposp = now; @@ -231,6 +224,12 @@ Timing_translator::start_translation_timestep () #include "translator.icc" +void +Timing_translator::boot () +{ + +} + ADD_TRANSLATOR (Timing_translator, /* doc */ "This engraver adds the alias @code{Timing} to its containing"