]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/breathing-sign.cc
patch::: 1.3.93.jcn2
[lilypond.git] / lily / breathing-sign.cc
index 4810dec72ef05f24311c7ea4bf71d3fa3a4fc268..5d249085321e28098a6c377b12560838ac4f5c34 100644 (file)
@@ -22,7 +22,7 @@
 
 
 
-MAKE_SCHEME_CALLBACK(Breathing_sign,brew_molecule);
+MAKE_SCHEME_CALLBACK(Breathing_sign,brew_molecule,1);
 
 SCM 
 Breathing_sign::brew_molecule (SCM smob)
@@ -37,12 +37,15 @@ Breathing_sign::brew_molecule (SCM smob)
   return me->lookup_l()->filledbox(b).create_scheme ();
 }
 
-Real
-Breathing_sign::offset_callback (Score_element * b, Axis a)
+MAKE_SCHEME_CALLBACK(Breathing_sign,offset_callback,2);
+SCM
+Breathing_sign::offset_callback (SCM element_smob, SCM axis)
 {
-  Score_element * me = (Score_element*)b;
+  Score_element *me = unsmob_element (element_smob);
+  Axis a = (Axis) gh_scm2int (axis);
+
   
-  Direction d = Directional_element_interface::get (b);
+  Direction d = Directional_element_interface::get (me);
   if (!d)
     {
       d = UP;
@@ -51,12 +54,12 @@ Breathing_sign::offset_callback (Score_element * b, Axis a)
 
   Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
   int sz = Staff_symbol_referencer::line_count (me)-1;
-  return inter_f * sz * d;
+  return gh_double2scm ( inter_f * sz * d);
 }
 
 void
 Breathing_sign::set_interface (Score_element *b)
 {
   Staff_symbol_referencer::set_interface  (b);
-  b->add_offset_callback (Breathing_sign::offset_callback,Y_AXIS); 
+  b->add_offset_callback (Breathing_sign_offset_callback_proc,Y_AXIS); 
 }