From eb38d3262cc0c09668ecf330a792e6d1d95f6f8a Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 3 Oct 2006 15:18:07 +0000 Subject: [PATCH] * lily/multi-measure-rest-engraver.cc: use internalBarNumber * lily/timing-translator.cc: list properties. (start_translation_timestep): update internalBarNumber too. * scm/define-context-properties.scm (all-user-translation-properties): add internalBarNumber. --- ChangeLog | 8 ++++++++ lily/accidental-engraver.cc | 3 ++- lily/multi-measure-rest-engraver.cc | 8 ++++---- lily/timing-translator.cc | 25 ++++++++++++++++++------- scm/define-context-properties.scm | 6 +++--- 5 files changed, 35 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 120caf6c80..4ee358d5da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-10-03 Han-Wen Nienhuys + * lily/multi-measure-rest-engraver.cc: use internalBarNumber + + * lily/timing-translator.cc: list properties. + (start_translation_timestep): update internalBarNumber too. + + * scm/define-context-properties.scm + (all-user-translation-properties): add internalBarNumber. + * input/regression/spacing-no-note.ly: new file. * buildscripts/output-distance.py (link_file): verbosity for OSError. diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc index e08d3b3771..3bd03fb697 100644 --- a/lily/accidental-engraver.cc +++ b/lily/accidental-engraver.cc @@ -289,7 +289,7 @@ number_accidentals (bool *different, int Accidental_engraver::get_bar_number () { - SCM barnum = get_property ("currentBarNumber"); + SCM barnum = get_property ("internalBarNumber"); SCM smp = get_property ("measurePosition"); int bn = robust_scm2int (barnum, 0); @@ -603,6 +603,7 @@ ADD_TRANSLATOR (Accidental_engraver, "autoAccidentals " "autoCautionaries " + "internalBarNumber " "extraNatural " "harmonicAccidentals " "localKeySignature", diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 2019959399..cee2e3d891 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -137,7 +137,7 @@ Multi_measure_rest_engraver::process_music () } start_measure_ - = scm_to_int (get_property ("currentBarNumber")); + = scm_to_int (get_property ("internalBarNumber")); } bar_seen_ = bar_seen_ || scm_is_string (get_property ("whichBar")); @@ -204,7 +204,7 @@ Multi_measure_rest_engraver::start_translation_timestep () last_rest_ = mmrest_; last_numbers_ = numbers_; - int cur = scm_to_int (get_property ("currentBarNumber")); + int cur = scm_to_int (get_property ("internalBarNumber")); int num = cur - start_measure_; /* @@ -251,13 +251,13 @@ Multi_measure_rest_engraver::finalize () ADD_TRANSLATOR (Multi_measure_rest_engraver, /* doc */ "Engraves multi-measure rests that are produced with @code{R}. Reads " - "measurePosition and currentBarNumber to determine what number to print " + "measurePosition and internalBarNumber to determine what number to print " "over the MultiMeasureRest. Reads measureLength to determine if it " "should use a whole rest or a breve rest to represent 1 measure ", /* create */ "MultiMeasureRest MultiMeasureRestNumber MultiMeasureRestText", /* accept */ "multi-measure-rest-event multi-measure-text-event", /* read */ - "currentBarNumber " + "internalBarNumber " "restNumberThreshold " "breakableSeparationItem " "currentCommandColumn " diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index a5cf4adb3f..d792918171 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -40,6 +40,7 @@ Timing_translator::initialize () { context ()->add_alias (ly_symbol2scm ("Timing")); context ()->set_property ("currentBarNumber", scm_from_int (1)); + context ()->set_property ("internalBarNumber", scm_from_int (1)); context ()->set_property ("timeSignatureFraction", scm_cons (scm_from_int (4), scm_from_int (4))); @@ -102,10 +103,8 @@ Timing_translator::start_translation_timestep () measposp += dt; - SCM barn = get_property ("currentBarNumber"); - int b = 0; - if (scm_is_number (barn)) - b = scm_to_int (barn); + int current_barnumber = robust_scm2int (get_property ("currentBarNumber"), 0); + int internal_barnumber = robust_scm2int (get_property ("internalBarNumber"), 0); SCM cad = get_property ("timing"); bool c = to_boolean (cad); @@ -114,10 +113,12 @@ Timing_translator::start_translation_timestep () while (c && measposp.main_part_ >= len) { measposp.main_part_ -= len; - b++; + current_barnumber ++; + internal_barnumber ++; } - context ()->set_property ("currentBarNumber", scm_from_int (b)); + context ()->set_property ("currentBarNumber", scm_from_int (current_barnumber)); + context ()->set_property ("internalBarNumber", scm_from_int (internal_barnumber)); context ()->set_property ("measurePosition", measposp.smobbed_copy ()); } @@ -132,4 +133,14 @@ ADD_TRANSLATOR (Timing_translator, "@code{Staff}. " "\n\nThis engraver adds the alias @code{Timing} to its containing context.", - "", "", "", ""); + "", "", + + "internalBarNumber " + "currentBarNumber " + "measureLength " + "measurePosition ", + + "internalBarNumber " + "currentBarNumber " + "measurePosition " + ); diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 7aa2fce123..e55c2fb8c0 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -187,9 +187,7 @@ The layout style is a hash table, containing the drum-pitches (e.g. the symbol @samp{hihat}) as key, and a list (@var{notehead-style} @var{script} @var{vertical-position}) as values. ") - (currentBarNumber ,integer? "Contains the current barnumber. This property is incremented at -every bar line. -") + (currentBarNumber ,integer? "Contains the current barnumber. This property is incremented at every bar line. ") (defaultBarType ,string? "Sets the default type of bar line. See @code{whichBar} for information on available bar types. @@ -270,6 +268,8 @@ Function taking a string (instrument name), and returning a (@var{min} . @var{ma the instrument. Its value is the pitch that sounds like middle C. This is used to transpose the MIDI output, and @code{\\quote}s.") + (internalBarNumber ,integer? "Contains the current barnumber. This property is used for internal timekeeping, among others by the @code{Accidental_engraver}.") + (keepAliveInterfaces ,list? "List of symbols, signifying grob interfaces that are worth keeping an staff with @code{remove-empty} set around for.") (keyAlterationOrder ,list? " Alist that defines in what order -- 2.39.2