]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/to-xml.scm
Add support for measures split across lines.
[lilypond.git] / scm / to-xml.scm
index 5f2828a3704089de71308354bbc80c975d98d4a6..ea7ce7a0fcc33763c927980234ae9afdcf0c2ca0 100644 (file)
@@ -1,12 +1,26 @@
-;;;; to-xml.scm -- dump parse tree as xml
+;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 2003--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 2003--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (scm to-xml))
 
 (use-modules (ice-9 regex)
             (srfi srfi-1)
+            (lily)
             (oop goops))
 
 "
@@ -86,19 +100,6 @@ is then separated.
                   (numer . ,(car (ly:duration-factor d)))
                   (denom . ,(cdr (ly:duration-factor d))))))
 
-(define (musicxml-pitch->xml-node p)
-  (make <xml-node>
-    #:name 'pitch
-    #:children
-    (list
-     (make <xml-node>
-       #:name 'step
-       #:value (list-ref  '("C" "D" "E" "F" "G" "A" "B")
-                         (ly:pitch-notename p)))
-     (make <xml-node>
-       #:name 'octave
-       #:value (number->string (ly:pitch-octave p))))))
-
 (define (pitch->xml-node p)
   (make <xml-node>
     #:name 'pitch
@@ -187,7 +188,7 @@ is then separated.
 (define (assert x)
   (if x
       #t
-      (ly:error (_ "assertion failed"))))
+      (ly:error (_ "assertion failed: ~S") x)))
 
 (define (re-sub re to string)
   (regexp-substitute/global #f re string 'pre to 'post))
@@ -230,9 +231,9 @@ is then separated.
   (string-append "</" (symbol->string name) ">"))
 
 (define-public (music-to-xml music port)
-  "Dump XML-ish stuff to PORT."
+  "Dump XML-ish stuff to @var{port}."
 
-  ;; dtd contains # -- This confuses tex during make web.
+  ;; dtd contains # -- This confuses tex during make doc.
   ;;
   ;;  (display (dtd-header) port)
   
@@ -241,13 +242,12 @@ is then separated.
   (display (close-tag 'music) port))
 
 (define-public (music-to-musicxml music port)
-  "Dump MusicXML-ish stuff to PORT."
+  "Dump MusicXML-ish stuff to @var{port}."
 
-  ;; dtd contains # -- This confuses tex during make web.
+  ;; dtd contains # -- This confuses tex during make doc.
   ;;
   ;;  (display (dtd-header) port)
 
-  (define pitch->xml-node musicxml-pitch->xml-node)
   (define duration->xml-node musicxml-duration->xml-node)
   
   (display (open-tag 'music '((type . score)) '()) port)