]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/volta-engraver.cc
Web: Download.itexi - expand on Windows install
[lilypond.git] / lily / volta-engraver.cc
index b43254fc609ed967cd4abca3faeee716940b058c..bd198cbb67faad5c395bd1567133d6413019c938 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2000--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2000--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -82,10 +82,10 @@ Volta_engraver::process_music ()
       SCM c = scm_car (cs);
 
       if (scm_is_pair (c)
-          && scm_car (c) == ly_symbol2scm ("volta")
+          && scm_is_eq (scm_car (c), ly_symbol2scm ("volta"))
           && scm_is_pair (scm_cdr (c)))
         {
-          if (scm_cadr (c) == SCM_BOOL_F)
+          if (scm_is_false (scm_cadr (c)))
             end = true;
           else
             start_string_ = scm_cadr (c);
@@ -99,8 +99,8 @@ Volta_engraver::process_music ()
       SCM l (get_property ("voltaSpannerDuration"));
       Moment now = now_mom ();
 
-      bool early_stop = unsmob_moment (l)
-                        && *unsmob_moment (l) <= now - started_mom_;
+      bool early_stop = unsmob<Moment> (l)
+                        && *unsmob<Moment> (l) <= now - started_mom_;
 
       end = end || early_stop;
     }
@@ -152,43 +152,7 @@ Volta_engraver::acknowledge_bar_line (Grob_info i)
   if (volta_bracket_)
     Volta_bracket_interface::add_bar (volta_bracket_, i.item ());
   if (end_volta_bracket_)
-    {
-      Volta_bracket_interface::add_bar (end_volta_bracket_, i.item ());
-      Grob *endbar = i.grob();
-      SCM glyph = endbar ? endbar->get_property ("glyph-name") : SCM_EOL;
-
-      string str;
-      bool no_vertical_end = false;
-      if (scm_is_string (glyph))
-        str = ly_scm2string (glyph);
-      else
-        str = "|";
-
-      SCM vertical_end_allow_list = get_property ("voltaAllowEndLineOnGlyphs");
-      if (ly_cheap_is_list (vertical_end_allow_list))
-        { // checks based on user settable property
-          bool match_not_found = true;
-          while (scm_is_pair (vertical_end_allow_list) && match_not_found)
-            {
-              if (str == robust_scm2string (scm_car (vertical_end_allow_list), "* invalid *"))
-                match_not_found = false;
-              vertical_end_allow_list = scm_cdr (vertical_end_allow_list);
-            }
-         no_vertical_end |= match_not_found;
-      }
-
-      if (no_vertical_end)
-        {
-          Drul_array<Real> edge_height = robust_scm2interval (end_volta_bracket_->get_property ("edge-height"),
-                                                          Interval (1.0, 1.0));
-
-          if (no_vertical_end)
-            edge_height[RIGHT] = 0.0;
-
-          end_volta_bracket_->set_property ("edge-height", ly_interval2scm (edge_height));
-
-        }
-    }
+    Volta_bracket_interface::add_bar (end_volta_bracket_, i.item ());
 
   if (volta_spanner_)
     Side_position_interface::add_support (volta_spanner_, i.grob ());
@@ -197,7 +161,7 @@ Volta_engraver::acknowledge_bar_line (Grob_info i)
 void
 Volta_engraver::stop_translation_timestep ()
 {
-  Grob *cc = unsmob_grob (get_property ("currentCommandColumn"));
+  Grob *cc = unsmob<Grob> (get_property ("currentCommandColumn"));
   Item *ci = dynamic_cast<Item *> (cc);
 
   if (end_volta_bracket_ && !end_volta_bracket_->get_bound (RIGHT))
@@ -209,7 +173,7 @@ Volta_engraver::stop_translation_timestep ()
   if (end_volta_bracket_ && !volta_bracket_)
     {
       for (SCM s = get_property ("stavesFound"); scm_is_pair (s); s = scm_cdr (s))
-        Side_position_interface::add_support (volta_spanner_, unsmob_grob (scm_car (s)));
+        Side_position_interface::add_support (volta_spanner_, unsmob<Grob> (scm_car (s)));
       volta_spanner_ = 0;
     }
 
@@ -235,7 +199,6 @@ ADD_TRANSLATOR (Volta_engraver,
                 "VoltaBracketSpanner ",
 
                 /* read */
-                "voltaAllowEndLineOnGlyphs "
                 "repeatCommands "
                 "voltaSpannerDuration "
                 "stavesFound ",