]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-wrapper.cc
* lily/include/group-interface.hh (extract_grob_array): rename
[lilypond.git] / lily / music-wrapper.cc
index c6f7f50b9a0514a7eedbecdce969803ba5e375b1..0779476b0e57fb8bb2609863534fc1b5a1544f3c 100644 (file)
@@ -1,52 +1,47 @@
 /*   
-  music-wrapper.cc --  implement Music_wrapper
+  music-wrapper.cc -- implement Music_wrapper
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1998--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1998--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
-
 #include "music-wrapper.hh"
 
-
-
-
-void
-Music_wrapper::transpose (Pitch p)
+Music_wrapper::Music_wrapper (SCM x)
+  : Music (x)
 {
-  if (element ())
-    element ()-> transpose (p);
+  if (!ly_c_procedure_p (length_callback_))
+    length_callback_ = length_callback_proc; 
+  if (!ly_c_procedure_p (start_callback_))
+    start_callback_ = length_callback_proc; 
 }
 
-
-Music_wrapper::Music_wrapper(SCM l)
-  : Music (l)
+MAKE_SCHEME_CALLBACK(Music_wrapper, start_callback, 1);
+SCM
+Music_wrapper::start_callback (SCM m)
 {
+  Music *me = unsmob_music (m);
+  Music *elt = unsmob_music (me->get_property ("element"));
+  return elt->start_mom ().smobbed_copy ();
 }
 
-Moment
-Music_wrapper::length_mom () const
+MAKE_SCHEME_CALLBACK(Music_wrapper, length_callback, 1);
+SCM
+Music_wrapper::length_callback (SCM m)
 {
-  return element ()->length_mom ();
+  Music * me = unsmob_music (m);
+  Music *elt = unsmob_music (me->get_property ("element"));
+  return elt->get_length ().smobbed_copy ();
 }
 
-Pitch
-Music_wrapper::to_relative_octave (Pitch p)
-{
-  return element ()->to_relative_octave (p);
-}
-
-
 Music*
 Music_wrapper::element () const
 {
-  return unsmob_music (get_mus_property ("element"));
+  return unsmob_music (get_property ("element"));
 }
 
-void
-Music_wrapper::compress (Moment m)
-{
-  element ()->compress (m);
-}
+
+ADD_MUSIC (Music_wrapper);
+