]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-output-def.cc
2003 -> 2004
[lilypond.git] / lily / music-output-def.cc
index dd07057161c7903e06cf3588b78780b8f0fe1607..ff392eaeeb7bec65fd475d373852880df6c3ac59 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "scm-hash.hh"
@@ -11,7 +11,7 @@
 #include "warn.hh"
 #include "music-output-def.hh"
 #include "global-translator.hh"
-#include "translator-def.hh"
+#include "context-def.hh"
 #include "main.hh"
 #include "file-path.hh"
 #include "lily-guile.hh"
@@ -113,7 +113,9 @@ int
 Music_output_def::print_smob (SCM s, SCM p, scm_print_state *)
 {
   Music_output_def * def = unsmob_music_output_def (s);
-  scm_puts ("#<Music_output_def ", p);
+  scm_puts ("#< ", p);
+  scm_puts (classname (def), p);
+  
   (void)def;
   scm_puts (">", p);
   return 1;
@@ -160,3 +162,33 @@ LY_DEFINE(ly_paper_lookup,
   else
     return SCM_EOL;
 }
+
+LY_DEFINE(ly_output_def_scope,
+         "ly:output-def-scope",
+         1, 0,0,
+         (SCM def),
+         "Get the scope inside @var{def}."
+         )
+{
+  Music_output_def *op = unsmob_music_output_def (def);
+  SCM_ASSERT_TYPE (op, def, SCM_ARG1, __FUNCTION__, "Output definition");
+
+  return op->scope_;
+}
+
+
+LY_DEFINE(ly_output_def_clone,
+         "ly:output-def-clone",
+         1, 0,0,
+         (SCM def),
+         "Clone @var{def}."
+         )
+{
+  Music_output_def *op = unsmob_music_output_def (def);
+  SCM_ASSERT_TYPE (op, def, SCM_ARG1, __FUNCTION__, "Output definition");
+
+  SCM s = op->clone ()->self_scm ();
+  scm_gc_unprotect_object (s);
+  return s;
+}
+