X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fchord-name-engraver.cc;h=539efcdf4c0c0fdd8065998554c38444e113e0ca;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=0ca322716fde1e8153034b99028feb95bd7d6257;hpb=6445987a6cc30312ce81e6e007e54e697b1f6702;p=lilypond.git diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 0ca322716f..539efcdf4c 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2014 Jan Nieuwenhuizen + Copyright (C) 1998--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 @@ -92,38 +92,32 @@ Chord_name_engraver::process_music () markup = chord_name->get_property ("text"); if (!Text_interface::is_markup (markup)) { - Stream_event *inversion_event = 0; for (vsize i = 0; i < notes_.size (); i++) { Stream_event *n = notes_[i]; SCM p = n->get_property ("pitch"); - if (!unsmob_pitch (p)) + if (!Pitch::is_smob (p)) continue; - if (n->get_property ("inversion") == SCM_BOOL_T) - { - inversion_event = n; - inversion = p; - } - else if (n->get_property ("bass") == SCM_BOOL_T) + if (n->get_property ("bass") == SCM_BOOL_T) bass = p; else - pitches = scm_cons (p, pitches); - } - - if (inversion_event) - { - SCM oct = inversion_event->get_property ("octavation"); - if (scm_is_number (oct)) { - Pitch *p = unsmob_pitch (inversion_event->get_property ("pitch")); - int octavation = scm_to_int (oct); - Pitch orig = p->transposed (Pitch (-octavation, 0, 0)); - - pitches = scm_cons (orig.smobbed_copy (), pitches); + SCM oct = n->get_property ("octavation"); + if (scm_is_number (oct)) + { + Pitch orig = Pitch::unsmob (p)->transposed (Pitch (-scm_to_int (oct), 0)); + pitches = scm_cons (orig.smobbed_copy (), pitches); + } + else + pitches = scm_cons (p, pitches); + if (n->get_property ("inversion") == SCM_BOOL_T) + { + inversion = p; + if (!scm_is_number (oct)) + programming_error ("inversion does not have original pitch"); + } } - else - programming_error ("inversion does not have original pitch"); } pitches = scm_sort_list (pitches, Pitch::less_p_proc);