]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/fretboard-engraver.cc
Run grand replace for 2015.
[lilypond.git] / lily / fretboard-engraver.cc
index cb4345ccad9870b89c5528ce17a6870e56da4a6f..2ce799bf0f94b4516b90086bcd0f194fe17196bf 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2006--2011 Han-Wen Nienhuys
+  Copyright (C) 2006--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
@@ -53,19 +53,19 @@ protected:
   DECLARE_TRANSLATOR_LISTENER (fingering);
 
 private:
-  SCM last_fret_notes_;
+  SCM last_placements_;
 };
 
 void
 Fretboard_engraver::derived_mark () const
 {
-  scm_gc_mark (last_fret_notes_);
+  scm_gc_mark (last_placements_);
 }
 
 Fretboard_engraver::Fretboard_engraver ()
 {
   fret_board_ = 0;
-  last_fret_notes_ = SCM_EOL;
+  last_placements_ = SCM_BOOL_F;
 }
 
 IMPLEMENT_TRANSLATOR_LISTENER (Fretboard_engraver, note);
@@ -96,26 +96,27 @@ Fretboard_engraver::process_music ()
     return;
 
   SCM tab_strings = articulation_list (note_events_,
-                                      tabstring_events_,
-                                      "string-number-event");
+                                       tabstring_events_,
+                                       "string-number-event");
   SCM fingers = articulation_list (note_events_,
-                                  fingering_events_,
-                                  "fingering-event");
+                                   fingering_events_,
+                                   "fingering-event");
   fret_board_ = make_item ("FretBoard", note_events_[0]->self_scm ());
   SCM fret_notes = ly_cxx_vector_to_list (note_events_);
   SCM proc = get_property ("noteToFretFunction");
   if (ly_is_procedure (proc))
     scm_call_4 (proc,
-               context ()->self_scm (),
-               fret_notes,
-               scm_list_2 (tab_strings, fingers),
-               fret_board_->self_scm ());
+                context ()->self_scm (),
+                fret_notes,
+                scm_list_2 (tab_strings, fingers),
+                fret_board_->self_scm ());
   SCM changes = get_property ("chordChanges");
-  if (to_boolean (changes) && scm_is_pair (last_fret_notes_)
-      && ly_is_equal (last_fret_notes_, fret_notes))
+  SCM placements = fret_board_->get_property ("dot-placement-list");
+  if (to_boolean (changes)
+      && ly_is_equal (last_placements_, placements))
     fret_board_->set_property ("begin-of-line-visible", SCM_BOOL_T);
 
-  last_fret_notes_ = fret_notes;
+  last_placements_ = placements;
 }
 
 void
@@ -128,25 +129,25 @@ Fretboard_engraver::stop_translation_timestep ()
 }
 
 ADD_TRANSLATOR (Fretboard_engraver,
-               /* doc */
-               "Generate fret diagram from one or more events of type"
-               " @code{NoteEvent}.",
-
-               /* create */
-               "FretBoard ",
-
-               /* read */
-               "chordChanges "
-               "defaultStrings "
-               "highStringOne "
-               "maximumFretStretch "
-               "minimumFret "
-               "noteToFretFunction "
-               "predefinedDiagramTable "
-               "stringTunings "
-               "tablatureFormat ",
-
-               /* write */
-               ""
-                );
+                /* doc */
+                "Generate fret diagram from one or more events of type"
+                " @code{NoteEvent}.",
+
+                /* create */
+                "FretBoard ",
+
+                /* read */
+                "chordChanges "
+                "defaultStrings "
+                "highStringOne "
+                "maximumFretStretch "
+                "minimumFret "
+                "noteToFretFunction "
+                "predefinedDiagramTable "
+                "stringTunings "
+                "tablatureFormat ",
+
+                /* write */
+                ""
+               );